3.0.2协议栈。
1.一般路由设备都是能加入20个子设备(20的ze,zr默认4个),如果子设备很多可能导致新的设备不能入网,抓包可以看见父设备能力,那么如何删除这个父设备的空间。从而让新设备可以入网,旧的设备不退网直接拿走掉不再使用了。
2.据我所知父设备能加多少个子设备是由父设备的关联表决定的,但是网关无法通过给协调器发送数据查询某个路由的关联表。bdb手册推荐使用查了lqi的方式,lqi查询的是邻居表。对应终端肯定是在父设备的邻居表里面的,但是多个路由设备的邻居表可能是相互包括的。也就是不能直接通过lqi查询邻居表来判断父设备是否还能加入新的子设备了,如果能查询到,可以删除旧的不在使用的设备,从而让新设备入网。否则只有重置设备甚至整个网络。
3.还有网关通过给协调器发送mgmt的leave指令,可以删除父设备里面的不在线的(子设备不在使用,不能能应答leave)子设备吗,让这个父设备空出位置,可以加入新设备。
user4381970:
4.终端类型设备有childage功能,旧的 不在使用的设备长时间不在线超过age了,父设备会删除这个子设备的信息,从而新的设备可以从该父设备入网。但是。子节点是路由,并且子节点路由断电不在使用。网关可以使用leave让其父设备删除这个子设备路由的空间吗?
Viki Shi:
1、可以通过AssocRemove删除关联表
2、不能通过协调器查路由的关联表
3、可以
4、leave命令可以删除路由
YiKai Chen:
3.0.2协议栈如果终端设备一段時間沒有送出封包給父设备,照理說父设备的关联表就會把這個终端设备删除,應該不需要由人工去删除关联表
user4381970:
回复 YiKai Chen:
终端是自动被childage清楚了,关键是不在的路由设备。
YiKai Chen:
回复 user4381970:
據我所知3.0.2协议栈路由设备不會列在关联表上
user4381970:
回复 YiKai Chen:
嗯,我貌似也是这样听说的。3.0以后修改的关联表只有终端。gu
关键是父设备能加多少个子设备,又什么确定的呢?还是有那个NWK_MAX_DEVICE_LIST决定吗?关联表的最大数值就是NWK_MAX_DEVICE,这两个宏是一个意思只差1.关联表只放终端,那多余的位置放啥呢。理解有点矛盾啊,关键如何查询还有几个位置呢?
YiKai Chen:
回复 user4381970:
父设备能加多少个子设备由NWK_MAX_DEVICE_LIST決定
user4381970:
回复 YiKai Chen:
是的,那父设备剩余多少个位置网关怎么能查询到呢,网关如何删除已经入网并且不在线的子路由呢
YiKai Chen:
回复 user4381970:
网关不能查询到父设备剩余多少个位置,除非你自己加上程序去讀取关联表;路由沒有父设备的概念,所以不存在删除已经入网并且不在线的子路由這類的問題
user4381970:
回复 YiKai Chen:
那就是说NWK_MAX_DEVICE_LIST都是终端吗