1.支援的裝置數,關鍵巨集:nwk_max_devices
nwk_max_devices 定義了關聯表的最大裝置數,包含了乙個父節點和 nwk_max_device_list 個子節點。
關聯表:associateddevlist[ ] :所有入網的裝置(enddevice和router)都會儲存在這裡面。nwk_max_devices 每增加1,會占用28位元組的ram。關聯表需要定期維護,刪除不在網路中的裝置,否則關聯表滿了之後,就無法再增加裝置
nwk_max_device_list :支援直連的子節點數。
nwk_max_routers :從字面意思看,是支援直連的router數。但是,這樣理解你就掉坑了!!!新協議棧,這個巨集是無用的!!!
在研究深度和廣度的過程中,還有像:max_node_depth、cskiprtrs、cskipchldrn,這些,都是被遺棄的,沒有用了。新的協議棧,支援裝置數就是nwk_max_devices
,只有限定ed和router的總數。
**:
5.1、關聯表的定義
在 nwk_globals.c 檔案中有對關聯表的定義,**如下:
#if defined(rtr_nwk)
// statically defined associated device list
associated_devices_t associateddevlist[nwk_max_devices];
#endif
5.2、關聯表的結構
在 assoclist.h 檔案中有對關聯表結構 associated_devices_t 的定義,**如下:
typedef struct
associated_devices_t;
devstatus 可以設定為以下的值
#define dev_link_status 0x01 // link is in-active ? 活動聯接
#define dev_link_repair 0x02 // link repair in progress ?正在修復聯接
#define dev_sec_init_status 0x04 // security init 初後的安全
#define dev_sec_auth_status 0x08 // security authenticated 驗正過的安全
noderelation 可以設定為以下的值
// node relations
#define parent 0//父節點 一般指協調器
#define child_rfd 1//簡功能節點 一般指終端
#define child_rfd_rx_idle 2//簡功能節點(空閉進 rf 接收開啟) 一般指終端
#define child_ffd 3//全功能節點 一般指路由器
#define child_ffd_rx_idle 4//全功能節點(空閉進 rf 接收開啟) 一般指路由器
#define neighbor 5//鄰居裝置
#define other 6//其它裝置
#define notused 0xff //沒有使用
在 zcomdef.h 檔案中有對 linkinfo_t 的定義,**如下:
typedef struct
linkinfo_t;
5.3、關聯表記錄的檢視
可以直接從 associateddevlist[nwk_max_devices]陣列中檢視關聯裝置的資訊,比如:
for (uint8 x=0;x}}
if(i < z_extaddr_len)else
關聯表是用來儲存父子裝置的
鄰居表用來儲存鄰居裝置
zigbee協議棧 端點
端點的意義 從應用角度看,通訊的本質就是端點到端點的連線 例如,乙個帶開關元件的裝置與帶乙個或多個燈元件的遠端裝置進行通訊,目的是將這些燈點亮 端點的實現 端點之間的通訊是通過稱之為簇的資料結構實現的。這些簇是應用物件之間共享資訊所需的全部屬性的容器,在特殊應用中使用的簇在模板中有定義。所有端點都使...
ZigBee協議棧解析
zigbee技術是物聯網領域最常用的無線技術之一,如果我們要做基於zigbee技術的物聯網應用,最好對zigbee協議棧有乙個基本的了解。這篇文章對zigbee協議棧做乙個簡單明瞭的介紹。概述本文準備介紹的zigbee協議棧是zigbee2007,也是目前業界最常用的標準版本,對於zigbee協議棧...
ZigBee模組 zigbee協議棧網路管理
zigbee協議棧網路管理 一 補充基礎知識 每個cc2530晶元出廠時候都有乙個全球唯一的32位 mac位址,當裝置連入網路的時候,每個裝置都能獲得由協調器分配的 16位短位址,協調器預設位址 0x0000 很多時候網路就是通過短位址進行管理。二 實驗現象 路由器 裝置終端傳送自己定義的裝置號給協...