RS232/CAN/USB 通信模块在 VS+QT 中的设计与实现

在流式细胞仪项目中,先后利用 RS232/CAN/USB 等通信技术来实现信息传输。为了能够使这些通信模块能得到复用,打算重写整个通信模块,最终实现三者利用同一套体系即可实现完整的信息传输。

原理分析

从系统中分析,信息以通信帧的形式聚集、传递效果会更好,也符合对协议的定义。通信帧负责对整个信息的构建和拆解。基本原理就是将对应属性的字节输入、输出到对应的变量中,再根据所选择的通信方式形成特定的通信帧结果。因此,通信帧基类的设计应该包含所有属性功能,可以涵盖目前属性中的参数内容,未来若有增加,也只需增加对应的属性功能即可。子类继承于通信帧,用于生成符合传输协议的通信帧形式,或将通信帧形式拆解为基本字节形态。

通信帧需要传输,这部分属于端口控制类,其能力是实现对数据从端口收发。一般来说,想要接收数据,需要新建一个线程,专门接收此类型的数据内容。想要端口打开,则需要端口配置。这部分需要由一个单独界面来实现,实际也就是端口属性配置。

为了实现端口数据的收发验证,需要将接收到的和发送的数据实时展示。这部分内容需要根据协议内容来进行解析,完全可以放在通信帧中。因为只有通信帧是按照协议来组合的,因此有必要在这里进行解析。每解析完成就将结果发布。

此外,可以考虑将已有的协议内容,封装成稳定的指令集。指令集包含特定含义,窗体调用时只需传入参数值即可。而关于功能一致时,则可以考虑在全部指令集中,根据特定参数如模块号,查找具体的指令内容。

如此,一整套适用的通信模块即可完成。在协议不变时,增加功能,相当于在指令集中增加对应参数内容。协议改变时,则仅需要修改通信帧部分内容即可。此时的修改形式仅限于扩增、变更属性等&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值