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.

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函数没有被调用。导致无法找到父节点信息。