Files
WCTDataMiner/docs/architecture/CLI命令设计.md
Scottxjw 0667e2e9b8 feat(analyze): 新增 Ploss/Qfod 分析命令
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-14 15:36:29 +08:00

108 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# CLI 命令设计
> 所属模块:[架构概览](./概览.md)
---
## 1. 命令概览
| 命令 | 说明 | 数据流 |
|------|------|--------|
| `parse` | 解析日志文件到本地库 | log → local.db |
| `aggregate` | 从本地库汇总生成发布库 | local.db → release.db |
| `export` | 导出发布库到 CSV | release.db → CSV |
| `clean` | 清理本地库数据(软删除) | 只写 local.db |
| `analyze` | 独立分析Ploss 余量/delta_p、Qfod 标定阈值 | log → 控制台报告 |
---
## 2. 命令详解
### 2.1 parse
```bash
# 解析单个文件
dotnet run parse --file path/to/log.txt
# 解析目录下所有文件
dotnet run parse --dir path/to/logs/
# 解析目录(递归)
dotnet run parse --dir path/to/logs/ --recursive
# 强制重新解析
dotnet run parse --file log.txt --force
```
### 2.2 aggregate
```bash
# 从 local.db 汇总生成 release.db默认重建
dotnet run aggregate
# 追加模式(不删除已有记录)
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
```
### 2.4 clean
```bash
# 清理指定场景
dotnet run clean --scenario <guid> --confirm
# 清理所有数据
dotnet run clean --all --confirm
```
---
### 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`
---
## 3. 典型工作流
```bash
# 1. 解析日志
dotnet run parse --dir ./data/test_input --recursive
# 2. 汇总生成发布库
dotnet run aggregate
# 3. 导出正式 CSV
dotnet run export --output ./data/output
```
输出文件: `./data/output/WCT-ChargingParameterDatabase.csv`