2026-07-02 15:53:30 +08:00
|
|
|
|
# CLI 命令设计
|
|
|
|
|
|
|
|
|
|
|
|
> 所属模块:[架构概览](./概览.md)
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 1. 命令概览
|
|
|
|
|
|
|
2026-08-13 15:01:32 +08:00
|
|
|
|
| 命令 | 说明 | 数据流 |
|
|
|
|
|
|
|------|------|--------|
|
|
|
|
|
|
| `parse` | 解析日志文件到本地库 | log → local.db |
|
|
|
|
|
|
| `aggregate` | 从本地库汇总生成发布库 | local.db → release.db |
|
|
|
|
|
|
| `export` | 导出发布库到 CSV | release.db → CSV |
|
|
|
|
|
|
| `clean` | 清理本地库数据(软删除) | 只写 local.db |
|
2026-08-14 15:36:29 +08:00
|
|
|
|
| `analyze` | 独立分析:Ploss 余量/delta_p、Qfod 标定阈值 | log → 控制台报告 |
|
2026-07-02 15:53:30 +08:00
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 2. 命令详解
|
|
|
|
|
|
|
2026-08-13 15:01:32 +08:00
|
|
|
|
### 2.1 parse
|
2026-07-02 15:53:30 +08:00
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# 解析单个文件
|
|
|
|
|
|
dotnet run parse --file path/to/log.txt
|
|
|
|
|
|
|
|
|
|
|
|
# 解析目录下所有文件
|
|
|
|
|
|
dotnet run parse --dir path/to/logs/
|
|
|
|
|
|
|
|
|
|
|
|
# 解析目录(递归)
|
|
|
|
|
|
dotnet run parse --dir path/to/logs/ --recursive
|
|
|
|
|
|
|
2026-08-13 15:01:32 +08:00
|
|
|
|
# 强制重新解析
|
2026-07-02 15:53:30 +08:00
|
|
|
|
dotnet run parse --file log.txt --force
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2026-08-13 15:01:32 +08:00
|
|
|
|
### 2.2 aggregate
|
2026-07-02 15:53:30 +08:00
|
|
|
|
|
|
|
|
|
|
```bash
|
2026-08-13 15:01:32 +08:00
|
|
|
|
# 从 local.db 汇总生成 release.db(默认重建)
|
|
|
|
|
|
dotnet run aggregate
|
2026-07-02 15:53:30 +08:00
|
|
|
|
|
2026-08-13 15:01:32 +08:00
|
|
|
|
# 追加模式(不删除已有记录)
|
|
|
|
|
|
dotnet run aggregate --rebuild false
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 2.3 export
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# 导出正式充电参数 CSV(默认)
|
|
|
|
|
|
dotnet run export --output ./data/output
|
|
|
|
|
|
|
|
|
|
|
|
# 导出正式充电参数 CSV + legacy Qfod/Ploss
|
|
|
|
|
|
dotnet run export --type all --output ./data/output
|
|
|
|
|
|
|
|
|
|
|
|
# 仅导出 legacy Qfod CSV
|
|
|
|
|
|
dotnet run export --type qfod --format csv
|
|
|
|
|
|
|
|
|
|
|
|
# 导出 JSON
|
|
|
|
|
|
dotnet run export --format json --type qfod
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2026-08-14 09:23:26 +08:00
|
|
|
|
### 2.4 clean
|
2026-07-02 15:53:30 +08:00
|
|
|
|
|
|
|
|
|
|
```bash
|
2026-08-13 15:01:32 +08:00
|
|
|
|
# 清理指定场景
|
|
|
|
|
|
dotnet run clean --scenario <guid> --confirm
|
2026-07-02 15:53:30 +08:00
|
|
|
|
|
|
|
|
|
|
# 清理所有数据
|
|
|
|
|
|
dotnet run clean --all --confirm
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
2026-08-14 15:36:29 +08:00
|
|
|
|
### 2.5 analyze
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# Ploss 余量 / delta_p 分析(单文件,直接解析日志,不依赖本地库)
|
|
|
|
|
|
dotnet run analyze --type ploss --file <log>
|
|
|
|
|
|
|
|
|
|
|
|
# Qfod 标定阈值(两个文件:纯手机 / 手机+异物)
|
|
|
|
|
|
dotnet run analyze --type qfod --pure <纯手机.log> --foreign <手机+异物.log>
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
- `analyze` 为**独立分析**,不进入 `parse → aggregate` 发布管线,也不写任何文件(仅控制台报告)。
|
|
|
|
|
|
- Ploss 口径以实体语义为准(Field9=ploss、Field10=threshold、Field12=FOD 标志):
|
|
|
|
|
|
- FOD 报警 = `Field12 == 1`
|
|
|
|
|
|
- 安全余量 `Margin = Threshold − Ploss > 2000`
|
|
|
|
|
|
- 恒等式校验 `delta_p = Tx − Rx − pow_loss − Ploss`(仅两行格式)
|
|
|
|
|
|
- delta_p 反解(两行格式且 FOD=1):`delta_p' = DeltaP + 2001 + Ploss − Threshold`,控制台输出重写后的 header 行
|
|
|
|
|
|
- Qfod 标定阈值:`Threshold = (纯手机 ΔQ 最大值 + 手机+异物 ΔQ 最小值) / 2`。因现无法自动区分两个日志文件,需显式传入 `--pure`/`--foreign`。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
2026-08-13 15:01:32 +08:00
|
|
|
|
## 3. 典型工作流
|
2026-07-02 15:53:30 +08:00
|
|
|
|
|
2026-08-13 15:01:32 +08:00
|
|
|
|
```bash
|
|
|
|
|
|
# 1. 解析日志
|
|
|
|
|
|
dotnet run parse --dir ./data/test_input --recursive
|
2026-07-02 15:53:30 +08:00
|
|
|
|
|
2026-08-14 09:23:26 +08:00
|
|
|
|
# 2. 汇总生成发布库
|
2026-08-13 15:01:32 +08:00
|
|
|
|
dotnet run aggregate
|
2026-07-02 15:53:30 +08:00
|
|
|
|
|
2026-08-14 09:23:26 +08:00
|
|
|
|
# 3. 导出正式 CSV
|
2026-08-13 15:01:32 +08:00
|
|
|
|
dotnet run export --output ./data/output
|
2026-07-02 15:53:30 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
2026-08-13 15:01:32 +08:00
|
|
|
|
输出文件: `./data/output/WCT-ChargingParameterDatabase.csv`
|