节点设备是安防类设备,入网后需要读取属性、注册和电量上报配置等多条指令通讯,协调器都是一条指令有回应后立即下发下一条指令的,但是节点的“Data Request”一直是1秒钟发一次,因此整个流程下来时间很长。
1、协调器使用的协议栈:ZHA1.2.2a,安防设备使用的协议栈不是TI的,说是基于Ember平台的,跟厂商联系了,版本也是ZHA1.2.2a;
2、同样的节点设备,用他们自己的协调器,入网时设备发送“Data Request”的频率就很快,基本不到100ms。用我们自己的协调器进行入网,入网时设备发送“Data Request”的频率就固定是1秒1次。
3、仔细对比了以下,发现用他们协调器的时候,协调器和设备有通讯的时候,“Data Request”的频率就快,没通讯的时候“Data Request”的频率也是1秒1次。有没有可能两个协议栈有不太兼容的地方?
4、这个是TI协调器入网节点设备的抓包,可以看到“Data Request”不管有没有通讯,都是1秒1次:
5、这个是节点设备厂家的协调器入网节点设备的抓包,同样的设备,可以看到“Data Request”在有通讯的时候频率就快,没有通讯的时候还是1秒1次:
6、单纯看通讯抓包,也没看出来有什么大的区别,不一样的地方是他们的协调器发送的指令都有AF层的应答需求,我后来也把自己的协调器程序改了下,也加上了AF层的应答选项,还是没有任何变化。



