求大神指点-ZSTACK 路由设备失去父节点后如何重新选择父节点
时间:10-02
整理:3721RD
点击:
ZSTACK 路由设备失去父节点后如何重新选择父节点:
协议栈使用的是 ZStack-CC2530-2.5.1a, 工程里边打开了NV_RESTORE
请问:如何在路由设备 丢失 父节点(也是路由设备)后,如何重新连接周边的路由设备作为新的父节点。
尝试过使用以下方法:
在发现与父节点失去联系后调用:
nwkNeighborInitTable();
ZDApp_SendMsg( ZDAppTaskID, ZDO_NWK_JOIN_REQ, sizeof(osal_event_hdr_t), NULL );
路由设备确实是已经重新入网,但是PANID,网络ID,父节点都没有变化。是不是开启了NV_RESTORE的原因,绕过了入网过程,直接的从NV里边恢复了网络?
zgWriteStartupOptions(ZG_STARTUP_SET, ZCD_STARTOPT_DEFAULT_NETWORK_STATE);
SystemResetSoft();
这种方法可以让路由设备重新入网,父节点也重新选择了,但PANID,网络ID也同样改变了。原因可能是因为我擦除了NV里边的数据,重启设备后,设备在NV里边没找到信息,重而进行了一次新的入网。所以三者都改变了。
但是实际应用中NV_RESTORE我一定要开着,因为我要保证设备断电重启后还要保持原来的网络状态,但是现在问题来了:
请问如何可以做到:在路由设备失去父节点后如何重新选择父节点, 而且PANID,网络ID不变,求各路兄弟,大神指点迷津,小弟不胜感激?
路由设备只有在第一次入网的时候会选择一个父设备,等入网以后就不依赖与父设备了,也不存在跟父设备断开这一说法。