Part Number: CC1352R
Hi,
If the ZR_SILENT_REJOIN is FALSE, then the router someimes loses the newtork information after rebooting.
It is easier to reproduce the issue, when ZC is off.
Why could it hapen?
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.
Part Number: CC1352R
Hi,
If the ZR_SILENT_REJOIN is FALSE, then the router someimes loses the newtork information after rebooting.
It is easier to reproduce the issue, when ZC is off.
Why could it hapen?
Hi Alex,
When ZR_SILENT_REJOIN is FALSE then the ZR follows a similar rejoin procedure to the ZED. This means that if the network is unresponsive then the ZR will leave the network, erase its NV memory, and search for a new network to join. You could try to further manipulate the rejoin behavior from zd_app.c and zd_object.c
Regards,
Ryan
hi, thanks, but it is a bit unclear.
Why should ZR leave the network if ZC is unresponsive? For example, we have a network with ZC and ZR. They are paired and work fine. One day we turn off the ZC and reboot ZR. And ZR doesn't see ZC after restart and leave the network? Then we turn on the ZC and expect to see the working network, but they are unpaired already. It doesn't make sense. ZC may be unresposive in some ocasional cases, why ZR leaves? Clarify please.
It may be that ZC and ZR are placed on different floors and have different power supplies and turned off or rebooted asynchronously. How to avoid the leaving?
Since zgRouterSilentRejoin is FALSE, devStartMode is MODE_REJOIN which means the ZDApp changes states to DEV_NWK_DISC from the zd_object.c ZDO_StartDevice. Inside ZDO_NWK_DISC_CNF from zd_app.c, the device will attempt bdb_rejoinNwk which will fail since the ZC is off. Since bdb_nwkDiscoveryAttempt has parameter didSuccess=FALSE, bdb_reportCommissioningState(BDB_COMMISSIONING_STATE_JOINING, FALSE) is entered. This in turn clears all NV memory and resets the device as factory new from the bdb.c file. Thus you can either set ZR_SILENT_REJOIN to TRUE or modify the code flow shown to perform a custom design, perhaps implementing a delay followed by soft resetting (without the factory new settings) to try joining again if the ZC currently cannot be found.
Regards,
Ryan