TI中文支持网
TI专业的中文技术问题搜集分享网站

43个2530路由节点,只有入网8个,我已找不出原因,请求帮助

这是43个节点的灯控小项目。通过抓包发现,43个节点都在网络中,并且定时上传发送心跳包到协调器。但我在协调器端打印时,发现只有8个设备的心跳在线。并且不时有返回NO ACK的数据包(APS ACK),我不清楚是什么原因倒致的,或者说,我该用什么方式来排查这个问题?

发送函数配置:AF_ACK_REQUEST|AF_SKIP_ROUTING, AF_DEFAULT_RADIUS

编译配置:

协调器预编译配置
CONCENTRATOR_ENABLE=TRUE
CONCENTRATOR_DISCOVERY_TIME=120
CONCENTRATOR_ROUTE_CACHE=FALSE
MAX_RTG_SRC_ENTRIES=65

附抓包数据121212122221212212222.psd121212122221212212222.psd

user1573020:

我感觉是协调器应答节点心跳有超时,故返回no ack。
假设是这个原因,是不是AF_SKIP_ROUTING这个参数原因?协调器单播应答时,没有找到路由节点而报错?而那8个有应答的路由节点,协调器能够不通过路由发现就直接找到。

会是这个原因吗?

user1573020:

回复 user1573020:

另外,AF发送后应答超时值,在哪里可以配置?我想试下把这个协调器等待应答的超时值拉长点再测一把。

Alvin Chen:

回复 user1573020:

我今天测试了一下MTO,允许多跳的,我看了一下你的包里面有一些节点在没有ACK的情况下在重复resent数据包。我用的是基于z-mesh的协议栈,你用的是z-home1.22a吧,你先AF 单播试一下。

VV:

为什么要添加AF_SKIP_ROUTING?本来是多跳网络,需要有走路由的功能。

Aries Lord:

用了AF_SKIP_ROUTING就别用AF_DEFAULT_RADIUS

user1573020:

回复 Alvin Chen:

谢谢alvin chen的解答

我用的是home1.22a,关于resent数据包,我的上位机会随机收到”设备无应答“的消息返回(注:我在AF_DATA_CONFIRM_CMD事件里做了sentStatus的判断),感觉是协调器发送数据包到子节点,子节点没有响应。

另外,你的MTO方案,编译配置和AF_DataRequest的参数是怎样的?我借鉴下。

谢谢

Alvin Chen:

回复 user1573020:

www.ti.com/…/swra427c.pdf
我只是参照上面的文档,适当地修改了一下大小。AF_DataRequest里面
if ( AF_DataRequest( &GenericApp_DstAddr, &GenericApp_epDesc,GENERICAPP_CLUSTERID,(byte)osal_strlen( theMessageData ) + 1,(byte *)&theMessageData,&GenericApp_TransID,AF_DISCV_ROUTE|AF_ACK_REQUEST , AF_DEFAULT_RADIUS ) == afStatus_SUCCESS )

赞(0)
未经允许不得转载:TI中文支持网 » 43个2530路由节点,只有入网8个,我已找不出原因,请求帮助
分享到: 更多 (0)