TI论坛
直播中

陈芸

7年用户 186经验值
私信 关注
[问答]

Zstack HA 1.22 Enddevice产品在实际使用中设备会出现掉网,掉网后一定的情况下会失去密钥甚至是恢复到出厂时的网络状态

Zstack HA 1.22下发生的问题:我们公司的Enddevice产品在实际使用中发现设备会出现经常性的掉网的现象,掉网后一定的情况下会失去密钥甚至是恢复到了出厂时的网络状态,经过查看ZDO层的代码,发现确实有这样的交互机制,Enddeivce设备在掉网重连多次后会失去密码及网络信息。

我们的产品需求:在实际应用中,我们希望的是产品如果出现掉网,那不管网络环境多么差,都应该是一个反复性的Rejion网络恢复的过程,直到成功恢复为止,而不应该删除自己所保存的网络的信息,我想知道ti在协议栈这块有没有这样的机制?或者说如何来做调整。

回帖(3)

李果

2018-8-18 06:27:23
把下面代码屏蔽下做测试
// Do a normal join to the network after certain times of rejoin retries
else if( AIB_apsUseInsecureJoin == true )
[
devStartMode = MODE_JOIN;
]
举报

邹先莹

2018-8-18 06:45:04
这个问题 我也遇到过。

我的做法是:
ZDApp_ProcessNetworkJoin()函数中  这段红色的代码 屏蔽
     else if(devStartMode == MODE_REJOIN)
      [
        if ( ZSTACK_END_DEVICE_BUILD )
        [
          devStartMode = MODE_REJOIN;
          _tmpRejoinState = true;
          _NIB.nwkState = NWK_INIT;

          if( prevDevState == DEV_NWK_SEC_REJOIN_CURR_CHANNEL )
          [
            runtimeChannel = MAX_CHANNELS_24GHZ;
            prevDevState = DEV_NWK_SEC_REJOIN_ALL_CHANNEL ;
          ]
          else if ( prevDevState == DEV_NWK_SEC_REJOIN_ALL_CHANNEL)
          [
            // Set the flag that will ask the device to do trust center network layer rejoin.
            //_NIB.nwkKeyLoaded = FALSE;
            //ZDApp_ResetNwkKey(); // Clear up the old network key.
          #ifdef DEBUG_REJOIN
            HalUARTWrite(0,"Don't clearing network keyn", sizeof("Don't clearing network keyn"));
          #endif            
            runtimeChannel = (uint32) (1L << _NIB.nwkLogicalChannel);
            prevDevState = DEV_NWK_TC_REJOIN_CURR_CHANNEL ;
          ]

应该就可以了
1 1 举报

陈芸

2018-8-18 06:53:04
引用: liulei007 发表于 2018-8-18 06:45
这个问题 我也遇到过。

我的做法是:

嗯 是的 我把那部分注释掉,然后把这一块的逻辑调整了一下,让终端设备即便掉网了,也是在本信道持续发送重连请求。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分