diff --git a/docs/AnalyzeCommand.md b/docs/AnalyzeCommand.md deleted file mode 100644 index c69e8ad..0000000 --- a/docs/AnalyzeCommand.md +++ /dev/null @@ -1,183 +0,0 @@ -# AnalyzeCommand 使用指南 - -数据分析命令,支持 Ploss 余量分析与 Qfod 标定阈值分析。 - -## 命令语法 - -```bash -WCTDataMiner analyze --type [选项] -``` - -## 分析类型 - -| 类型 | 说明 | 必需参数 | -|------|------|----------| -| `ploss` | Ploss 余量/delta_p 分析 | `--file` | -| `qfod` | Qfod 标定阈值计算 | `--pure`, `--foreign` | - ---- - -## Ploss 分析 - -### 语法 - -```bash -WCTDataMiner analyze --type ploss --file <日志文件路径> -``` - -### 参数 - -| 参数 | 说明 | -|------|------| -| `--file` | 日志文件路径(支持 `.log` 和 `.DAT` 格式) | - -### 输出示例 - -``` -=== Ploss Analysis: sample.DAT === -Total: 35 (TwoLine: 35, Legacy: 0), FOD: 1, Errors: 0 -Normal margin>2000: 34/34 (100.0%) -FOD margin>2000: 1/1 (100.0%) -Identity (delta_p = Tx - Rx - pow_loss - ploss): 35/35 - -FOD rows (delta_p back-solve): - Line 92 [two-line] pow_loss=3394 delta_p=605 ploss=1750 threshold=2000 margin=250 - -> delta_p'=605 - rewrite: pow_loss = 3394, delta_p = 605 -``` - -### 输出字段说明 - -| 字段 | 说明 | -|------|------| -| **Total** | 总记录数,按格式分类(TwoLine: 两行格式,Legacy: 旧单行格式) | -| **FOD** | FOD 标记行数(Field12 == 1) | -| **Errors** | 解析错误行数 | -| **Normal margin>2000** | 正常行中余量 > 2000 的比例 | -| **FOD margin>2000** | FOD 行中余量 > 2000 的比例 | -| **Identity** | 恒等式成立行数(delta_p = Tx - Rx - pow_loss - ploss) | - -### FOD 行反解 - -当存在 FOD 行时,输出包含 `delta_p'` 反解结果: - -- `delta_p'` = 反解后的 delta_p 值 -- `rewrite` = 重写后的 header 字段(pow_loss, delta_p) - -### 支持的日志格式 - -#### 两行格式(推荐) - -``` -HEADER-> 18768 2001 -18347 3394 1750 2000 ... -FOD-> 12 18801 2001 -18447 3394 1750 2000 0 1750 2000 1 0 0 0 0 0 -``` - -#### 旧单行格式(兼容) - -``` -FOD-> 0 0 0 12 18801 2001 -18447 3394 1750 2000 0 1750 2000 1 0 0 0 -``` - -#### Field1 十六进制支持 - -Field1 支持以下十六进制格式: - -| 格式 | 示例 | 说明 | -|------|------|------| -| `0x` 前缀 | `0xFF`, `0x0C` | 标准 C 风格十六进制 | -| `0` 前缀 | `0FF`, `0C` | 简写十六进制(仅含 A-F 时识别) | -| 十进制 | `12`, `255` | 普通十进制 | - ---- - -## Qfod 标定 - -### 语法 - -```bash -WCTDataMiner analyze --type qfod --pure <纯手机日志> --foreign <异物日志> -``` - -### 参数 - -| 参数 | 说明 | -|------|------| -| `--pure` | 纯手机充电日志路径 | -| `--foreign` | 手机 + 异物充电日志路径 | - -### 输出示例 - -``` -=== Qfod Calibration === - Pure phone: pure.log - count=21 min=3 max=5 avg=4.0 - Foreign object: foreign.log - count=7 min=-49 max=-5 avg=-27.7 - -Threshold = (pureMax + foreignMin) / 2 = (5 + -49) / 2 = -22 -Margin: pureMax - threshold = 27 (负为安全), foreignMin - threshold = -27 (正为安全) -``` - -### 输出字段说明 - -| 字段 | 说明 | -|------|------| -| **count** | 记录条数 | -| **min** | ΔQ 最小值 | -| **max** | ΔQ 最大值 | -| **avg** | ΔQ 平均值 | -| **Threshold** | 标定阈值 = (pureMax + foreignMin) / 2 | - -### 标定原理 - -1. **纯手机充电**:ΔQ 稳定在正值区间(如 3~5) -2. **异物干扰**:ΔQ 衰减到负值区间(如 -49~-5) -3. **阈值计算**:取两组数据的中间值,实现最大区分度 - -### 安全余量解读 - -| 指标 | 期望值 | 说明 | -|------|--------|------| -| `pureMax - threshold` | **负值** | 纯手机数据不误触发 | -| `foreignMin - threshold` | **正值** | 异物数据可靠检出 | - ---- - -## 错误处理 - -| 场景 | 输出 | -|------|------| -| 缺少 `--type` | `Required option '--type' was not specified.` | -| 未知类型 | `Unknown type: foo. Use 'ploss' or 'qfod'.` | -| Ploss 缺少文件 | `Please specify --file for Ploss analysis` | -| Qfod 缺少参数 | `Please specify --pure and --foreign for Qfod calibration` | -| 文件不存在 | `[filename] FAILED: File not found` | - ---- - -## 典型使用场景 - -### 场景 1:产线数据质量检验 - -```bash -# 检查 Ploss 余量是否达标(margin > 2000 比例) -WCTDataMiner analyze --type ploss --file "产线数据.DAT" -``` - -### 场景 2:FOD 事件溯源 - -```bash -# 定位 FOD 行,查看 delta_p' 反解结果 -WCTDataMiner analyze --type ploss --file "异常日志.log" -``` - -### 场景 3:Qfod 阈值标定 - -```bash -# 使用纯净数据 + 异物数据计算最佳阈值 -WCTDataMiner analyze --type qfod \ - --pure "pure.log" \ - --foreign "foreign.log" -``` -