通過將報(bào)文分解為16進(jìn)制格式的字符串(比如:101C00044D51545404C2),再通過TPC-7062進(jìn)行組包,利用串口服務(wù)器的TCP/IP協(xié)議棧連接服務(wù)器,實(shí)現(xiàn)TCP客戶端透明傳輸連接MQTT服務(wù)器。
實(shí)現(xiàn)MQTT協(xié)議直連的前提是設(shè)備本身具有或者是外接串口聯(lián)網(wǎng)設(shè)備實(shí)現(xiàn),比如筆者所使用的TPC7062是不具備TCP/IP協(xié)議棧的純串口控制屏,可通過連接億佰特公司所生產(chǎn)的串口服務(wù)器(NB114)實(shí)現(xiàn)TCP客戶端連接服務(wù)器。
NB114串口服務(wù)器本身就具對(duì)MQTT協(xié)議進(jìn)行封裝,可直接實(shí)現(xiàn)串口設(shè)備連接MQTT服務(wù)器,本文為了分析MQTT報(bào)文將不使用MQTT模式連接服務(wù)器,僅使用TCP客戶端模式連接MQTT服務(wù)器通過MCGS腳本對(duì)數(shù)據(jù)進(jìn)行組包發(fā)送。
TPC7062使用官方提供的掃碼槍設(shè)備驅(qū)動(dòng),實(shí)現(xiàn)該功能不可使用Modbus等具有協(xié)議的驅(qū)動(dòng)需,要使用支持串口數(shù)據(jù)透明傳輸?shù)脑O(shè)備驅(qū)動(dòng)。由于設(shè)備多處會(huì)使用到字符轉(zhuǎn)換,因此獨(dú)立配置三個(gè)“用戶策略”用于字符轉(zhuǎn)換:MQTT協(xié)議報(bào)文中TPC驅(qū)動(dòng)和字符轉(zhuǎn)換教程
MQTT字符長(zhǎng)度計(jì)算:PC7062封裝MQTT協(xié)議字符長(zhǎng)度計(jì)算教程
連接報(bào)文:PC7062封裝MQTT協(xié)議鏈接報(bào)文步驟教程
PINGREQ:C0 00
服務(wù)器返回:D0 00
心跳報(bào)文基于MCGS的循環(huán)策略周期發(fā)送,
SUBSCRIBE:82 +字符總長(zhǎng)度(遵循剩余字符算法)+00 00+訂閱地址長(zhǎng)度(2字節(jié))+訂閱地址+服務(wù)等級(jí)(00、01、02).....+訂閱地址+服務(wù)等級(jí)(00、01、02)(可同時(shí)訂閱多個(gè)主題)。
服務(wù)器響應(yīng):9003000000(最大Qos0),9003000001(最大QoS1)。
MCGS腳本配置如下:
第一步:初始化發(fā)送緩存變量;
第二步:為發(fā)送緩存變量寫入報(bào)文標(biāo)識(shí)符(0000);
第三步:傳入SUB-TOPIC字符到計(jì)算緩存變量,用于計(jì)算和字符轉(zhuǎn)換(調(diào)用前文提到的長(zhǎng)度計(jì)算腳本和ASCII轉(zhuǎn)HEX腳本);
第四步:保存計(jì)算結(jié)果;
第五步:封裝服務(wù)等級(jí)僅支持0、1;
第六步:將之前的緩存的字符串傳入長(zhǎng)度計(jì)算算出字符總長(zhǎng);
第七步:封裝報(bào)文頭及可變長(zhǎng)度;
第八步:等待服務(wù)器響應(yīng);
若訂閱請(qǐng)求報(bào)文發(fā)送錯(cuò)誤(非服務(wù)器許可主題和服務(wù)等級(jí))服務(wù)器會(huì)斷開連接,因此超時(shí)后發(fā)送心跳更新在線狀態(tài);
發(fā)布報(bào)文:PC7062封裝MQTT協(xié)議發(fā)布報(bào)文教程
通過連接阿里云MQTT服務(wù)器,并使用阿里云NTP服務(wù)獲取當(dāng)前時(shí)間,請(qǐng)求格式參考阿里云用戶手冊(cè)NTP服務(wù)。
查看技術(shù)文章和免費(fèi)咨詢技術(shù)問題可以訪問我司官網(wǎng)及各官方平臺(tái):
微信號(hào):cdebyte
今日頭條:億佰特
新浪微博:成都億佰特
億佰特人每一天都致力于更好的助力物聯(lián)化、智能化、自動(dòng)化的發(fā)展,提升資源利用率,更多產(chǎn)品更多資料,感興趣的小伙伴可以登錄我們的官網(wǎng)行了解,還有客服小姐姐在線答疑哦!成都億佰特--物聯(lián)網(wǎng)應(yīng)用專家,隨時(shí)在身邊,時(shí)刻準(zhǔn)備為您服務(wù)!
7 X 24 銷售服務(wù)熱線
4000-330-990深圳辦事處柯經(jīng)理:18218726658 無錫辦事處劉經(jīng)理:13558641933
成都總部銷售經(jīng)理:
秦 科(無線模塊):18884314654 馮子恒(無線模塊):18828049434
蔡友銀(無線模塊):13882211021 葛宇龍(通信設(shè)備):19138800613
胡兵(外貿(mào)銷售經(jīng)理):18584911141、 sales06@ebyte.com
業(yè)務(wù)郵箱:support@cdebyte.com 全國(guó)銷售投訴電話:19934352316
地址:四川省成都市高新西區(qū)西區(qū)大道199號(hào)B5棟(前臺(tái)座機(jī):028-61543675)
?? 成都億佰特電子科技有限公司【版權(quán)所有】 蜀ICP備13019384號(hào)