需求:一般通过串口的方式进行数据的解析,但有时候硬件的限制,没法预留串口,那么如何通过网络的方式特别是MQTT数据的通信及解析
解决方式:
1.MQTT通信控件:
参考开源的mqtt-LabVIEW
https://github.com/cowen71/mqtt-LabVIEW
该Vi是通过事件处理的方式进行MQTT服务器的连接、发送、订阅。
将订阅事件中将接收的字符串按照指定的格式解析。
2.操作的关键步骤是:
1)填上合适的MQTT服务器IP或域名
2)在订阅主题:填写订阅的主题名
3)点击订阅,可观察到有数据的接收。
一般接收的数据:十六进制字符串、单个字符表示的十六进制数(乱码)如下图所示
十六进制字符串的解析较为简单:进行字符串的截取操作,并将截取的字符串转换为数值即可。
单个字符表示的十六进制数(乱码):每个字符表示一个十六进制数。同样需要进行字符串的截取,并进行格式转换为数值(十六进制)。
依据数据通信的协议,需要进行十六进制数的位运算符操作。
在此需要注意的是:
1)位运算符操作的对象应该为十六进制数,因此应该将数值更改为十六进制数格式:
数据类型表示:
2)需要注意的问题2:
如果将C1创建局部变量再连接到右边的逻辑运算符输入端,则会出现C1的值没有立刻改变,为此将数据格式转换之后的连接线直接连接逻辑运算符的输入端即可。
逻辑移位运算符为:
3)可以依据接收的topic进行不同的主题消息分别处理。
其它可参考:
GitHub - DAQIO/LVMQTT: MQTT Library for LabVIEW
A Practical Guide for Connecting LabVIEW to the Industrial IoT - NI
https://www.cnblogs.com/jzcn/p/16409127.html