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.

EndDevice 断电后不能接收到协调器数据,都有开启NV_RESTORE

Other Parts Discussed in Thread: Z-STACK

如题在开发中遇到上述情况后,只用一个协调器和一个enddevice 测试,都开启了NV_RESTORE,联网后通信正常,但终端在掉电重启后经常出现协调器再也不能发送命令给终端,看过论坛之前的帖子后根据VV的提示通过 AssocIsRFChild( uint16 shortAddr )检测发现终端已不是协调器的子设备,但两边不都是开启了NV_RESTORE么,而且频段内没有其他设备,不可能是终端加入其他设备了,为什么协调器还把终端节点删掉了,求VV大神帮忙

  • 求大神帮忙解决一下啊,纠结了好多天了

  • 那有没有验证过AssociateList里面还有没有这个设备。

    1)节点Data Request是否正常

    2)另外节点没法收到协调器的数据,协调器有没有把数据发到空中?

    3)节点发送的数据,协调器是否可以收到

    你可以在节点无法接收数据的时候,发送ZDApp_AnnounceNewAddress( void )出来。

  • If you use zstack 1.2.2, you may set RFD_RCVC_ALWAYS_ON=TRUE to test will it happen again?

  • 谢谢VV解答

                      AssociateList中查过了已经没有这个设备了

                      1)节点的Data Request还是正常的

                      2)协调器应该是没有把数据发送到空中的,抓包工具不能抓取到协调器的数据包

                     3)节点发送的数据协调器可以收到


  • 谢谢解答

                  试过你的方法了,终端加上RFD_RCVC_ALWAYS_ON=TRUE后的确没有出现协调器不能发出命令的情况,但是看到终端的Data Request都没有了,这样EndDevice设备是否就是等同于一个router设备呢?功耗会不会上升很多,毕竟用EndDevice设备就是考虑到节能的因素

  • So which version of zstack do you use?

  • Z-Stack Home 1.2.2

  • It seem has a bug in the maintenance of association table when parent buffed too much child message, you can try zstack 1.2.2a to test this issue or wait for VV official reply.

  • 请使用Z-Stack Home 1.2.2a

    在1.2.2里面会有一个问题,当父设备给子设备发数据的时候,如果是ZMacTransactionExpired,会把这个设备从AssociateList里面remove掉,父设备认为子设备不在了,或者更换了父设备了。但在实际的应用中,这种情况是有可能发生的,尤其是设备多,干扰多的情况下,但其实子设备还在,所以会引起误操作。

    在Z-Stack Home 1.2.2a,这个部分已经删除掉了。