<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>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                >[success] 導師視頻講解:[**去聽課**](https://www.bilibili.com/video/BV1k34y1D7Vz?p=37) >[success] **技術支持說明:** >**1**.一般以自主學習為主 > **2**.可到官方問答社區中提問:[**去提問**](https://bbs.csdn.net/forums/zigbee) > **3**.工程師**會盡快**解答社區問題,但他們是一線開發,【**難以保證**】解答時效,解答辛苦,感謝理解! <br/> AF的全稱是Application Framework,中文意思是應用框架,AF層也就是應用框架層,它在ZigBee協議層次中位置如圖所示。 ![](https://img.kancloud.cn/f1/7c/f17c505a345b9857849b88e653957af4_1984x1416.png =600x) ### 開發者可以基于這個層次編寫代碼,實現ZigBee設備之間的數據通信。 <br/> ## **AF層的通信原理** **網絡地址** 前述章節已講解過網絡地址了,處于網絡中的ZigBee設備都會被分配一個網絡地址,用于標識設備所處的位置。通過這個網絡地址就可以找到對應的設備了。 ### **端點號** 讀者已經知道ZigBee 3.0是利用簡單描述符來描述特定的服務的,并且設備上的每個簡單描述符都配有一個唯一的端點號。實際上,ZigBee 3.0通信最終是**發送到設備的特定的服務的,也就是端點號**,舉個例子說明其中的原理。 ### ![](https://img.kancloud.cn/e9/dd/e9dde0a5555559b1418c7d9343b8bdfe_850x452.png =400x) 假設現在ZigBee網絡中有一個協調器和一個智能插座終端,這個智能插座的網絡地址為0x0EF1,并且配有一個簡單描述符描述這個插座具備的一些功能,這個簡單描述符的端點號是8。 ### 如果協調器要向這個插座發送一個打開指令,不能簡單地使用網絡地址0x0EF1來說明把命令發送給這個插座,還需要利用端點號8來說明把命令發送給端點號8對應的服務。 ### 如果讀者了解過遠程服務器的端口號,那么會發現它們之間其實是類似的,例如這個網址**http://www.sxf-iot.com:80**中,既包含了域名,也包含一個80端口號。 ### **端點號的分類** 端點號的取值范圍是0~255,其中: * 端點號0被分配給了ZDO(ZigBee Device Object)。 * 端點號255是廣播,也就是向這個端點號發送數據時,設備的所有服務(簡單描述符)都會收到這個數據。 * 端點號241~254是暫時保留起來的端點號,暫時不能使用。 * 剩下的端點號1~240可以供開發者自由地使用,例如讀者一直學習的SampleSwitch這個工程所使用的端點號可以在工程中找到,如圖所示。 ![](https://img.kancloud.cn/d9/d4/d9d40d8eb5d55873e2d9694a92549739_832x252.png =600x) ### **通信方式** ZigBee支持3種通信方式,分別是點對點、廣播和組播。 * 點對點通信(P2P,Peer to Peer):顧名思義,就是兩個設備之間一對一通信。 * 廣播:給其他的所有設備發送數據。 * 組播:給一部分的設備發送數據,這里的“一部分”說的就是一個特定的組。 <br/> ## **注冊簡單描述符** 在使用AF通信前,需要先注冊簡單描述符并且讓對應的端點號生效,或者說讓這個簡單描述符對應的服務生效。這個流程是: ### (1)創建一個簡單描述符。在講解簡單描述符的章節中,我們已經看到相關的定義了。 ### (2)注冊這個簡單描述符。打開配套的工程,在zcl\_samplesw.c文件中的zclSampleSw\_Init()這個函數中可以找到以下代碼,如圖所示。 ![](https://img.kancloud.cn/d2/da/d2da9ceeac0c9c331659d553eda661aa_2560x1281.png =500x) ### 在應用層初始化函數zclSampleSw\_Init()中,有兩種注冊簡單描述符的方法: (1)可以調用bdb_RegisterSimpleDescriptor()來在BDB中注冊簡單描述符。 (2)也可以直接調用afRegister()直接在AF中注冊簡單描述符。 ### 在注冊完簡單描述符之后,就可以使用AF層的通信API來收發數據了。 <br/> <br/> ## **項目定制** * 如需項目定制開發,可掃碼添加項目經理好友(注明“**項目定制**”) * 定制范圍:**NB-IoT**、**CATn(4G)**、**WiFi**、**ZigBee**、**BLE Mesh**以及**STM32**、**嵌入式Linux**等IoT技術方案 * 善學坊官網:[www.sxf-iot.com](https://www.sxf-iot.com/) ![](https://img.kancloud.cn/ca/73/ca739f92cab220a3059378642e3bd502_430x430.png =200x) * 非項目定制**勿擾**,此處**非**技術支持
                  <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>

                              哎呀哎呀视频在线观看