2006
9.20 更新:
优化Pack::sent代码;
9.15 添加:
添加Pack::GetLocalIP(string ethname)方法,用于获得本机指定网卡的IP;
添加自动获得本机IP功能;
添加更改本机IP的功能;
更新:
系统参数中的HEIP将自动获得;
完成与模拟应答器和管理计算机间的SNMP数据传输测试;
9.14 更新:
完善以字节方式实现的COM::recv算法,提高了接收效率;
完成与模拟应答器的注册测试(注册流程,GUI显示,NE链表维护);
修正一个MAC地址字符转换的BUG;
添加:
添加COM::BufferClear(int fd,string option)方法,实现串口收发缓冲区的清空;
9.13 更新:
修正以字节方式实现的COM::recv算法;
测试上下行数据通信;
9.12 更新:
使用C+标准库bitset改进HFC_MAC和macinfo中的MAC地址倒序处理算法,节省空间,提高效率;
添加:
尝试以字节方式实现COM::recv算法;
9.8 添加:
为主窗体上按钮添加热键;
更新:
使用按钮的热键替代窗体热键呼出cfgDialog窗体;
删除:
去掉窗体热键中呼出cfgDialog窗体的功能;
9.7 更新:
重构cfgDialog代码;
重构mainform代码;
cfgDialog窗体显示位置可与屏幕大小自适应;
9.6 更新:
降低snmpThread的CPU占用率;
9.5 更新:
改进MSGSEQ算法,NE信息结构中加入PrevMAGSEQ以记录前一个消息号;
改进HFC_MAC中生成长度字段的算法;
9.4 更新:
整理代码注释;
8.28 更新:
重写HFC_MAC中的makeMAC,以备发送队列缓冲之需;
8.24 更新:
增加Com中对接收数据长度的处理;
对各模块进行边界检查,并将异常输出到Debug info窗体;
添加:
新提供一个Com中OpenCom的重载函数int OpenCom(const char *Dev,int ibaudrate);
8.23 更新:
重构 手动添加/删除NE 模块;
将macinfo中dealA5()的处理过程转到Com的recv模块中,而非调用macinfo处理;
SNMPtrap发送到162端口;
测试UDP数据解析/收发;
改进接收到的数据包IP地址判断算法(STL);
8.22 更新:
整理代码段;
改进串口收发类Com中数据接收模块recv的处理算法,提高数据接收可靠性;
对串口收发进行联机测试;
8.21 更新:
修正系统初始化时NE列表中REGed项的载入默认值;
修正轮询时提取NE索引的出错的BUG;
重新编译Qtopia Core4.1.4为Debug_and_Release模式;
尝试将争用开放时间缩短到200ms;
8.18 添加:
Test按钮用于列出当前NE链表中所有NE信息;
更新:
修正初始化时从配置文件读取NE添加到NE链表时错位的问题;
8.16 更新:
尝试在轮询中混入短时争用;
改进轮询模块中对注册状态判定的算法(潜在BUG);
8.15 添加:
设置窗体中添加轮询,争用选项;
增加删除NE时的提示;
8.11 添加:
为treeWidget添加差色显示功能;
版本[0.5.060809]
8.9 添加:
增加争用状态调度;
更新:
NE检索不需要再使用NE内置的index信息;
treeWidget中NE序号的排列与NE链表中的位置无关;
手动删除treeWidget中NE后treeWidget中的序号将自动升序排列;
8.8 添加:
为Debug info窗体添加暂停输出功能;
添加手动注册NE功能;
更新:
改进NE列表添加与删除方式;
8.7 添加:
新增热键 Ctrl+D 呼出Debug info窗体;
新增热键Ctrl+S 呼出设置窗体;
更改:
调整了主窗体界面,将Console从主窗体中独立出来成为Debug info窗体;
在主窗体close事件中关闭Debug info窗体;
7.28 更新:
treeWidget表头改为程序初始化时创建;
该进了treeWidget列表中文字对齐方式;
添加:
新增一些汉化项目;
版本[0.4.060725]
7.25 更新:
优化了头文件声明,加快编译速度;
精简了工程文件结构及内容;
改进了项目备份脚本的处理方式,缩小备份文件占用的空间;
7.24 更新:
不显示configDialog窗体的帮助按钮;
7.21 更新:
修正NE掉线后再次注册分配的IP与treeWidget中IP不一致的BUG;
修正执行Global::NE_list.LocateElem()之前,NE信息装载不完全导致LocateElem输出与预期不符的BUG;
7.20 更新:
使用STL中的reverse泛型算法替代HFC_PDU中自己的倒序算法;
修改Qtopia Core4.1.4源码,解决ttyS0冲突,更改默认framebuffer启动背景色为黑色,代替程序启动时设置背景色的代码
提高程序启动速度;
将Qtopia Core4.1.4以 -static -release -fast -no-qt3support -qvfb 方式重新编译,以增强程序运行性能;
添加:
加入轮询模式NE掉线自动侦测功能;
7.19 更新:
修正snmpThread中收到STATRESP后没有提取NE信息的BUG;
精简了configDialog UI中的控件及布局,以加快其载入速度;
7.18 添加:
双击treeWidget中NE即可删除该NE同时删除NE_List,配置文件中的信息;
addnelist()方法中增加了检测已存在项目并进行相应处理的代码;
更新:
尝试不使用定时器的单线程调度方式(使用单循环内的usleep定时),性能与备选方案近似,但不会阻塞GUI线程,代码复杂度低;
发现QT有QList及QLinkedList类可以用于实现链表等数据结构,择期测试;
7.17 添加:
configDialog中添加了上下行频率设置框;
NE_list中的NE都可以自动保存到配置文件中(注册成功时,手动添加时),程序启动时即可自动载入;
更新:
改进线程调度算法,主选 调度器线程内建时钟方案(与备选方案相比延迟小,时钟触发事件会阻塞GUI线程,
但时钟可在任务处理时暂停,目前任务还未产生阻塞,待进一步测试),备选 GUI线程内建时钟方案(不
会阻塞GUI,但GUI线程会抢资源,产生延迟);
版本[0.3.060714]
7.14 更新:
初步完成线程调度算法;
使用QTreeWidget替代QList;
7.13 添加:
为NEinfo结构添加了int index,bool CHNLRQST;bool REGed;unsigned char MSGSEQ; 成员;
Global中添加了comfd和socketfd,统一管理;
7.12 添加:
在Global中添加了Linklist NE_list 使用封装在里面的单链表管理NE信息;
7.10 添加:
编写threadM线程调度算法,评估调度开销,尝试建立独立于GUI的线程;
7.7 添加:
在customData中添加了Global命名空间,用于组织全局变量HEIP,MIP,IPseg,
删除:
弃用configDialog使用signal slot方式传回设置的方法;
7.5 添加:
引入自建的SNMPinfo结构用于保存NE的注册信息;
构建了snmpThread线程;
更新:
为控制台txtConsole建立了独立的输出调用函数toConsole(),以方便调试;
7.4 添加:
添加configDialog窗体,用于更改HEIP,MIP,IPseg的设置;
采用inputMask方式控制IP地址于MAC地址的输入;
尝试 成员调用 及 signal slot 两种方式将configDialog的设置传回主窗体,初步采用signal slot方式;
尝试了QFile与QSetting两种保存设置的方法,初步采用QSetting方法;
7.3 更新:
继续在x86嵌入式工控板上测试;
解决了第一次向listWidget添加成员时GUI反应迟缓的问题;
6.30 添加:
引入自建的NEinfo结构用于保存NE的注册信息;
为Com::recv添加了A5分析能力,从底层保证了数据接收一定程度上的可靠性;
验证了IP地址自动处理的可行性(QHostAddress);
6.29 添加:
可设置屏幕背景色;
注册成功应答器列表中可添加图标,同时显示MAC地址;
增加IP地址校验;
版本[0.2.060628]
6.28 添加:
在x86嵌入式工控板上初步测试程序;
实现窗体控件自动layout;
6.27 添加:
为txtConsole添加了自动跟踪滚动功能;
新增frame空间以根据屏幕大小自动调整空间布局;
regthread::run()中添加errcount变量,增加出错重试上限;
6.26 更新:
regthread中将不再调用Register类而是直接实现注册功能,并且添加emit state()信号以便传回注册状态;
改进了线程处理方法修正了多次调用锁死的BUG;
添加:
ui_mainform.h中为QLable txtConsole添加了QScrollArea以方便显示调试信息;
删除:
去掉了控制台输出避免与FB输出冲突;
6.23 更新:
在linux控制台下使用FB对程序进行了测试;
版本[0.1.060622]
6.22 添加:
构建regThread类,为NE注册提供一个单独的线程;
更新:
将HFC_PDU::setSET_ADDR(char *)改为HFC_PDU::setSET_ADDR(string)并采用string类的erase方法对
IP地址进行处理;
6.21 更新:
修正Register::start()中接收到ACK后返回信息错误的BUG;
修正HFC_PDU::setSET_ADDR()中不同长度IP地址构建错误的BUG;
6.16 更新:
更正了macinfo与HFC_MAC类中MAC地址的处理顺序与方法;
在macinfo::getMacAddr()中添加了缓冲区防止直接对MAC数据进行修改并修正了多次调用出错的BUG;
6.15 更新:
修正packinfo类中获取UDP数据长度出错的BUG;
6.13 更新:
将Com与Pack类中的接收缓冲长度改为常量声明;
版本[0.1.060609]
6.9 更新:
修正HFC_MAC::makeMACsent()添加0xA5导致控制字段丢失的bug;
添加:
在HFC_PDU类中添加了setSNMP方法;
2006
4-6.8 完成了ARM平台与X86平台下UDP包拦截,更改,转发的试验;
完成了ARM平台与X86平台下Com通讯的试验;
完成了linux x11下Qt3程序的评估;
完成MAC层协议分析;
完成Com,HFC_MAC,HFC_PDU,macinfo,MSGSEQ,Pack,packinfo,Register类的初步构建与测试;