ZigBee路由節點在沒有入網的情況下處理遊離狀態,此時不能用來做數據跳轉,其實,路由節點也是可以創建網絡的,只是創建的網絡是一個分佈式網絡,這就是和協調器不同的地方, 在這裏不對分佈式網絡進行探討。ZigBee路由節點只有在加入協調器創建的網絡才能體現出它的價值,當然路由節點可以通過其他路由節點加入到網絡中,也就是說,路由節點的父節點不一定是協調器,可以是其他的路由節點。路由最大的特點就是可以把數據信息跳轉,直到目的設備爲止。
Silabs 路由器
一般使用配置文件配置爲路由設備類型,路由設備可以幫其他節點轉發數據到目的地,這裏主要是描述一般情況下路由設備開發過程當中需要注意的地方。
- 路由設備輸入命令加入一個網絡
1.1、加入一個指定的網絡
HA:network join channel power panid
Network join 12 8 12
3.0:
1.2、加入一個不指定的網絡
HA:network find joinable
3.0:plugin network-steering start 1(1代表是集中式網絡,0代表是分佈式網絡)
- 路由設備調用函數加入一個網絡
2.1、調用函數加入一個指定的網絡
填充結構體networkParams即可調用下面的函數
status = emberAfJoinNetwork(&networkParams);
2.2、調用函數加入一個不指定的網絡
EmberStatus status = emberAfStartSearchForJoinableNetwork();
- 讀取路由設備的EUI地址
emberGetEui64();
- 讀取網絡信息
EmberNodeId emberGetNodeId(void);
- 讀取設備ID
自定義實現。
- 路由設備與網絡信息
6.1、加入網絡後保持網絡信息,確保重新上電網絡ID不變(就是把數據存到EEPROM裏面)
見協調器章節最後又說明,類似操作。
6.2、加入網絡後不保持網絡信息,重新上電網絡ID可能會改變
對於這個問題完全可以通過應用程序進行解決。
6.3、小結
對於路由節點,到底該不該保持網絡數據,其實這種的話完全可以根據具體項目進行選擇,不過如果想做大量、通用的,建議是不保持網絡信息。
- 路由設備的應用就是數據的採集或者處理
數據採集、協議轉換、數據處理等等都有可能涉及到。