微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > 协调器经路由给端点发数据不成功

协调器经路由给端点发数据不成功

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

TI工程师们:

在使用zstack2.5.1a simple工程时发生如下情况:

1、协调器上电->路由器上电->端点上电,此时路由父节点为协调,端点父节点是路由,

       这时协调可以通过短地址向端点发数据,通过抓包分析,数据经过路由到达端点

2、协调上电->端点上电->路由上电,此时路由和端点的父节点都是协调,

      再将协调器断电,端点加到路由上(端点的父节点是路由了),

      再把协调上电,此时端点的父节点仍然是路由,而路由的父节点是协调,

      此时协调器再给端点发数据,端点就收不到了,通过抓包分析,协调器就没发出数据。

      此问题怎么破解?该情况在实际用户使用过程中会经常发生,不能让用户把路由器关掉再上电吧。

      在这种情况下端点向协调器发数据没问题。

      目前我的分析是:此时协调器没有更新?表,不知道这条数据应该直接给路由,

                                      而是等待端点的Data request,而端点的Data request是发给路由的,

                                      因此协调数据就一直没有发送出去,分析不知对不?

拜托了,给点解决办法,谢谢了。此问题是以前发过的贴子,但一直没有解决,现在我也碰到了,升级到 2.6 此问题还是没有解决,请问有什么解决办法?

你分析的是对的,第2种情况是因为你的协调器还以为终端是自己的子节点,所以你通过协调器发数据,只会等待

终端来取,可是终端的父节点是路由器,无论怎么样也不回去取的,发不出去就对了,解决办法,你可以把协调器中的

非自己子节点的终端关联表信息清除掉,用这个函数AssocRemove(。。);

这个问题之前我也发过,其他人也问过,V大神给解决办法了,就是这个函数清除掉就可以了,我试验过没有问题。

你可以试验下。

协调器怎么知道子节点是非自己的?

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

网站地图

Top