<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                * 導師**視頻**講解:[**去聽課**](https://www.bilibili.com/video/BV1k34y1D7Vz/) >[success] **技術支持說明:** >**1**.一般以自主學習為主 > **2**.可到官方問答社區中提問:[**去提問**](https://bbs.csdn.net/forums/zigbee) > **3**.工程師**會盡快**解答社區問題,但他們是一線開發,【**難以保證**】解答時效,解答辛苦,感謝理解! <br/> 這里指的協議是應用層協議,針對應用協議的設計,需要注意的有幾個基本點:可識別,兼容性,訪問控制,可追溯,數據完整性校驗。 ### * 首先是**可識別**,一般我們采用一個幀頭來表示整個報文的起始位置,這個幀頭可以用一個32位(uint32\_t)的數值來標識,比如 0xFE01A0BC,大端序是 0xFE,0x01,0xA0,0xBC; ### 通常我們把這個數值稱為魔數,magic number。 ### * 然后是**兼容性**,一般我們用一個字節來標識報文的版本號,這個版本號的作用是以后協議格式發生改變時,可以上下兼容;我們稱這個字節標識為:revision;兼容的方式在應用邏輯上可以是這樣的:上位機檢查下位機的revision,協商一個兩邊都能解析處理的版本進行數據處理。 ### * **訪問控制**可以使用1個字節(uint8\_t)或者2個字節(uint16\_t),稱為access control;數據的組織格式可以采用獨熱碼的方式,也就是每個位表示一種標識,1個字節(8個位)最多8種標識,2個字節(16位)最多16種標識。比如0x0100表示同步幀,0x1000表示需要響應,那么0x0100 | 0x1000就標識這個幀是同步幀,而且需要響應。我們可以利用訪問控制來做分包傳輸的邏輯。 ### * **可追溯**一般指下發的報文和響應的報文要能夠對得上,于是需要在每個報文中帶上一個序列碼,稱為sequence number;可以是1到2個字節,每次傳輸都采用自加的方式,當報文需要響應時,響應報文的序列碼保持一致。 接著就是用戶數據了,一般采用2個字節(最多65535)來表示數據長度,緊接著是用戶數據,也稱為payload。 ### * **數據完整性校驗**可以采用CRC16的計算方式,需要2個字節;計算從包頭到payload的結尾進行CRC16的運算,用來保證數據的完整性(沒有發生篡改或者誤碼情況)。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看