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

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                >[success] 導師視頻講解:[去聽課](https://www.bilibili.com/video/BV1k34y1D7Vz/) >[success] **技術支持說明:** >**1**.一般以自主學習為主 > **2**.可到官方問答社區中提問:[**去提問**](https://bbs.csdn.net/forums/zigbee) > **3**.工程師**會盡快**解答社區問題,但他們是一線開發,【**難以保證**】解答時效,解答辛苦,感謝理解! <br/> 在ZCL通信過程章節中,筆者舉了一個網關(協調器)和智能插座(終端或路由器)的例子,下面基于該例子介紹ZCL 命令收發API。 <br/> ## **發送命令API** 前文提及到的On/Off命令是一個Cluster限定命令,在On/Off Cluster中。On/Off Cluster中還包含其他的命令,例如Toggle(反轉狀態)。可以調用專門的API來使用命令。打開Profile文件夾,可以找到zcl\_general.h文件,如下圖所示。 ![](https://img.kancloud.cn/b7/42/b742c2796ff82183e2a5c3c840f2bea7_264x440.png =200x) ### 在zcl\_general.h文件中可以找如下3個API: ``` #ifdef ZCL_ON_OFF /* * Send an On Off Command - COMMAND_ONOFF_OFF * Use like: * ZStatus_t zclGeneral_SendOnOff_CmdOff( uint16 srcEP, afAddrType_t *dstAddr, uint8 disableDefaultRsp, uint8 seqNum ); */ #define zclGeneral_SendOnOff_CmdOff(a,b,c,d) zcl_SendCommand( (a), (b), ZCL_CLUSTER_ID_GEN_ON_OFF, COMMAND_OFF, TRUE, ZCL_FRAME_CLIENT_SERVER_DIR, (c), 0, (d), 0, NULL ) /* * Send an On Off Command - COMMAND_ONOFF_ON * Use like: * ZStatus_t zclGeneral_SendOnOff_CmdOn( uint16 srcEP, afAddrType_t *dstAddr, uint8 disableDefaultRsp, uint8 seqNum ); */ #define zclGeneral_SendOnOff_CmdOn(a,b,c,d) zcl_SendCommand( (a), (b), ZCL_CLUSTER_ID_GEN_ON_OFF, COMMAND_ON, TRUE, ZCL_FRAME_CLIENT_SERVER_DIR, (c), 0, (d), 0, NULL ) /* * Send an On Off Command - COMMAND_ONOFF_TOGGLE * Use like: * ZStatus_t zclGeneral_SendOnOff_CmdToggle( uint16 srcEP, afAddrType_t *dstAddr, uint8 disableDefaultRsp, uint8 seqNum ); */ #define zclGeneral_SendOnOff_CmdToggle(a,b,c,d) zcl_SendCommand( (a), (b), ZCL_CLUSTER_ID_GEN_ON_OFF, COMMAND_TOGGLE, TRUE, ZCL_FRAME_CLIENT_SERVER_DIR, (c), 0, (d), 0, NULL ) ``` ### 這3個API分別實現了發送關閉、打開和反轉狀態命令。它們均是使用#define來定義,并且最終是調用zcl\_SendCommand函數來發送命令的。zcl_SendCommand函數的定義如下: ### ``` extern?ZStatus_t?zcl_SendCommand( uint8?srcEP,//源端點,發送者的端點號 afAddrType_t?*dstAddr,//目標設備地址 uint16?clusterID,?uint8?cmd,//Cluster ID和命令 uint8?specific,//是否為屬性關聯命令 uint8?direction,//通信方向 uint8?disableDefaultRsp,//是否關閉默認響應(目標設備的響應) uint16?manuCode,//manu code uint8?seqNum,//數據包標識號,由開發者自定義 uint16?cmdFormatLen,//命令格式長度 uint8?*cmdFormat//命令格式 ); ``` ### 以zclGeneral\_SendOnOff\_CmdOff為例子展開簡介一下其對zcl\_SendCommand的調用,代碼如下: ``` zcl_SendCommand( (a), (b), ZCL_CLUSTER_ID_GEN_ON_OFF,//Cluster ID COMMAND_OFF,//待發送命令為關閉命令 TRUE,//TRUE表示屬性關聯命令 ZCL_FRAME_CLIENT_SERVER_DIR,//表示通信方向為從Client到Server (c), 0,//manu code為0 (d), 0,//命令格式長度為0 NULL)//命令格式為空 ``` 通常,開發者調用基于zcl\_SendCommand封裝出來的各種命令發送API即可,例如上述的3個命令發送API。 <br/> ## **接收命令** 接收On/Off命令的方法比較簡單,只需要在ZCL命令處理函數列表zclSampleSw\_CmdCallbacks的對應位置添加命令處理函數即可實現命令的接收和處理了。下節課將結合具體案例進行講解。 <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>

                              哎呀哎呀视频在线观看