标题:modbus调试助手/mqtt调试工具/超轻巧物联网组件/多线程实时采集/各种协议支持
作者:liudianwu
日期:2024-09-14 09:21
内容:
## 一、前言说明
搞物联网开发很多年,用的最多的当属modbus协议,一个稳定好用的物联网组件是物联网平台持续运行多年的基石,所以这个物联网组件从一开始就定位于自研,为了满足各种场景的需求,当然最重要的一点就是大大提升了自己对该协议的深度理解和应用,尤其是面对各种场景需求,逐步调整迭代代码。为什么最终选择自研,主要基于三点,第一点,Qt自带的modbus类功能很单一,比如不支持RTU OVER TCP,而且UDP和websocket也没有,需要自己拓展。第二点,libmodbus功能更强,但是不满足发送非modbus协议数据,也就是利用现有链路发送自定义的数据。第三点,面对复杂多变的需求,其他组件都无法灵活的调整,也许可能是对这些第三方代码不够熟悉。总之,自研的最大优势是灵活,可以最大限度的和现场实际需求做出调整。以便满足上帝的需求。
## 二、功能特点
1. 支持多种物联网通信协议,包括modbus和mqtt。
2. 协议方式支持串口com通信、网络tcp通信、网络udp通信、网络websocket通信。
3. 数据规则支持rtu模式和网络模式,网络rtu模式也就是modbus rtu over tcp/udp/websocket。相当于modbus串口协议数据走网络方式通信。
4. 支持批量连续写入寄存器数值和单个写入寄存器数值。
5. 支持数据顺序格式的设置,比如大端小端,高字节在前低字节在前的设置。支持Short_AB、Short_BA、Long_ABCD、Long_CDAB、Long_BADC、Long_DCBA、Float_ABCD、Float_CDAB、Float_BADC、Float_DCBA等。
6. 支持数据位字节数设置,比如短整型、长整型、浮点型等。常规的一般是2字节表示一个数据位,也有设备是4字节表示一个数据位,还有4字节浮点数的形式。后期可能还有8字节一个数据位。
7. 支持mqtt协议,可设置主机地址和端口、协议版本、唯一标号、用户名称、用户密码。
8. 支持mqtt发布主题、订阅主题、取消订阅。
9. 定时自动发布主题,可设置保活时间、超时时间、过期时间。mqtt通信自动重连。
10. mqtt模拟数据收发支持多种格式,文本、json、base64、hex等。
11. mqtt同时支持websocket方式,还支持ssl方式通信。
12. 支持多种采集通讯方式,包括串口和网络等,可自由拓展其他方式。可同时采集多路。
13. 自定义采集间隔(精确到毫秒)和超时次数,超时后自动将离线的文件从轮询队列中移除,加快轮询速度。
14. 可设置最大超时重连间隔,将离线的设备重新探测一次,保证设备恢复正常后能够重新加入轮询队列。
15. 同时提供了设备模拟工具,支持各种协议,支 ..