首页 / knowledge
EMS 知识库
本页目录一、这是什么二、目录结构三、怎么用(最快路径)3.0 现场报故障 → 走这里3.1 一条命令检索3.2 源码变动后重建索引3.3 查源码原文四、覆盖边界(这条必须知道,否则会问出答不了的问题)五、维护规则
AlphaESS Platform EMS 3.6 储能管理系统固件 · 应用层代码知识库 建立日期:2026-10-15 | 需求号:REQ-001 | 源码基准:
V0.11.676(git04e72700)
一、这是什么
把 EMS 固件应用层源码逐文件读懂后的结构化知识库,目标只有两个:
- 你说功能,我给出函数 —— 「削峰填谷在哪实现的」→ 直接给到
logic/logic.c的哪个函数、第几行。 - 现场出故障,快速定位 —— 「报故障码 X / 现象 Y」→ 给可能原因、对应函数、排查步骤。
二、目录结构
docs/knowledge/
├── README.md ← 本文件:知识库总入口
├── 基准版本.md 源码版本与覆盖边界(含哈希锁定)
├── 基准哈希.tsv 191 个源文件的逐文件 SHA256
├── 代码解析/ 逐文件解析 + 检索索引
│ ├── README.md 191 份文档的索引与项目概况(含 uCOS-II 任务模型表)
│ ├── common/ data/ hmi/ logic/ midware/ net/ user/
│ │ 镜像源码目录结构,每个 X.c/.h 对应一份 X.c/.h.md
│ └── 索引/ 反查层
│ ├── README.md 检索入口 + 顶层路由表
│ ├── 功能索引/ 7 份:「你会怎么问」→ 入口函数 → 源文件
│ ├── 函数索引.tsv 2364 条:函数名 / 源文件 / 行号 / 模块
│ ├── 类型与宏索引.tsv 2787 条:名称 / 种类 / 源文件 / 行号
│ ├── 全局变量索引.tsv 505 条:变量名 / 源文件 / 行号 / 声明
│ └── 工具/ 查找.js(检索)· 生成索引.js(重建 TSV)· 生成功能定位.js(重建定位表)
└── 故障速查/ ⭐ 现场排查入口 ← 报故障时从这里开始
├── README.md 怎么用这个库 + 故障码分区分区速查
├── 现场排查SOP.md ⭐ 手上只有设备和报错时的第 0~5 步
├── EMS故障分册.md E0001~E0094 逐条:触发条件/置位函数/排查方向
├── 故障码总表.md 全部 336 个故障码(由 TSV 自动渲染,勿手改)
├── 故障码表.tsv 机器可读全量表(11 组 / 336 条)
└── 工具/ 生成故障码表.js · 渲染总表.js
三、怎么用(最快路径)
3.0 现场报故障 → 走这里
打开 故障速查/现场排查SOP.md,按第 0~5 步走。
一句话版:先用故障码的数值判断是谁报的(E0001~E0094 是 EMS 自己,E100000 起是逆变器,E60000 起是 BMS,E200000 起是充电桩),
再读 Modbus 寄存器 0x0701(高 16 位)/ 0x0702(低 16 位) 拿完整故障位图 —— 不要只盯一个码。
3.1 一条命令检索
在 docs/knowledge/代码解析/索引/ 目录下:
node 工具/查找.js -F 电池加热 # ⭐功能 → 函数:直接给 定义文件:行号(推荐首选)
node 工具/查找.js 削峰填谷 # 综合查:功能定位 + 功能索引 + 函数 + 类型宏 + 全局变量
node 工具/查找.js -f bat_heat # 只查函数名,直接给 文件:行号
node 工具/查找.js -g 并机地址 # 只查功能反查表(口语问法也能命中)
node 工具/查找.js -t SOC_CALIBRATION # 只查类型 / 宏
node 工具/查找.js -v g_t_logic_info # 只查全局变量
node 工具/查找.js -d 故障码 # 全文搜**整个知识库**(含 故障速查/)
node 工具/查找.js -p midware/bms/bms.c # 由源文件路径反查分析文档
关键词不区分大小写,空格分隔表示与。
3.2 源码变动后重建索引
cd docs/knowledge/代码解析/索引
node 工具/生成索引.js # 默认读 <仓库根>/platform-ems-3-6-plain
EMS_SRC=/别的/源码树 node 工具/生成索引.js # 换源码树
3.3 查源码原文
按 TSV 里给的行号,去 platform-ems-3-6-plain/<源文件> 对号入座。
四、覆盖边界(这条必须知道,否则会问出答不了的问题)
源码树共 454 个 .c/.h;排除底层后应用层 279 个;其中已文档化 191 个。
| 类别 | 数量 | 状态 |
|---|---|---|
| 已文档化应用层 | 191 | ✅ 有逐文件解析 + 进索引 |
hmi/ui/ 菜单界面 | 77 | ⛔ 未纳入(本轮决定,文档备份在 _excluded_hmi_ui_docs/,后续单独补) |
| 芯片驱动(W5500 / WM6232PU) | 6 | ⛔ 不纳入(底层芯片驱动) |
| 芯片启动/中断(gd32f4xx_it、system_gd32f4xx 等) | 5 | ⛔ 不纳入(底层) |
| 底层 RTOS / 标准库 / 硬件抽象 | 175 | ⛔ 不纳入(UCOSII/ HALLIB/ hardware/ system/) |
191 + 88 = 279 ✔ 账对得上,逐文件清单见 基准版本.md。
因此现在答不了的问题:任何关于「界面上怎么操作」「某个菜单页读数不对」的问题 —— 那属于 hmi/ui/,等 K4 批次补。
五、维护规则
- 源码只读不改:知识库过程一律不改
platform-ems-3-6-plain下任何.c/.h。 - 源码更新后必做两件事:重跑
生成索引.js(重建 TSV)+ 更新基准版本.md的哈希。 - 改动要留痕:本知识库的任何增删改,都必须写入
docs/变更日志.md(需求号 REQ-001)。 - 文档与源码版本绑定:
基准版本.md记录了源码 commit 与 191 文件哈希,任何解析文档若与源码对不上,以哈希为准判断谁过期了。