问题一:
问题二:
问题三:
Kanjie Zhu:
问题1,基本就是个树状网络,完全不用zigbee mesh的特性?Router之间不能通信是指距离太远无法通信还是刻意不允许他们通信?感觉你的应用更适合一个concenrator和many-to-one的模式。
方法1: 像你说的通过打开/关闭 permit join实现。
方法2: 设置Router和coordinator的允许加入的子节点个数,然后先开router1,再开end1,2,3 加满后再开router2,依次类推。
方法3:设置应用层白名单。
问题2,协调器相比路由器多的功能是(1)建立新网络(2)可以配置成trust center, 如果coordinator断电且并不需要新组网的情况下,router跟协调器的功能是一致的,如果只是需要大家把数据都发到某一个规定的节点的话,这应该在应用层完成。当协调器回来后,如果开启了NV_RESTORE,它会自动回到之前的网络,不需要做任何设置。
问题3
1. 方法1: 通过控制不同的panid。 方法2:通过设置不同的security key
2. 可以修改ZGlobals.c 中的 zgConfigPANID来实现,并可以把他存入NV。下次启动后就以修改后的panid运行,这是如果新的节点还是原来的panid则不能加入。
hong feng:
回复 Kanjie Zhu:
1,请问应用层白名单是怎么设置的呢?
2,many-to-one 模式,router之间可以通信吗?
Kanjie Zhu:
回复 hong feng:
1. 可以根据你的应用设置白名单的数组。当有新加入节点时,可以比较新节点的长地址与白名单表格中的长地址是否匹配,若没找到则让其leave network。这只是举例,具体的实现可以根据你们的应用自己完成。
2. router之间可以通信与其他时候一样,只是router的路由表中会定时更新到concentrator的路由。这个路由必定存在。