ZigBee HA示例程式分析

2022-04-16 10:39:28 字數 1230 閱讀 4608

zigbee協議棧中自帶的homeautomation例程,雖然也是操作燈泡,但是,是通過zcl來統一處理的,符合ha profile規範,互連互操作性較好。下面就簡要分析以下zcl的使用。

在任務陣列中,多定義了zcl層。

technorati 標籤: zigbee ha 示例程式

//

osal_samplesw.c

const ptaskeventhandlerfn tasksarr =;

既然是zcl的事件迴圈,那就肯定有zcl的初始化函式如下:

//

zcl.c

void

zcl_init( uint8 task_id )

zcl層僅僅是指定乙個任務號,初始化zcl的一些全域性變數。

要符合ha規範,那麼,在填充本地端點描述符時,就要符合相應的要求。其中最重要的是這句話

epdesc->task_id = &zcl_taskid;   // all messages get sent to zcl first

這表明,符合ha profile規範的裝置,在接收資料時,首先會經過zcl層的處理。

對於一些常用的命令,zcl已經繫結好命令與其響應**函式的關係,在通用族庫裡面已經定義好。

每乙個簇包含簇id和對應的屬性。

處理收到的資料報zcl_incoming_msg:

zclsamplesw_processincomingmsg,通過commandid來進行不同的處理。

處理zdo的訊息函式zdo_cb_msg:

給任務指定end_device_bind_rsp 和match_desc_rsp 的響應。

zdo_registerforzdomsg( zclsamplesw_taskid, end_device_bind_rsp );

zdo_registerforzdomsg( zclsamplesw_taskid, match_desc_rsp )

zclsamplesw_processzdomsgs,該函式處理在初始化時繫結的zdo訊息請求與響應函式。

處理鍵盤的響應函式key_change:

zclsamplesw_handlekeys

sw_1按鍵:按下會傳送乙個切換燈狀態的命令

sw_2按鍵: 啟動終端裝置繫結請求,zdp_enddevicebindreq 

sw_4按鍵:協調器按下sw_4,允許繫結請求。zdp_matchdescreq

EXT JS 6示例程式 Login示例程式

1.用sencha cmd生成應用程式模版 2.建立login view元件 資料夾下,有預設的 main 資料夾,這個資料夾包含了檔案main.js,maincontroller.js,和 mainmodel.js 資料夾下建立乙個資料夾 login 在 login 資料夾下,新建兩個檔案 log...

UDP Socket示例程式

通常我們涉及到的網路程式設計,也稱為socket程式設計,多數是tcp和udp協議的程式設計,二者最大的區別就是 1.tcp是可靠的傳輸,需要三次握手建立連線再傳資料,而udp是無連線的,即使沒有接收方,也可以乙個勁往乙個位址發資料,所以說是不可靠的傳輸模式。2.tcp是基於流模式的,udp是基於資...

爬蟲示例程式

importrequests frombs4importbeautifulsoup try importxml.etree.celementtreeaset exceptimporterror importxml.etree.elementtreeaset base url response req...