zigbee綁定機制的代碼體現————SimpleApp爲例

最近在研究zigbee的綁定機制,但是看了很多資料始終不明白綁定機制的具體體現,即zigbee協議棧什麼時候開始執行了綁定?這裏以SimpleApp爲例介紹下zigbee的綁定過程;個人購買的傳感器節點,其下載安裝了zstack協議棧之後,執行SimpleApp的demo,根據賣家提供的說明文檔,下載協調器程序的節點(這裏稱爲A節點)需要按鍵兩次,而下載了sensor程序的節點(這裏稱爲B節點)需要按鍵一次,該SimpleApp程序才能正常運行了!這裏爲什麼需要按鍵呢?按鍵的作用又何在呢??打開A節點的程序代碼,找到SimpleCollector.c文件,找到該文件的void zb_HandleKeys( uint8 shift, uint8 keys )函數,該函數的內部有下列代碼:


對於A節點而言,第一次按鍵是組網(具體分析見之前的博客),即A節點第一次按鍵執行上述代碼。而A節點有兩次按鍵,第二次按鍵則執行了如下的代碼,該代碼根據函數名的意思就可以知道是允許綁定;


同理的,對於B節點而言,打開文件SimpleSensor.c文件,找到下列語句:可知對於B節點而言,按鍵一次,該節點是作爲終端設備啓動的;



當B節點作爲EndDevice成功啓動後,協議棧會自動調用下述函數:


從這裏,我們可以看出,B節點啓動了定時綁定A節點(也就是協調器,這裏是Collector)的任務。






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章