(3) 定长数据包应该指明长度。对于长度不变的数据包,则必须每次在数据包中的指定位置说明。接收方在知道了接受长度后,就能够判断接收的数据是否结束。
(4) 应该在结尾加入换行等符号。对于产品化的设备输出数据,或者需要经常调试的数据,应该在结尾加上换行,以便在调试工具中查看数据,方便调试程序是观察数据。
(5) 更新快的数据,应尽量简短。传输的数据越多,需要的时间越长,但传输的速度率是有限的,针对具体的硬件系统有不同的限制,因此。如果要求数据更新快,就要让每次传送的数据尽量短。
参考以上的通信协议,针对本系统的具体情况,由于输入的量都是数字量,因此采用的是应大写字母ABC作为数据的开始与结尾的标志。例如,要发送数据12和34,则数据包的形式为A12B34C。这样等到接收到了数据后,就可对其进行“拆包”,所谓的“拆包”就是按照打包协议的逆过程对接收的数据进行拆分,使其能够按照发送端各量的关系对应的显示在显示端的各量上。其具体的过程如下所示:
通过OnComm函数获得数据:
CString str;
str.Format("%c",ch);
strTemp += str;
接着用Find()函数对定位字符ABC进行定位,再用Mid()函数对两定位字符串间的数据进行获取。最后通过GetDlgItem()->SetWindowText()函数让获得的数据显示到窗体上对应的文本框中。
3.6.3 详细监控界面
详细监控界面的界面图如图3.13所示:
图3.13 详细监控界面
通过图3.13可以看到详细监控界面主要显示的量有主缸速度、缓冲力、液压垫力、顶缸压力、顶缸速度及电机的过载情况等量。以上各量的获取方式与3.6.2主窗口界面中主界面的各量的获取方式类似,详见3.6.2主窗口界面中的过程,这里就不再重复的说明。
3.6.4 用户信息管理模块
用户信息管理模块图如3.14图所示:
图3.14用户信息管理
通过图3.14用户信息管理展示了用户信息管理界面的形式及含有的功能项。本系统中的用户信息管理界面上有一个用户列表框,用来显示保存的用户名。在右侧的按钮中,有显示用户信息按钮、增加用户信息按钮、修改用户信息按钮、删除用户信息按钮及退出按钮。其中显示用户信息按钮用于将保存的用户名显示出来,增加用户信息按钮用来增加新的用户信息,修改用户信息按钮用来修改已经存在的用户的密码,删除用户信息按钮则用来删除已有的用户信息。当以上的按钮被按下时,会跳出相应的信息管理对话框,只要填入相关的信息即可实现相应的功能。对于增加用户信息按钮的弹出对话框如图3.15所示,其它的按钮对话框界面图见附录。
以上功能的实现的主要是基于MFC中的对话框功能及VC中文件的输入与输出功能。
对于弹出相应的对话框,在MFC中是通过DoModal()函数实现的。假设对话框的名字是A的话,只要在相应的主函数中加入A. DoModal()即可。
对于具体的用户信息的调用与存储则是通过对文本文件的操作实现的。在本
文件中 ifstream类定义了磁盘文件数据向存储内存输入 大型精密成型液压机的嵌入式智能监控与维护单元软件设计(9):http://www.751com.cn/zidonghua/lunwen_8245.html