色猫咪av在线网址_91精品国产福利在线观看雪梨还会玩转热点_丁香花的视频免费观看_国产手机在线A∨免费视频_十八禁av无码免费网站APP_综合色一区二区亚洲_日韩精品小电影_漂亮人妻熟睡中被公侵犯_全新成人高清无码片_高级厕所偷窥白领美女嘘嘘

當(dāng)前位置: 首頁 >應(yīng)用方案 >技術(shù)應(yīng)用 >

PC7062封裝MQTT協(xié)議字符長度計(jì)算教程

MQTT協(xié)議字符長度計(jì)算

OASIS標(biāo)準(zhǔn)在MQTT3.1.1協(xié)議描述中已經(jīng)介紹了一種對(duì)剩余字符長度的計(jì)算方法如下圖:

MQTT協(xié)議字符長度計(jì)算1

官方提供的算法并不能直接引入TPC7062的腳本中,筆者并未在TPC腳本函數(shù)說明中找到類似與do…while(條件判斷式)的函數(shù),好在MQTT協(xié)議規(guī)定了最大可編碼的長度為4字節(jié),筆者通過下列腳本可以實(shí)現(xiàn)與官方推薦方法等同效果,腳本如下(水平有限,有更好的方法歡迎在官網(wǎng)留言討論)。

剩余字符長度編碼

MQTT協(xié)議中有兩種計(jì)算字符的需求,一是可變長度(剩余字符長度),二是字符長度,使用開關(guān)型或者數(shù)值型變量LEN_STR_BUF_HEX_MODE”區(qū)分計(jì)算方法。

新建用戶策略并添加兩排策略行

MQTT協(xié)議字符長度計(jì)算2

長度計(jì)算傳入帶計(jì)算長度的字符,并使用!Len(str)”函數(shù)計(jì)算出字符的10進(jìn)制長度,通過DECàHEX轉(zhuǎn)化為16進(jìn)制字符串。

剩余計(jì)算原理,(x表示傳入10進(jìn)制長度)協(xié)議規(guī)定最大長度計(jì)算為4字節(jié),因此定義3個(gè)變量分別存儲(chǔ)x/128、x/128/128x/128/128/128,在定義4個(gè)變量(…_BIT_14)保存每一位的計(jì)算結(jié)果:

1、 若小于127字節(jié)直接轉(zhuǎn)換并存儲(chǔ)在_BIT_1中;

2、 若大于127小于16383,需要使用兩位存儲(chǔ)數(shù)據(jù),_BIT_1存入(x MOD 128+128_BIT_2存入x/128取整的值;

3、 若大于16384小于2097151,需要使用三位存儲(chǔ)數(shù)據(jù),_BIT_1存入(x MOD 128+128_BIT_2存入(x/128 MOD 128)+128,_BIT_3存入x/128/128取整的值;

4、 若大于2097152小于268435455,需要使用四位存儲(chǔ)數(shù)據(jù),_BIT_1存入(x MOD 128+128_BIT_2存入(x/128 MOD 128)+128,_BIT_3存入(x/128/128 MOD 128)+128,_BIT_4存入x/128/128/128取整值;

5、 大于268435455超出MQTT3.1.1協(xié)議規(guī)定的最大字符;

腳本參考“可變長度緩存”腳本。

剩余字符長度解碼

1.兩個(gè)字節(jié)的計(jì)算方式:

剩余長度=(Byte1-128)+Byte2*128

2.三個(gè)字節(jié)的計(jì)算方式:

剩余長度=Byte1-128+[Byte2-128+Byte3*128]*128

3.以此類推,四個(gè)字節(jié)的計(jì)算方式為:

剩余長度=Byte1-128+{Byte2-128+[Byte3-128+Byte4*128]*128}*128

MQTT協(xié)議字符長度計(jì)算3

相關(guān)內(nèi)容推薦:

PC7062封裝MQTT協(xié)議鏈接報(bào)文步驟教程

PC7062封裝MQTT協(xié)議發(fā)布報(bào)文教程  

億佰特人每一天都致力于更好的助力物聯(lián)化、智能化、自動(dòng)化的發(fā)展,提升資源利用率,更多產(chǎn)品更多資料,感興趣的小伙伴可以登錄我們的官網(wǎng)/行了解,還有客服小姐姐在線答疑哦!成都億佰特--物聯(lián)網(wǎng)應(yīng)用專家,隨時(shí)在身邊,時(shí)刻準(zhǔn)備為您服務(wù)!



4000-330-990

https://www.wjx.cn/jq/84863372.aspx