微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > 协调器无法收到终端反馈的信息

协调器无法收到终端反馈的信息

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

HA的系统,协调器,路由器,终端都打开了NV_RESTORE,组网完成之后通讯都正常,如果把协调器断电,通过sniffer可以看到终端都加入到路由器的网络,协调器重新上电之后各个终端无法与协调器通讯,因为各个终端还是在路由器的网络里面,请问如果让终端重新加入协调器的网络?或者让终端无法加进路由器的网络也可以?总之如何解决协调器重启之后无法和终端通讯的问题?谢谢!

补充一下,协调器发送的指令都是用的AF_DataRequest使用afAddr64Bit地址模式。咨询一下如果采用16bit地址的模式,这个问题是否可以解决?

加入可以的话如果通过已经知道的64bit的获得16bit?

更换了16地址发送信息也不行,到底是什么原因呢?

当终端设备加到路由器以后,协调器上电的时候认为之前的终端设备还是自己的子设备,所以发数据的时候直接发出去了,这个数据时buffer在协调器的底层,等待自己的子设备通过data request来获取。原因是这个,可是如何解决呢?有哪位大侠指点一下迷津吧。

这个问题我之前也问过,V大神也回答了,和你说的差不多,但是没有提出怎么解决,这个问题很常见了,

我认为除非把不是自己的子节点的关联表方面删除了应该就可以了,没有论证,参考下!

当协调器给end device发数据不成功的时候,可以判断该节点是否是子设备byte AssocIsRFChild( uint16 shortAddr ),

然后把这个子设备删除掉byte AssocRemove( byte *extAddr )

已经按照这个方案试过了,发现和原来不同的地方是协调器重启之后,终端把信息发给路由器,路由器把信息再发给协调器,但是协调器还是没有把消息发给终端,此时可以看到终端有向路由器请求数据的log.请帮忙再看一下,谢谢!

现在终于可以看到路由器实际功能的log,还是很感谢的!

你把协调器关联表中该节点的信息删除掉以后,给这个节点发数据还不行吗?

是的,还是不行!请帮忙在看看。

nwkNeighborFind( uint16 nwkAddr, uint16 panID );

nwkNeighborRemove( uint16 NeighborAddress, uint16 PanId );

如果这个节点在邻居表里面的话,也把他清楚掉

试了上面两个函数,还是不行,请再帮忙看看。谢谢!

那你把这个节点的所有信息都删除呢,

Association List

Neighbor Table

Routing Table

我试验了,用AssocRemove(),可以把无效的关联节点删除掉,协调器就可以发数据了。

请问楼上是如何实现的?需要配合其他函数吗?我们的检测AF_DataRequest()函数的反回值,如果不是0,就调用AssocRemove()函数,发现现象依旧,协调器还是无法发出。不知道啥原因。

你好,请问下你是如何解决这个问题的,有QQ吗。麻烦指点一下啊,谢谢

我的QQ是87906234,麻烦看见后加我下。多谢

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

网站地图

Top