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() ?
谢谢!