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.

[参考译文] 如何使终端设备始终在不等待任何响应的情况下进行广播

Guru**** 2670055 points

Other Parts Discussed in Thread: Z-STACK

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/1592355/how-to-make-end-device-always-does-broadcast-without-waiting-for-any-response

器件型号: CC2652P

我正在通过执行“writeReq.has_disablePollRate = true“和“writeReq.disablePollRate = true“来禁用轮询、启动后 20 秒。 似乎在做这项工作。 不过、有时器件正在轮询、我使用监听器进行了验证、并在广播后观察到数据请求。  
我无法访问源代码、因此很难分析。 我可以在 Nwk_data_req_send 中看到一堆条件、我猜是发生了“Nwk_SetCurrentPollRateType (poll_rate_type_response、true)“。  
任何人都可以帮助我解决这个问题。 我想知道可能发生的情况、以及如何解决此问题或我可以为 RCA 运行的任何类型的测试。
谢谢你

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Abhinaba:

    您能否确认您正在使用  Zstackapi_sysConfigWriteReq (如“Z-Stack 用户指南“中所示)?  尽管任何终端设备都应该偶尔轮询其父设备、以免老化出 Zigbee 网络。  您的猜测是正确的、因为发生了“Nwk_SetCurrentPollRateType(poll_rate_type_response、true)“。

      if ( ret == ZMacSuccess )
      {
        if ( ZSTACK_END_DEVICE_BUILD )
        {
          if ( ZG_DEVICE_ENDDEVICE_TYPE && zgRxAlwaysOn == FALSE )
          {
            nwk_SetCurrentPollRateType(POLL_RATE_TYPE_RESPONSE, TRUE);
          }
        }
      }

    您可以尝试临时更改 zgRxAlwaysOn 或 在应用程序中立即将 POLL_RATE_TYPE_RESPONSE 设置为 FALSE、以确定这是否会改变行为。

    此致、
    Ryan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Ryan、
    是的、我使用  Zstackapi_sysConfigWriteReq 禁用轮询。
    我将禁用轮询、并在需要时进行手动轮询。 当我持续测量电流消耗时、我注意到了这个问题。  我注意到这是在长时间不活动后发生的,当我广播.
    当广播时,电池消耗高峰,然后稳定下来,但经过一段长时间的不活动后,当我广播时,消耗稳定在一个更高的值,并不得不功耗回到空闲功耗。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我熟悉类似的行为、这种行为是在任何对讲机活动、数据轮询或其他活动之间存在很长一段时间时发生的。  阈值是在闲置时间超过 9 分钟时测得 的、据我所知、SDK 中尚未解决或解决该阈值。  我建议您在应用程序中设置一个计时器、 以低于 9 分钟的频率发送数据轮询 、以避免高功耗。

    此致、
    Ryan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢 Ryan 的帮助。
    纠正我,如果我错了,任何发送发生,轮询率被设置为响应类型。  但是、 它不采用轮询、因为我将轮询速率设置为在启动时立即禁用、且检查是否禁用的情况发生在其他情况之前。 但在某个位置长时间不活动后、Rx 就会开启。 对吗?
    你有什么想法,这可能发生在哪里?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果我错了、则无论何时发送、轮询率都设置为响应类型。

    正如我先前提到的、任何  Nwk_data_req_send 都 将导致 Nwk_SetCurrentPollRateType (poll_rate_type_response、true);对于休眠 Zed。

    但在长时间不活动后、Rx 正在打开。 对吗?
    [/报价]

    这与我在最近的回复中解释的 bug 类似。

    您是否知道这种情况在哪里发生?

    TI 研发团队没有资源来确定和解决根本原因、因此建议作为权变措施至少每<9 分钟轮询一次。

    此致、
    Ryan

    [/quote]