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