1,问题描述:
我搭建了一个Mesh路由网络,网络中包含设备:1个协调器,20几个路由器节点,没有终端节点。
由于在Mesh网络中,如果协调器掉电,路由器会重新维护该原来的网络,协调器上电后网络的PANID会加1,所以为了不让协调器建立新的网络,还能加入到原来的网络,所以协调器和路由器都加入了NV_INIT和NV_RESTORE配置。
但是这样就在测试的时候出现了一个问题就是:如果路由器A通过路由器B加入到网络,路由器B是A的父亲节点,这个时候路由器B掉电了,路由器A不会去选择新的父亲节点加入网络,还是自己维护自己的网络,这个时候协调器存储的路由表还是经过路由B才能发送数据给A路由节点。但是协调器点播数据给A路由出现A路由收不到数据的情况。
请问:如何在都开启NV_INIT和NV_RESTORE保障整个网络稳定的条件下,路由器A即是他的父亲节点路由掉线了,他还会去选择其他的路由节点作为父亲节点,并且协调器更新网络中所有节点的路由表信息,这样即是任意的一个路由节点掉线了还是可以点播数据给网络中的任意一个路由节点的。
并且还是可以实现路由的自愈能力和自主多跳的功能。
现在协调器的INT_HEAP_LEN=2048
路由节点的INT_HEAP_LEN=3027
求大神指点下解决的方法,谢谢!!!!