This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

关于zigbee 网络拓扑信息读取

Expert 1480 points

Other Parts Discussed in Thread: CC2538, Z-STACK

请问:

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函数?