繫結確認過程

2021-06-13 17:57:25 字數 1228 閱讀 6180

注1:本文以zstack-cc2530-2.3.1-1.4.0裡的collector-sensor為例。

感測節點傳送網路,並且加入網路後,就會進入my_find_collector_evt事件,注意事件的位運算操作,my_find_collector_evt屬於zb_user_events事件中的一種。按如下的流程:zb_handleosalevent( )--zb_binddevice(),在zb_binddevice()函式裡,會執行如下**:

if ( ret == zb_success )

{// set a timer to make sure bind completes

#if ( zg_build_rtr_type )

osal_start_timerex(sapi_taskid, zb_bind_timer, aib_maxbindingtime);

#else

// aib_maxbindingtime is not defined for an end device

osal_start_timerex(sapi_taskid, zb_bind_timer, zgapsdefaultmaxbindingtime);

#endif

sapi_bindinprogress = commandid;

return; // dont send cback event

一、繫結不成功

感測節點將繫結請求資訊(匹配描述符請求資訊)傳送給採聚節點後,就會等待採聚節點發過來匹配描述符響應事件,如果繫結不成功(原因很多,比如採聚節點沒有開啟允許繫結,採聚節點沒有匹配端點),則感測節點收不到匹配描述符響應事件,經過zgapsdefaultmaxbindingtime段時間後,感測節點就會執行zb_bind_timer事件。依次經過如下流程:sapi_bindconfirm--zb_bindconfirm,在zb_bindconfirm函式裡,有如下**

void zb_bindconfirm( uint16 commandid, uint8 status ){

(void)commandid;

上面程式會進入else分支,這樣又會再次傳送my_find_collector_evt,在my_find_collector_evt裡,會進入繫結,這樣就進入乙個不斷傳送繫結請求的迴圈。

二、繫結成功

void zb_bindconfirm( uint16 commandid, uint8 status ){

(void)commandid;

確認過眼神,遇上IT人

突發感想寫點東西,不是為培訓出來的人正名的,只是 想以乙個剛培訓出來的人的身份說說感受。說說培訓的初衷 自學,說實話,怕自己自制力不夠,而且也容易學著學著丟了方向。選擇培訓能夠讓自己比較專注高效的學習。主要是有人規劃方向,學畢竟是靠自己去理解去敲 的。萬事開頭難,只是想讓入行 系統一點。培訓帶來的,...

確認過眼神,看清 HTTP 協議

在了解http之前,我們需要了解什麼是網路通訊模型 也就是我們常說的 osi 模型 osi 模型是對網路中資料是如何被傳送和接收的乙個具象化的展示,如下圖展示 在 osi 中我們所處在最頂層,我們所有的網路的行為,資料的傳遞都是從頂至下然後在從下至頂完成一次傳遞的。每一層都會有對應的一些協議,協議就...

確認過眼神,你是喜歡Stream的人

摘要 在學習node的過程中,stream流是常用的東東,在了解怎麼使用它的同時,我們應該要深入了解它的具體實現。今天的主要帶大家來寫一寫可讀流的具體實現,就過來,就過來,上碼啦!初始化引數 開啟檔案 讀取檔案 結束,關閉檔案 var readstream require readstream.js...