This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

zigbee1.2.2a终端节点与父节点失去联系后寻找网络发送beacon request规律

zigbee1.2.2a协议栈,测试发现有如下规律现象:终端节点在与父节点失去联系后,会以孤儿节点寻找网络,每隔两分钟,每次发送4个左右beacon request ,发送6次(约10分钟)后,孤儿节点会完全处于静默状态,即低功耗模式。

请问,这个规律是zigbee1.2.2a协议栈默认的操作模式吗?

  • 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
  • 我的问题是:终端节点在与父节点失去联系后,会以孤儿节点寻找网络,第一次发送约4个beacon request 后休眠,之后2分钟,再发送约4个beacon request 后休眠,之后2分钟,再发送约4个beacon request 后休眠,如此发送6批次beacon request后完全休眠。这个现象是协议栈固定的吗?可否修改?
  • 还是不明白你想修改什么,不发送beacon request直接休眠?
  • 我测试发现:终端节点在与父节点失去联系后,是会以孤儿节点寻找网络的,但是之后发送的beacon request 非常有规律,不知是否是协议栈自带的功能?我发现的规律是:end_device掉网后,第一次发送约4个beacon request 后休眠,2分钟后,再发送约4个beacon request 后休眠,2分钟后,再发送约4个beacon request 后休眠,如此发送6批次beacon request后完全休眠。
    如果是协议栈自带的,如何修改2分钟这个参数?如何修改4个beacon request 的4这个参数?
  • 如何修改2分钟这个参数?如何修改4个beacon request 的4这个参数?

    这不就是上文回复的发送间隔与发送次数的修改吗

    2分钟这个参数----发送间隔

    4个beacon request 的4这个参数----发送次数

  • 首先谢谢答复!我的工程文件里面是这样的:
    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
  • 网上看到的:
    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是不能达到要求的
  • 那个10分钟也是否可以修改?
  • 网上看到的:
    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掉网后,每两分钟发送约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分钟这个参数没影响,这个我已经测试验证过