設(shè)備通訊協(xié)議_第1頁
設(shè)備通訊協(xié)議_第2頁
設(shè)備通訊協(xié)議_第3頁
設(shè)備通訊協(xié)議_第4頁
設(shè)備通訊協(xié)議_第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余17頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、設(shè)備通信協(xié)議22 / 22目錄1. 適用范圍 3.2. 協(xié)議框架 3.3. 協(xié)議內(nèi)容 3.3.1 設(shè)備內(nèi)部組網(wǎng)協(xié)議(或者 MCU 透傳模式協(xié)議) 33.1.1 通訊命令格式 33.1.2 配對機(jī)制 33.1.3 連接機(jī)制 43.1.4 心跳機(jī)制 53.2 設(shè)備與云端通訊協(xié)議 53.2.1 通訊命令格式 53.2.2 連接流程 53.3 數(shù)據(jù)包格式定義 63.3.1 設(shè)備間通訊數(shù)據(jù)格式 63.3.2 設(shè)備與云、 APP 通訊數(shù)據(jù)格式 114. 公共命令定義5. 編碼表 5.1 節(jié)點(diǎn)類型編碼表1.95.2 命令回應(yīng)編碼表1.91 .適用范圍本協(xié)議定義 WiFi模塊與MCU控制單元,WiFi模塊與云

2、APP間,以及主從模塊之間的通訊 協(xié)議框架。2 .協(xié)議框架協(xié)議基于二進(jìn)制協(xié)議框架,完成命令發(fā)送接收、命令上報(bào)、內(nèi)部組網(wǎng)等功能。3 .協(xié)議內(nèi)容3.1 設(shè)備內(nèi)部組網(wǎng)協(xié)議(或者 MCU透傳模式協(xié)議)備內(nèi)部組網(wǎng)協(xié)議包括設(shè)備配對、連接、心跳機(jī)制等,目的是將一個子設(shè)備加入到設(shè)備組中, 并保持連接。3.1.1 通訊命令格式采用二進(jìn)制的通訊協(xié)議格式,包格式如下表:同步頭HeadOption包長度(變長)加密隨 機(jī) 數(shù)(Option)源設(shè)備 類 型(Option)源設(shè)備 編 碼(Option)CMDKeyCMD IDPayloadCRC (Opti on)2B1B12 B1B1B3B1B1BNB2B詳細(xì)的包格式

3、在后續(xù)章節(jié)介紹3.1.2 配對機(jī)制配對機(jī)制僅適用于設(shè)備內(nèi)組網(wǎng)模式,MCU透傳模式不需要組網(wǎng)協(xié)議。進(jìn)入配對模式由主從設(shè)備分別觸發(fā),只有在進(jìn)入配對模式后,才處理相關(guān)的配對命令。從設(shè)備進(jìn)入配對模式后定時發(fā)送配對請求,直到收到請求回應(yīng)。主設(shè)備收到請求后分配一個設(shè)備ID給從設(shè)備,標(biāo)識此ID被占用,并等待采集器的上線通知,一定時間內(nèi)收到通知之后確認(rèn)存入設(shè)備列表,如果沒有上線通知, 則認(rèn)為設(shè)備沒有配對成功,從子設(shè)備中刪除。從設(shè)備收到配對回應(yīng)后存儲設(shè)備ID,并且發(fā)送上線通知,收到上線通知后完成配對。配對的過程如下圖所示:主模塊從模塊進(jìn)入配對模式從設(shè)備發(fā)送配對請求主設(shè)備回應(yīng)請求從設(shè)備上線主設(shè)備回應(yīng)設(shè)備上線配對結(jié)

4、束3.1.3 連接機(jī)制設(shè)備每次上電連接需要發(fā)送上線通知以及連接所需要的參數(shù)給主設(shè)備,如下圖所示:WiFi模塊MCU/從模塊上線通知上線通知回應(yīng)WiFi通路配置(僅用于透傳模式)云連接成功(僅 用于透傳模式)命令交互狀態(tài)上報(bào)3.1.4 心跳機(jī)制使用對等的心跳機(jī)制,主設(shè)備和從設(shè)備都可以發(fā)現(xiàn)對方的異常狀態(tài)。3.2 設(shè)備與云端通訊協(xié)議設(shè)備與云端通訊協(xié)議基于MQTT 協(xié)議, 數(shù)據(jù)包使用 MQTT 協(xié)議傳輸, 數(shù)據(jù)加密方式采用 SSL加密,命令碼采用 2 進(jìn)制命令格式同設(shè)備間通訊協(xié)議。3.2.1 MQTT 通訊框架本協(xié)議是針對與設(shè)備的數(shù)據(jù)通信,目前通信節(jié)點(diǎn)包括:設(shè)備、云端和APP 終端三方。WIFI 上的

5、協(xié)議采用 MQTT 協(xié)議框架,串口上的通信采用包含包頭和校驗(yàn)的二進(jìn)制協(xié)議,通信包采用二進(jìn)制格式傳輸,高位在前低位在后。?此協(xié)議定義的 MQTT Topic類型有以下2種: 單播,unicast/u/TargetType/TargetID 廣播,broadcast/b/SourceType/SourceID注釋:TargetType :目標(biāo)設(shè)備類型, TargetID :目標(biāo)設(shè)備編碼SourceType :源設(shè)備類型, SourceID :源設(shè)備編碼3.2.2 通訊命令格式設(shè)備與云端、 APP 的通訊命令分為 4 種: 請求與回應(yīng)、通知命令、廣播命令,具體的命令以及格式在后面章節(jié)介紹。3.2.3

6、 連接流程設(shè)備連接云端的步驟如下圖:WiFi模塊云等待連接路由等待MCU上電,獲取密鑰ahttps 獲取 server信息.https 發(fā)送 server 信息,建立MQTT連接訂閱設(shè)備主題命令交互箕狀態(tài)上報(bào)3.3 數(shù)據(jù)包格式定義數(shù)據(jù)包的格式根據(jù)通訊雙方的不同、數(shù)據(jù)鏈路的差異會有不同的包格式,本協(xié)議為盡量保證數(shù)據(jù)包格式的統(tǒng)一,做了幾點(diǎn)規(guī)劃:1 .數(shù)據(jù)包格式中核心的部分包括CMD ID和CMD Payload ,這兩部分格式所有的包中保持一致,CMD ID 1個字節(jié),CMD Payload緊跟CMD ID 長度N字節(jié)。2 .設(shè)備間通訊,包括內(nèi)部命令、外部轉(zhuǎn)發(fā)命令等的數(shù)據(jù)包格式雖然可能不一樣,但是

7、都可 以通過包頭中的 Option字節(jié)進(jìn)行區(qū)分,可以公用相同的解析函數(shù)3 .外部串口通訊的命令格式與設(shè)備間通訊格式保持一致。4 .3.1設(shè)備間通訊數(shù)據(jù)格式同步頭HeadOption包長度(變長)加密隨 機(jī) 數(shù)(Option)源設(shè)備 類 型(Option)源設(shè)備 編 碼(Option)CMD KeyCMDIDPayloadCRC (Opti on)2B1B1-2 B1B1B3B1B1BNB2B Fix header固定幀頭,格式如下表:同步頭Head Option包長度(變長)2Byte1Byte1-2 Byte同步頭:0X5CFEHead Option :Bit7Bit6Bit5

8、Bit4Bit3Bit2Bit1Bit0預(yù)留預(yù)留預(yù)留預(yù)留CheckSum校驗(yàn)廣播類 型鏈路CRC校驗(yàn)加密選項(xiàng)typedef enumOPTIONAL_ENCRYPT_BIT = (1<<0),OPTIONAL_CRC_BIT = (1<<1),OPTIONAL_BROADCAST_DA TALINK_BIT = (1<<2),OPTIONAL_CHECKSUM_BIT = (1<<3), OptionalBitsT;包長度:長度包括本字節(jié)之后的所有數(shù)據(jù)的長度長度是12個字節(jié)字節(jié)數(shù)取值長度范圍10x00x7F0-12720x01800X7FFF12

9、816383長度的編碼方式參考 MQTT :如長度是321=(65 + 2*128),那么會被編碼為兩個字節(jié),低字節(jié)為65+128 = 193.高字節(jié)為2。 可變包格式可變包格式需要通過 Head Option來解析,格式如下表:Option Bit0Option Bit2Option Bit1Option Bit3加密隨機(jī)數(shù)設(shè)備類型設(shè)備編碼消息體CRC校驗(yàn)CheckSum1Byte1Byte3Byte2Byte1Byte異或隨機(jī)數(shù):如Head Option中的加密選項(xiàng)為0,那么加密隨機(jī)數(shù)這個字節(jié)不存在,同時數(shù)據(jù)不會進(jìn)行加密源設(shè)備信息:用于廣播類型的數(shù)據(jù)鏈路,需要標(biāo)識數(shù)據(jù)的來源。

10、CRC校驗(yàn):采用16bit的CRC算法,CRC算法參照附錄。Checksum:采用8Bit的和校驗(yàn),用于對數(shù)據(jù)長度比較敏感,但是又需要進(jìn)行數(shù)據(jù)校驗(yàn)的場景設(shè)備編碼和設(shè)備類型:Payload中可能需要用到的內(nèi)部設(shè)備Type和ID的定義:內(nèi)部設(shè)備Type和設(shè)備ID在設(shè)備配對時由主設(shè)備分配給從設(shè)備,其中Type由主設(shè)備獲取到從設(shè)備的 Device Type之后映射一個數(shù)值,并分配給從設(shè)備,建立 映射關(guān)系。ID的3字節(jié)構(gòu)成為:Byte3Byte2Byte 1隨機(jī)數(shù),避免不同子網(wǎng)的ID沖突ID序號,由主設(shè)備維護(hù)命令消息體結(jié)構(gòu)如下表CMD keyCMD IDPayload1Byte1ByteN

11、 ByteCMD Key :命令標(biāo)識,主要作用是標(biāo)識命令的類型以及編號,由主設(shè)備生成,發(fā)送給從設(shè)備,從設(shè)備將key返回給主設(shè)備,另外在還標(biāo)識命令的類型CMD Key描述備注1設(shè)備內(nèi)部消息(組網(wǎng)、透傳模 式的內(nèi)部消息)2Notify類消息這些命令沒有重發(fā)機(jī)制,不3Broadcast類消息能保障一定到達(dá)431預(yù)留 reserved32255動態(tài)分配的key ,用于數(shù)據(jù)的 轉(zhuǎn)發(fā)、透傳此范圍的命令如果沒有回復(fù) 會重發(fā),重發(fā)一定次數(shù)后丟 棄,所以此消息可能會多次 到達(dá)CMD ID:命令碼,1個字節(jié)命令碼描述1配對請求2配對請求回應(yīng)3設(shè)備啟動通知4設(shè)備啟動回應(yīng)5WiFi就緒通知6WiFi斷開通知7玄就緒通

12、知8女?dāng)嚅_通知9WiFi上電通知10WiFi模塊配置完成通知11退出WiFi模塊配置12退出WiFi模塊配置回應(yīng)13重新配置WiFi模塊14重新配置WiFi模塊回應(yīng)15設(shè)置WiFi模塊串口波特率16設(shè)置WiFi模塊串口波特率回應(yīng)17查詢WiFi模塊串口波特率18查詢WiFi模塊串口波特率回應(yīng)WiFi模塊消息起始32設(shè)備上線通知33WiFi配置完成通知34獲取設(shè)備WiFi模塊監(jiān)控信息35獲取設(shè)備 WiFi模塊監(jiān)控信息回應(yīng)36設(shè)置路由器信息37設(shè)置路由器信息的回應(yīng)38刪除子設(shè)備39刪除子設(shè)備回應(yīng)40獲取在線設(shè)備列表41獲取在線設(shè)備列表回應(yīng)42設(shè)置設(shè)備擁有者43設(shè)置設(shè)備擁有者回應(yīng)44設(shè)置配對模式45

13、設(shè)置配對模式回應(yīng)46在線設(shè)備列表變更通知4763WiFi模塊預(yù)留所有設(shè)備公共命令起始64主MCU OTA 傳輸文件65主MCU OTA 傳輸文件回應(yīng)66設(shè)置出廠參數(shù)67設(shè)置出廠參數(shù)回應(yīng)68Debug Log輸出控制69Debug Log輸出控制回應(yīng)70Debug Log信息輸出71從MCU OTA 傳輸文件72從MCU OTA 傳輸文件回應(yīng)73云端推送通知信息76OTA完成通知上報(bào)7795設(shè)備公共命令預(yù)留設(shè)備業(yè)務(wù)命令起始96127設(shè)備自定義設(shè)備內(nèi)部消息128255設(shè)備自定義設(shè)備與玄端 /APP通訊消息Payload :命令數(shù)據(jù),N字節(jié)5.4實(shí)例一個所有Option都打開的包結(jié)構(gòu)如下:同步頭He

14、ad包長度(變加密隨源設(shè)備源設(shè)備CMDCMD IDPayloadCRCOption長)機(jī) 數(shù)類 型編 碼Key(Opti(Option)(Option)(Option)on)2B1B12 B1B1B3B1B1BNB2B數(shù)據(jù)組包實(shí)例以下是使用CRC校驗(yàn),并且加密的數(shù)據(jù)包的組包過程:假設(shè)命令包是1 2 3 4,4個字節(jié),現(xiàn)在要組包1: CRC第一步計(jì)算這4個字節(jié)的crc值,假設(shè)算出來是 5、6第一步CRC之后的數(shù)據(jù)包就變成了 1、2、3、4、5、6, 6個字節(jié)2:加密加密第一步:加入一個隨機(jī)數(shù),假設(shè)這個隨機(jī)數(shù)是0,現(xiàn)在包就是7個字節(jié)了,0、 1、2、3、4、5、6加密第二步:異或,將

15、除加密隨機(jī)數(shù)外的其他數(shù)據(jù)都和加密隨機(jī)數(shù)進(jìn)行異或,得到得數(shù)據(jù)應(yīng)該是0、1、2、3、4、5、6機(jī)密第三步:查表加密,假設(shè)表中0對應(yīng)的是6、1對應(yīng)的是5依次類推,那么查表之后的數(shù)據(jù)變?yōu)榱?6、5、4、3、2、1、0加密結(jié)束,payload最終就是6、5、4、3、2、1、0 了3 :加入包頭Payload是7個字節(jié),optional是CRCffi加密,那么包頭為 FE 5C 03 07最終包數(shù)據(jù)為:FE 5C 03 07 06 05 04 03 02 01 00解包的過程與組包相反3.3.2設(shè)備與云、APP通訊數(shù)據(jù)格式命令數(shù)據(jù)格式:源設(shè)備類型源設(shè)備IDCMD ID5Byte12Byte1ByteN B

16、yte3.3.2 Pad串口通訊數(shù)據(jù)格式下行數(shù)據(jù)格式,PAD->設(shè)備同步頭HeadOption包長度(變長)加密隨 機(jī) 數(shù)(Option)源設(shè)備 類 型(Option)源設(shè)備 編 碼(Option)源設(shè)備GUID目標(biāo)設(shè)備GUIDCMDIDPaylo adCRC(Op tion)2B1B12 B1B1B3B34字節(jié)1BNB2B上行數(shù)據(jù)格式,設(shè)備->PAD同步頭HeadOption包長度(變長)加密隨 機(jī) 數(shù)(Option)源設(shè)備 類 型(Option)源設(shè)備 編 碼(Option)源設(shè)備GUIDCMDIDPaylo adCRC(Op tion)2B1B12 B1B1B3B34字節(jié)1B

17、NB2B4.公共命令定義卜表是公共命令碼以及命令數(shù)據(jù)的定義,此表僅涉及到上文提到的CMD ID和命令信息碼(或回復(fù)碼),命令中的其他部分?jǐn)?shù)據(jù)請參考上文中的數(shù)據(jù)包定義。命令碼命令描述通信方命令組成備注設(shè)備內(nèi)部命令起始1請求配對從設(shè)備-> 主設(shè)備? CMD Key1Byte,0x01? CMD ID1Byte?業(yè)務(wù)設(shè)備類型5Byte?當(dāng)前的內(nèi)部設(shè)備類型1Byte?當(dāng)前的內(nèi)部設(shè)備編碼3Byte,全0表示未配置過,非全0表小之而配置過?設(shè)備業(yè)務(wù)編碼長度1Byte?設(shè)備業(yè)務(wù)編碼N Byte?5個字節(jié)的業(yè)務(wù)設(shè)備 類型,需要向樂君中 請,并且保存在從設(shè) 備中設(shè)備業(yè)務(wù)編碼是用從 設(shè)備自行定義的設(shè)備ID字

18、符串,不超過32 字節(jié)2請求配對回應(yīng)主設(shè)備-> 從設(shè)備? CMD Key,0x01? CMD ID1Byte? RC1Byte,參考 RC表?分配的設(shè)備類型1Byte?分配的設(shè)備ID3Byte3設(shè)備啟動通知MCU從設(shè)備-> 主設(shè)備? CMD Key1Byte, 0x01? CMD ID1Byte?版本號1Byte?子設(shè)備類型1Byte,參考5.3章節(jié):子設(shè)備類型表?業(yè)務(wù)設(shè)備類型5Byte?內(nèi)部設(shè)備類型1Byte?內(nèi)部設(shè)備編碼3Byte?設(shè)備業(yè)務(wù)編碼長度1Byte?設(shè)備業(yè)務(wù)編碼N Byte?4設(shè)備啟動通知的回應(yīng)主設(shè)備->MCU/從設(shè)備? CMD Key1Byte, 0x01?

19、CMD ID1Byte? RC1Byte,參考 RC表5WiFi就緒通知主設(shè)備->MCU/從設(shè)備? CMD Key1Byte, 0x01? CMD ID1Byte?6WiFi斷開通知主設(shè)備->MCU/從設(shè)備? CMD Key1Byte, 0x01? CMD ID1Byte?7云就緒通知主設(shè)備->MCU/從設(shè)備? CMD Key1Byte, 0x01? CMD ID1Byte?8云斷開通知主設(shè)備->MCU/從設(shè)備? CMD Key1Byte, 0x01? CMD ID1Byte?9WiFi模塊上電通知WiFi 模塊->MCU? CMD Key1Byte, 0x01?

20、 CMD ID1Byte?WiFi模塊上電后定時發(fā) 送上電通知給MCU直至 MCU±報(bào)上線通知給 WiFi 模塊(適用丁,用丁,透傳模 式)10WiFi模塊配置完成通 知WiFi 模塊->MCU? CMD Key1Byte, 0x01? CMD ID1Byte? RC1Byte,0 成功,3 超時,4退出11退出WiFi模塊配置MCU->WiFi 模塊? CMD Key1Byte, 0x01? CMD ID1Byte?12退出WiFi模塊配置回 應(yīng)WiFi 模塊->MCU? CMD Key1Byte, 0x01? CMD ID1Byte? RC1Byte,0 成功,

21、1 失敗13重新配置WiFi模塊MCU->WiFi 模塊? CMD Key1Byte, 0x01? CMD ID1Byte?14重新配置WiFi模塊回 應(yīng)WiFi 模塊->MCU? CMD Key1Byte, 0x01? CMD ID1Byte? RC1Byte,0 成功,1 失敗15設(shè)置WiFi模塊串口波 特率MCU->WiFi 模塊? CMD Key1Byte, 0x01? CMD ID1Byte? Baudrate4ByteBaudrate 取值:9600192003840057600115200其他值返回fail默認(rèn)值是960016設(shè)置WiFi模塊串口波 特率回應(yīng)Wi

22、Fi 模塊->MCU? CMD Key1Byte, 0x01? CMD ID1Byte? RC1Byte,0 成功,1 失敗返回值以新設(shè)置的波特 率發(fā)送17查詢WiFi模塊串口波 特率MCU->WiFi 模塊? CMD Key1Byte, 0x01? CMD ID1Byte?18查詢WiFi模塊串口波 特率回應(yīng)WiFi 模塊->MCU? CMD Key1Byte, 0x01? CMD ID1Byte? RC1Byte,0 成功,1 失敗? Baudrate4Byte?WiFi模塊命令起始32設(shè)備信息上報(bào)WiFi模塊->Cloud/APP? CMD ID1Byte? Nu

23、m1Byte ,設(shè)備個數(shù)?設(shè)備擁有者的小智IDstring, 10字節(jié)? WiFi模塊Mac地址 ASCII,12 字節(jié)? GUIDASCII,17 字節(jié)、設(shè)備 業(yè)務(wù)編碼長度1Byte、設(shè)備 業(yè)務(wù)編碼N Byte、固件版 本1BYT曰、設(shè)備硬件架構(gòu) 類型1BYTE、設(shè)置是否在線 1Byte,若干MQTT主題: /b/SourceType/Sour ceID第一個設(shè)備是主設(shè)備設(shè)備硬件架構(gòu)類型參考“設(shè)備硬件架構(gòu)類型編 碼表”設(shè)備是否在線,0不在線, 1在線33WiFi配置完成通知WiFi 模塊->APP? CMD ID1Byte?設(shè)備 GUIDASCII,17 字節(jié)?用戶的小智IDstrin

24、g, 10字節(jié)?設(shè)備業(yè)務(wù)編碼長度1Byte?設(shè)備業(yè)務(wù)編碼N ByteMQTT主題: /u/TargetType/Tar getID34獲取 WiFi模塊監(jiān)控?cái)?shù) 據(jù)Cloud/APP->WiFi 模塊? CMD ID1Byte ?35獲取 WiFi模塊監(jiān)控?cái)?shù) 據(jù)回應(yīng)WiFi模塊->Cloud/APP? CMD ID1Byte? WiFi模塊連接彳言號強(qiáng)度1Byte,有符號的1個字節(jié),一般范圍在-100Dbm0Dbm? WiFi模塊型號16byte, 小于16字節(jié)的字符串36設(shè)置WiFi配置信息APP/Cloud/ 串口 控制端-> 設(shè)備? CMD ID1Byte?是否設(shè)置擁有者

25、ID1Byte,0不設(shè)置,1設(shè)置?設(shè)備擁有者的小智IDstring, 10字節(jié)?是否設(shè)置路由器信息1Byte,0不設(shè)置,1設(shè)置? SSID Len ,用戶名長度1 BYTE,用戶名長度小于等于32字節(jié)? PWCLen,密碼長度1 BYTE, 密碼小于等于64字節(jié)? SSID? PWD37設(shè)置 WiFi配置信息回 應(yīng)設(shè)備->APP心loud/ 串口控制端? CMD ID1Byte? RC參考命令回應(yīng)編碼表:0成功,1失敗?38刪除子設(shè)備APP/Cloud/ 串口控制端-> 設(shè)備? CMD ID1Byte? GUIDASCII,17 字節(jié) ?39刪除子設(shè)備回應(yīng)設(shè)備-> APP/C

26、loud/ 串口控制端? CMD ID1Byte? RC參考命令回應(yīng)編碼表:0成功,1失敗?40獲取設(shè)備列表APP/Cloud/ 串口控制端-> 主設(shè)備? CMD ID1Byte ?41獲取設(shè)備列表回應(yīng)主設(shè)備->APP/Cloud/ 串口控制端? CMD ID1Byte? Num1Byte ,設(shè)備個數(shù)?設(shè)備擁有者的小智IDstring, 10 字節(jié)? WiFi模塊Mac地址 ASCII,12 字節(jié)? GUIDASCII,17 字節(jié)、設(shè)備 業(yè)務(wù)編碼長度1Byte、設(shè)備設(shè)備是否在線,0不在線,1在線業(yè)務(wù)編碼N Byte、固件版 本1BYT曰、設(shè)備硬件架構(gòu) 類型1BYTE、設(shè)置是否在線

27、1Byte,若干?44設(shè)置設(shè)備進(jìn)入配對模 式App/Cloud/ 串口控制端-> 設(shè)備? CMD ID1Byte ?45設(shè)置設(shè)備進(jìn)入配對模 式回應(yīng)設(shè)備-> App/Cloud/ 串口控制端? CMD ID1Byte? RC參考命令回應(yīng)編碼表:0成功,1失敗)BYTE?47設(shè)置設(shè)備退出配對模 式App/Cloud/ 串口控制端-> 設(shè)備? CMD ID1Byte ?48設(shè)置設(shè)備退出配對模 式回應(yīng)設(shè)備-> App/Cloud/ 串口控制端? CMD ID1Byte? RC參考命令回應(yīng)編碼表:0成功,1失?。〣YTE49請求同步時間設(shè)備->Cloud? CMD ID1B

28、yte ?50請求同步時間回應(yīng)Cloud-> 設(shè)備? CMD ID1Byte? RC參考命令回應(yīng)編碼表:0成功,1失敗)BYTE? RTC時間67Byte,格式是 秒-分-時-日-月-年-星期 幾,各一個字節(jié)?星期幾的范圍從17,1表 示星期一51掃描AP列表控制端-> 設(shè)備? CMD ID1Byte ?52掃描AP列表回應(yīng)設(shè)備到控制端? CMD ID1Byte? RC參考命令回應(yīng)編碼表:0成功,1失敗)BYTE? AP Number1Byte,掃描到 的AP數(shù)量? AP信息32Byte , SSID1Byte , RSSI 信號強(qiáng)度狄SSID為字符串,最大 32字節(jié),返回?cái)?shù)據(jù)中固

29、定 32 字節(jié)位置存放SSID。信號強(qiáng)度取值范圍 0100所有設(shè)備公共命令起始64主MCU OTA傳輸文件Cloud-> 設(shè)備? CMD ID1Byte?總包數(shù)2Byte?當(dāng)前包號2Byte?包內(nèi)容N BYTE,最大長度 102465主MCU OTA傳輸文件回應(yīng)設(shè)備->Cloud? CMD ID1Byte? RC(參考命令回應(yīng)編碼表:0成功,1失敗,32包號錯誤, 33數(shù)據(jù)校3錯誤)1 BYTE?當(dāng)前包號2Byte66設(shè)置出廠信息App/Cloud-> 設(shè)備? CMD ID1Byte?設(shè)備 ID12 Byte?設(shè)備業(yè)務(wù)ID長度1 Byte設(shè)備業(yè)務(wù)ID長度為0表 示不需要設(shè)備業(yè)

30、務(wù)ID 暫時只需要工廠測試程?設(shè)備業(yè)務(wù)IDN Byte序支持67設(shè)置出廠信息回應(yīng)設(shè)備->App/Cloud? CMD ID1Byte? RC參考命令回應(yīng)編碼表:0成功,1失敗?68Debug Log輸出控制App/Cloud-> 設(shè)備? CMD ID1Byte? Debug Log 開關(guān)1Byte,0關(guān),1開?是否掉電保存1Byte,0 掉電不保存,1掉電保存暫時云端實(shí)現(xiàn)69Debug Log輸出控制 回應(yīng)設(shè)備-> App/Cloud? CMD ID1Byte? RC參考命令回應(yīng)編碼表:0成功,1失敗?70Debug Log信息輸出設(shè)備-> App/Cloud? CMD

31、 ID1Byte?固件版本 version1Byte?日志類型 LogType 1Byte? Log內(nèi)容NByte,字符串?71從MCU OTA傳輸文件Cloud-> 設(shè)備? CMD ID1Byte?總包數(shù)2Byte?當(dāng)前包號2Byte?包內(nèi)容N BYTE,最大長度 1024用于升級主從MCU構(gòu)下 的從MUC1件72從MCU OTA傳輸文件回應(yīng)設(shè)備->Cloud? CMD ID1Byte? RC(參考命令回應(yīng)編碼表:0成功,1失敗,32包號錯誤, 33數(shù)據(jù)校3錯誤)1 BYTE?當(dāng)前包號2Byte73云端推送通知信息Cloud >APP/設(shè)備? CMD ID1Byte?推送信

32、息內(nèi)容nByte ?76OTA升級完成上報(bào)設(shè)備-> Cloud/APP? CMD ID1Byte? RC1Byte, 0 成功,1 失敗云端以這個命令作為OTA真正完成的判斷標(biāo) 準(zhǔn)5.編碼表5.1節(jié)點(diǎn)類型編碼表節(jié)點(diǎn)類型編碼類型名稱5.2命令回應(yīng)編碼表031 ,公共錯誤碼命令回應(yīng)編碼命令回應(yīng)含義0成功1失敗內(nèi)部通訊公共RC值起始2配對失敗,設(shè)備滿3WiFi 配置(Easy link)超時4WiFi 配置(Easylink)退出5-31內(nèi)部通訊公共 RC值預(yù)留外部通訊公共RC值起始32OTA包號錯誤33OTA數(shù)據(jù)校驗(yàn)錯誤34當(dāng)前狀態(tài)不允許 OTA35-63外部通訊公共 RC值預(yù)留業(yè)務(wù)RC值起

33、始64255業(yè)務(wù)錯誤碼5.3子設(shè)備類型表描述子設(shè)備類型1透傳模式下的MCU設(shè)備2組網(wǎng)模式下的從設(shè)備5.4設(shè)備硬件架構(gòu)類型編碼表設(shè)備硬件結(jié)構(gòu)類型描述0單MCU架構(gòu)1雙MCU架構(gòu)(WiFi模塊+控制MCU模塊)6.附錄6.1 CRC校驗(yàn)算法static const uint8 c_crc_htalbe口 = / CRC 高 8 位查表 0x00, 0xC1,0x81, 0x40, 0x01,0xC0, 0x80, 0x41,0x01,0xC0, 0x80, 0x41,0x00, 0xC1, 0x81,0x40,0x01, 0xC0, 0x80, 0x41,0x00, 0xC1, 0x81,0x40

34、,0x00, 0xC1, 0x81,0x40, 0x01,0xC0, 0x80,0x41,0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,0x00, 0xC1,0x81, 0x40, 0x01,0xC0, 0x80, 0x41,0x01,0xC0, 0x80, 0x41,0x00, 0xC1, 0x81,0x40,0x01, 0xC0, 0x80, 0x41,0x00, 0xC1, 0x81,0x40,0x00, 0xC1, 0x81,0x40, 0x0

35、1,0xC0, 0x80,0x41,0x00, 0xC1,0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,0x00, 0xC1,0x81, 0x40, 0x01,0xC0, 0x80, 0x41,0x01,0xC0, 0x80, 0x41,0x00, 0xC1, 0x81,0x40,0x01, 0xC0, 0x80, 0x41,0x00, 0xC1, 0x81,0x40,0x00, 0xC1, 0x81,0x40, 0x01,0xC0, 0x80,0x41,0x01, 0xC0

36、, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,0x00, 0xC1,0x81, 0x40, 0x01,0xC0, 0x80, 0x41,0x01,0xC0, 0x80, 0x41,0x00, 0xC1, 0x81,0x40,0x00, 0xC1,0x81, 0x40, 0x01,0xC0, 0x80, 0x41,0x01,0xC0, 0x80, 0x41,0x00, 0xC1,0x81,0x40,0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x

37、81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80,0x41,0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,0x00, 0xC1, 0x81,0x40,0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80,0x41,0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1

38、, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,0x00, 0xC1, 0x81,0x40;static const uint8 c_crc_ltalbe =/ CRC 校驗(yàn)查表低8 位0x00, 0xC0, 0xC1, 0x01, 0xC3, 0x03, 0x02, 0xC2, 0xC6, 0x06, 0x07, 0xC7,0x05, 0xC5, 0xC4,0x04,0xCC, 0x0C, 0x0D, 0xCD, 0x0F,

39、0xCF, 0xCE, 0x0E,0x0A, 0xCA, 0xCB, 0x0B, 0xC9, 0x09,0x08, 0xC8,0xD8, 0x18, 0x19, 0xD9,0x1B, 0xDB, 0xDA, 0x1A, 0x1E, 0xDE, 0xDF, 0x1F, 0xDD, 0x1D,0x1C, 0xDC,0x14, 0xD4, 0xD5, 0x15, 0xD7, 0x17, 0x16, 0xD6, 0xD2, 0x12, 0x13, 0xD3,0x11, 0xD1, 0xD0,0x10,0xF0, 0x30, 0x31, 0xF1, 0x33, 0xF3, 0xF2, 0x32, 0x36, 0xF6, 0xF7, 0x37, 0xF5, 0x35, 0x34, 0xF4,0x3C, 0xFC, 0xFD, 0x3

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論