关于zstack 加密后的通讯问题
通讯设备:coordinator, end-device
协议栈: zstack HA 1.2
加密设置:-DSECURE=1, -DZG_SECURE_DYNAMIC=1
End Device 设置: -DPOLL_RATE=0, -DQUEUED_POLL_RATE=0, -DRESPONSE_POLL_RATE=0
NV编译选项:NV_INIT, NV_RESTORE
问题描述:第一次上电,通讯正常,可通过协调器串口看到end device上报的数据。第二次上电,通讯不正常,串口无数据,通过sniffer抓包,确认end device数据包发出,协调器有ACK返回,断点调试确认协议栈没有实际意义上的处理收到的包。8-10 分钟左右之后,通讯恢复正常,串口有数据。
麻烦请看看这是什么原因造成的,如何改进?
谢谢!
为什么要把ZG_SECURE_DYNAMIC=1,加密的Key需要动态变化吗?
-DPOLL_RATE=0,节点无法收到协调器发给节点的数据了,为什么要这样做?
VV你好,
把ZG_SECURE_DYNAMIC=1 是因为 仅仅-DSECURE=1 的话,压根就没法通讯,设备没法入网。原因不明。
顺带一提,两个设备是在同一协议栈下编译,其余设置是一样的。
-DPOLL_RATE=0,是为了把功耗降到最低,电池很小,所以只能做最低功耗设计。
VV你好,
问题已解决,设置ZG_SECURE_DYNAMIC=0 即可,但奇怪的是之前这样设置是无法通讯的,而且通过抓包确认设备在入网的时候是被拒绝了的。现在又可以了,百思不得其解。
不过既然能通讯了就行了,话说zstack越用越深入,发现的各种奇怪问题也越来越多。想要稳定耐用不是很容易。
为什么不愿意把你的转包文件share出来呢?
QUEUED_POLL_RATE 和 RESPONSE_POLL_RATE可以设置为10~100,这样可以保证节点需要接收数据时,先向协调器发一个数据包就能收到协调器数据。
ZG_SECURE_DYNAMIC设置为1,可以动态设置加密等级,加密有4个等级
#define ZG_SECURITY_NONE 0
#define ZG_SECURITY_RESIDENTIAL 1
#define ZG_SECURITY_PRO_STANDARD 1 // For now, same as residential
#define ZG_SECURITY_SE_STANDARD 4
您好:
为什么配置了加密后还是没有产生加密的感觉
然后让协调器和路由器通信,修改协调器的key后为什么二者还可以通信,理论上是不行的。
不清楚应该修改哪个key才能测试是否加了密
这个?
这个?
还是这个?
谢谢指导
您好,问一下,如何扩大cc2530可以挂载的路由数量。本来官方上第一级只能挂载6个,第二级也是6个。若想第一级挂10个行不行?
如何在路由下面再挂路由?如何配置呢?谢谢VV大神。