Other Parts Discussed in Thread: CC2538, Z-STACK
CC2538 Z-stack 3.0.2协议栈,通过测试,发现好像是可以直接通过OTA固件来更换设备类型,从ZR更换为ZED,但是遇到几个问题
1、起初两个设备都是ZR,短地址0x1234,0x5678,同时给这两个设备OTA ZED的固件,几乎是同时成功的,一前一后自动重启到最新ZED固件并重新入网成功,但此时给其中一个设备0x1234发送单播指令允许default response,抓包发现,0x1234收到之后并发出default response目标地址是0x0000,但是0x0000收不到对应的response,ubiqua抓包发现0x1234把default response先发送给了0x5678,但是0x5678并没有转发(这里0x5678已经是ZED了不可能转发的,只有ZR才会转发),最后不得不把两个设备都断电重启,再次测试给两个设备发送单播指令,0x0000都能收到response了
原因可能是0x1234以为它的父节点0x5678还是ZR,所以把指令先发给了它,然后结果这个父节点此时其实是ZED,不是ZR,如何避免?
2、修改了f8wConfig.cfg,让-DRFD_RCVC_ALWAYS_ON=TRUE,-DPOLL_RATE=14400000,就是poll rate改为240分钟,另外不让ZED进入休眠模式,就能及时收到控制指令,但是有一个问题,按理说此时不影响poll rate(也就是Data Request的频率)才对,但抓包发现,几乎ZED每隔很短的时间都一直在发送Data Request,大约几秒钟或者每次收到消息都会发,这样似乎在组播模式下,会增加网络拥塞的情况。