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的相关设备列表。

Method for Discovering Network Topology中文翻译【Z-Stack Home 1.2.0开发文档】相关推荐

  1. Z-Stack Home Developer's Guide—2. Overview中文翻译【Z-Stack Home 1.2.0开发文档】

    下面是Z-Stack Home 1.2.0开发资料中的Z-Stack Home Developer's Guide-2. Overview的中文翻译 2.1 简介 这章节将介绍 Z-Stack协议栈的 ...

  2. Z-Stack Home Developer's Guide—5. Compilation Flags中文翻译【Z-Stack Home 1.2.0开发文档】

    5. 编译标志 5.1强制的编译标志 在所有设备中都必须使用以下编译标志.编译 标志(也叫做选项)能够生效 在f8wConfig.cfg文件使用 -D 符号,或者在编译器的预定义常量部分中(也成为命令 ...

  3. 6个步骤,建立一个哥特之国Gothland莱比锡哥特节Wave-Gotik-Treffen哥特The Network State中文翻译网络国家+web3.0社区+DAO社区+NFT元宇宙+个人主权

    6个步骤,建立一个网络哥特之国Gothland# 2.0 从今以后,别再过你应该过的人生,去过你想过的人生吧!--梭罗 建立一个新型网络哥特之国的6个步骤: 1. 建立了一个哥特社群. 2. 创建一个 ...

  4. Z-Stack Home Developer's Guide—6. Clusters, Commands and Attributes中文翻译【Z-Stack Home 1.2.0的开发文档】

    这篇文章将翻译Z-Stack Home Developer's Guide开发文档中的6. Clusters, Commands and Attributes部分,在Z-Stack中Cluster.C ...

  5. android 中文开发文档

    android 中文开发文档 ,请点击一下连接,学习官方开发文档 https://developer.android.google.cn/training/basics/firstapp

  6. 个人主权中文版pdf下载1.8 The Sovereign Individual+The Network State中文翻译网络国家+web3.0社区+DAO社区+NFT元宇宙+数字游民+移民润学

    <主权个人>(The Sovereign Individual) 作者:詹姆斯·戴尔·戴维森(James Dale Davidson)/ 威廉·里兹-莫格(William Rees-Mog ...

  7. Z-Stack Home Developer's Guide—7.EZ-Mode中文翻译【Z-Stack Home 1.2.0的开发文档】

    7. EZ-Mode EZ-Mode提供了两个设备正常交流的能力,无论这个2个设备是否在zigbee网络中.它包括网络控制.网络发现和网络绑定.EZ-Mode有如下特性: 网络控制 - 找到第一个开放 ...

  8. nginx-php类似nginx-lua的扩展,nginx-php中文开发文档

    2020年6月2日10:19:03 github:https://github.com/rryqszq4/ngx_php7 php5的版本 https://github.com/rryqszq4/ng ...

  9. python3.8.1中文开发文档

    ​​​​​ 内置类型 以下部分描述了解释器中内置的标准类型. 主要内置类型有数字.序列.映射.类.实例和异常. 有些多项集类是可变的. 它们用于添加.移除或重排其成员的方法将原地执行,并不返回特定的项 ...

最新文章

  1. 分享:python,限制任意函数,线程的执行时间或根据条件终止.
  2. 修改PHP session 默认时间方法
  3. 只用位运算不用算术运算实现
  4. 2019第十届蓝桥杯C/C++ B组省赛 —— 第四题:数的分解
  5. 轩逸车联网功能怎么用_手机上面的NFC功能怎么用的
  6. jsf表单验证_JSF:在正确的阶段进行验证(了解生命周期)
  7. 安卓JNI开发-01
  8. Java 算法 单词接龙
  9. restTemplate配置及使用
  10. GPU:上的了AI,下的了游戏 | 简谈计算机图形学、深度学习与硬件的“三角关系“
  11. JS--对象的特性之一---继承性
  12. java调用短信接口使用实例
  13. Python实现(百度地图API)地理编码与逆地理编码
  14. 在Mac上安装SoapUI
  15. 超详细|一篇搞定操作系统——文件管理
  16. html分行分列代码,表格内如何强制换行 选中单元格后,点击数据中的分列
  17. CSDN里的文章去广告、打印成PDF__小胡亲测
  18. python塔防之------“红精灵来袭”
  19. 华为2288服务器不显示BIOS,设置BIOS - RH2288 V3 服务器 V100R003 用户指南 38 - 华为
  20. Java基础之网络编程

热门文章

  1. java初始化虚拟机错误_VM初始化期间发生错误;无法为对象堆保留足够的空间;无法创建Java虚拟机...
  2. 给 python 初学者的四条忠告_给 python 初学者的四条忠告-Go语言中文社区
  3. qq浏览器打开word 技术原理_知道为什么计算机可以上网的同时,可以写word还可以听歌吗?...
  4. python客户价值分析_航空公司客户价值分析实例
  5. BootStrapStudio文档阅读笔记-Getting Started Guide解析
  6. Java文档阅读笔记-JPA中getOne()和findById的区别
  7. Apache HttpComponents在App里访问HTTP服务
  8. Qt5.7+Opencv2.4.9人脸识别(一)项目介绍
  9. 4.2串的表示和实现
  10. Python实现HTTP服务器(三)线程、进程、协程实现多任务