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.

定义NV_RESTORE断网后重连失败

1,节点与协调器都定义NV_RESTORE,待节点连接上协调器,协调器开启NLME_PermitJoiningRequest(0)。

2,将协调器断电一段时间(几个小时)再上电,有些节点(感觉信号不太哈)就连接不上协调器了,这时候需要重启节点或者协调器开启NLME_PermitJoiningRequest(0xff)才可以重新入网。

我没有抓包文件,以上问题在一些论坛上见到过网友有相似的情况发生,他是这么描述的:

信号不好的节点发送Oprah后就一直发送beacon,可是掉线节点是rejoin,通过修改ZDO层的函数修复了此问题。

怎么解决?

  • 我也有掉线重新连接不上的问题,显示orphan请求后来是rejoin,但依旧连接不上

  • 如果协调器开始协调器开启NLME_PermitJoiningRequest(0xff)运行入网,掉线的设备才能重新入网,这个时候设备都已经是重新组网了,而不是回复原来的网络了。

    我也有发现这样的问题,

    开始是正常掉线,一直重连也连不上(不一定什么时候还有可能加回来),有更严重的就是只能重新入网了而不是恢复。

  • I asked in e2e before, and it may help.

    http://e2e.ti.com/support/wireless_connectivity/zigbee_6lowpan_802-15-4_mac/f/158/p/208581/1340192#1340192

  • 哪个帖子回复的就是网络初始化时候加上

    if ( devStartMode == MODE_REJOIN )

    +  {
    +    _tmpRejoinState = true;
    +  }
    但是,若掉线重连或者重新上电,开始模式是resume模式呀,在尝试组网失败后会变成rejoin模式同时设置了_tmpRejoinState = true;
    所以哪个标志位没有问题呀
  • 若是存在父节点,最开始都是resume模式,执行到这里尝试1次后切换成rejoin模式,已经把哪个标志位置位了,之后执行初始化网络函数的。所以没有必要加那段代码吧?并没有起到作用吧?

    if ( devStartMode == MODE_RESUME )
    {
    if ( ++retryCnt <= MAX_RESUME_RETRY )
    {
    if ( _NIB.nwkPanId == 0xFFFF || _NIB.nwkPanId == INVALID_PAN_ID )
    devStartMode = MODE_JOIN;
    else
    {
    devStartMode = MODE_REJOIN;
    _tmpRejoinState = true;
    }
    }

  • 我看网上说的修改ZDAPP.c 解决了:

    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 );
    }
    }

  • 最近碰到一个新问题,有些节点会删除自己的网络信息,这样就没办重练了,也抓不到节点断网之后发的包

  • 请问 你一下:

    1. 你使用的是什么版本的 zstack?

    2. 协调器断电一段时间 后再 上电, PANID 改变了吗?

    3.节点连接不上协调器  是一直发beacon  ,还是会发rejoin request?

  • 2.5.1a

    panid没有改变,协调器没有问题,因为其他设备还正常在网通信

    连不上了都是发送beacon,一开始发送orphan request。抓包发现若是发出rejoin request通常就能恢复网络了,

    只是有时候会发生这个问题,不是百分百发生的。我还有个问题你帮我看看呗

    http://www.deyisupport.com/question_answer/wireless_connectivity/zigbee/f/104/t/102083.aspx

  • 其实每个版本 都或多或少 有些 网络的bug !

    2.51a 的 我确实没怎么用过!

    我目前用的是2.61 的 即 zstack 1.2.2 , 目前尚未发现这个问题。 能不能 不负责任的 提醒你  使用新版本呢?

  • 那你帮我分析上面网址的另外一个问题吧