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.

求大神指点--ZSTACK 路由设备失去父节点后如何重新选择父节点

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不变,求各路兄弟,大神指点迷津,小弟不胜感激???