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.

ZIGBEE3.0 节点重新上电rejoin到网关失败

Other Parts Discussed in Thread: Z-STACK

TI大神们

你好!

    ZIGBEE3.0 节点重新上电rejoin到网关失败,节点开始时已加入到网关中,节点重新上电后,调用bdb_ZedAttemptRecoverNwk()函数节点也没有发beacon request入网请求,请问节点上电后rejoin网关如何处理?

    注:节点编译:NWK_AUTO_POLL,NV_INIT,NV_RESTORE ,POWER_SAVING

  • 使用哪个例程,每次都能出现问题么?

    原始例程上也测试过吧

  • VV

     你好!

      1、我使用GenericApp例程。

           其他例程(SampleSwitch、SampleLight等等)用不了,其他例程在什么也不修改情况也不会发beacon request,没法入网。所以我用GenericApp例程自己来处理beacon request。

    2、不是每次都出现这个问题,测试10次有2次这样情况出现。

    我测试步骤是:

    1、节点初始化后第一次入网成功

    2、节点重新上电rejoin,如果rejoin成功,那么我就退网,重复这个步骤直到节点rejoin失败

    按照道理说,节点第一次入网成功后,就算网关没有open Network,节点添加NV保存网关信息,所以再次入网成功才对。

    虽然出现的概率低,但是也是问题,以前ZHA1.2没有出现这样问题。

    谢谢!

  • VV

    你好!

    附件是我的抓包数据,请查看!

    查看抓包数据的Key

     Zigbee Netwrok  Key:

    01:03:05:07:09:0B:0D:0F:00:02:04:06:08:0A:0C:0D

    Application or Trust Center Link Key:

    5A:69:67:42:65:65:41:6C:6C:69:61:6E:63:65:30:39

    谢谢!

  • 请问入网的问题解决了吗

  • 请问 按照你提供的 这个两个 key  有 部分 command  还是无法解析出来~~~~

    另外, rejoin 到网关 失败, 怎么没有看到 rejoin request的包呢?

  • hi,W!遇到类似的问题,zed和zc完成组网后,断开zc电源,zed触发动作后,发现已成为孤儿节点,开始寻找父节点,调用了Zstackapi_bdbZedAttemptRecoverNwkReq(),但是有时候会没有发出入网请求,我这边设计的是触发请求动作后,发三次请求,正常每次触发都是看到三次beacon request,但是当出现问题时候,就发出一次beacon request后就不再发送beacon request !   接着zed就出现各种问题。

    在论坛上看到一个类似问题,说是 当调用Zstackapi_bdbZedAttemptRecoverNwkReq()后,zed会发出一个beacon request,应用层会收到 BDB_COMMISSIONING_PARENT_LOST的消息,但是如果应用层没有处理这个消息的话,device就会出现堵塞,导致其他问题发生,请问是不是这样?

  • 最新的Z-Stack 3.0.2裡面收到BDB_COMMISSIONING_PARENT_LOST會觸發SAMPLEAPP_END_DEVICE_REJOIN_EVT在10秒後去做rejoin,如果沒有rejoin成功,BDB_COMMISSIONING_PARENT_LOST會繼續被觸發一直輪迴下去

  • 大概率复现?

    void ZDO_StartDevice( byte logicalType, devStartModes_t startMode, byte beaconOrder, byte superframeOrder )
    {
    
        //可以在该位置看下该函数的参数 与 返回值情况
        ret = NLME_NetworkDiscoveryRequest( runtimeChannel, zgDefaultStartingScanDuration );
    
    }

  • 嗯 是的 为了低功耗要求,我现在这边处理的是rejoin 3次后就停止轮回,等待下次触发在进行 三次轮回rejoin,但是每次复现这种现象时候,会出现一次beacon,不会出现第二次、第三次。所以我怀疑是在发送第一次beacon的期间出现问题
  • 你是用Z-ZStack 3.0.2?用原始協議棧有沒有相同問題?

  • 是的,不用原始的来测试,只要将rejoin轮回那部分改为原始的10s间隔发送一次就没有问题。将其改为手动触发后发三次beacon再停止,然后在等下次触发,再发三次,就会出现问题,一般出现短时间不会出现,长时间才会复现(半小时或者一小时以后),我怀疑是不是长时间没有触发请求后,某一次触发导致应用层没有收到父节点丢失的消息,导致循环也死掉了,出现各种奇形怪状的问题

  • 請提供抓包檔來看看問題是什麼
  • 扩展名 .cubx  上传不了附件,上面为截图。

    图中选中包为问题发生时的抓到的包,正常应该连续发三次,这次手动触发后就只发这一次。上面的包为将ZR断电后手动触发入网请求发出的beacon,表现正常。下面的包为问题发生后,zed发不出请求,将ZR上电,再次点击手动触发,zed还是发不出beacon

  • 返回值是0。可以说是必定复现。入网后各功能正常,断电ZR后,手动触发入网动作,短时间不会出问题,可以发出beacon,长时间就会一定出现问题。
  • 把cubx壓縮成zip格式再上傳