我现在用z-stack3.0的代码可以控制别人符合zha1.2规范的设备(例如开关,插座),也能主动的在协调器里调用NLME_LeaveReq使开关设备离开网络。但开关主动复位发送出来的0xfffc广播,协调器始终接收不到?抓包可以看到开关复位时的却会发送0xfffc的广播,我在协调器中打断点调试,发现并不会进入到afIncomingData这个函数中去。请问下为什么协调器会接收不到这个条广播消息呐?理论上空闲的设备都能接收到此条广播才对的啊?
derray wei:
我有点疑惑的是开关设备退网时是否是调用的NLME_LeaveReq函数,并且将extAddr设置为NULL代表让本身离开网络,如果是调用的这个函数进行离网,那么这个函数离网时会向外面发送广播通知其它节点吗?如果会发,那么协调器应该可以收到这条广播才对的啊?难道设备复位时不是的调用的这个函数进行离网的?那抓包时里面显示的0xfffc的广播又是如何出现的呢?
gaoyang9992006:
回复 derray wei:
跟这个朋友交流一下看看,他之前遇到了类似问题,不过他找到了问题。
Viki Shi:
断点是设在哪? afBuildMSGIncoming还是afIncomingData?
derray wei:
回复 Viki Shi:
你好,ViKi,断点我设在afIncomingData这个函数里,无法进入到这个函数,感觉协议栈把那条0xfffc屏蔽了一样。