Thread 中讨论的其他器件: SysConfig
我尝试在 CC1352R 芯片 SDK 4.10.00.78上集成定制射频协议和 BLE 外设(使用简单的外设示例)。
大约一年前、当 CC1352R 仍处于原型状态时、我使用早期 SDK (可能是3.2?)对 DMM 进行了实验 它没有"堆栈活动"概念。 我现在看4.10中的示例、通过 SimpleLink Academy 中的"DMM 集成"教程、我感到有些困惑。
我还记得 早期 SDK 中的堆栈状态概念-这似乎已在可在 SysConfig/DMM 中构建的"策略表"中转变为"应用状态"。 尽管在 SysConfig 中标记为"应用程序状态"、但将应用程序状态更改告知 DMM 的 API 仍然是 DMMPolicy_setStackState()。 据我所知、这些是指相同的东西、具体取决于它们在示例代码中的使用方式。
我已经了解了策略表与堆栈活动 优先级一起工作、如果我得到了正确的值、则会在全局优先级表的 SysConfig 外部声明该值、 它本身指向使用 DMM_GLOBAL_PRIORITY 宏构建的两个元素数组、并将堆栈活动标识符、DMM_Stack_{Normal|High|Urgent}和基本优先级值组合在一起。 此值将被添加到从策略表解析的任何值中、以达到应用于 RF 命令的网络优先级。 到目前为止、非常好。
对于内置 BLE 堆栈、示例代码中定义了许多"堆栈活动"值、其值看似重要、例如:
/* BLE Activity */ typedef enum { DMM_BLE_CONNECTION =0x07D0、 DMM_BLE_CON_EST =0x03E8、 DMM_BLE_broadcasting =0x0BB8、 DMM_BLE_观测=0x0FA0、 }DMMStackActivityBLE;
在考虑 BLE 方面的问题时、SysConfig 中会显示策略表的类似名称。
但是、对于自定义协议栈、没有这样的名称。 只是"全部"和"无"。 我可以理解 SysConfig 不知道我的自定义堆栈活动、 因为在 SysConfig 中没有地方输入它们。
问题1:是否有方法告诉 SysConfig 我的自定义协议栈活动、以便我可以充分利用 GUI 策略表构建器?
问题2:当我的定制堆栈正在执行定制堆栈活动时、如何通知 DMM? 我没有找到显示使用自定义堆栈活动的示例。 我不断挖掘并在 RF_ScheduleCmdParams 结构中找到"ActivityInfo"字段,该字段可选择性地传递给 RF_scheduleCmd ()。 这是我要将自定义堆栈活动值放在哪里? 数值是否具有重要意义?
问题3:在什么情况下我想在策略表条目中指定 DMMPOLICY_USE_ACTIVE_NONE? 如果条目不适用于堆栈活动、它会做什么?
谢谢你。