我在做一个被动红外探测器,目标是为了实现深度睡眠,可是在执行退网操作之后,尝试重新入网,有时候能重新入网成功,有时候尝试很多遍就是没法再次入网。但是只要先把电池拔出来再重新上电,那么设备入网就特别顺利。有没有什么好方法在不断电的情况下退网之后还能顺利的重新入网?
下面的退网代码有啥问题吗?
void BasicResetCB( void )
{
NLME_LeaveReq_t leaveReq;
// Set every field to 0
osal_memset( &leaveReq, 0, sizeof( NLME_LeaveReq_t ) );
// This will enable the device to rejoin the network after reset.
leaveReq.rejoin = TRUE;
// Set the NV startup option to force a "new" join.
zgWriteStartupOptions( ZG_STARTUP_SET, ZCD_STARTOPT_DEFAULT_NETWORK_STATE );
// Leave the network, and reset afterwards
if ( NLME_LeaveReq( &leaveReq ) != ZSuccess )
{
// Couldn't send out leave; prepare to reset anyway
ZDApp_LeaveReset( FALSE );
}
}