在流式细胞仪项目中,先后利用 RS232/CAN/USB 等通信技术来实现信息传输。为了能够使这些通信模块能得到复用,打算重写整个通信模块,最终实现三者利用同一套体系即可实现完整的信息传输。
原理分析
从系统中分析,信息以通信帧的形式聚集、传递效果会更好,也符合对协议的定义。通信帧负责对整个信息的构建和拆解。基本原理就是将对应属性的字节输入、输出到对应的变量中,再根据所选择的通信方式形成特定的通信帧结果。因此,通信帧基类的设计应该包含所有属性功能,可以涵盖目前属性中的参数内容,未来若有增加,也只需增加对应的属性功能即可。子类继承于通信帧,用于生成符合传输协议的通信帧形式,或将通信帧形式拆解为基本字节形态。
通信帧需要传输,这部分属于端口控制类,其能力是实现对数据从端口收发。一般来说,想要接收数据,需要新建一个线程,专门接收此类型的数据内容。想要端口打开,则需要端口配置。这部分需要由一个单独界面来实现,实际也就是端口属性配置。
为了实现端口数据的收发验证,需要将接收到的和发送的数据实时展示。这部分内容需要根据协议内容来进行解析,完全可以放在通信帧中。因为只有通信帧是按照协议来组合的,因此有必要在这里进行解析。每解析完成就将结果发布。
此外,可以考虑将已有的协议内容,封装成稳定的指令集。指令集包含特定含义,窗体调用时只需传入参数值即可。而关于功能一致时,则可以考虑在全部指令集中,根据特定参数如模块号,查找具体的指令内容。
如此,一整套适用的通信模块即可完成。在协议不变时,增加功能,相当于在指令集中增加对应参数内容。协议改变时,则仅需要修改通信帧部分内容即可。此时的修改形式仅限于扩增、变更属性等&#