微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > 新问题Zstack HA 1.22:我们的Enddevice产品在实际使用中发现设备会出现掉网的现象,掉网后一定的情况下会失去密钥甚至是恢复到出厂时的网络状态。

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

时间:10-02 整理:3721RD 点击:

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

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

把下面代码屏蔽下做测试

// Do a normal join to the network after certain times of rejoin retries
else if( AIB_apsUseInsecureJoin == true )
{
devStartMode = MODE_JOIN;
}

这个问题 我也遇到过。

我的做法是:

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 key\n", sizeof("Don't clearing network key\n"));
          #endif            
            runtimeChannel = (uint32) (1L << _NIB.nwkLogicalChannel);
            prevDevState = DEV_NWK_TC_REJOIN_CURR_CHANNEL ;
          }

应该就可以了

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

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top