feat(powermgr): meow_powermgr 期0调研+期1骨架——功耗管理专项服务(POWER_MANAGER_DESIGN)
期0: POWER_HW_FACTS.md 真机只读取证——battery/无current_now(实时功率=derived+estimated 双轨)、无cpufreq(省电档无降频点)、背光量程0-101(非255)、rfkill可用、axp_battery为 幻影设备、无thermal zones、audiod STATE字段完备。 期1: patch_v2/meow_powermgr/ 单二进制双形态(meow_powermgr守护+meow_power CLI): - svcd托管 trigger=boot/restart=on-fail;HibyOS只读降级(/tmp/meow_boot_mode!=meow 只采样电池,不碰wlan0/bt/声卡,热切换) - 权威充电链0-diff照抄svc_power(mp2731→fusb302→battery兜底) - 电池深加工 state/cap/mV/health/续航估算(容量差分速率环 30s×240) - 经验功耗模型(/usr/data/meow/power_model.conf 可调,内置默认全部标注待标定) - IPC /usr/data/meow_pm.sock MSG_PM_QUERY(0x00D0)→MSG_PM_RESULT(0x00D1) JSON, subset位;meow_ipc.h 0x00D0-0x00D7 号段回填 - CLI status/estimate/model 落地(IPC优先+直读降级),history/top/events/policy 期2/3桩 - 宿主桩测试36+1例全过(MEOW_PS_DIR等假节点)+qemu-mipsel全过+真机对照svc_power battery口径一致(93%/4270mV);mipsel静态117KB(<200KB);-Wall -Wextra 0 warning
This commit is contained in:
1 parent
6a4d330a26
commit
250c9ae8b1
9 files changed
+1413
No files matched your search
@@ -92,6 +92,15 @@ enum {
|
||||
MSG_AUDIO_STATE = 0x00C8, /* ↓ 状态快照文本(NUL 结尾;当前流/参数/帧数/underrun/路由/音量) */
|
||||
MSG_AUDIO_ROUTE = 0x00C9, /* ↑ 手动路由(u32 port:0=auto 2=3.5 3=4.4;调试/面板用) */
|
||||
MSG_AUDIO_VOLUME = 0x00CA, /* ↑ 音量(i32 pct:-1=查询 0-100=设置;v1 透传写 DAC numid=1/2) */
|
||||
/* ---- meow_powermgr 功耗管理服务(devdocs/plan/POWER_MANAGER_DESIGN.md §6.1):0x00D0-0x00D7 ----
|
||||
* 语义:功耗维度的查看/分析/管理(svc_power 管动作、svc_perf 管性能,powermgr 管功耗)。
|
||||
* 独立 socket /usr/data/meow_pm.sock(--sock/MEOW_PM_SOCK 覆盖)。鉴权分级同 svc_power:
|
||||
* QUERY/HISTORY/EVENTS=读级任意调用者;POLICY_SET=动作级(期 3 落地时接 SO_PEERCRED 同源代码)。 */
|
||||
MSG_PM_QUERY = 0x00D0, /* ↑ 功耗聚合查询(m_pm_query_t{subset}:PM_SUBSET_* 位;0=全部) */
|
||||
MSG_PM_RESULT = 0x00D1, /* ↓ 聚合 JSON(电池深加工/功耗估算/分解/策略,形状对齐 §3/§4.1) */
|
||||
/* 0x00D2 MSG_PM_POLICY_GET / 0x00D3 MSG_PM_POLICY_SET —— 期 3(profile/低电阈值读改,SET 动作级鉴权)
|
||||
* 0x00D4 MSG_PM_HISTORY(u32 hours)/ 0x00D5 MSG_PM_HISTORY_RESULT(统计 JSON)—— 期 2
|
||||
* 0x00D6 MSG_PM_EVENTS / 0x00D7 MSG_PM_EVENTS_RESULT(异常耗电事件清单)—— 期 2 */
|
||||
MSG_SYS = 0x00F0 /* ↓ 系统事件(守护关闭/服务死亡/播放器状态) */
|
||||
};
|
||||
|
||||
@@ -341,6 +350,28 @@ typedef struct m_power_status {
|
||||
char msg[96]; /* 结果/状态文本 */
|
||||
} m_power_status_t;
|
||||
|
||||
/* ---- meow_powermgr 功耗管理(POWER_MANAGER_DESIGN §6.1;服务端 meow_powermgr)---- */
|
||||
|
||||
/* MSG_PM_QUERY 子集位(0=全部) */
|
||||
#define PM_SUBSET_BATTERY (1u << 0) /* 电池深加工:state/pct/mv/health/续航估算 */
|
||||
#define PM_SUBSET_ESTIMATE (1u << 1) /* 当前功耗估算:est_mw + confidence(estimated/derived) */
|
||||
#define PM_SUBSET_BREAKDOWN (1u << 2) /* 功耗分解:各子系统分量(§3.2 经验模型,系数待标定) */
|
||||
#define PM_SUBSET_POLICY (1u << 3) /* 策略档位快照(期 3;期 1 恒 null) */
|
||||
|
||||
/* MSG_PM_QUERY ↑:功耗聚合查询 */
|
||||
typedef struct m_pm_query {
|
||||
uint32_t subset; /* 0=全部;PM_SUBSET_* 组合 */
|
||||
} m_pm_query_t; /* 4 B */
|
||||
|
||||
/* MSG_PM_RESULT ↓:聚合 JSON(payload 为 NUL 结尾 JSON 文本,同 m_perf_result_t 口径) */
|
||||
typedef struct m_pm_result {
|
||||
uint32_t code; /* MEOW_OK / MEOW_ERR_* */
|
||||
uint32_t subset; /* 回显请求 subset */
|
||||
uint16_t json_len; /* json 有效字节(不含 NUL) */
|
||||
uint16_t pad;
|
||||
char json[MEOW_IPC_MAX - 12]; /* 聚合 JSON(§3/§4.1 形状) */
|
||||
} m_pm_result_t;
|
||||
|
||||
/* ---- amsd 控制(AMSD_DESIGN §4.2)---- */
|
||||
|
||||
/* MSG_AMS_START →:请求 launcher 拉起某 App。app_id=包名(权威);activity 空=裸启动
|
||||
|
||||
Reference in new issue
Block a user