1. 程式人生 > >Method for Discovering Network Topology中文翻譯【Z-Stack Home 1.2.0開發文件】

Method for Discovering Network Topology中文翻譯【Z-Stack Home 1.2.0開發文件】

1.Purpose

本文描述了在任何給定的網路測定網路技術的方法,使用Z-Stack的 ZDO(Zigbee Device Object)層的API。在繼續之前請先閱讀ZStack Developer’s Guide和ZStack API文件。

2.Method

使用ZDP_IEEEAddrReq()方法,我們可以向PAN協調器傳送這個請求,因為協調器的短地址總是0x0000。ReqType引數應該設定為1,為了包含與協調性相關聯的裝置列表。如果裝置列表包含更多的裝置融合在一起,StartIndex引數將能夠被使用。

通過在應用程式級別註冊IEEE地址請求回撥(請看Z-stack Developer’s
Guide的ZDO Message Requests章節),它可以獲得相關裝置的列表包括自己的短地址,以及協調器的IEEE地址。NumAssocDev引數在IEEE 地址響應結構體代表與 協調器相關聯的裝置的編號。

一旦來自協調器的第一個列表返回,它可以重複上述的過程針對每一個列表中的短地址。通過對所有父母和孩子進行迭代,應用程式將能夠“繪製”整個網路的拓撲結構。

3.Example using Z-Tool

在樣例程式中,在圖片1中建立一個人為的網路,直觀的使用了Daintree Sensor Network Analyzer應用程式。在協調器中使用了NLME_PermitJoiningRequest()函式為了以這種方式強制網路的形成。通過設定NLME_PermitJoiningRequest引數為0x00,使用者能夠拒絕 相關的指定的路由器或者協調器中的 其他裝置。通過設定這個引數為0xFF 允許相關聯的裝置。

注意:在本例中使用NLME_PermitJoiningRequest是用來強制連線拓撲的,不是這個函式的通常的使用方式。NLME_PermitJoiningRequest函式被用來關閉協調器或任何路由器的關聯,應該用於允許和不允許新裝置連線網路。

第4節和第5節包含關於包的流動和ZDO IEEE地址響應包的資訊。
這裡寫圖片描述

在第2部分中描述的方法可以通過執行ZDO MT(Monitor Test)函式 使用z-tool(用於Z-Tool幫助,在Z-Tool選單中選擇Help)來演示。這些都是通過MT_ZDO_FUNC和MT_ZDO_CB_FUNC編譯選項(請看ZStack編譯選項檢視詳細資訊)。
這裡寫圖片描述


圖2展示了與協調員連線的z-tool例項的螢幕截圖。ZDO_IEEE_ADDR_REQ的ShortAddr引數設定為0,ReqType設定為EXTENDED,StartIndex設定為0。然後在z-tool中顯示響應,我們看到,協調器有一個與之相關的裝置,短地址=0xFAA6(AssocDevList: 0xFAA6)。

ZDO_IEEE_ADDR_REQ被髮布到短地址0xFAA6,我們看到路由器有一個與之關聯的裝置,短地址=0xB922 (請看圖片3).。
這裡寫圖片描述
ZDO_IEEE_ADDR_REQ也可以被髮送到短地址0xB922,使用者會看到沒有任何裝置與之關聯。因此,在最後,裝置發現過程是經過推論的。

4.Sequence Diagrams

這裡寫圖片描述
圖4展示了 ZDO_IEEE_ADDR_REQ呼叫鏈在裝置樹的左手邊,對應的ZDO_IEEE_ADDR_RSP呼叫 在右手邊。

5.Packet Details

圖片5展示了 在這些傳輸過程中的 OTA(over the air)資料包,圖6顯示了由Daintree解碼的ZDO IEEE地址響應資料包的一個快照,以顯示路由器0xFAA6的相關裝置列表。
這裡寫圖片描述
這裡寫圖片描述