![onenet設(shè)備終端接入?yún)f(xié)議范本2-EDP_第1頁](http://file4.renrendoc.com/view/aba897397375de6e8032cd885fa26b3d/aba897397375de6e8032cd885fa26b3d1.gif)
![onenet設(shè)備終端接入?yún)f(xié)議范本2-EDP_第2頁](http://file4.renrendoc.com/view/aba897397375de6e8032cd885fa26b3d/aba897397375de6e8032cd885fa26b3d2.gif)
![onenet設(shè)備終端接入?yún)f(xié)議范本2-EDP_第3頁](http://file4.renrendoc.com/view/aba897397375de6e8032cd885fa26b3d/aba897397375de6e8032cd885fa26b3d3.gif)
![onenet設(shè)備終端接入?yún)f(xié)議范本2-EDP_第4頁](http://file4.renrendoc.com/view/aba897397375de6e8032cd885fa26b3d/aba897397375de6e8032cd885fa26b3d4.gif)
![onenet設(shè)備終端接入?yún)f(xié)議范本2-EDP_第5頁](http://file4.renrendoc.com/view/aba897397375de6e8032cd885fa26b3d/aba897397375de6e8032cd885fa26b3d5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、PAGE25PAGE25Enhanced Device Protocol(EDP)歡迎訪問設(shè)備云門戶網(wǎng)站/注冊用戶,獲取最新文檔。版本號修訂日期修訂內(nèi)容說明V1.12014.10.30EDP增加存儲數(shù)據(jù)報(bào)文;REST API 增加歷史數(shù)據(jù)查詢接口,用于上報(bào)數(shù)據(jù)點(diǎn),或者上報(bào)的同時轉(zhuǎn)發(fā)數(shù)據(jù)點(diǎn)。V1.1.12014/11/3EDP增加消息類型9,以支持對存儲數(shù)據(jù)的確認(rèn)。V1.22015/07/17增加加密機(jī)制;命令請求和響應(yīng)報(bào)文;存儲數(shù)據(jù)點(diǎn),新增3中格式;修改登陸方式為2種;V1.32015/10/14添加連接關(guān)閉消息目錄 TOC o 1-3 h z u HYPERLINK l _Toc425932
2、409 Enhanced Device Protocol(EDP) PAGEREF _Toc425932409 h 1 HYPERLINK l _Toc425932410 1說明 PAGEREF _Toc425932410 h 2 HYPERLINK l _Toc425932411 2設(shè)備與業(yè)務(wù)接入模式 PAGEREF _Toc425932411 h 2 HYPERLINK l _Toc425932412 3接入流程 PAGEREF _Toc425932412 h 2 HYPERLINK l _Toc425932413 4消息格式 PAGEREF _Toc425932413 h 3 HYPER
3、LINK l _Toc425932414 4.1消息類型 PAGEREF _Toc425932414 h 3 HYPERLINK l _Toc425932415 4.2剩余消息長度 PAGEREF _Toc425932415 h 3 HYPERLINK l _Toc425932416 4.3選項(xiàng) PAGEREF _Toc425932416 h 4 HYPERLINK l _Toc425932417 4.4消息體 PAGEREF _Toc425932417 h 5 HYPERLINK l _Toc425932418 5消息類型 PAGEREF _Toc425932418 h 5 HYPERLIN
4、K l _Toc425932419 5.1連接請求 PAGEREF _Toc425932419 h 5 HYPERLINK l _Toc425932420 5.2連接響應(yīng) PAGEREF _Toc425932420 h 8 HYPERLINK l _Toc425932421 5.3轉(zhuǎn)發(fā)(透傳)數(shù)據(jù) PAGEREF _Toc425932421 h 9 HYPERLINK l _Toc425932422 5.4存儲(&轉(zhuǎn)發(fā))數(shù)據(jù) PAGEREF _Toc425932422 h 10 HYPERLINK l _Toc425932423 5.5存儲確認(rèn) PAGEREF _Toc425932423 h
5、13 HYPERLINK l _Toc425932424 5.6命令請求 PAGEREF _Toc425932424 h 14 HYPERLINK l _Toc425932425 5.7命令響應(yīng) PAGEREF _Toc425932425 h 14 HYPERLINK l _Toc425932426 5.8心跳請求 PAGEREF _Toc425932426 h 15 HYPERLINK l _Toc425932427 5.9心跳響應(yīng) PAGEREF _Toc425932427 h 15 HYPERLINK l _Toc425932428 5.10加密請求 PAGEREF _Toc425932
6、428 h 16 HYPERLINK l _Toc425932429 5.11加密響應(yīng) PAGEREF _Toc425932429 h 16 HYPERLINK l _Toc425932430 6主要流程 PAGEREF _Toc425932430 h 17 HYPERLINK l _Toc425932431 6.1登錄 PAGEREF _Toc425932431 h 17 HYPERLINK l _Toc425932432 6.2數(shù)據(jù)收發(fā)(透傳) PAGEREF _Toc425932432 h 18 HYPERLINK l _Toc425932433 6.3存儲數(shù)據(jù)點(diǎn)(datapoint)
7、PAGEREF _Toc425932433 h 18 HYPERLINK l _Toc425932434 6.4存儲數(shù)據(jù)點(diǎn)并獲得確認(rèn) PAGEREF _Toc425932434 h 19 HYPERLINK l _Toc425932435 6.5存儲數(shù)據(jù)點(diǎn)并轉(zhuǎn)發(fā) PAGEREF _Toc425932435 h 20 HYPERLINK l _Toc425932436 6.6命令請求及響應(yīng) PAGEREF _Toc425932436 h 20 HYPERLINK l _Toc425932437 6.7心跳保持 PAGEREF _Toc425932437 h 21 HYPERLINK l _Toc
8、425932438 6.8數(shù)據(jù)加密 PAGEREF _Toc425932438 h 21說明該接口上的協(xié)議基于TCP,但只傳輸數(shù)據(jù)包到目的地,不保證傳輸?shù)捻樞蚺c到達(dá)的順序相同,事務(wù)機(jī)制需要在上層實(shí)現(xiàn);若客戶端同時發(fā)起兩次請求,服務(wù)器返回時,不保障返回報(bào)文的順序。設(shè)備與業(yè)務(wù)接入模式設(shè)備層:利用平臺提供的EDPSDK,實(shí)現(xiàn)EDP協(xié)議,用于上報(bào)業(yè)務(wù)數(shù)據(jù)點(diǎn)到OnetNet。若需要實(shí)時接收業(yè)務(wù)層下發(fā)的控制命令,需要保持EDP長連接。業(yè)務(wù)應(yīng)用層:若要自定義實(shí)現(xiàn)業(yè)務(wù)平臺,可通過HTTP 協(xié)議的RESTful API操作OnetNet提供的資源(設(shè)備、數(shù)據(jù)點(diǎn)、命令控制等資源的增刪查改)。適用場景:在充分分析業(yè)
9、務(wù)數(shù)據(jù)模型的基礎(chǔ)上,認(rèn)為OneNet提供的設(shè)備-數(shù)據(jù)流-數(shù)據(jù)點(diǎn)模型適合業(yè)務(wù)數(shù)據(jù)存儲。優(yōu)先推薦新業(yè)務(wù)使用該模式。接入流程訪問平臺/注冊用戶;用戶根據(jù)業(yè)務(wù)情況,在“連接請求”章節(jié)中選擇EDP登錄方式;根據(jù)登錄方式,填寫設(shè)備相關(guān)屬性,在項(xiàng)目下新增設(shè)備,獲取項(xiàng)目ID、設(shè)備ID,以及api-key等信息;設(shè)備發(fā)送TCP連接請求到以下地址,發(fā)送封裝的報(bào)文與平臺交互。平臺服務(wù)器地址,TCP 端口876,29876消息格式消息包括三個部分:必選的消息頭(綠色),可選的多個選項(xiàng)(黃色)以及可選的消息體(藍(lán)色)。字節(jié)bit76543210Byte 1消息類型保留位(全零)Multi-bytes剩余消息長度(1-4
10、字節(jié),指示選項(xiàng)+消息體的長度)Multi-bytes選項(xiàng)(根據(jù)消息類型0個或多個)Multi-bytes消息體(根據(jù)消息類型0或多個字節(jié))消息類型占第一個字節(jié)的前4位,取值范圍(0-15),定義如下:類型值含義方向1CONN_REQ:連接建立請求C(client)-S(server)2CONN_RESP:連接建立響應(yīng)S-C3PUSH_DATA:轉(zhuǎn)發(fā)(透傳)數(shù)據(jù)雙向4CONN_CLOSE:連接關(guān)閉S-C8SAVE_DATA:存儲(&轉(zhuǎn)發(fā))數(shù)據(jù)雙向9SAVE_ACK:存儲確認(rèn)S-C10CMD_REQS-C11CMD_RESPC-S12PING_REQ: 心跳請求C-S13PING_RESP: 心跳
11、響應(yīng)S-C14ENCRYPT_REQC-S15ENCRYPT_RESPS-C其他值保留剩余消息長度用于指示選項(xiàng)和消息體的字節(jié)數(shù)。目前平臺限制EDP協(xié)議每條消息剩余長度不能超過4M。該字段占用1-4個字節(jié),長度值的低位部分放在傳輸?shù)那懊孀止?jié),高位放在后面。每個字節(jié)的最高位為延續(xù)指示位。延續(xù)指示位為1時,標(biāo)示后面字節(jié)也是長度值,最多可延續(xù)4個字節(jié)??杀硎緮?shù)據(jù)范圍如下:字節(jié)數(shù)最小值最大值10(0 x00)127(0 x7F)2128(0 x80, 0 x01)16383 (0 xFF, 0 x7F)316 384 (0 x80, 0 x80, 0 x01)2 097 151 (0 xFF, 0 xF
12、F, 0 x7F)42 097 152 (0 x80, 0 x80, 0 x80, 0 x01) 268 435 455 (0 xFF, 0 xFF, 0 xFF, 0 x7F)注意:消息剩余長度 = 選項(xiàng)所占字節(jié)數(shù) + 消息體所占字節(jié)數(shù),根據(jù)該值的大小來確定消息剩余長度字段在EDP數(shù)據(jù)包中占用多少個字節(jié),比如從上表可以看出,當(dāng)0剩余長度=127的時候,消息剩余長度字段在EDP數(shù)據(jù)包中只占一個字節(jié),而不是四個字節(jié);當(dāng) 127剩余長度=16383的時候,消息剩余長度字段在EDP數(shù)據(jù)包中占兩個字節(jié),而不是四個字節(jié);依此類推。例如,若選項(xiàng)+消息體長度共321=65+2*128字節(jié),則該域(剩余長度)
13、需要兩個字節(jié)才能表示,第一個字節(jié)的延續(xù)位置1,按照傳輸順序格式如下:字節(jié)bit76543210Byte 111000001Byte 200000010解析該長度值的C語言算法可表示為:( ( Byte2 & 127 ) S(設(shè)備到平臺)平臺收到該消息,選項(xiàng)中的地址是該數(shù)據(jù)轉(zhuǎn)發(fā)的目的地址(目的設(shè)備ID號);若目的地址的長度為零,即沒有目的地址,則平臺將該消息轉(zhuǎn)發(fā)到設(shè)備注冊時的默認(rèn)目的地址(設(shè)備申請時,填寫的route_to字段)。S-C (平臺到設(shè)備)設(shè)備收到該消息,選項(xiàng)中的地址是該數(shù)據(jù)發(fā)送的發(fā)送者(源)地址;示例:通過設(shè)備云發(fā)送數(shù)據(jù)到ID為21573的設(shè)備。字節(jié)說明bit76543210消息頭
14、Byte 1第一字節(jié):Bit(4-7):消息類型,值為3;Bit(0-3):保留位,值為0;00110000剩余消息長度(283編碼后需要占用2個字節(jié))Byte 2消息剩余字節(jié)長度(283)-編碼第一字節(jié)(低)10011011Byte 3消息剩余字節(jié)長度(283)-編碼第二字節(jié)(高)00000010選項(xiàng)1:目的或源地址(字符串格式)Byte 4固定兩字節(jié)長度高位字節(jié),值為000000000Byte 5固定兩字節(jié)長度低位字節(jié),值為500000101Byte 6字符200110010Byte 7字母100110001Byte 8字母500000101Byte 9字母700110111Byte 10
15、字母300110011消息體(用戶數(shù)據(jù))Byte 11/最大支持3M用戶自定義的數(shù)據(jù),本例中為276字節(jié)Byte 286連接關(guān)閉當(dāng)平臺解析協(xié)議時,如果發(fā)現(xiàn)協(xié)議格式錯誤或者未按要求封裝,則會向設(shè)備發(fā)送連接關(guān)閉消息,然后斷開連接。此消息的消息體為一個字節(jié),表示錯誤原因。需要注意的是,錯誤碼并一定能完全正確地反應(yīng)真正出錯的字段。比如有相鄰的兩個字段A和B,A要求長度為4字節(jié),但是實(shí)際上封裝了5個字節(jié)在里面,這樣第五個字節(jié)就會被當(dāng)作B的內(nèi)容被讀取解析,平臺解析到B字段時,有可能認(rèn)為字段B封裝出錯,但是實(shí)際上是因?yàn)锳字段封裝錯誤引起的。消息格式如下:字節(jié)說明bit76543210消息頭Byte 1第一字
16、節(jié):Bit(4-7):消息類型,值為0 x40;Bit(0-3):保留位,值為0;01000000Byte 2第二字節(jié):消息剩余字節(jié)長度,值為100000001Byte 3第三字節(jié):連接關(guān)閉錯誤碼。錯誤碼及含義如下:錯誤碼出錯消息含義全局錯誤碼,不與某條消息關(guān)聯(lián)1未知錯誤2服務(wù)不可用,當(dāng)服務(wù)器端因分配內(nèi)存失敗等內(nèi)部原因?qū)е滦枰獢嚅_連接時,會返回此錯誤。3解析消息類型時出錯。4消息類型不屬于4.1節(jié)消息類型中定義的任何一種消息。5解析剩余消息長度時出錯,或者剩余消息長度不合法。加解密10ENCRYPT_REQRSA加密算法的E、N等長度不合法。11在CONN_REQ消息之后收到ENCRYPT_R
17、EQ消息。12解析對稱加密算法類型時出錯。13指定的對稱加密算法暫時不支持。14利用收到E、N初始化RSA密鑰失敗。15解密收到的數(shù)據(jù)時出錯。連接請求20CONN_REQ解析協(xié)議名稱出錯,或者不支持給定的協(xié)議名稱。21解析協(xié)議版本出錯,或者不支持給定的協(xié)議版本。22解析連接標(biāo)志時出錯。23連接標(biāo)志中未將鑒權(quán)信息標(biāo)志位(第6位)置上。24解析?;顣r間時出錯。25解析設(shè)備ID時出錯,或者設(shè)備ID長度大于限定值。26指定了UserID標(biāo)志位,但是解析UserID出錯,或者UserID長度大于限定值,或者UserID為0。27解析鑒權(quán)信息時出錯或者鑒權(quán)信息為空。28同一個連接內(nèi)發(fā)送了多個連接請求。29
18、利用激活碼激活失敗。30鑒權(quán)碼不是有效的json格式。31利用鑒權(quán)碼鑒權(quán)失敗。32利用devid+apikey的方式鑒權(quán)失敗。33利用devid+apikey的方式鑒權(quán),指定了UserID,但是查詢到的UserID與指定的不一致。34利用UserID+鑒權(quán)信息鑒權(quán),但是鑒權(quán)信息不是有效的Json格式。35利用UserID+鑒權(quán)信息鑒權(quán)失敗。36利用UserID+鑒權(quán)信息鑒權(quán),未查詢到相應(yīng)的設(shè)備。37連接標(biāo)志不合法。轉(zhuǎn)發(fā)(透傳)50PUSH_DATA解析目的設(shè)備ID時出錯。51在發(fā)送連接請求以前發(fā)送了PUSH_DATA消息。存儲(轉(zhuǎn)發(fā))60SAVE_DATA在發(fā)送連接請求以前發(fā)送了SAVE_DA
19、TA消息。61解析存儲轉(zhuǎn)發(fā)標(biāo)志消息標(biāo)志位時出錯。62標(biāo)志位中指定了目的設(shè)備ID,但是解析目的設(shè)備ID時出錯。63解析存儲轉(zhuǎn)發(fā)數(shù)據(jù)封裝類型時出錯。64數(shù)據(jù)類型為1,解析其消息體時出錯。65數(shù)據(jù)類型為1,其消息體不是有效的Json格式。66數(shù)據(jù)類型為1,缺少datastreams字段,或者此字段不是數(shù)組。67數(shù)據(jù)類型為1,缺少id字段,或者此字段不是字符串類型,或者此字段內(nèi)容為空。68數(shù)據(jù)類型為1,缺少datapoints字段,或者此字段不是數(shù)組類型。69數(shù)據(jù)類型為1,缺少value字段。70數(shù)據(jù)類型為2,解析二進(jìn)制數(shù)據(jù)描述項(xiàng)時出錯。71數(shù)據(jù)類型為2,解析二進(jìn)制數(shù)據(jù)長度時出錯,或者數(shù)據(jù)長度不合法。
20、72數(shù)據(jù)類型為2,二進(jìn)制描述項(xiàng)不是有效的Json格式。73數(shù)據(jù)類型為2,二進(jìn)制描述項(xiàng)中不包含ds_id字段,或者其不是字符串類型,或者其值為空。74數(shù)據(jù)類型為3或者4,解析消息體時出錯。75數(shù)據(jù)類型為3或者4,消息體不是有效的Json格式。76數(shù)據(jù)類型為3,數(shù)據(jù)流名稱為空。77數(shù)據(jù)類型為4,消息體不是對象類型。78數(shù)據(jù)類型為4,數(shù)據(jù)流名稱為空。79數(shù)據(jù)類型為5,解析消息體時出錯。80數(shù)據(jù)類型為5,消息體格式有誤。81不支持的數(shù)據(jù)類型。命令響應(yīng)100CMD_RESP在發(fā)送連接請求以前發(fā)送了CMD_RESP消息。101解析命令響應(yīng)的cmdid時出錯。102命令響應(yīng)消息體長度不合法。心跳請求110P
21、ING_REQ在發(fā)送連接請求以前發(fā)送了PING_REQ消息。存儲(&轉(zhuǎn)發(fā))數(shù)據(jù)該消息是一個雙向消息,可以從設(shè)備到云,也可以由設(shè)備云發(fā)向設(shè)備。由消息頭、一到2個選項(xiàng)和消息體組成,其中選項(xiàng)標(biāo)志位為必填,其他根據(jù)標(biāo)志位選填。若同時發(fā)送多個數(shù)據(jù)點(diǎn),平臺最多一次處理100條。save_data消息方向選項(xiàng)(地址)說明C-S(設(shè)備到平臺)平臺收到該消息,選項(xiàng)中的地址是該數(shù)據(jù)轉(zhuǎn)發(fā)的目的地址(目的設(shè)備ID號);若目的地址的長度為零,即沒有目的地址,則平臺將該消息轉(zhuǎn)發(fā)到設(shè)備注冊時的默認(rèn)目的地址(設(shè)備申請時,填寫的route_to字段)。S-C (平臺到設(shè)備)設(shè)備收到該消息,選項(xiàng)中的地址是該數(shù)據(jù)發(fā)送的發(fā)送者(源)
22、地址;例A :上報(bào)數(shù)據(jù)點(diǎn)報(bào)文,并轉(zhuǎn)發(fā)數(shù)據(jù)到ID 為10011的設(shè)備。字節(jié)說明bit76543210消息頭Byte 1第一字節(jié):Bit(4-7):消息類型,值為8;Bit(0-3):保留位,值為0;10000000剩余消息長度(16664編碼后需要占用3個字節(jié))Byte 2消息剩余字節(jié)長度(16664)-編碼第一字節(jié)(低)10011000Byte 3消息剩余字節(jié)長度(16664)-編碼第二字節(jié)10000010Byte 4消息剩余字節(jié)長度(16664)-編碼第三字節(jié)(高)10000001固定選項(xiàng):標(biāo)志Byte 5Bit 7:轉(zhuǎn)發(fā)地址指示,置1,后面有地址信息。Bit 0-6:系統(tǒng)保留,全零。100
23、00000目的或源地址(根據(jù)上面的標(biāo)志位確定存在與否)Byte 6固定兩字節(jié)長度高位字節(jié),值為000000000Byte 7固定兩字節(jié)長度低位字節(jié),值為500000101Byte 8字符100110001Byte 9字母000110000Byte 10字母000110000Byte 11字母100110001Byte 12字母100110001消息體(設(shè)備云規(guī)定的數(shù)據(jù)類型格式)Byte 135種數(shù)據(jù)結(jié)構(gòu),具體格式見后續(xù)說明:type = 5:分號間隔字符串格式;type = 4:JSON格式3字符串;type = 3:JSON格式2字符串;type = 2:二進(jìn)制數(shù)據(jù)點(diǎn);type = 1:JS
24、ON格式1字符串;Byte n數(shù)據(jù)類型5格式說明:Byte 13數(shù)據(jù)點(diǎn)類型指示:type=5 /分號間隔字符串格式00000101Byte 14/指示后面字符串長度固定兩字節(jié)長度高位字節(jié),值為0 x00Byte 15固定兩字節(jié)長度低位字節(jié),值為0 x41Byte 16消息中最前面兩位為用戶自定義的域中分隔符和域間分隔符,這兩個分隔符不能相同。比如采用逗號作為域中分隔符,分號作為域間分隔符的格式如下:,;feild0;feild1;feildn其中,每個field格式支持3種:field格式1: 3個子字段,分別是數(shù)據(jù)流ID,時間戳,數(shù)據(jù)值。通用格式:Datastream_id,datetime
25、,valuefield格式2: 2個子字段,分別是數(shù)據(jù)流ID和數(shù)據(jù)值,省略時間戳。通用格式:Datastream_id,valuefield格式3: 1個子字段,省略了數(shù)據(jù)ID和時間戳,只傳輸數(shù)據(jù)值,平臺將用該域(feild)所在的位置號(從0開始)作為數(shù)據(jù)流ID。通用格式:value示例:(1),;temperature,2015-03-22 22:31:12,22.5;102;pm2.5,89;10(2)#temperature#2015-03-22 22:31:12#22.5102pm2.5#8910Byte n數(shù)據(jù)類型4格式說明:Byte 13數(shù)據(jù)點(diǎn)類型指示:type=4 / JSON
26、格式3字符串00000100Byte 14/指示后面字符串長度固定兩字節(jié)長度高位字節(jié),值為0 x00Byte 15固定兩字節(jié)長度低位字節(jié),值為0 x46Byte 16通用格式: “datastream_id1”:“datetime1”:”value1”,“datastream_id2”: “datetime2”:”value2”,示例:“temperature”:“2015-03-22 22:31:12”:22.5Byte n數(shù)據(jù)類型3格式說明:Byte 13數(shù)據(jù)點(diǎn)類型指示:type=3 / JSON格式2字符串00000011Byte 14/指示后面字符串長度固定兩字節(jié)長度高位字節(jié),值為0
27、x00Byte 15固定兩字節(jié)長度低位字節(jié),值為0 x46Byte 16通用格式: “datastream_id1”:”value1”, “datastream_id2”:”value2”,示例:“temperature”:22.5,”humidity”:”95.2%”Byte n數(shù)據(jù)點(diǎn)類型2格式說明:Byte 13數(shù)據(jù)點(diǎn)類型指示:type=2 /二進(jìn)制數(shù)據(jù)00000010Byte 14/指示后面json字符串長度固定兩字節(jié)長度-高位字節(jié),值為0 x00Byte 15固定兩字節(jié)長度-低位字節(jié),值為0 x10Byte 16“token”:”1232”, /用戶定義token,當(dāng)含有該字段,平臺將
28、用消息類型9“存儲確認(rèn)”進(jìn)行存儲確認(rèn)?!眃s_id”:”image”, /創(chuàng)建數(shù)據(jù)流時定義的ID,(必填)“at”:”2014-10-25 12:23:23”, /時間,(可選)”desc”:字符串或json對象/對該數(shù)據(jù)的描述(可選)Byte nByte n+1/指示后面二進(jìn)制數(shù)據(jù)長度固定四字節(jié)長度-第1字節(jié)(最高),值為0 x00Byte n+1固定四字節(jié)長度-第2字節(jié),值為0 x00Byte n+2固定四字節(jié)長度-第3字節(jié),值為0 x01Byte n+3固定四字節(jié)長度-第4字節(jié)(最低),值為0 x00Byte n+4/該域目前最大支持3M本例中的該域256字節(jié)數(shù)據(jù)Byte n+260數(shù)據(jù)
29、類型1格式說明:Byte 13數(shù)據(jù)點(diǎn)類型值:1 /1: json格式1字符串00000001Byte 14/指示后面json字符串長度固定兩字節(jié)長度高位字節(jié),值為0 x00Byte 15固定兩字節(jié)長度低位字節(jié),值為0 x41Byte 16“token”:”1231”, /用戶定義token,當(dāng)含有該字段,平臺將用消息類型9“存儲確認(rèn)”進(jìn)行存儲確認(rèn)?!癲atastreams”:/ 可以同時傳遞多個數(shù)據(jù)流 “id”:”temperature”, “datapoints”:”at”:”2013-04-22 22:22:22”,/可選”value”: 36.5/用戶自定義, “id”:”locatio
30、n”“datapoints”:, datastreams:id:location,datapoints:value:lon:106,lat:29Byte n注意:在封裝存儲(轉(zhuǎn)發(fā))數(shù)據(jù)包的時候,如果只是實(shí)現(xiàn)數(shù)據(jù)存儲,目的地址設(shè)置為空;如果實(shí)現(xiàn)存儲并轉(zhuǎn)發(fā),可以分為以下兩種情況,第一,是在平臺設(shè)備注冊時設(shè)置了默認(rèn)目的地址(設(shè)備申請時,填寫的route_to字段),數(shù)據(jù)包中的目的地址為空,此時數(shù)據(jù)存儲后轉(zhuǎn)發(fā)到默認(rèn)目的地址對應(yīng)的設(shè)備;第二,數(shù)據(jù)包中的目的地址不為空,數(shù)據(jù)包存儲后被轉(zhuǎn)發(fā)到數(shù)據(jù)包中設(shè)備ID對應(yīng)的設(shè)備。存儲確認(rèn)當(dāng)消息類型“存儲數(shù)據(jù)”中,采用數(shù)據(jù)類型1或2時含有token時,平臺下發(fā)該消息,用
31、作存儲消息的確認(rèn)。該消息包含:消息頭,1個必選項(xiàng)和可能的消息體。其中,選項(xiàng)包括一個字節(jié)的標(biāo)志;消息體根據(jù)標(biāo)志位,可能攜帶返回描述。舉例格式如下:字節(jié)說明bit76543210消息頭Byte 1第一字節(jié):Bit(4-7):消息類型,值為9;Bit(0-3):保留位,值為0;10010000Byte 2第二字節(jié):消息剩余字節(jié)長度,值為3500100000選項(xiàng):標(biāo)志Byte 3Bit(7):指示后面有響應(yīng)描述(json)Bit(6-0):系統(tǒng)保留位10000000消息體:返回描述(字符串格式)Byte 4固定兩字節(jié)長度-高位,值為0 x00(指示json長度)Byte 5固定兩字節(jié)長度-低位,值為0
32、 x20(指示json長度)Byte 6”errno”:0, /錯誤碼“error”:”succ”, /錯誤描述”token”:”1234”,/消息8中傳遞的token值”index”:”23F23-2FW” /其他附件信息,如,二進(jìn)制數(shù)據(jù)索引Byte 37命令請求該消息由服務(wù)器發(fā)往客戶端,以執(zhí)行指定的命令。格式如下:字節(jié)說明bit76543210消息頭Byte 1第一字節(jié):Bit(4-7):消息類型,值為10;Bit(0-3):保留位,值為0;10100000剩余消息長度(長度不定1-4字節(jié))Byte 2剩余長度.Byte xByte x+1cmdid兩字節(jié)長度高位字節(jié)Byte x+2cmd
33、id兩字節(jié)長度低位字節(jié)Byte x+3cmdid .Byte yByte y+1命令消息體四字節(jié)長度第1字節(jié)(高位)Byte y+2命令消息體四字節(jié)長度第2字節(jié)Byte y+3命令消息體四字節(jié)長度第3字節(jié)Byte y+4命令消息體四字節(jié)長度第4字節(jié)(低位)Byte y+5命令消息體(不超過64k).Byte z命令響應(yīng)該消息由客戶端發(fā)往服務(wù)器,以響應(yīng)相應(yīng)的命令。格式如下:字節(jié)說明bit76543210消息頭Byte 1第一字節(jié):Bit(4-7):消息類型,值為11;Bit(0-3):保留位,值為0;10110000剩余消息長度(長度不定1-4字節(jié))Byte 2剩余長度.Byte xByte x
34、+1cmdid兩字節(jié)長度高位字節(jié)Byte x+2cmdid兩字節(jié)長度低位字節(jié)Byte x+3cmdid .Byte yByte y+1命令響應(yīng)消息體四字節(jié)長度第1字節(jié)(高位)Byte y+2命令響應(yīng)消息體四字節(jié)長度第2字節(jié)Byte y+3命令響應(yīng)消息體四字節(jié)長度第3字節(jié)Byte y+4命令響應(yīng)消息體四字節(jié)長度第4字節(jié)(低位)Byte y+5命令響應(yīng)消息體(不超過64k).Byte z心跳請求該消息只有消息頭,由客戶端發(fā)向服務(wù)器,格式如下:字節(jié)說明bit76543210消息頭Byte 1第一字節(jié):Bit(4-7):消息類型,值為12;Bit(0-3):保留位,值為0;11000000Byte 2
35、第二字節(jié):消息剩余字節(jié)長度,值為000000000心跳響應(yīng)該消息只有消息頭,從服務(wù)器返回客戶端,格式如下:字節(jié)說明bit76543210消息頭Byte 1第一字節(jié):Bit(4-7):消息類型,值為13;Bit(0-3):保留位,值為0;11010000Byte 2第二字節(jié):消息剩余字節(jié)長度,值為000000000加密請求該消息由客戶端發(fā)向服務(wù)器端,表明此后客戶端與服務(wù)器之間的通信數(shù)據(jù)需要加密,否則采用明文通信。加密內(nèi)容為剩余消息長度之后的內(nèi)容,被加密命令的剩余消息長度設(shè)置為加密后的數(shù)據(jù)長度。服務(wù)器端收到此消息后,隨機(jī)選擇一個對稱加密算法的密鑰,利用接收到的RSA公鑰,以RSA_PKCS1_PA
36、DDING模式加密,之后發(fā)送給客戶端。此后服務(wù)器端與客戶端之間傳遞的數(shù)據(jù)利用對稱加密算法加密。對稱加密算法由客戶端在本消息中指定,目前服務(wù)器端只支持AES加密算法,代碼為1,密鑰長度采用128位,加密模式為ECB模式,填充方式為ISO10126padding方式。此消息需要在連接請求之前發(fā)送,若服務(wù)器端在收到連接請求之后再收到此消息,則認(rèn)為消息序列混亂,關(guān)閉連接。消息體包含客戶端RSA公鑰中的e和n,e為DWORD類型,按照大端字節(jié)序方式傳輸,n為128字節(jié)的BYTE類型,按照字節(jié)流的順序傳輸。其中DWORD為32位的無符號四字節(jié)整形,BYTE為8位的無符號單字節(jié)整形。消息體格式如下:字節(jié)說明
37、bit76543210消息頭Byte 1第一字節(jié):Bit(4-7):消息類型,值為14;Bit(0-3):保留位,值為0;11100000剩余消息長度(133編碼后需要占用2個字節(jié))Byte 2消息剩余字節(jié)長度(133)-編碼第一字節(jié)(低)10000100Byte 3消息剩余字節(jié)長度(133)-編碼第二字節(jié)(高)00000001Byte 4公鑰信息中的e編碼后的第一字節(jié)(高)Byte 5公鑰信息中的e編碼后的第二字節(jié)Byte 6公鑰信息中的e編碼后的第三字節(jié)Byte 7公鑰信息中的e編碼后的第四字節(jié)(低)Byte 8公鑰信息中的n,共128字節(jié).Byte 135Byte1361:AES加密算法
38、代碼00000001加密響應(yīng)該消息由服務(wù)器端發(fā)往客戶端,以響應(yīng)加密請求。格式如下:字節(jié)說明bit76543210消息頭Byte 1第一字節(jié):Bit(4-7):消息類型,值為15;Bit(0-3):保留位,值為0;11110000剩余消息長度(長度不定1-4字節(jié))Byte 2剩余長度.Byte xByte x+1密鑰加密后兩字節(jié)長度高位字節(jié)Byte x+2密鑰加密后兩字節(jié)長度低位字節(jié)Byte x+3加密后密鑰信息.Byte y主要流程登錄EDP設(shè)備登錄設(shè)備云流程:訪問設(shè)備云門戶/注冊用戶;用戶根據(jù)業(yè)務(wù)情況,在”連接請求”章節(jié)中選擇EDP登錄方式;根據(jù)登錄方式,填寫設(shè)備相關(guān)屬性,在項(xiàng)目下新增設(shè)備,獲取項(xiàng)目ID、設(shè)備ID,以及api-key等信息;設(shè)備發(fā)送連接請求報(bào)文到設(shè)備云服務(wù)器地址:,端口 876或29876EDP登陸消息流根據(jù)相關(guān)登陸方式,在CONN_REQ消息中攜帶驗(yàn)證信息;平臺驗(yàn)證后,返回鑒權(quán)響應(yīng)碼。數(shù)據(jù)收發(fā)(透傳)要實(shí)現(xiàn)透傳,通信雙方必須都要登陸到設(shè)備云;設(shè)備1使用消息類型3“發(fā)送數(shù)據(jù)”發(fā)送數(shù)據(jù)到設(shè)備云,目的地址寫明設(shè)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 代收美金合同范本
- 2025年度新型環(huán)?;炷敛牧腺忎N合同范本集錦
- 勞動生產(chǎn)合同范例
- 喬木修剪合同范本
- 公司投資電影合同范例
- 個人外貿(mào)合同范例
- 2014家裝合同范例
- 信息資產(chǎn)安全合同范本
- 借用合同范例 英文
- 旅游業(yè)個性化旅游定制服務(wù)方案
- 酒店春節(jié)營銷方案
- 營銷管理方案中的定價策略與盈利模式
- 2024年西寧城市職業(yè)技術(shù)學(xué)院高職單招(英語/數(shù)學(xué)/語文)筆試歷年參考題庫含答案解析
- 2024年臨沂市高三一模(學(xué)業(yè)水平等級考試模擬試題)物理試卷
- 廣州獵德大橋三維曲面塔清水混凝土施工技術(shù)
- 我國糖尿病視網(wǎng)膜病變臨床診療指南2022解讀
- 高級茶藝師技能鑒定(協(xié)會版)備考題庫-下(多選、判斷題匯總)
- 特種設(shè)備作業(yè)人員體檢表(叉車)
- c30混凝土路面施工方案
- 加強(qiáng)師德師風(fēng)建設(shè)學(xué)校師德師風(fēng)警示教育講座培訓(xùn)課件
- 豬飼料購銷合同書
評論
0/150
提交評論