工具/软件:
您好:
我们正在使用具有 BLE 和专有 UHF 协议的 CC1354R10 开发一款新器件。 该工程基于最新的 SDK 8.31.00.11。
我们仔细检查了所有射频专有示例。 我的问题与函数 RF_runCmdSafe (...) 有关。 我们理解一条命令可以被抢占的理念
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.
工具/软件:
您好:
我们正在使用具有 BLE 和专有 UHF 协议的 CC1354R10 开发一款新器件。 该工程基于最新的 SDK 8.31.00.11。
我们仔细检查了所有射频专有示例。 我的问题与函数 RF_runCmdSafe (...) 有关。 我们理解一条命令可以被抢占的理念
嗨、Angel、
您使用的是 DMM? 还是通过射频驱动器的多模式处理一切?
1.和 2. 在 DMM 上下文中、命令可以被 DMM 调度程序抢占或中止、具体取决于具体情况。 您应该处理这两者。
3.如果队列中可能有多个事件,我们建议使用此语法。
4.您也可以检查这些事件。
5.当您发送 CMD_FS 时、对讲机不会立即运行它、而是等到已安排 Rx og TX。 因此、这对 CMD_FS 没有意义。
6.是的、CMD_FS 可能会失败。 发生这种情况时、以下 Tx 或 Rx 命令将 失败。 您应该确保已处理此错误。
谢谢、
Marie H
尊敬的 Marie H:
1.是的,我们在项目中使用了 DMM。
2.推荐的语法为“while ( terminationReason & RF_EventCmdAborted )&&( terminationReason & RF_EventCmdPreempted )“。
这意味着、仅当两个事件都存在时才会重复 RF 命令。 如果它被中止或抢占、则 RF 命令将不会重复。 这不是目的。
如果语法为“while ((terminationReason & RF_EventCmdAborted)||(terminationReason & RF_EventCmdPreempted))“、则如果第一个事件或第二个事件或两个事件都存在、则将重复 RF 命令。
最后一个问题。
在我们的射频专有协议和射频命令中、我们 在关闭 rfHandle 之前使用函数 RF_Yield (rfHandle)。 这对并行工作的 BLE 堆栈是否有问题?
谢谢、
Angel