【干貨】超詳細!TPC7062封裝MQTT協議教程
一.功能簡介
通過將報文分解為16進制格式的字串(比如:101C00044D51545404C2),再通過TPC-7062進行組包,利用串口服務器的TCP/IP協議堆疊連接服務器,實作TCP客戶端透明傳輸連接MQTT服務器,
實作MQTT協議直連的前提是設備本身具有或者是外接串口聯網設備實作,比如筆者所使用的TPC7062是不具備TCP/IP協議堆疊的純串口控制屏,可通過連接億佰特公司所生產的串口服務器(NB114)實作TCP客戶端連接服務器,
NB114串口服務器本身就具對MQTT協議進行封裝,可直接實作串口設備連接MQTT服務器,本文為了分析MQTT報文將不使用MQTT模式連接服務器,僅使用TCP客戶端模式連接MQTT服務器通過MCGS腳本對資料進行組包發送,
二.報文詳解
TPC驅動使用和字符轉換:
TPC7062使用官方提供的掃碼槍設備驅動,實作該功能不可使用Modbus等具有協議的驅動需,要使用支持串口資料透明傳輸的設備驅動,由于設備多處會使用到字符轉換,因此獨立配置三個“用戶策略”用于字符轉換:MQTT協議報文中TPC驅動和字符轉換教程
MQTT字符長度計算:PC7062封裝MQTT協議字符長度計算教程
連接報文:PC7062封裝MQTT協議鏈接報文步驟教程
心跳報文:
PINGREQ:C0 00
服務器回傳:D0 00
心跳報文基于MCGS的回圈策略周期發送,


訂閱報文
SUBSCRIBE:82 +字符總長度(遵循剩余字符演算法)+00 00+訂閱地址長度(2位元組)+訂閱地址+服務等級(00、01、02).....+訂閱地址+服務等級(00、01、02)(可同時訂閱多個主題),
服務器回應:9003000000(最大Qos0),9003000001(最大QoS1),
MCGS腳本配置如下:

第一步:初始化發送快取變數;
第二步:為發送快取變數寫入報文識別符號(0000);
第三步:傳入SUB-TOPIC字符到計算快取變數,用于計算和字符轉換(呼叫前文提到的長度計算腳本和ASCII轉HEX腳本);
第四步:保存計算結果;

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

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

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

第八步:等待服務器回應;

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

查看技術文章和免費咨詢技術問題可以訪問我司官網及各官方平臺:
微信號:cdebyte
今日頭條:億佰特
新浪微博:成都億佰特
億佰特人每一天都致力于更好的助力物聯化、智能化、自動化的發展,提升資源利用率,更多產品更多資料,感興趣的小伙伴可以登錄我們的官網http://www.ebyte.com/行了解,還有客服小姐姐在線答疑哦!成都億佰特--物聯網應用專家,隨時在身邊,時刻準備為您服務!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/539055.html
標籤:訊息安全
上一篇:day28-jQuery01
下一篇:SAP MM 為UB型別的STO執行VL10B,報錯-沒有專案類別表存在(表T184L NL 0002 V)-之對策
