1.简述
MCU通过485串口与4G DTU模块进行数据中转,然后4G DTU模块与平台之间通过MQTT客户端之间的数据传输。发布方发送数据,订阅方接收数据。
1.1.框架图
1.2.MQTT通信的数据帧结构
可用字符串类型的JSON、十六进制的数组列表也行,本文采用十六进制的Modbus-RTU数据帧。
2.数据打包
2.1.小数普通规范
一般小数放大到整数倍然后转十六进制进行发送
2.2.小数浮点数规范
对于小数精度有要求的会采用IEEE754浮点数规范,该规范在Modbus-RTU中一般使用四个字节。
地址码 | 操作码 | 字节数 | 数据高 | 数据低 | … | … | 校验高 | 校验低 |
---|---|---|---|---|---|---|---|---|
01 | 03 | 0N | 00 | 01 | … | … | 0C | A9 |
3.数据解析
该操作属于数据打包的逆向操作,用于平台接收数据帧并根据说明书进行解析。
4.总结
代码基本上就是串口收发和解析后续添加。
思路是环环相扣的,如果代码出现了未知错误,基本上是代码本身的问题(尤其是指针)。