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.

[参考译文] CC2340R5:SDK 中是否有方法可以中止接收当前数据包?

Guru**** 2393725 points


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

https://e2e.ti.com/support/wireless-connectivity/other-wireless-group/other-wireless/f/other-wireless-technologies-forum/1466898/cc2340r5-is-there-a-method-in-the-sdk-to-abort-reception-of-the-current-packet

器件型号:CC2340R5

工具与软件:

在 SimpleLink F3 SDK v8.40中,有一些方法可以检查正在接收的当前帧,例如 RCL_IEEE_readPartialFrame ()。   如果被确定为不相关或太大,是否有办法中止接收由 RCL_IEEE_readPartialFrame ()返回的正在进行中的帧?

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

    您好 Russell Minnich:

    最近、我们更新了有关 IEEE 命令标头的文档、您可以在此处找到更多信息 :无线电控制层(RCL):IEEE 802.15.4 Rx 和 Tx 命令句柄。  

    我们可以使用"lrf_sendHardStop ();"来中止 RX ,这应该会立即停止当前正在运行的命令(而不是被取消的命令)。  

    或者(我通常建议的)是安排 RX 停止时间:

    cmd.common.timing.relGracefulStopTime = RCL_scheduler_SYSTEM_MS (20000);

    谢谢!
    Alex F

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

    那么,中止接收当前帧的方法是 执行  lrf_sendHardStop (),然后发出命令再次开始接收帧?

    或者(我通常建议的)是安排 RX 停止时间:

    cmd.common.timing.relGracefulStopTime = RCL_scheduler_SYSTEM_MS (20000);

    这不是发送命令接收20秒后停止吗?   

     

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

    您好!

    因此、中止接收当前帧的方法是 执行  lf_sendHardStop ()、然后发出命令再次开始接收帧?

    正确、但我们可能需要确保正确设置无线电的状态(通用的 RCL 有一个停止命令、但 IEEE 没有、因此这可能是一个停止合适的解决方案)。  

    这不是像发送命令接收20秒然后停止吗?   [报价]

    是这会将命令设置为接收20秒、然后停止。  

    谢谢!
    Alex F

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

    正确、但我们可能需要确保正确设置对讲机的状态

    您能否验证一下或列出具体方法?  此 MCU 依赖于一个 SDK、该 SDK 相比以前的 CC 芯片隐藏了大部分细节。

    (通用 RCL 有一个停止命令、但 IEEE 没有、因此这可能是一个停止间隙解决方案)。  

    是否会将 STOP 命令添加到 IEEE 处理程序中?

    是这会将命令设置为接收20秒、然后停止。  

    这样的操作点是什么?  我看到过它被使用了。  是否打算在 n 秒内接收与无限期接收?  我尝试了解的用例。

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

    您好、Russell:

    我使用 lrf_sendHardStop()函数测试了一些代码、它似乎会中止 RX:

    在这种情况下,无线电状态介于 ACTIVE -> ERROR -> ACTIVE 之间,但数据包接收正常。  

    我对 rfPacketRx 代码做了小幅修改,并添加了 lrf_sendHardStop ();函数(加上 GPIO 指示符)来显示状态:

        while(1)
        {
            /* Submit command */
            RCL_Command_submit(rclHandle, &rclPacketRxCmdGenericRx);
            GPIO_write(CONFIG_GPIO_RLED, 1);
            sleep(1);
            LRF_sendHardStop();
            //RCL_Command_stop(rclHandle, RCL_StopType_Hard);
            GPIO_write(CONFIG_GPIO_RLED, 0);
            sleep(1);
        }

    [报价 userid="613487" url="~/support/wireless-connectivity/other-wireless-group/other-wireless/f/other-wireless-technologies-forum/1466898/cc2340r5-is-there-a-method-in-the-sdk-to-abort-reception-of-the-current-packet/5633280 #5633280"]

    是否会将 STOP 命令添加到 IEEE 处理程序中?

    是这会将命令设置为接收20秒、然后停止。  

    这样的操作点是什么?  我看到过它被使用了。  是否打算在 n 秒内接收与无限期接收?  我尝试了解的用例。

    [报价]

    -我在 IEEE 示例中检查了 LNA 是否与 LRF 停止命令的行为相同,它是;

    -我们通常使用该设置来控制无线电不无限期接收,而只接收一段时间;该设置只控制"时间",所以要么设置停止时间,要么接收永远(无限)。  

    或者 RCL_StopTime Handler_Ieee_可能起作用(需要进一步研究)。  

    谢谢!
    Alex F