如图,所示,协调器运行一段时间后,中间经历过别的设备的入网和离网,然后在它发送的beacon包中,就显示没有入网能力了:Router Capacity的值是0了。
这个问题一年多了,一直存在,除了重刷程序或者使用zgWriteStartupOptions()函数重置NV外,没有别的办法能恢复。
协议栈版本ZHA1.2.2a;
请问有遇到类似问题的么?有没有办法能避免或者解决?
Viki Shi:
是不是重复入网导致关联表满了?手动删除关联表试试
user5020974:
回复 Viki Shi:
已经试过了,而且是把关联中所有的路由设备都手动删除了,但是beacon包里边,入网能力还是显示的0
YiKai Chen:
回复 user5020974:
你是不一直把permit join打開?
user5020974:
回复 YiKai Chen:
permit join不是一直打开的,需要入网新设备的时候才开1分钟的窗口。但是测试的地点设备比较多,入网的时候可能有别的设备也加进来,有别的设备进来后都会发手动离网,怀疑就是不停的有设备进网离网,再协调器里有信息残留。就是不知道怎么避免,或者在程序中能有扫描措施,包正设备离网后能确保离网设备的相关信息都能被清除
YiKai Chen:
回复 user5020974:
建議你始能一下child age吧
user5020974:
回复 YiKai Chen:
child age对路由设备也生效么? 还有时能这个定义后,有别的影响么?
YiKai Chen:
回复 user5020974:
child age对路由设备不生效,沒别的影响
user5020974:
回复 YiKai Chen:
那添加这个定义就没意义了,现在用到的设备都是路由设备,就是路由设备进网、离网多次后,协调器的入网能力变成0的。
另外,测试的时候发现设备的入网能力不全是关联表决定的,在协调器的beacon数据包中的Router Capacity位变成0 以后,手动删除了关联表,Router Capacity位还是显示0,把关联表打印出来观测,已经是空的了。
YiKai Chen:
回复 user5020974:
調用 AssocReset清除一下关联表試試看
user5020974:
回复 YiKai Chen:
没有用 AssocReset,用的AssocRemove挨个清除的,应该没有区别吧?
而且关联表打印出来,确实里边已经没有设备了