国产熟睡乱子伦视频_激情五月综网站点_中文字幕乱偷无码_国产日韩综合第一页_在线观看亚色视频区一区二_八戒八戒神马影院免费_国产av黄色电影_4hu四虎永久在线影院97年小娇妻_台湾佬自偷自拍情侣在线_秋霞成人永久免费网站

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

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

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

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

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

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

剩余字符長度編碼

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

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

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

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

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

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

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

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

4、 若大于2097152小于268435455,需要使用四位存儲數(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.兩個字節(jié)的計算方式:

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

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

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

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

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

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

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

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

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

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



4000-330-990

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