关于zigbee 网络拓扑信息读取
时间:10-02
整理:3721RD
点击:
请问:
Z-Stack Home 1.2.2a.44539 ,CC2538 协调器ZNP, 3个路由节点 CC2538单片。
参考 CC2538-znp-host-framework 用zdoMgmtLqiReq() 从协调器中读取网络拓扑信息。发现3个节点第一次入网后可以正常读取拓扑信息包括设备类型,网络地址,IEEEaddr,。
但是将节点断电后重新上电,入网后,再读取拓扑信息,发现读取网络地址的是老的信息,有两个设备对应的IEEEaddr 值为 -1, 但是实际上这两个设备已经被协调器分配了新的网络地址,并且在已经加入网络(通过发广播信息,可以正常回复)。为什么拓扑信息不正确呢? 协调器不是自动管理入网设备并添加到网络设备表中吗?zdoMgmtLqiReq() 直接读取协调器网络表中信息不对吗? 请问如何解决这个问题。
有时候间隔几秒后多次重读zdoMgmtLqiReq() 可以读到节点的新网络地址,但是 IEEEAddr = 0, 按理说入网后的设备,被记录在网络表里面,短时间多次读数据 应该是一致的,好像在不停的变化。
如果没有开启Nv_RESTORE的话,每次断电后,重新上电后会重新加网,如果父设备是新的设备的话,段地址也会变。
你是怎么获取网络地址的?用了什么API函数?