feat(module_lifecycle): 完善模块生命周期管理功能
- 添加了模块生命周期状态转换验证函数,包括目标状态允许性检查和路径允许性检查 - 实现了模块操作验证功能,确保必要的回调函数存在 - 更新了状态报告逻辑,增加了模式检查以防止无效状态转换 - 修改了生命周期转换流程,区分运行启动和停止操作 - 优化了错误处理机制,返回适当的错误码 refactor(ble_modules): 简化BLE模块生命周期配置 - 将多个BLE模块(lifecycle_cfg)的模式从ML_MODE_POWER改为ML_MODE_NONE - 移除了power_event相关依赖和事件订阅 - 更新了BLE BAS模块的状态转换逻辑 - 简化了BLE HID/NUS/Protocol模块的电源管理相关代码 fix(mode_switch): 修复唤醒后模式恢复功能 - 在唤醒事件处理中添加了最后模式的恢复逻辑 - 确保设备唤醒后能够重新提交之前的模式切换事件
This commit is contained in:
@@ -5,7 +5,6 @@
|
||||
#define MODULE mode_policy_module
|
||||
#include <caf/events/module_state_event.h>
|
||||
#include <caf/events/module_suspend_event.h>
|
||||
#include <caf/events/power_event.h>
|
||||
|
||||
#include <zephyr/logging/log.h>
|
||||
|
||||
@@ -24,8 +23,8 @@ static int do_start(void);
|
||||
static int do_stop(void);
|
||||
|
||||
static const struct module_lifecycle_cfg lifecycle_cfg = {
|
||||
.mode = ML_MODE_POWER,
|
||||
.stopped_state = MODULE_STATE_STANDBY,
|
||||
.mode = ML_MODE_NONE,
|
||||
.stopped_state = MODULE_STATE_OFF,
|
||||
};
|
||||
|
||||
static const struct module_lifecycle_ops lifecycle_ops = {
|
||||
@@ -195,27 +194,9 @@ static bool app_event_handler(const struct app_event_header *aeh)
|
||||
return false;
|
||||
}
|
||||
|
||||
if (is_power_down_event(aeh)) {
|
||||
if (module_lifecycle_is_initialized(&ctx.lc)) {
|
||||
(void)module_set_lifecycle(&ctx.lc, LC_STOPPED);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
if (is_wake_up_event(aeh)) {
|
||||
if (module_lifecycle_is_initialized(&ctx.lc)) {
|
||||
(void)module_set_lifecycle(&ctx.lc, LC_RUNNING);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
APP_EVENT_LISTENER(MODULE, app_event_handler);
|
||||
APP_EVENT_SUBSCRIBE(MODULE, mode_switch_event);
|
||||
APP_EVENT_SUBSCRIBE(MODULE, module_state_event);
|
||||
APP_EVENT_SUBSCRIBE_EARLY(MODULE, power_down_event);
|
||||
APP_EVENT_SUBSCRIBE(MODULE, wake_up_event);
|
||||
|
||||
Reference in New Issue
Block a user