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.

终端设备在其他信道、panid发送rejoin,多次断电重启后正常

实验环境:

zigbee网络panid=4035,11信道。

路由8AD3,42E3,F2AE等。问题终端528E。

测试过程:

上午发现终端528E离线,下午抓包发现该设备确实掉线,不再发送datarequest。

1.但终端528E重新上电后发现在14信道给8AD3,panid=4035,42E3发送rejoin,但一致不成功,(7241行)

2.但终端528E重新上电后发现在14信道给8AD3,panid=5DFF,         发送rejoin,但一致不成功,(7320行)

随后1.2还有发生,期间终端重上电了几次都这样(11信道没有抓到rejoin的数据包)。

3.直到有一次重启后,终端528E,正确加入父节点8AD3,11信道,panid=4035(8704行),只有便一切正常。该次重新上的时候的announce没有抓到当时在14信道,但切换到11信道时候发现终端已经正常入网8704行。

整个测试过程没有任何终端入退网,只是问题终端528E重启了几次。

请问:

问题终端528E为啥会在其他信道,其他panid,向父节点发出rejoin呢?并且多次重启都一样。直到有次重启后正确加入网络。从来没有见过这样的现象

  • 求大神帮我看看抓包文件啊,在新的模块上又再现了问题了,

  • 在其他信道发送beacon request是正常的,当设备跟父设备断开,并且在当前信道找不到原先网络的时候的,就会去其他信道搜网。

    因为该设备可能会认为协调器网络切换信道了。

    你也可以看下面的代码。

    #if defined ( ZIGBEE_FREQ_AGILITY )
    if ( !( ZDO_Config_Node_Descriptor.CapabilityFlags & CAPINFO_RCVR_ON_IDLE ) &&
    ( ret == ZSuccess ) && ( ++discRetries == 4 ) )
    {
    // For devices with RxOnWhenIdle equals to FALSE, any network channel
    // change will not be recieved. On these devices or routers that have
    // lost the network, an active scan shall be conducted on the Default
    // Channel list using the extended PANID to find the network. If the
    // extended PANID isn't found using the Default Channel list, an scan
    // should be completed using all channels.
    runtimeChannel = MAX_CHANNELS_24GHZ;
    }
    #endif // ZIGBEE_FREQ_AGILITY
    #if defined ( ZIGBEE_COMMISSIONING )
    if (startMode == MODE_REJOIN && scanCnt++ >= 5 )
    {
    // When ApsUseExtendedPanID is commissioned to a non zero value via
    // application specific means, the device shall conduct an active scan
    // on the Default Channel list and join the PAN with the same
    // ExtendedPanID. If the PAN is not found, an scan should be completed
    // on all channels.
    // When devices rejoin the network and the PAN is not found from
    runtimeChannel = MAX_CHANNELS_24GHZ;
    }
    #endif // ZIGBEE_COMMISSIONING
    #endif

  • 在其他信道发送beacon这是正常的。但抓包文件有在其他信道发送rejoin request这是正常的吗?

    找网1分钟找不到就休眠了,难道是时间还短吗?如何修改能快速找到呢?检修beacon的间隔吗》

  • rejion流程可以自己加判断的

    1. 先得到自己曾经加入的pand-id和信道,

    2. rejoin的时候信道自己控制,只在自己最后加入的信道里面发送beacon

    3. 在选择父节的时候,根据pan-id过滤即可