测试的时候发现终端通过路由连接协调器后,偶尔会出现协调器无法控制终端的情况,
把路由关了,协调器就可以正常控制终端了
路由我是直接下了个light例程,没有任何改动,
因为协调器和终端之间的通信是自定义的cluster和attribute,但是路由里面我没有把
自定义的cluster和attribute加进去,是不是这个原因导致协调器无法通过路由间接控制终端?
Viki Shi:
怀疑是这个问题,你把自定义的cluster和attribute加进路由验证一下
user5367314:
回复 Viki Shi:
测试路由的时候,发现协调器组播下去的指令,终端能收到,但是单播的指令终端收不到,请问是什么原因(协调器经过路由到终端),如果把路由器关了,单播控制就正常了
YiKai Chen:
回复 user5367314:
建議抓包看看請況
user5367314:
回复 YiKai Chen:
4442.001.psd
抓包如附件,协调器通过路由无法控制终端(0x04或者0x05),终端通过路由上报的数据,协调器可以收到(0x70或者0x72)
user5367314:
回复 YiKai Chen:
请帮忙分析一下原因?为什么终端收不到协调器的经过路由后的消息?
YiKai Chen:
回复 user5367314:
沒有你的network key沒辦法解析,請提供network key
user5367314:
回复 YiKai Chen:
重新抓包文件如附件,测试环境1协调器,1终端,1路由
首先终端加入协调器,然后把路由加入协调器,此时把协调器断电,
终端会加入路由,再把协调器上电,此时协调器给终端单播发送0x61数据,
发了3遍没应答(我这边的应答做的是发什么回什么),把路由断电,终端会自动加入协调器,
此时协调器再发0x61数据给终端3遍,终端3遍都能收到且正常应答,我这边用路由的目的就是为了扩展终端的距离,
现在测试来看,只要终端不是直接和协调器连接,就没法和协调器通信
1346.2019112501.psd
YiKai Chen:
回复 user5367314:
终端会加入路由,再把协调器上电,此时协调器並不知道终端加入路由所以要等到协调器child age掉终端後协调器才能透過路由发数据给终端
user5367314:
回复 YiKai Chen:
这个时间默认是多长?可以改吗?在哪里改?
YiKai Chen:
回复 user5367314:
时间默认是256 minutes,可以到ZGlobals.h修改END_DEV_TIMEOUT_VALUE
// Child aging management default values
// Values are specified in table of nwk_globals.h module
//timeoutValue[15]
//10, // 0 10 seconds
//2, // 1 2 minutes
//4, // 2 4 minutes
//8, // 3 8 minutes
//16, // 4 16 minutes
//32, // 5 32 minutes
//64, // 6 64 minutes
//128, // 7 128 minutes
//256, // 8 256 minutes
//512, // 9 512 minutes
//1024, // 10 1024 minutes
//2048, // 11 2048 minutes
//4096, // 12 4096 minutes
//8192, // 13 8192 minutes
// 16384 // 14 16384 minutes
TI中文支持网