zigbee1.2.2a协议栈,测试发现有如下规律现象:终端节点在与父节点失去联系后,会以孤儿节点寻找网络,每隔两分钟,每次发送4个左右beacon request ,发送6次(约10分钟)后,孤儿节点会完全处于静默状态,即低功耗模式。
请问,这个规律是zigbee1.2.2a协议栈默认的操作模式吗?
Viki Shi:
beacon request的发送间隔与发送次数均可改变,以下是方法:
修改一下两个参数:DBEACON_REQUEST_DELAY与DBEACON_REQ_DELAY_MASK,都在f8wconfig.cfg中
/* Minimum number of milliseconds to delay between each beacon request
* in a joining cycle.
*/
-DBEACON_REQUEST_DELAY=100/* Mask for the random beacon request delay. This value is masked with the
* return from osal_rand() to get a random delay time for each joining cycle.
* This random value is added to DBEACON_REQUEST_DELAY. For example, a value
* of 0x00FF will be a beacon request delay of 0 to 255 milliseconds.
*/
-DBEACON_REQ_DELAY_MASK=0x00FF
user3514461:
回复 Viki Shi:
我的问题是:终端节点在与父节点失去联系后,会以孤儿节点寻找网络,第一次发送约4个beacon request 后休眠,之后2分钟,再发送约4个beacon request 后休眠,之后2分钟,再发送约4个beacon request 后休眠,如此发送6批次beacon request后完全休眠。这个现象是协议栈固定的吗?可否修改?
Viki Shi:
回复 user3514461:
还是不明白你想修改什么,不发送beacon request直接休眠?
user3514461:
回复 user3514461:
我测试发现:终端节点在与父节点失去联系后,是会以孤儿节点寻找网络的,但是之后发送的beacon request 非常有规律,不知是否是协议栈自带的功能?我发现的规律是:end_device掉网后,第一次发送约4个beacon request 后休眠,2分钟后,再发送约4个beacon request 后休眠,2分钟后,再发送约4个beacon request 后休眠,如此发送6批次beacon request后完全休眠。如果是协议栈自带的,如何修改2分钟这个参数?如何修改4个beacon request 的4这个参数?
Viki Shi:
回复 user3514461:
如何修改2分钟这个参数?如何修改4个beacon request 的4这个参数?
这不就是上文回复的发送间隔与发送次数的修改吗
2分钟这个参数—-发送间隔
4个beacon request 的4这个参数—-发送次数
user3514461:
回复 Viki Shi:
首先谢谢答复!我的工程文件里面是这样的:
f8wConfig.cfg
/* Minimum number of milliseconds to delay between each beacon request* in a joining cycle.*/
-DBEACON_REQUEST_DELAY=100/* Mask for the random beacon request delay. This value is masked with the* return from osal_rand() to get a random delay time for each joining cycle.* This random value is added to DBEACON_REQUEST_DELAY. For example, a value* of 0x00FF will be a beacon request delay of 0 to 255 milliseconds.*/
-DBEACON_REQ_DELAY_MASK=0x00FF
user3514461:
回复 user3514461:
网上看到的:
1、修改配置文件f8wConfig.cfg中相关参数实现静态延长请求发送间隔:
修改参数DBEACON_REQUEST_DELAY与DBEACON_REQ_DELAY_MASK
DBEACON_REQUEST_DELAY表示beacon request之间的延时,DBEACON_REQ_DELAY_MASK则是延时的掩码(随机),即真正的间隔时间为两者之和。其默认值分别为100与0x00FF,则原本的请求间隔时间范围为100~100+255MS。
可根据需要将二者的值改大。但是,我所问的不是这个!
我问的是,我发现的现象:zigbee1.2.2a 协议栈end_device掉网后,每两分钟发送约2-4个beacon request ,在10分钟后,end_device会完全处于休眠状态。这个是zigbee1.2.2a 协议栈end_device的功能吗?如果是,这个2分钟的周期是否可以修改。
修改DBEACON_REQUEST_DELAY是不能达到要求的
user3514461:
回复 user3514461:
那个10分钟也是否可以修改?
user3514461:
网上看到的:1、修改配置文件f8wConfig.cfg中相关参数实现静态延长请求发送间隔:修改参数DBEACON_REQUEST_DELAY与DBEACON_REQ_DELAY_MASKDBEACON_REQUEST_DELAY表示beacon request之间的延时,DBEACON_REQ_DELAY_MASK则是延时的掩码(随机),即真正的间隔时间为两者之和。其默认值分别为100与0x00FF,则原本的请求间隔时间范围为100~100+255MS。可根据需要将二者的值改大。我咨询的问题是,我发现的现象:zigbee1.2.2a 协议栈end_device掉网后,每两分钟发送约4个beacon request ,经过发送6波次beacon request即在10分钟后,end_device会完全处于休眠状态。这个是zigbee1.2.2a 协议栈end_device的功能吗?如果是,这个2分钟的周期是否可以修改?还有这个10分钟的时间可否修改?修改DBEACON_REQUEST_DELAY只是修改了beacon request与beacon request之间的间隔,但是对2分钟和10分钟这个参数没影响,这个我已经测试验证过
Viki Shi:
回复 user3514461:
参考这边:e2echina.ti.com/…/361325