ZR通过ZC加入网络,现在ztcak中只能通过ZDO_JoinIndicationCB来查看新加入的设备嘛?在zigbee specification中的关联加网流程中,当设备发出MLME-ASSOCIATE.request以后,ZC会发出相应MLME-ASSOCIATE.response,现在如果想在ZR发出request之后,ZC会先判断其MAC地址是否是允许的设备,再让其加入网络?当然,这已经改变的zigbee specification的规定,想问一下,现有的ztack版本有没有开源到这里?
YiKai Chen:
就我所知目前ztack版本没有开源到这里,但是你可以在收到device annoucement之後檢查白名單,對不在表列上的設備送出leave request
user444907929:
回复 YiKai Chen:
感谢YiKai Chen的回复,这是目前我们的处理方法,今天重新查看一下zigbee specification,突然间的想法。现在我们是采用ZR上电后自动加网,加网后,通过通过应用层(私有协议)数据告知ZC,ZC判断其是否为列表中的设备,是则发送应用层数据让ZR保存网络信息,不是则ZR会开启定时,在一定时间内ZC没有发送数据,则自动复位重新开始加网。现在的问题是这样将导致ZC的关联表很快就满,清除关联表的做法是 调用这三个函数
AssocReset();
AssocSetDefaultNV();
NLME_UpdateNV( NWK_NV_NIB_ENABLE);
但是必须复位ZC,也就是我们没有找到一个合适的清除关联表的方法,不知道你能否给一个很好的建议,谢谢
Alvin Chen:
回复 user444907929:
这是您的自己操作,我们已经在Stack继承了association。
如果你自己想清楚关联表:
blog.csdn.net/…/24701879
YiKai Chen:
回复 user444907929:
對ZC作factory reset後重新組網應該就可以清除关联表