Other Parts Discussed in Thread: CC2530
本人在开发CC2530 ZigBee程序的时候,遇到这样的问题:
路由设备和终端设备加入到协调器,然后协调器断电了,终端设备掉线并且重新加入到路由器。
协调器重新上电后,不能发送命令给终端。
分析原因是:因为终端从路由器节点重新加入网络,终端设备就不再向协调器发送data request,而是向路由器发送data request, 由于协调器认为终端设备还是它的子节点,并且接收不到终端设备的data request,所以就导致协调器不能给终端设备发送命令了。
我做了实验,把协调器的AssociatedDevList的终端设备的那一项清除,协调器就可以向终端发出命令了。
现在有一个难题,协调器重启后不知道原先加入到它节点的终端设备是否已经掉线并且重新加入到路由器下面了,如果终端设备还没掉线并加入到路由器下面,贸然删除协调器的AssociatedDevList的项也会导致协调器的命令发送不出去。
请问各位大神,出现这种情况的时候,如何正确更新AssociatedDevList表和路由表?