zigbee终端掉线无法回到网络
zigbee终端设备运行一段时间后掉线无法回到网络中,通过串口输出信息观察到终端调用NLME_NetworkDiscoveryRequest进行发现网络,ret返回为0,然后ZDO_NetworkDiscoveryConfirmCB启动ZDO_NWK_DISC_CNF,在该时间中发现nwkStatus为1,。使用抓包工具发现没有发现终端设备发送的beacon request。
设备不断的在NLME_NetworkDiscoveryRequest,就是回不到网络。
在void ZDApp_ProcessOSALMsg( osal_event_hdr_t *msgPtr )处理ZDO_NWK_DISC_CNF消息时,
if ( ( (pChosenNwk = ZDApp_NwkDescListProcessing()) != NULL ) && (zdoDiscCounter > NUM_DISC_ATTEMPTS) )
{
ZDApp_NwkDescListProcessing返回的是多少?
如果这个时候把终端设备重新复位下,能够加进去吗?
试着修改下,下面的代码
void ZDApp_NetworkInit( uint16 delay )
{
+ if ( devStartMode == MODE_REJOIN )
+ {
+ _tmpRejoinState = true;
+ }
if ( delay )
{
// Wait awhile before starting the device
osal_start_timerEx( ZDAppTaskID, ZDO_NETWORK_INIT, delay );
}
else
{
osal_set_event( ZDAppTaskID, ZDO_NETWORK_INIT );
}
}
感谢VV回复,我用的是ZHA 1.2.2A协议栈,在void ZDApp_ProcessOSALMsg( osal_event_hdr_t *msgPtr )处理ZDO_NWK_DISC_CNF消息时,ZDApp_NwkDescListProcessing返回为NULL,如果设备复位的话可以重新回到网络。
在ZDApp_NetworkInit中已经添加这段代码。
问题就卡在设备无法发出beacon request。ZDO_beaconNotifyIndCB函数没有被调用。导致无法找到父节点信息。