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.

[参考译文] CC1312R:休眠子设备的消息绑定延迟了父 Mac Tx#39

Guru**** 2563960 points


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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/904472/cc1312r-parent-mac-tx-s-delayed-by-message-bound-for-sleepy-child-device

器件型号:CC1312R

您好!

我使用的是 simplelink_cc13x2_26x2_SDK_4_10_00_78。

我有一个基于收集器的路由器应用。 如果路由器从收集器接收到一条消息、发送给休眠终端设备(传感器)、则该路由器的所有其他传输将延迟、直到休眠终端设备唤醒并执行数据请求、或者发生超时。 当我的休眠设备每60秒唤醒一次时、超时设置为64秒。  

我是否可以设置任何内容、以便路由器传输其他非休眠消息而不会延迟? 例如、我可以每隔10秒清除休眠 Mac 消息、并将其添加回 Mac 队列、以便传输被挂起的消息。 但是、如果已经有了解决方案、那将会是很好的。

非常感谢、

Andy

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

    嘿 Andrew BAKIN、

    您如何实现此路由器? 您对收集器进行了哪些更改?

    如果要转发消息,则应只能发送当时可以发送的内容,并在应用层中保存/队列需要等待的内容。

     在邮件在 Mac 中排队之前,您是否没有访问这些邮件的权限?

    此致、

    AB

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

    您好!

    感谢您的回答。 抱歉、解释起来有点棘手。 路由器99%的时间将通过另一台路由器将消息转发给协调器,或直接转发给协调器。 路由器永远不会休眠、因此没有问题。 路由器具有消息缓冲机制、可在无应答或通道访问等发送失败时缓冲消息。 这很好。

    当协调器或路由器向休眠设备发送消息时,就会出现问题。 这些消息会被缓冲和重试、并且效果良好。 路由器从其他设备接收到的任何消息也会被缓冲,并且在休眠设备唤醒并执行数据请求后,或路由器 Mac 超时休眠消息后,这些消息确实会传输。

    由于 Mac 和我的应用程序中的缓冲、这里没有错过的消息。 问题仅仅是当休眠设备的消息到达其父设备时、协调器在网络上看到的延迟、而休眠设备接收消息可能需要60秒。 同时,此父级路由器上的所有传输都被挂起。 协调器每隔60秒就会从网络上的每个设备收到一条消息。  

    我怀疑该行为在 Mac 中不可配置。 Mac 不需要阻止非休眠传输、因为它有一条消息用于休眠设备。 这是预期行为吗?

    谢谢、

    Andy

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

    我将在这方面帮助 AB 尝试并加快支持速度。 我很快会回来的!

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

    Andy、

    通常、对于休眠器件、收集器应在传感器唤醒之前保存数据、并发送数据轮询以告知收集器它已唤醒。 因此、如果您已设置收集器立即向休眠设备发送消息、则这可能是您的问题。 收集器应能够根据需要与每个传感器进行通信。

    您说您的路由器基于收集器、但您有一个路由器、收集器正在发送消息以发送到您的传感器。 路由器是您制作的收集器项目变体还是 TI 提供的其他解决方案? 您能否提供有关此方面的更多详细信息?

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

    您好!

    我可能在这里提到我的路由器应用程序、从而混淆了这个问题。 是的、这是我自己的项目、我基于收集器示例、但设置 panCoordinator = false;

    我仅使用路由器应用程序测试了此问题、这就是我提到它的原因、但我的假设是它也会出现在收集器中。 我现在将进行检查。  

    我想 MAC Tx 缓冲区是一个简单的循环缓冲区、它将尝试发送一条消息。 如果该消息用于休眠设备、则它会等待处理(发送或超时)该消息、然后再传输任何其他消息。 如果超时时间仅为几秒、则不会对网络产生太大的影响、但休眠设备必须每秒唤醒一次。 我的休眠设备每60秒唤醒一次、因此 MAC 会在64秒后超时。 此时,任何其它设备(休眠或不休眠)的所有排队 MAC 消息都将被保留。

    当我在收集器上确认了这一点后、我将再次发布。

    此致、

    Andy

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

    您好!

    我已经在收集器上进行了测试、似乎可以正常工作、因此问题仅在于我的路由器应用程序。 它将与我的应用级缓冲有关、而不是与 MAC 缓冲有关。 我到现在为止看不到它。 感谢您帮助我解决问题。 非常感谢。

    此致、

    Andy