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.

zha1.2.2.a 关于关联表的删除

关于zha1.2.2.a   

原因是终端设备更换了父节点,但是老的父节点因为断电没有收到重新换父设备以后的Device Announce,所以老的父设备这个终端设备依旧是自己的子设备。

所以再发数据的给终端设备的时候,还是把数据buffer在底层,等待终端设备来取。

请问关联表删除怎么使用

  • 您可以用 AssocList.h 文件中的函数AssocRemove()来进行删除,也可以直接在 NV区中删除

  • Susan :

             可以AssocRemove()进行删除这个 当然。

             但问题是 什么时候删除 呢?  比如下面情景:

            两个路由设备ZR1  和ZR2, 一个终端设备ZED。

          

            开始时, 终端设备ZED 的父节点 是 ZR1,  运行过程由于环境的因素 终端节点 切换了父节点到ZR2,  但是切换时 device announce 没有被 ZR1 和 协调器感知。

             后面  终端节点 发给协调器的消息  (通过新父节点 ZR2)  是正常的。

             但是由于环境的因素,ZR1 和协调器  没有指定  终端设备已经 切换了父节点,

             导致 协调器 发给 终端上设备的消息   依然是 经过 父节点 ZR1。。。

             而终端设备 此时又 不再 发 data request 给 旧的父节点ZR1~~~~~

             于是就造成了 协调器 无法控制  终端的 现象!!!

            

             但是这个情况 下 对应用层 说一切都是正常。。

             软件又如何 知道呢? 也就是说 什么时候 什么地方 调用 AssocRemove()

    谢谢!