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.

[参考译文] CC1311P3:如何获取链接命令的事件回调

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1508935/cc1311p3-how-to-get-event-callbacks-for-chained-commands

器件型号:CC1311P3

工具/软件:

我正在实施一个具有先听后讲功能的对讲机。  我的解决方案基于示例、CCA/LBT 正常工作。  但是、我想得到 CCA 是否失败的指示、并在 CCA 失败时立即返回到 Rx。  我使用 RF_cmdPropCs 上的 RF_postCmd ()来启动该过程、但当传输成功时、回调仅触发 RF_EventLastCmdDone。  如果 CCA 检查失败、我如何从回调中读取 RF_cmdPropC 和/或 RF_cmdCountBranch 的状态?

我使用的 RF_postCmd 调用是:

RF_postCmd (RF_ObjPtr、(RF_Op*)&RF_cmdPropcs、RF_PriorityNormal、&RF_CmdCallback、0);
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我不确定我是否明白你想要什么。  

    当您说 CCA 失败后返回到 RX 时、我假设您希望链在返回到 RX 之前完成?

    如果没有、为什么要设置一个您不想运行到完成的链?

    当您从 LBT 示例运行链时、您将在链完成后收到回调。 此时、数据包要么已发送、要么尚未发送。 现在、您可以选择再次调用 run the chain、也可以运行例如 RX 命令。

    如果您想在链中的每个命令后了解状态、当然可以订阅 RF_EventCmdDone 事件(将在链中的每个命令之后发生)、然后在回调中、您可以在每次 断言 RF_EventCmdDone 时检查单个命令的状态。

    不过、信号链的目的是让无线电在没有 MCU 干预的情况下运行、因此我建议您在不执行所需操作的情况下、改动信号链。

    Siri

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

    您好、Siri、

    我认为缺少的项目是订阅 RF_EventCmdDone。  我的印象是这是隐式的、因为 RF_EventLasCmdDone 是隐式的、我正在进行一些 RF_EventCmdDone 调用、但我发现对于命令链来说、情况并非如此。  最后、我需要足够的信息来确定哪个命令是最后一个命令、我不想存储每个命令的 ID/句柄。

    LBT 示例使用重试、因此在 LBT 故障时、cmdCountBranch 是最后一个命令。  如果您不使用重试(如我们的原始无线电实现中所示)、那么 cmdPropCs 是最后一个命令。  如果 LBT 成功、则 cmdPropTx 是最后一个命令。  我希望事件处理程序能够检查所有这些 cases...no、只需一个。

    无论如何、问题不是我想干预命令链、而是需要知道命令链的最终状态(它是否传输、整个链是否成功或是否在较早的命令之一停止)。  订阅 RF_EventCmdDone 后、我能够在回调中获取足够的信息来检测我需要的所有情况。

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

    很高兴您能找到适用于您的用例/用例的解决方案。

    BR

    Siri