我的一个项目的changeLOG

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类的初步构建与测试;
 

你可能感兴趣的:(开发日志)