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地址响应包的信息。
Method for Discovering Network Topology中文翻译【Z-Stack Home 1.2.0开发文档】_第1张图片

在第2部分中描述的方法可以通过执行ZDO MT(Monitor Test)函数 使用z-tool(用于Z-Tool帮助,在Z-Tool菜单中选择Help)来演示。这些都是通过MT_ZDO_FUNC和MT_ZDO_CB_FUNC编译选项(请看ZStack编译选项查看详细信息)。
Method for Discovering Network Topology中文翻译【Z-Stack Home 1.2.0开发文档】_第2张图片
图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).。
Method for Discovering Network Topology中文翻译【Z-Stack Home 1.2.0开发文档】_第3张图片
ZDO_IEEE_ADDR_REQ也可以被发送到短地址0xB922,用户会看到没有任何设备与之关联。因此,在最后,设备发现过程是经过推论的。

4.Sequence Diagrams

Method for Discovering Network Topology中文翻译【Z-Stack Home 1.2.0开发文档】_第4张图片
图4展示了 ZDO_IEEE_ADDR_REQ调用链在设备树的左手边,对应的ZDO_IEEE_ADDR_RSP调用 在右手边。

5.Packet Details

图片5展示了 在这些传输过程中的 OTA(over the air)数据包,图6显示了由Daintree解码的ZDO IEEE地址响应数据包的一个快照,以显示路由器0xFAA6的相关设备列表。
这里写图片描述
Method for Discovering Network Topology中文翻译【Z-Stack Home 1.2.0开发文档】_第5张图片

你可能感兴趣的:(【Z-Stack开发】)