一.功能簡介
通過將報文分解為16進制格式的字符串(比如:101C00044D51545404C2),再通過TPC-7062進行組包,利用串口服務(wù)器的TCP/IP協(xié)議棧連接服務(wù)器,實現(xiàn)TCP客戶端透明傳輸連接MQTT服務(wù)器。
實現(xiàn)MQTT協(xié)議直連的前提是設(shè)備本身具有或者是外接串口聯(lián)網(wǎng)設(shè)備實現(xiàn),比如筆者所使用的TPC7062是不具備TCP/IP協(xié)議棧的純串口控制屏,可通過連接億佰特公司所生產(chǎn)的串口服務(wù)器(NB114)實現(xiàn)TCP客戶端連接服務(wù)器。
NB114串口服務(wù)器本身就具對MQTT協(xié)議進行封裝,可直接實現(xiàn)串口設(shè)備連接MQTT服務(wù)器,本文為了分析MQTT報文將不使用MQTT模式連接服務(wù)器,僅使用TCP客戶端模式連接MQTT服務(wù)器通過MCGS腳本對數(shù)據(jù)進行組包發(fā)送。
二.報文詳解
TPC驅(qū)動使用和字符轉(zhuǎn)換:
TPC7062使用官方提供的掃碼槍設(shè)備驅(qū)動,實現(xiàn)該功能不可使用Modbus等具有協(xié)議的驅(qū)動需,要使用支持串口數(shù)據(jù)透明傳輸?shù)脑O(shè)備驅(qū)動。由于設(shè)備多處會使用到字符轉(zhuǎn)換,因此獨立配置三個“用戶策略”用于字符轉(zhuǎn)換:MQTT協(xié)議報文中TPC驅(qū)動和字符轉(zhuǎn)換教程
MQTT字符長度計算:PC7062封裝MQTT協(xié)議字符長度計算教程
連接報文:PC7062封裝MQTT協(xié)議鏈接報文步驟教程
心跳報文:
PINGREQ:C0 00
服務(wù)器返回:D0 00
心跳報文基于MCGS的循環(huán)策略周期發(fā)送,


訂閱報文
SUBSCRIBE:82 +字符總長度(遵循剩余字符算法)+00 00+訂閱地址長度(2字節(jié))+訂閱地址+服務(wù)等級(00、01、02).....+訂閱地址+服務(wù)等級(00、01、02)(可同時訂閱多個主題)。
服務(wù)器響應(yīng):9003000000(最大Qos0),9003000001(最大QoS1)。
MCGS腳本配置如下:

第一步:初始化發(fā)送緩存變量;
第二步:為發(fā)送緩存變量寫入報文標識符(0000);
第三步:傳入SUB-TOPIC字符到計算緩存變量,用于計算和字符轉(zhuǎn)換(調(diào)用前文提到的長度計算腳本和ASCII轉(zhuǎn)HEX腳本);
第四步:保存計算結(jié)果;

第五步:封裝服務(wù)等級僅支持0、1;

第六步:將之前的緩存的字符串傳入長度計算算出字符總長;

第七步:封裝報文頭及可變長度;

第八步:等待服務(wù)器響應(yīng);

若訂閱請求報文發(fā)送錯誤(非服務(wù)器許可主題和服務(wù)等級)服務(wù)器會斷開連接,因此超時后發(fā)送心跳更新在線狀態(tài);
發(fā)布報文:PC7062封裝MQTT協(xié)議發(fā)布報文教程
三.實例演示
通過連接阿里云MQTT服務(wù)器,并使用阿里云NTP服務(wù)獲取當前時間,請求格式參考阿里云用戶手冊NTP服務(wù)。

審核編輯黃昊宇
-
封裝
+關(guān)注
關(guān)注
128文章
9266瀏覽量
148753 -
MQTT
+關(guān)注
關(guān)注
5文章
734瀏覽量
25133
發(fā)布評論請先 登錄
超干的干貨來了!一文了解HTTP協(xié)議
調(diào)試觸摸屏時觸摸屏一直發(fā)01 03 FF FF FF FF 00 01 73 38硬件環(huán)境是:觸摸屏---MODBUS協(xié)議的單片機開發(fā)板,觸摸屏做主機
MQTT是什么?MQTT協(xié)議的特點有哪些
mqtt-v3.1.1版協(xié)議
物聯(lián)網(wǎng)硬件接入之通信協(xié)議(MQTT,CoAP,LwM2M協(xié)議)的詳細資料概述
物聯(lián)網(wǎng)硬件接入之通信協(xié)議(MQTT,CoAP,LwM2M協(xié)議)的詳細資料概述
TPC TP協(xié)議族簡單解讀及網(wǎng)絡(luò)數(shù)據(jù)格式及封裝和解包的資料概述
干貨:MQTT協(xié)議開發(fā)入門
MQTT 5協(xié)議你知道多少?
虹科干貨 | MQTT 5協(xié)議你知道多少?
虹科干貨 | MQTT 5協(xié)議中的基礎(chǔ)更改(一)
虹科干貨 | MQTT 5協(xié)議中的基礎(chǔ)更改(二)
MQTT協(xié)議網(wǎng)關(guān)的工作原理及功能特性
GraniStudio :MQTT 協(xié)議的深度剖析
【干貨】超詳細!TPC7062封裝MQTT協(xié)議教程
評論