Lazraus开发记录
利用lazarus开发的第一个程序
作为一个跨界而来的delphi程序员,时隔20年,再来开发一个应用程序,还是有一定的难度,delphi已经从5.0到了现在的XEn,感觉变化的好多,关键为了一个应用,去购买正版的IDE,还是有点贵,所以选择了开源的lazarus 2.0.10作为开发工具,基本和delphi5一样,上手倒是容易的多,但作为一个老程序员(是年纪老了),开发过程中还是遇到不少困难。
应用简介
本次开发的是一个服务程序,运行与window平台下,主要内容是通过TCP连接,与前端设备(空调、PDU、智能开关、空压机、温湿度、风速、气压传感器器等)进行通信,大多设备采用Modbus-RTU协议,本应用一方面采集设备运行参数和状态,并上传到另一平台服务器上,同时接收平台服务器的控制指令,对前端设备进行控制。
应用逻辑简单,主要问题是设备较多,光TCP连接就过百,设备协议和控制逻辑各不相同,尤其设备之间有相关性,不是一对一控制那么容易,经过两个月编码,到现场实测时,因为实际情况与预想不一样,修改程序时出现很多意想不到的情况。
1、 GDB调试
因为用到子线程,Lazarus采用的GDB外部调试工具,并不能很好在追踪到子线程中,因为暂停时,其它子线程会访问同样的代码,因时GDB会直接报错退出。
在一般情况下&