From c40fd24c1a4a421102a086536b9ed0894e827279 Mon Sep 17 00:00:00 2001 From: super_agent_bot Date: Fri, 6 Nov 2026 18:34:33 +0800 Subject: [PATCH 1/7] =?UTF-8?q?docs(=E6=95=85=E9=9A=9C=E5=BD=95=E6=B3=A2):?= =?UTF-8?q?=20=E7=AC=AC=E4=BA=8C=E5=B9=95=E5=B0=BE=E6=AD=A5=E5=9D=8F?= =?UTF-8?q?=E6=AE=B5/=E7=A9=BA=E6=80=81=E7=94=BB=E9=9D=A2=E6=9D=BF?= =?UTF-8?q?=E7=BA=A7=E9=97=AD=E7=8E=AF=E5=85=A5=E6=A1=A3=EF=BC=88#68?= =?UTF-8?q?=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 同号翻位覆盖列内段 WAVE06 → 回放页显式「该段不可读」(零波形元素, 判据「绝不许画直线」过);全删段 → 「无录波段」空态 + 串口 open fail fr=4 互证。证据目录 wave_shot_20261106:三态 PNG 与原始 帧、坏样本与原件、PC 侧 wave_read REJECT 实录、串口摘录、sha256 清单。收工:板上九件原件逐件 sha 复验恢复、坏样本不留板(§7 二 选一取删除),UI 停 STANDBY。发现 F1(STOR 新文件不进钉表,需同 号顶当前段或手动录波触发重扫)与 F2(数据 CRC 判废串口静默、画 面自证)记 §10。同步销项:手册第二幕状态与现场记录表第 3 行、 设计说明 §10「回放页坏段/空态画面闭环记录」、任务规划 README §2.0 独立行。本轮不改代码。关联 #68 #38。 --- docs/任务规划/README.md | 2 +- docs/子系统设计/故障录波设计说明.md | 41 +++- .../专项验证/故障录波板级到场轮执行手册.md | 13 +- .../测试数据/wave_shot_20261106/README.md | 74 +++++++ .../after_restore_page_normal.png | Bin 0 -> 1690 bytes .../after_restore_page_normal_raw3200.bin | Bin 0 -> 3200 bytes .../arrival_open_waveplay.png | Bin 0 -> 1690 bytes .../arrival_open_waveplay_raw3200.bin | Bin 0 -> 3200 bytes .../bad_segment_reject_wave06.png | Bin 0 -> 971 bytes .../bad_segment_reject_wave06_raw3200.bin | Bin 0 -> 3200 bytes .../empty_state_no_segments.png | Bin 0 -> 949 bytes .../empty_state_no_segments_raw3200.bin | Bin 0 -> 3200 bytes .../empty_state_recheck.png | Bin 0 -> 949 bytes .../empty_state_recheck_raw3200.bin | Bin 0 -> 3200 bytes .../good_wave06_sec6_ua.png | Bin 0 -> 2509 bytes .../good_wave06_sec6_ua_raw3200.bin | Bin 0 -> 3200 bytes .../wave_shot_20261106/manifest_sha256.json | 20 ++ .../wave_shot_20261106/pc_side_dump.txt | 44 +++++ .../samples/WAVE06_bitflip_reject.BIN | Bin 0 -> 5250 bytes .../samples/WAVE06_original.BIN | Bin 0 -> 5250 bytes .../samples/WAVE09_seed_bitflip_reject.BIN | Bin 0 -> 5250 bytes .../wave_shot_20261106/serial_excerpt.txt | 180 ++++++++++++++++++ 22 files changed, 368 insertions(+), 6 deletions(-) create mode 100644 docs/测试说明/测试数据/wave_shot_20261106/README.md create mode 100644 docs/测试说明/测试数据/wave_shot_20261106/after_restore_page_normal.png create mode 100644 docs/测试说明/测试数据/wave_shot_20261106/after_restore_page_normal_raw3200.bin create mode 100644 docs/测试说明/测试数据/wave_shot_20261106/arrival_open_waveplay.png create mode 100644 docs/测试说明/测试数据/wave_shot_20261106/arrival_open_waveplay_raw3200.bin create mode 100644 docs/测试说明/测试数据/wave_shot_20261106/bad_segment_reject_wave06.png create mode 100644 docs/测试说明/测试数据/wave_shot_20261106/bad_segment_reject_wave06_raw3200.bin create mode 100644 docs/测试说明/测试数据/wave_shot_20261106/empty_state_no_segments.png create mode 100644 docs/测试说明/测试数据/wave_shot_20261106/empty_state_no_segments_raw3200.bin create mode 100644 docs/测试说明/测试数据/wave_shot_20261106/empty_state_recheck.png create mode 100644 docs/测试说明/测试数据/wave_shot_20261106/empty_state_recheck_raw3200.bin create mode 100644 docs/测试说明/测试数据/wave_shot_20261106/good_wave06_sec6_ua.png create mode 100644 docs/测试说明/测试数据/wave_shot_20261106/good_wave06_sec6_ua_raw3200.bin create mode 100644 docs/测试说明/测试数据/wave_shot_20261106/manifest_sha256.json create mode 100644 docs/测试说明/测试数据/wave_shot_20261106/pc_side_dump.txt create mode 100644 docs/测试说明/测试数据/wave_shot_20261106/samples/WAVE06_bitflip_reject.BIN create mode 100644 docs/测试说明/测试数据/wave_shot_20261106/samples/WAVE06_original.BIN create mode 100644 docs/测试说明/测试数据/wave_shot_20261106/samples/WAVE09_seed_bitflip_reject.BIN create mode 100644 docs/测试说明/测试数据/wave_shot_20261106/serial_excerpt.txt diff --git a/docs/任务规划/README.md b/docs/任务规划/README.md index 4aa134ae..b59e27d0 100644 --- a/docs/任务规划/README.md +++ b/docs/任务规划/README.md @@ -66,7 +66,7 @@ | **6** | 保护元件与采集增强 | 等待标准源或硬件改版 | 保护先解除未标定闭锁;三相同时刻类功能等 V0.2 硬件 | | **7** | 验证窗口事项 | 逢条件顺带 | CI runner、PC peer、CH340、负向故障注入条件到位时执行 | | **8** | 独立模块与暂缓项 | 当前不排 | 开入开出、104 文件传输单独立项(SNTP 已单独立项并于 2026-11-04 落地 #73,:8888 随 #78 退役);RS-485 与内存优化按各自重启条件 | -| **独立** | **故障录波(1 kHz · 8 路原始码值 · 单通道回放)** | **代码面已交付;2026-10-31 远程半轮过六项、2026-11-02 回放页枚举缺陷已修复闭环,余注量对表与人到场项** | 用户裁定 2026-10-29 **录波先行**:数据面最小闭环 → 手动与保护启动触发 → 回放页。三块的**代码侧判据已收口**(主机单测 113 / 170 / 110 全 rc=0、双端编译 0 错误 0 警告、板端编码器与 PC 侧解码器字节级互验、手动录波与录波回放两叶已绑页、内容页黄金参考扩至 66 张);**2026-10-31 远程半轮已过六项**(真 FAT 落盘、触发→落盘全部落在 2 s 封存超时窗内、冷却恢复、轮转、PC 侧坏段拒收、冻结窗内 104 并发);同轮发现的缺陷「回放页段表枚举恒空」**已于 2026-11-02 远程修复并板级闭环**(根因 = 读侧 `wave_store_seg_path()` 返回值判错,顺带修键处理缺失效;回放页真段/切段/切道已实测,登记簿条目已销项,证据见设计说明 §10「回放页枚举恒空缺陷修复记录」);**没跑的是注量对表那半轮**(注 1 V / 50 Hz、与 `meas:` 行和 104 浮点遥测对表、回放页放坏段与空态画面)加 P 触发 / bench T 源,全部结果与清单见 `docs/子系统设计/故障录波设计说明.md` §10「板级远程半轮记录」。**板级判据、留痕名清单与执行顺序图的属主 = docs/子系统设计/故障录波设计说明.md §9 与 §10**(原卡片登记簿 2026-10-30 随销项并入后删除);**与 UI 道互斥**(菜单树与中文字库是整文件生成物,同刻只允许一条道写)——本波按此串行执行:UI 道在数据面与接线冻结之后才动生成物 | +| **独立** | **故障录波(1 kHz · 8 路原始码值 · 单通道回放)** | **代码面已交付;2026-10-31 远程半轮过六项、2026-11-02 回放页枚举缺陷已修复闭环、2026-11-04 注量对表闭环(#40 §8 交流轮)、2026-11-06 第二幕尾步坏段/空态画面台架远程轮拍毕——回放页三态板级判据全部实证;余 P 触发(需标定解锁决定)、bench T 源与卷占用、`task_prof` 耗时峰值等到场/裁定项** | 用户裁定 2026-10-29 **录波先行**:数据面最小闭环 → 手动与保护启动触发 → 回放页。三块的**代码侧判据已收口**(主机单测 113 / 170 / 110 全 rc=0、双端编译 0 错误 0 警告、板端编码器与 PC 侧解码器字节级互验、手动录波与录波回放两叶已绑页、内容页黄金参考扩至 66 张);**2026-10-31 远程半轮已过六项**(真 FAT 落盘、触发→落盘全部落在 2 s 封存超时窗内、冷却恢复、轮转、PC 侧坏段拒收、冻结窗内 104 并发);同轮发现的缺陷「回放页段表枚举恒空」**已于 2026-11-02 远程修复并板级闭环**(根因 = 读侧 `wave_store_seg_path()` 返回值判错,顺带修键处理缺失效;回放页真段/切段/切道已实测,登记簿条目已销项,证据见设计说明 §10「回放页枚举恒空缺陷修复记录」);**注量对表半轮已于 2026-11-04 由 #40 §8 交流轮闭环**(幅值 / 相位 / 削顶三项实测,`meas:` 行与板上读数逐项核对,104 浮点遥测按用户裁定不作对照证据;`docs/测试说明/测试数据/boot_log_data/20261104_ac_*`);**回放页放坏段与空态画面已于 2026-11-06 台架远程轮拍毕闭环**(同号翻位覆盖→「该段不可读」零波形元素绝不平线;全删→「无录波段」+ 串口 `open fail fr=4` 互证;证据 `docs/测试说明/测试数据/wave_shot_20261106/`,记录见设计说明 §10「回放页坏段/空态画面闭环记录」);**没跑的只剩** P 触发对时刻(先要标定解锁决定)/ bench T 源与卷占用(需 bench 构建)/ `task_prof` 读路径耗时峰值,全部结果与清单见 `docs/子系统设计/故障录波设计说明.md` §10「板级远程半轮记录」。**板级判据、留痕名清单与执行顺序图的属主 = docs/子系统设计/故障录波设计说明.md §9 与 §10**(原卡片登记簿 2026-10-30 随销项并入后删除);**与 UI 道互斥**(菜单树与中文字库是整文件生成物,同刻只允许一条道写)——本波按此串行执行:UI 道在数据面与接线冻结之后才动生成物 | ### 2.1 关键依赖 diff --git a/docs/子系统设计/故障录波设计说明.md b/docs/子系统设计/故障录波设计说明.md index bbf3f494..0ac0bc3f 100644 --- a/docs/子系统设计/故障录波设计说明.md +++ b/docs/子系统设计/故障录波设计说明.md @@ -324,7 +324,7 @@ flowchart TD | 跨工具链分叉(实证,写进来是为了下一个模块别重踩) | 两份录波 .c 只 include 自身头(链上只有 stdint.h)时,ARMCC 报 22 条 identifier "NULL" is undefined;而主机 MSVC / gcc 会传递性把 stddef.h 拉进来,**主机单测完全照不出这个分叉** → 新增模块需要用 NULL 就自己 include stddef.h(与 `App/algo/sample_ring.c` 同口径,别塞公共头) | | 板级 | 信号发生器注 1 V / 50 Hz → 手动一段 → FTP 拉回 → PC 脚本量出周波数、幅值、极性与注入一致;再把 PC 重算的基波有效值与板上 `meas:` 对表。**判据只量四样:周波数、幅值、极性、钉轨路数——不比绝对相位**(理由见 §4.2「段内点序」:触发瞬间在工频周期内任意落点,段字节里没有绝对时间参考;真要比相位必须让发生器给同步触发,本波不做)。**钉轨对表的合格判据 = 头位图 ⊇ 实测钉轨路数,且差异必须能由注入条件解释**——因为 `clip_mask` 是按来源派生的链路可信性标记(§6.2 偏移 24 行),不是本段实测值:只加直流或小幅注入时那五路本就不该钉轨,硬取等式会假红。**同段另起一条强观察项**:V0.1 下这五路若在做**交流注入**时反而没钉轨,先怀疑接线或该路根本没被驱动——这是告警面,不是失败面(等式仍作为默认尺子留在 PC 侧 `shape --strict` 里,因为它有这个信号价值;要放行差异用那条判据的解释权,不靠改尺子)。**§5.2 第四条的板级观察项(代码与单测面已有、板级未测)**:bench 连续自抓期间人为把卷占住 2 s 以上(例如同一段跑 FTP 大文件读),看串口 `wave:` 行的 `err` 是否加一、是否只出现**一条** `[ERR] … seg drop: ring abandoned` 留痕(不是每拍刷屏)、且段号不推进(下一段仍写同号文件) | | 板级·触发来路(2026-10-30 并入原卡「手动触发与保护启动接线」板级段) | 真机面板按一次「手动录波」出一段;造一次过流,段号与该时刻 `/log/start.log` 事件对齐;冷却期内二次触发只加 `ovf` 不重录(**同时看 `armed` 与那一刻 start.log 的时刻,不要只盯 `ovf` 数字**——容差见 §9);冻结窗口内 104 上送与保护判据不受影响(这条是「丢录波样本不丢采集」的验收) | -| 板级·回放页(2026-10-30 并入原卡「现场单通道回放页」板级段) | 真机上放一段真波(不是模拟器合成节拍);远端看图能拍到该页做留证(只作留证,不是波形通路,§8.4);**空态与 CRC 失败态绝不允许画成一条直线**——用坏段在真机复现一次。**2026-10-31 远程半轮进展见下「板级远程半轮记录」小节**:PC 侧坏段拒收已过;回放页坏段/空态画面的测试面**已于 2026-11-02 枚举缺陷修复后打开**(真机已验证真段显示 + 切段切道,见下「回放页枚举恒空缺陷修复记录」小节),坏段/空态两画面本身仍是到场轮要拍的项 | +| 板级·回放页(2026-10-30 并入原卡「现场单通道回放页」板级段) | 真机上放一段真波(不是模拟器合成节拍);远端看图能拍到该页做留证(只作留证,不是波形通路,§8.4);**空态与 CRC 失败态绝不允许画成一条直线**——用坏段在真机复现一次。**2026-10-31 远程半轮进展见下「板级远程半轮记录」小节**:PC 侧坏段拒收已过;回放页坏段/空态画面的测试面**已于 2026-11-02 枚举缺陷修复后打开**(真机已验证真段显示 + 切段切道,见下「回放页枚举恒空缺陷修复记录」小节),坏段/空态两画面本身**已于 2026-11-06 台架远程轮拍毕闭环——见下「回放页坏段/空态画面闭环记录」小节,本行判据全部板级实证完毕** | | UI | `ui-verify` 五步;回放页入 `ui-golden` 黄金参考(**参考图一旦入库只能改代码对齐,禁止刷参考掩盖**);新叶走 `gen_menu.py` 重生成 + 字库链 | | 构建 | `/keil-build` 要求 0 错误 0 警告;新 .c 双端注册走 `new-source-file`(`MDK-ARM/STM32F407-Demo.uvprojx` 与 `simulator/CMakeLists.txt` 两处显式列表) | | 台账 | R6 三处同步 + `scripts/ram_baseline.py --update` + `mem-numbers` 与 `mem-budget` 钩子 | @@ -383,7 +383,8 @@ try 锁纪律)照常读出并显示 ⇒ try 锁读径正常;`manual_req` 作 **本半轮没跑的(人到场轮清单)**:注量对表(周波数 / 幅值 / 极性 / 钉轨路数)、`meas:` 浮点数值对表、两个待台架核数值(封存超时窗 §4.2 兜底行与冷却时长 `App/algo/wave_ring.h`)、P 触发与 start.log 对齐(还得先解标定闭锁)、 bench T 源与卷占用 2 s 的 `ring abandoned` 观察(需 bench 构建)、~~回放页坏段画面与空态画面 -(等枚举缺陷修复后才有测试面)~~ **(2026-11-02 枚举缺陷修复后测试面已开,见下小节)**、 +(等枚举缺陷修复后才有测试面)~~ **(2026-11-02 枚举缺陷修复后测试面已开,见下小节;2026-11-06 +台架远程轮两画面已拍毕闭环,见「回放页坏段/空态画面闭环记录」小节)**、 `task_prof` 读路径耗时峰值。**执行动作侧**(到场的人做什么、 说哪句话、会看到什么)→ `docs/测试说明/专项验证/故障录波板级到场轮执行手册.md`。 @@ -440,6 +441,42 @@ bench 锁全程持有;三次烧录(埋点 / 诊断加强 / 根因修复) (Before/After、切段、切道共四帧 + 串口实录,见该目录 README)。 **至此回放页「真段 / 坏段 / 空态」三态全部有了测试面**,第二幕尾步的坏段画面判据可跑。 +### 回放页坏段/空态画面闭环记录(2026-11-06,台架远程轮,#68 第二幕尾步) + +bench 锁全程持有(任务 `remote-shoot-68-274d2d56da74`,17:03:38 起、收工 `--bench-pass` 释放), +无人到场;固件 `Nov 6 2026 00:17:43 suite=NONE`(#53 台架轮复核构建,回放页读侧代码自 11-02 +修复后零改动,本轮**不涉代码**)。执行手册 §4 步 7 原文流,三态画面 + 恢复态共四帧入档 +`docs/测试说明/测试数据/wave_shot_20261106/`(README 含判据对照、串口锚点、复现口令与 +sha256 全清单;7003 `LCDMEM` 原帧 4× 渲染,与上小节同法): + +| 画面 | 实拍结果 | 判据 | +|---|---|---| +| 覆盖前 `UA SEG6 M` | 阶梯正弦 + 0 线 + 触发光标,Pk≈1423 mV | 对照基准(真段正常放波) | +| **坏段同号覆盖后** | **仅标题 + 「该段不可读」,零波形元素、零顶行底行字段** | **绝不许画直线 = 过**(画面逐比特 = `WP_ST_BAD` 显式文案路径) | +| **空态(`/WAVE` 全删后开页)** | **仅标题 + 「无录波段」**,同刻串口 `[ERR][UI_TASK] ui wave head idx=8 open fail fr=4` | 显式说「没有」= 过;再按 `r` 再探盘画面逐字节不变 | +| 九件原件恢复后 | 网格 + 波形区回归,帧与到场首帧逐字节相同 | 收工板况 = 到场板况 | + +坏段制造 = `RETR WAVE06.BIN → byte[130]^=0x01 → STOR 同号覆盖`(页开着覆盖、`r` 走满一圈 +再入该段触发读侧判废——`ui_task_wave_load_head()` 头 CRC+长度等式+数据区流式 CRC 全量验, +`App/task/ui_task.c`);PC 侧同件 `wave_read dump` 同判 `REJECT: data CRC16 mismatch: +stored 0xF991 calc 0xB111 …nothing drawn`(rc=1),画面与解码器两份独立实现互证。 +收工处置走手册 §7 二选一的**「不留常设负样本」**分支:板上坏段与本环投放的 `WAVE09.BIN` +均已删除,`/WAVE` 恰为到场九件原件、逐件 RETR+sha256 复验一致;坏样本点名留档在证据目录 +`samples/WAVE06_bitflip_reject.BIN`(原件 `samples/WAVE06_original.BIN` 一并留档,两件只差 +第 131 字节一比特)。 + +两条现场发现(都记账不修码):**F1** 开机后 `STOR` 的新文件(坏版、有效版都试过)**不进 +回放页段表**——表只在 `manual_req` 或「当前段消失」时重扫(11-02 v1.6 钉表纪律),页开关不 +触发重扫;首攻 `WAVE09` 因此静默出局,改列内既有段同号覆盖一次即中(FTP 手工投放段要让回放 +页看见需顶掉当前段或触发一次手动录波——纪律性事实,供后续轮引用)。**F2** 数据 CRC 判废在 +串口**静默**、靠画面自证(留痕只给 `open fail fr=` 一类),与 11-02 修复记录的留痕设计一致。 +另记台架环境事实:到场时板网链路已断(会议室网口),人插回网线后远程轮才得以执行—— +`[ERR][I104] i104: bind port 2404 FAIL` 在该构建每次上电复现,属 #53 跟踪面,本轮不新开。 + +**至此第二幕(注量对表 + 坏段/空态画面)全幕闭环**:注量三项 2026-11-04 由 #40 §8 交流轮 +跑完(幅值 / 相位 / 削顶,104 浮点遥测按用户裁定不作对照证据),尾步两画面 2026-11-06 拍毕; +手册第二幕状态与 `docs/任务规划/README.md` §2.0「独立」行已同步销项。 + --- ## 11. 与 `docs/任务规划/数据可信.md` 的口径变更(三处) diff --git a/docs/测试说明/专项验证/故障录波板级到场轮执行手册.md b/docs/测试说明/专项验证/故障录波板级到场轮执行手册.md index cb471a7c..9b7423ff 100644 --- a/docs/测试说明/专项验证/故障录波板级到场轮执行手册.md +++ b/docs/测试说明/专项验证/故障录波板级到场轮执行手册.md @@ -1,7 +1,7 @@ # 故障录波板级到场轮执行手册(人要做的事,一步一行) > **这份手册解决什么**:录波的判据里剩下的那半轮——需要**有人的手和信号发生器**的验证——把它拆成"你做什么、说哪句话、会看到什么"。 -> **它不是判据属主**:判据、留痕名清单、执行顺序图全在 `docs/子系统设计/故障录波设计说明.md` §9 与 §10;本文只写**执行动作**。已完成部分(2026-10-31 远程半轮六项 PASS + 2026-11-02 缺陷「回放页段表枚举恒空」修复闭环)见 §10「板级远程半轮记录」与 §10「回放页枚举恒空缺陷修复记录」。 +> **它不是判据属主**:判据、留痕名清单、执行顺序图全在 `docs/子系统设计/故障录波设计说明.md` §9 与 §10;本文只写**执行动作**。已完成部分(2026-10-31 远程半轮六项 PASS + 2026-11-02 缺陷「回放页段表枚举恒空」修复闭环 + 2026-11-04 第二幕注量对表闭环(#40 交流轮)+ 2026-11-06 坏段/空态两画面台架远程轮拍毕)见 §10「板级远程半轮记录」与 §10「回放页枚举恒空缺陷修复记录」「回放页坏段/空态画面闭环记录」。 > **一句话预算**:你到场约 1.5~2 小时;其中真正动手的只有**接三次线、按不超过六次键、拍两个决定**——其余全部由会话里的 agent 跑脚本。 --- @@ -11,7 +11,7 @@ | 幕 | 名字 | 要你在场? | 你动手的部分 | agent 跑的部分 | 对应判据 | |---|---|---|---|---|---| | 第一幕 | 枚举埋点与修复上板 | **已完成(2026-11-02,远程)** | 无 | 改码加埋点 → 构建 → 烧录回读 → 远程开回放页 → 读 FR 码定性 → 修复重烧 | `docs/子系统设计/故障录波设计说明.md` §10「回放页枚举恒空缺陷修复记录」 | -| 第二幕 | 注量对表 | **要到场**(只有接线需要手) | 接 UA 发生器线 1 次、拔 1 次;面板按 2 次键(或让 agent 远程注键) | 记心跳基准 → FTP 拉段 → `wave_read` 量四样 → `meas:`/104 YC 对表 → 削顶注大一遍 → 坏段上板看回放页绝不平线 | `docs/子系统设计/故障录波设计说明.md` §10「板级」行 +「板级·回放页」行后半 | +| 第二幕 | 注量对表 | **已闭环(2026-11-06)**——注量对表 2026-11-04 由 #40 交流轮跑完;坏段/空态画面 2026-11-06 台架远程轮拍毕,本幕现场无需重做 | ~~接 UA 发生器线 1 次、拔 1 次;面板按 2 次键(或让 agent 远程注键)~~ 已由远程轮与 #40 消化 | 记心跳基准 → FTP 拉段 → `wave_read` 量四样 → `meas:`/104 YC 对表 → 削顶注大一遍 → 坏段上板看回放页绝不平线 | `docs/子系统设计/故障录波设计说明.md` §10「板级」行 +「板级·回放页」行后半 +「回放页坏段/空态画面闭环记录」 | | 第三幕 | P 触发对时刻 | **要到场**,还含**两个由你拍板的决定** | IA 两点标定各接一次线 + 过流加大到 UI 见数值过 2 A | 读码算 k/b → 写配置生效 → 验证解锁 → 触发后对 start.log 时刻/段号/src=P | `docs/子系统设计/故障录波设计说明.md` §10「板级·触发来路」行 | | 第四幕 | bench 自抓与卷占用 | **可远程**(烧录同上;占卷用 FTP 造) | 无 | 烧 bench 构建 → 造占卷 ≥2 s → 看 `err`+1、**一条** `ring abandoned`、同号重写 → 还原产品构建 | `docs/子系统设计/故障录波设计说明.md` §10 板级行的 `ring abandoned` 观察项 | @@ -80,7 +80,14 @@ flowchart LR |---|---|---|---|---|---|---|---| | UA 1.000 V 50.000 Hz | 待填 | WAVE__ | __ Hz | __ V | 正/反 | __ 路 | 过/不过 | | 削顶注大 | 待填 | WAVE__ | __ Hz | __ V | 正/反 | __ 路 | 过/不过 | -| 坏段(回放页画面) | — | 同号覆盖 | — | — | — | — | 不平线=过 | +| 坏段(回放页画面) | — | WAVE06 同号覆盖(`RETR→byte[130]^=0x01→STOR`) | — | — | — | — | **过**(2026-11-06 台架远程轮实测:「该段不可读」零波形元素,绝非直线) | + +> 2026-11-06 收工状态(台架远程轮,bench 锁全程持有,无人到场):第 3 行坏段拒收画面与配套的 +> 「无录波段」空态画面真机抓屏已入档 `docs/测试说明/测试数据/wave_shot_20261106/`(README 含 +> 判据对照、串口锚点与复现口令);第 1、2 行的注量实测数值归 2026-11-04 #40 §8 交流轮 +> (`docs/测试说明/测试数据/boot_log_data/20261104_ac_*`,实测结论见 `docs/硬件平台/ADC通道映射说明.md` §8.2), +> 104 浮点遥测按该轮用户裁定不作对照证据。**本幕至此全幕闭环**;坏段样本收工不留板 +> (手册 §7 二选一取「删除」,样本点名留档见证据目录 `samples/` 与设计说明 §10 闭环记录小节)。 --- diff --git a/docs/测试说明/测试数据/wave_shot_20261106/README.md b/docs/测试说明/测试数据/wave_shot_20261106/README.md new file mode 100644 index 00000000..0331d6e9 --- /dev/null +++ b/docs/测试说明/测试数据/wave_shot_20261106/README.md @@ -0,0 +1,74 @@ +# 回放页坏段/空态画面闭环证据(2026-11-06,台架远程轮) + +本目录是 `docs/子系统设计/故障录波设计说明.md` §10「回放页坏段/空态画面闭环记录」的图源留档, +执行 `docs/测试说明/专项验证/故障录波板级到场轮执行手册.md` 第二幕 §4 步 7 与其空态收尾: +**真机回放页上把「坏段拒收」与「无录波段」两种画面拍下来存证,判据 = 绝不许画成一条直线**。 + +台架远程操作、bench 锁全程持有(`remote-shoot-68-274d2d56da74`,17:03:38 起);固件身份 +`Nov 6 2026 00:17:43 suite=NONE`(#53 台架轮复核构建,回放页代码自 2026-11-02 修复后未再改动); +所有画面帧由 `scripts/board_ui_nav.py` 的 7003 链路取 `LCDMEM` 原帧(160×160 1bpp 3200 B, +本目录 PNG 按 **4×** 放大渲染,与 wave_enum_20261102 同法),同一次上电、同一块板。 + +## 三态画面(判据对照) + +| 文件 | 画面 | 说明 | +|---|---|---| +| `good_wave06_sec6_ua.png` | `UA SEG6 M` 阶梯正弦 + 0 线 + 触发光标,Pk≈1423 mV | **覆盖前**:WAVE06 原件在盘、回放页正常放波(对照基准) | +| `bad_segment_reject_wave06.png` | 仅「录波回放」标题 + 「该段不可读」 | **覆盖后同号翻位坏段的拒收态**:零波形元素、零顶行/底行字段——绝不许画直线,判据过 | +| `empty_state_no_segments.png` | 仅「录波回放」标题 + 「无录波段」 | **真·空态**:FTP 把 `/WAVE` 十件全删后开页;串口同刻 `[ERR][UI_TASK] ui wave head idx=8 open fail fr=4`(FR_NO_FILE=卷上真没有) | +| `empty_state_recheck.png` | 同上 | 空态下按 `r`(再探盘)画面逐字节不变(两 `_raw3200.bin` sha 相同) | +| `after_restore_page_normal.png` | 网格 + 0 线 + 光标恢复绘制 | 九件原件逐件 RETR+sha256 复验后重开页,正常态回归;页面回落到 RAM 记忆的 SEC5 段,故该帧与 `arrival_open_waveplay.png` **逐字节相同**——收工画面 = 到场画面,正是想要的巧合 | +| `arrival_open_waveplay.png` | `UA SEC5 M` 平线 + PK1744mV | 到场首帧(开页落数值最大段前身的 SEC5;平线是该段真实数据,非缺陷) | + +各 PNG 附同屏 `_raw3200.bin` 原始帧,供逐比特复核。 + +## 坏段制造口径(手册 §4 步 7 原文流) + +`RETR WAVE06.BIN → byte[130] ^= 0x01(数据区内翻一位)→ STOR 同号覆盖`。页开着覆盖、 +`r` 走满一圈(周期 9)再入该段即触发读侧判废:`ui_task_wave_load_head()` 头 CRC+长度等式+ +数据区流式 CRC 全量验(`App/task/ui_task.c`),任一不符即 `UI_WAVE_BAD` → 页面显式文案。 +样本在 `samples/`:`WAVE06_original.BIN`(sha256 `9f88ee34…`,与覆盖后板上现行字节复验一致) +与 `WAVE06_bitflip_reject.BIN`(sha256 `a9e097bf…`),两件只差第 131 字节一比特。 + +PC 侧同件判据实录见 `pc_side_dump.txt`:`test/host/wave_read.py dump` 对坏件打印 +`REJECT: … data CRC16 mismatch: stored 0xF991 calc 0xB111 over 5120 bytes at offset 128 -- +segment rejected, nothing drawn`(rc=1),对原件双 CRC OK(rc=0)——板上画面与 PC 解码器 +**同一判据、两份独立实现**互证。 + +## 串口与时间线 + +`serial_excerpt.txt` 为 serial-assistant 日志摘录(原样、剔除 `seg=0` 心跳行),关键锚点: + +- 18:11:18 开页 → 18:11:38 `[FTP] UPLOAD '/WAVE/WAVE06.BIN' 5250 bytes OK`(坏版覆盖)→ + 18:11:39 RETR 复验 sha=坏 → **18:12:02 抓屏拒收态** → 18:12:01 `UPLOAD '/WAVE/WAVE06.BIN' OK`(原字节恢复); +- 18:14:42–47 `DELE WAVE00…09.BIN` ×10 → 18:14:55/58 三次 `open fail fr=4`(段表记忆 idx=8、 + 盘上已无文件 → FR_NO_FILE,正是留痕本意)→ **18:14:59 抓屏空态** → + 18:15:04–13 `STOR` 九件恢复(每件后随 RETR 复验 sha256); +- 两窗之间全程 `wave:` 心跳 `err=0 ovf=0`,无一轮 [ERR] 越界(空态那次 fr=4 是留痕本意,见修复记录小节)。 + +自动化事件日志(含每步帧名/ink/位差判定):`shoot_phase2c.py` / `shoot_phase3b.py` 产物在会话 +`ci-artifacts/shoot/phase2c.json`、`phase3b.json`(一次性产物,随会话留存不入台账;本目录即台账面)。 + +## 两条现场发现 + +- **F1(已知缓存纪律的实面)**:开机后 `STOR` 新文件(先攻用 `WAVE09.BIN`,坏版与有效版都试过) + **不进回放页段表**——表只在 `manual_req` 或「当前段消失」时重扫(`ui_task_wave_scan` 钉表纪律, + 2026-11-02 v1.6),页开关不触发重扫。故本幕尾步按手册原文改用**列内既有段同号覆盖**,一次即中。 + 这不是缺陷(写侧轮转覆盖走 find-失败重扫路,天然收敛),但 FTP 手工投放段要让回放页看见, + 需同号顶掉当前段或触发一次手动录波——记此免得后人重踩。 +- **F2(拒收留痕口径确认)**:数据 CRC 判废在串口**静默**(留痕只给「表上有、开档失败」的 + `open fail fr=` 一类,判废靠画面自证)——与 2026-11-02 修复记录的留痕设计一致,本轮实测无违和。 + +## 收工处置(手册 §7 二选一) + +**不留常设负样本**:坏段样本已从板上删除(`WAVE09.BIN` 为本轮投放件、一并删除),`/WAVE` 恢复 +到场时的九件原件且逐件 sha256 复验一致(清单见 `manifest_sha256.json` 与 §10 记录);`samples/` +两件即「删除」分支的点名留档。固件仍为在场构建、UI 停 STANDBY、bench 锁收工释放。 + +## 复现口令(台架同环境) + +1. `& .venv\Scripts\python.exe scripts\board_ui_nav.py --where --i-hold-bench-lock`(身份互证) +2. FTP `admin` 登录 → `CWD /WAVE` → `RETR WAVE06.BIN` → 翻 `byte[130]` → `STOR WAVE06.BIN`(页开着覆盖) +3. `& .venv\Scripts\python.exe test\host\wave_read.py dump <坏件>`(应 REJECT rc=1) +4. 7003 开回放页(记录查询列第 10 行)→ `r` 走满一圈回踩该段 → `LCDMEM` 取帧(本目录坏段帧生成法) +5. `DELE` 全部段 → 关开页 → 取空态帧 → `STOR` 九件原件恢复(逐件 RETR+sha 复验) diff --git a/docs/测试说明/测试数据/wave_shot_20261106/after_restore_page_normal.png b/docs/测试说明/测试数据/wave_shot_20261106/after_restore_page_normal.png new file mode 100644 index 0000000000000000000000000000000000000000..90cd344d31bed9fb2a17bcba9f0e4df722307f01 GIT binary patch literal 1690 zcmeAS@N?(olHy`uVBq!ia0y~yU}^wi4xj*o=CW!385r0SJzX3_DsH{KdpB>ffk4B> zJ^#J8hfmdNc`Nz2LEZ9s+Gds1n;*7z#n#2?gLDCb#*1`?&GSNUe?IqB*@02Xfknfi z$ncBOi&kO7sOb!>8V)QS46G+=nJ0#ETwI{^a7`62lZXP7O9NBNUj-E_hnc(uBA?E% zSV9F=?0$6cxw$QLRgz+z%`3&oB>*&%@zcD<<7XOKZyrC+*abE+L!UFCVUPNb7x$wb z*Klkw4-j0yz}mq8BqOCC79MwJQ@P1tEPRnkWC2JF=!kdS2AdWyE==*a5CW?N3NaSt z*X%uh^WgDU3`f;LF0b|mIx4neV&{|1FN~TeobmK$Qv^8+Xb9_x&yL^Nc-J%0@Zi>ue4 zzf(}~Y&IJsS3m<3Ff>FG{w+JdShl`&C)k5P=W$Kg%lzi9%&zY{zM9^YcI5`E`?d<` zmc5MIoOOk{LXH%J2=`r>z(a8*%`BL*1_!j>UiRfpB!(}BK8e1 zs}?ZqR6j5?{zJOImk>BAfIh6WJ9O~zgbr6BX1odF441ZUK?Y`pbH=@u; z;ZhMh@#eAYwuiIjL2d(u642F53N%4v%?Lh3aA*IJRNG)771b)Ie*kh+J)r@UHN16|2Dq)JdN{$5jdG{ z@o4}@5R`cHyu#?z{rl&?2yQ`2AHeycL~+O~6h)-V1aT~_(p zbmezHcnZlAPbh0mUmq>`VCvU7fA>$@+sR++_I~ekV?$tmf+eGGc5~*}E~pK+*!wl+ z?z}g%V^j~k`6S8=aR(@={n*K9XIQbr>Z4Sw|51i;UJbY3HbxWWC7-|zIq;sV;M?Ih zZ`dEjbxe$Z_g*X^zdGINbe;3Jf3aZifQ|Xd_|8Dk_LqaructL%eD6J7aOKSJk0}ik z8z+L3Gbqcfk$k`>d~tJNO8Jd->`UD4Uq7?y8vm3NEt}yg{@h^*pUbi($#%242WP=s z{)yV^>k;mF&Ya`BXWbr&0J8(->(xKq$riq-p>*E?=2f5-$e|i=@r|d|#OLedd^n*Q z%}74tJ=3$rlP?*cPk-zRDlLFH-p2TaL~KcViSx4)zQrxTqECTif)!)hd~*(94g;16 z6Kb2HEd_0*mbm0S=!KSzJIgOztgbuiQu5v(RyzD+jH`_UW;SquJlV;RuD&RGeeb+2 zPZC0aDeEmOuoSXoSDop2=F tVEj~5vR1$?@N1m4Fsx8#f%}i+7pr~nlEdHr9-9Ob^K|udS?83{1OQlK5ElRd literal 0 HcmV?d00001 diff --git a/docs/测试说明/测试数据/wave_shot_20261106/after_restore_page_normal_raw3200.bin b/docs/测试说明/测试数据/wave_shot_20261106/after_restore_page_normal_raw3200.bin new file mode 100644 index 0000000000000000000000000000000000000000..ddec55e7e394df0304e25b4976d18a3c5e3ff349 GIT binary patch literal 3200 zcmd6pziSg=7{}lDQroxC>ZKq!bU5Nk?ix^+LZgMeNF3TF2>t=Zt%HNq#VMCSrM-w8 z!NH-3I5oQzbaD{g%pcIjicoNBGu0occc)Lu`{oM|R1}YpC-3L^e!g$AMTkFsnvpBU zT&rfoZGNy=ZT-9UEGAkr`qC5A{jujZeBWeali!y7nD!ne1Y#-taAURtDN; z{<^FE4by$S8Zoho=U@&(>uE>!Cez5u-de zk&77DLwn>RMtN=`7qQ`cSW0<*cplyh?MPm*xtSIqNv;Mq@i;2Wmm|b2ezZ-Q|>JZg{j>&fIp! z9{+L!5tMRv&Hef*WxAB8ZReP|%ZXTvW|K31p}&>qZn+uzhmVxfiOl=tVYTX*NQh#k zSF>`W7>0H(bt^9|SISCn&T^#;!x46PCA@06qBz$pjIhd!*yffk4B> zJ^#J8hfmdNc`Nz2LEZ9s+Gds1n;*7z#n#2?gLDCb#*1`?&GSNUe?IqB*@02Xfknfi z$ncBOi&kO7sOb!>8V)QS46G+=nJ0#ETwI{^a7`62lZXP7O9NBNUj-E_hnc(uBA?E% zSV9F=?0$6cxw$QLRgz+z%`3&oB>*&%@zcD<<7XOKZyrC+*abE+L!UFCVUPNb7x$wb z*Klkw4-j0yz}mq8BqOCC79MwJQ@P1tEPRnkWC2JF=!kdS2AdWyE==*a5CW?N3NaSt z*X%uh^WgDU3`f;LF0b|mIx4neV&{|1FN~TeobmK$Qv^8+Xb9_x&yL^Nc-J%0@Zi>ue4 zzf(}~Y&IJsS3m<3Ff>FG{w+JdShl`&C)k5P=W$Kg%lzi9%&zY{zM9^YcI5`E`?d<` zmc5MIoOOk{LXH%J2=`r>z(a8*%`BL*1_!j>UiRfpB!(}BK8e1 zs}?ZqR6j5?{zJOImk>BAfIh6WJ9O~zgbr6BX1odF441ZUK?Y`pbH=@u; z;ZhMh@#eAYwuiIjL2d(u642F53N%4v%?Lh3aA*IJRNG)771b)Ie*kh+J)r@UHN16|2Dq)JdN{$5jdG{ z@o4}@5R`cHyu#?z{rl&?2yQ`2AHeycL~+O~6h)-V1aT~_(p zbmezHcnZlAPbh0mUmq>`VCvU7fA>$@+sR++_I~ekV?$tmf+eGGc5~*}E~pK+*!wl+ z?z}g%V^j~k`6S8=aR(@={n*K9XIQbr>Z4Sw|51i;UJbY3HbxWWC7-|zIq;sV;M?Ih zZ`dEjbxe$Z_g*X^zdGINbe;3Jf3aZifQ|Xd_|8Dk_LqaructL%eD6J7aOKSJk0}ik z8z+L3Gbqcfk$k`>d~tJNO8Jd->`UD4Uq7?y8vm3NEt}yg{@h^*pUbi($#%242WP=s z{)yV^>k;mF&Ya`BXWbr&0J8(->(xKq$riq-p>*E?=2f5-$e|i=@r|d|#OLedd^n*Q z%}74tJ=3$rlP?*cPk-zRDlLFH-p2TaL~KcViSx4)zQrxTqECTif)!)hd~*(94g;16 z6Kb2HEd_0*mbm0S=!KSzJIgOztgbuiQu5v(RyzD+jH`_UW;SquJlV;RuD&RGeeb+2 zPZC0aDeEmOuoSXoSDop2=F tVEj~5vR1$?@N1m4Fsx8#f%}i+7pr~nlEdHr9-9Ob^K|udS?83{1OQlK5ElRd literal 0 HcmV?d00001 diff --git a/docs/测试说明/测试数据/wave_shot_20261106/arrival_open_waveplay_raw3200.bin b/docs/测试说明/测试数据/wave_shot_20261106/arrival_open_waveplay_raw3200.bin new file mode 100644 index 0000000000000000000000000000000000000000..ddec55e7e394df0304e25b4976d18a3c5e3ff349 GIT binary patch literal 3200 zcmd6pziSg=7{}lDQroxC>ZKq!bU5Nk?ix^+LZgMeNF3TF2>t=Zt%HNq#VMCSrM-w8 z!NH-3I5oQzbaD{g%pcIjicoNBGu0occc)Lu`{oM|R1}YpC-3L^e!g$AMTkFsnvpBU zT&rfoZGNy=ZT-9UEGAkr`qC5A{jujZeBWeali!y7nD!ne1Y#-taAURtDN; z{<^FE4by$S8Zoho=U@&(>uE>!Cez5u-de zk&77DLwn>RMtN=`7qQ`cSW0<*cplyh?MPm*xtSIqNv;Mq@i;2Wmm|b2ezZ-Q|>JZg{j>&fIp! z9{+L!5tMRv&Hef*WxAB8ZReP|%ZXTvW|K31p}&>qZn+uzhmVxfiOl=tVYTX*NQh#k zSF>`W7>0H(bt^9|SISCn&T^#;!x46PCA@06qBz$pjIhd!*yJFil@;u1&Ihi|Od7`X%(l^hs1)pK~VPr1sldqTM01Z4-H z5Q~Pxr-#b2Zo4i_>e!XA+z}@DPSPeUPiKam9iIl1$N~nz1))L<7rY3V(Yo4C&-1Wg#1LV}zst$}y4D<#E z^3KPf%)V-PzS+O-+n3L<@DY3_xUcJt#N)^rQ>Q+@yg$7a=w_A<238N*M=1w)Gb}%R zcB^#B4C8Pk@t#o{q^d`lOzB87%nelg~kWhT6v>g&v&Y^JqZ^}lyn%oqbnwPcx6g0i4bZ2dPs1f^Qwe&Q#iQN8B zQ_hH){=9jr>HWPcCEwMwfN2Blq!0Fd%Apf3J3jRSn)OtcSqK!tKr2|mNtoUdLI?Xk aEUjbUn4A9NL8zq#$U09~KbLh*2~7ZXQ0i^~ literal 0 HcmV?d00001 diff --git a/docs/测试说明/测试数据/wave_shot_20261106/bad_segment_reject_wave06_raw3200.bin b/docs/测试说明/测试数据/wave_shot_20261106/bad_segment_reject_wave06_raw3200.bin new file mode 100644 index 0000000000000000000000000000000000000000..8e072389a03e0958746d430ea24d8a3f3ba5cd19 GIT binary patch literal 3200 zcmZQzpcvFQ2r#e+pc&I4Q2z)`%)a%Xg94fuL!*#`{ybE@{~rqYtEixgv2gzJR0%;9 zb8&U?RG)$>rq}4=uYx8f%BbOhE~e5d;Goihs`p5yM*R~sy*y0E95ff9svG5vhQMeD z47v~yXz&NRNudGRVH}Q~_P_s6{(vmT{F9TRfsp}49Yf>Ah6YCVAIRz~1sNC_e;RNg zi*Y}^&+N!4=zuK7;mOIW$SHCFMQoxcry!>giaKt^E3 ztkV=}(V3;o$Q97QA;8Er;W^vH)dH6mOe!d=WoP6PU{rEo+*Hru$v)*O!|Dm)eiM`( zfI=)94xb(>%et+)FsWlz!fr>H;5$j1Fg=|Y`{dX~zy@B>;|yrHBOLSVpH_z~<2g1_ zxHWqP`=sadsN7|+R$s)b0WuRLWh0)r>0+kLUFklc4KOk3`)^9if83B=@B=8wlCd2~ zerugR$HT6BopDP^UX@V`2hi;S4M0D=XSbA=TF3P7*+ZAmA4(z%7z7vG6kJzJlO7bt`~fM)FbvFrWi*{3cGpVJEw1qCBW!@T}{G4HP*PJFZuU2$?F zuOh<6kG+ba&5qxflz!c?aI^Hxu)a>HujwE1^oiqt3*~(dteoY)A}ADOp{J{#%Q~lo FCIFq_<{JP2 literal 0 HcmV?d00001 diff --git a/docs/测试说明/测试数据/wave_shot_20261106/empty_state_no_segments_raw3200.bin b/docs/测试说明/测试数据/wave_shot_20261106/empty_state_no_segments_raw3200.bin new file mode 100644 index 0000000000000000000000000000000000000000..f467cae32af1b52a4fff2ef522cba182321c85cf GIT binary patch literal 3200 zcmZQzpcvFQ2r#e+pc&I4Q2z)`%)a%Xg94fuL!*#`{ybE@{~rqYtEixgv2gzJR0%;9 zb8&U?RG)$>rq}4=uYx8f%BbOhE~e5d;Goihs`p5yM*R~sy*y0E95ff9svG5vhQMeD z48jm#|G~&;gX*sO100QP=w%7>kN79(VhkLD>TaldS@{16vY-kv{D0su|9B0mAQy{E zhzpu|Tud)ST+zgY7z2dbG*I;_DR~6)pp}VEI&PC%(9|_PIG~eq3{~$aZ!`o(Ltr!n NMnhmU1cqz~005*oENcJ& literal 0 HcmV?d00001 diff --git a/docs/测试说明/测试数据/wave_shot_20261106/empty_state_recheck.png b/docs/测试说明/测试数据/wave_shot_20261106/empty_state_recheck.png new file mode 100644 index 0000000000000000000000000000000000000000..6bcfacba1b4f69831f91698ac10564b3d64ae5b9 GIT binary patch literal 949 zcmeAS@N?(olHy`uVBq!ia0y~yU}^wi4xj*o=CW!385o#rJY5_^DsH{Kb1<*jK*06l zpa1@s_p;72?`zy3 ztkV=}(V3;o$Q97QA;8Er;W^vH)dH6mOe!d=WoP6PU{rEo+*Hru$v)*O!|Dm)eiM`( zfI=)94xb(>%et+)FsWlz!fr>H;5$j1Fg=|Y`{dX~zy@B>;|yrHBOLSVpH_z~<2g1_ zxHWqP`=sadsN7|+R$s)b0WuRLWh0)r>0+kLUFklc4KOk3`)^9if83B=@B=8wlCd2~ zerugR$HT6BopDP^UX@V`2hi;S4M0D=XSbA=TF3P7*+ZAmA4(z%7z7vG6kJzJlO7bt`~fM)FbvFrWi*{3cGpVJEw1qCBW!@T}{G4HP*PJFZuU2$?F zuOh<6kG+ba&5qxflz!c?aI^Hxu)a>HujwE1^oiqt3*~(dteoY)A}ADOp{J{#%Q~lo FCIFq_<{JP2 literal 0 HcmV?d00001 diff --git a/docs/测试说明/测试数据/wave_shot_20261106/empty_state_recheck_raw3200.bin b/docs/测试说明/测试数据/wave_shot_20261106/empty_state_recheck_raw3200.bin new file mode 100644 index 0000000000000000000000000000000000000000..f467cae32af1b52a4fff2ef522cba182321c85cf GIT binary patch literal 3200 zcmZQzpcvFQ2r#e+pc&I4Q2z)`%)a%Xg94fuL!*#`{ybE@{~rqYtEixgv2gzJR0%;9 zb8&U?RG)$>rq}4=uYx8f%BbOhE~e5d;Goihs`p5yM*R~sy*y0E95ff9svG5vhQMeD z48jm#|G~&;gX*sO100QP=w%7>kN79(VhkLD>TaldS@{16vY-kv{D0su|9B0mAQy{E zhzpu|Tud)ST+zgY7z2dbG*I;_DR~6)pp}VEI&PC%(9|_PIG~eq3{~$aZ!`o(Ltr!n NMnhmU1cqz~005*oENcJ& literal 0 HcmV?d00001 diff --git a/docs/测试说明/测试数据/wave_shot_20261106/good_wave06_sec6_ua.png b/docs/测试说明/测试数据/wave_shot_20261106/good_wave06_sec6_ua.png new file mode 100644 index 0000000000000000000000000000000000000000..5fd9f536dcc270f281ac7353ea726805db6c0e52 GIT binary patch literal 2509 zcmb7G2~bm46n#Gg2}DRNB~*(*hz_72h~fsqCk-gW6ohKEia^!67B@gPBN1eT;(}Wx zilB%~i(65ON`kR!i%JMs1SUWeLBS<#1_+9QzW1}Rv`(j)3dcRBaobMJfUivkyz znoKYO0GRqOyy2e%>c|@ZeyON6?j!#pFuU zRJj83{L~{qGlR9&&WXtR%9jyW>U4AT`31&-d#vtP7bDi z&$t1lfC&y_#Jd+r%&CP*170{rN0QDM<@6QIQaw1C&H^=NivgLAV-5hTUbaV;anLGr z4YoFrV?eP*Xy7iF!pb<%R8}g7z9B?FqMUAju(Us_SH5~C-iN$MA=Hglg0l4ItZ05p zW_d=A)gC~BFrj{rXPMOJ3*%1yZ2OIO_Y(dip?_Th^qJ5vWWFvHR>I3?XZJb^53PQl zSkaIK$rnWqk4vf4=0-SvIg;w9{Q6I`}T~&#sF$i@(R@WcEHRiNQitI0u^x+GQ zn8JX_-DzICEr#O9>XfTG6d8y8Nc%o`YT->$W$bK8KLZ1OB=~k5Q9NXJsMv?QLksRi zyi}Y#Zw??BgqQgx*l{)=uYSvQ5sxY{4x-Wo>Z_?sh!`QEWOD#B+FAj6v))Nnb z!-ydp5;k~zPlu2B>CQxTv5gCV=f6WCQ35CKL)n zo=~T|Kt$`IZs&aJHoFNUbO_%YWvKwZx8Q;0Y4Ok?LWm*ICFZxs(OSy4$kp*lJF+ab zniuVN@pC51>suih4R(>R)v!`fNC()=t4>2P7p!D7ac1gbBT_{0mRy;>o`?eGDHWL= zk(%&-O${Bl&l@gA;G@FeA!OMP?T?Hie>bo45W^h}jGVB(v5#-P_qrM9t^=S{C+}+I z0+ck=r`nVc!O}Dk!P{Y39af$H6xFcx;~Mg?&vtpg{YAwci`$^$VcpX~uHT?aq}b|u ztzLk5lL`0*QbAJaf>n zsK>JD|0~5<=SwntCD*bqAleW(x6a}v(dsN{p|57;lKTki5ksjx8h2BEl#729N9y1B2hrHHP4M1a*iHC=RjHS@Z&DXiBpgxZ>Ps;QX1y*1KA8M7=!U9vaY z#EyVFlJXL#Ny;&Q72F9{ZB{}mf5$|Gc5gbaP`G`4C)0hW7T*Zp5MlWyX3MeEtXeo& zh9=ZDyXCrYEP%BzqP3hFwbp1(LYR(`vh8@`J+~bv2{i<}pvL7TvSW!On^T7kM9nFX z|FnM>^Kt9R#%@97i~jyXm#k^rFD2@^?{j1+6$9D9i4Kjj^5)tSrL_5|P+YCn6YhdR zmhkS`tDhTpmbY1n-4#B9zSu5>dc)nH#B-Zm%(SD5+&K{h+z}i%o7GN=>mA^DmD-7< z;bV$YtaJi&(UU(qyyE6WdGJ&6_*id4u~boIaP&#@;(nSJH(b{kqFPeK-Uu@6)F1}Cwj*?8HHuU4DxhzpP}Ll{mvAX#@3}4 z>aD%PDz@6)w)E}wHwp4)_9z~{Eep4uUxJ1&A)~_Py!ORen=hygLrM%hqeA8xbau;$ z+{1_583fpeEhrtoh#`MkZ2qo6BKBow#~81h+`Vk{U=Gh_U+fop%f5t9Uu zBM0D4yLreyZ-tTLA!?lN8ltj}uJ-b7;zYM4K~5sMi|?=;wI{KJgD1f(q9grfP3j4j zjAn!8COkk}JRBZcak@R37U(K685CKIq~?JEWvHbf4(wtK=2u$0r|RK)_!@Rdg7r#c nHg!qcrbPYiM}LDL7LIk^TZ)6da=NC50{HRw4dh&5M@a#*{*yoC%LRImkyL;pJ%A z&nUC(E$kYsy7YrHgTdl3zw%i3{@n5EzOOSU_kG&Gt+U##+Vt2Xon2n6)qR6qAOSa- zzvOX$S@*u23l=^Y-aLK9!za4#bhK8Wc(4ch5>`ZMF@QJP1S7#3F1#~XW$jFg~dx;=S8E6go6v zoTV5H$b?0wu}X%^;u*MlI0gg7C^#wB7?9b#Huksb5dpJuvg?o)-ANMwSLXNyQVdV| zK+NW~v6HTs@2qXJZymT)wexUc+n9F)UxO0i6npXCva!jx^Ba4;+xyOnNfSVBW_ids zUMd(e0U!?<$4dn}f?;P$XJf*mvoV|3#%x|2vw1D7l6W)Nl?0x8Ch+)kwY-Gki()bx zgb9nz#!z-D>SYBHa(=TgBBzvuP{#p(7JWzL2qw^B>TFCFHgz^;^V(R-yN!PUj3L-m zPj&NL5SS2k@8Bbt>@{^ZCQRMvon(xsQr!v4lf>_|<)gdBDt+wVrmNy?>`suahd9hs z49>jpA>v-_`ZO3uR%&LQh$E{uWB1ZmmnlYziZO<|Oir;)dfu(KAY$y3I{{mgO+DN7 zy$G4~h6i(F$XJv5Y-U~RVmE-GBw0*va>;lpc3ZT|oW@KH^P(7^^D|o;QnyZ>Z&8fd zi3K5q3Vk%PKRGG?YFZS^?W)iSKp_lG9eT?z3>hKi_PF6CBn(q*|9W`C@Iqm{-Q6?2 au0r{FWYmK~aPgYSc1D! literal 0 HcmV?d00001 diff --git a/docs/测试说明/测试数据/wave_shot_20261106/manifest_sha256.json b/docs/测试说明/测试数据/wave_shot_20261106/manifest_sha256.json new file mode 100644 index 00000000..7d776c02 --- /dev/null +++ b/docs/测试说明/测试数据/wave_shot_20261106/manifest_sha256.json @@ -0,0 +1,20 @@ +{ + "README.md": "bbffa3ed7ea5c1fb25d7d63f1ea5b10c37e8fd8ff7bffefe71605e649c503ad8", + "after_restore_page_normal.png": "d0fd54629f7b597a24247ee4d5707d80528da87bf68d9016cbf0199ec6c43cb8", + "after_restore_page_normal_raw3200.bin": "4deecb9373f766e3263e4b890bd7882798b91374aec43b7fc6e96dba3f353704", + "arrival_open_waveplay.png": "d0fd54629f7b597a24247ee4d5707d80528da87bf68d9016cbf0199ec6c43cb8", + "arrival_open_waveplay_raw3200.bin": "4deecb9373f766e3263e4b890bd7882798b91374aec43b7fc6e96dba3f353704", + "bad_segment_reject_wave06.png": "a013fdf6dbab1068a7b72b8239ac573c70cea5e8de8df9214ddc5cf153586b83", + "bad_segment_reject_wave06_raw3200.bin": "17291a0068f2d4ab099f636888e809941ad9bba52cad942ff6341a8677b72889", + "empty_state_no_segments.png": "ecb6151668b0d5ef0578576dd449d9d9a7f41031fd7c9f035a98de7132853d1b", + "empty_state_no_segments_raw3200.bin": "a76c41cfd7f38cecf1092777371869a0a28a4c0ca09eb6963e17afc94d713f66", + "empty_state_recheck.png": "ecb6151668b0d5ef0578576dd449d9d9a7f41031fd7c9f035a98de7132853d1b", + "empty_state_recheck_raw3200.bin": "a76c41cfd7f38cecf1092777371869a0a28a4c0ca09eb6963e17afc94d713f66", + "good_wave06_sec6_ua.png": "db205b08fb77ac51350b802b3541dd310de1eb7ec9529d9867f64794c1aa7d6b", + "good_wave06_sec6_ua_raw3200.bin": "d6a3ac65e04d5e62007d1f13b84be38982f0b217a4e4730037a54c1864854261", + "pc_side_dump.txt": "44890852d5560073359f6e7adad03fb8c7e06e24605dfe5b1c18d4fbf8985ae6", + "serial_excerpt.txt": "f4cf0ba2eada42917abc6d2347b2e3bde041a1ff4034b48d751f5d4f6f5a66a3", + "samples/WAVE06_bitflip_reject.BIN": "a9e097bfaa0e3df8542c637c29f120d1dee347956cf0013478448861f13c40ae", + "samples/WAVE06_original.BIN": "9f88ee3490c40867299e624a2eb2323ec33bb9ca5957737d2018b9e60205a6cc", + "samples/WAVE09_seed_bitflip_reject.BIN": "b4016966c6feed92b8a7f42ce42c109dbb8a608b9531f9bad35595c22d3d6471" +} \ No newline at end of file diff --git a/docs/测试说明/测试数据/wave_shot_20261106/pc_side_dump.txt b/docs/测试说明/测试数据/wave_shot_20261106/pc_side_dump.txt new file mode 100644 index 00000000..1ab4fb1d --- /dev/null +++ b/docs/测试说明/测试数据/wave_shot_20261106/pc_side_dump.txt @@ -0,0 +1,44 @@ +### dump WAVE06_original.BIN(覆盖前原件,板上现行字节) → rc=0 + +``` +FILE : WAVE06_original.BIN (5250 bytes) +magic : 57 52 01 ('WR' + version byte 1) +ver : 1 +fs_hz : 1000 +pts_per_cycle : 20 +ch_count : 8 +pts_per_ch : 320 (320 ms at 1000 Hz) +pre_pts : 160 +trig_src : 1 (MANUAL) +trig_elm : 0 +t0_ms : 1246139 (ms since power-on) +wall : 1793609165 (epoch s) +eng : 0 (pin-domain) +flags_seq : 0x00 VALID bits: (none) +clip_mask : 0x00E6 [UB UC IB IC IN] +frame_seq : 1245891 +CRC16(hdr) : 0x0C3B OK covers [0,126), low byte first +CRC16(data) : 0xF991 OK covers 5120 bytes, low byte first +-- channel table (8 entries x 12 B) -- +IDX SEM NAME SRC BITS AVAIL K_Q16 B_CODES LSB_uV FLAG + 0 0 UA TPAFE5160 16 0x00 10000000 0 152.587891 . + 1 1 UB STM32-ADC1 12 0x02 52800000 0 805.664062 CLIPPED + 2 2 UC STM32-ADC1 12 0x02 52800000 0 805.664062 CLIPPED + 3 3 UN TPAFE5160 16 0x00 10000000 0 152.587891 . + 4 4 IA TPAFE5160 16 0x00 10000000 0 152.587891 . + 5 5 IB STM32-ADC1 12 0x02 52800000 0 805.664062 CLIPPED + 6 6 IC STM32-ADC1 12 0x02 52800000 0 805.664062 CLIPPED + 7 7 IN STM32-ADC1 12 0x02 52800000 0 805.664062 CLIPPED +``` + +### dump WAVE06_bitflip_reject.BIN(byte[130]^=0x01 同号覆盖件) → rc=1 + +``` +REJECT: WAVE06_bitflip_reject.BIN: data CRC16 mismatch: stored 0xF991 calc 0xB111 over 5120 bytes at offset 128 -- segment rejected, nothing drawn +``` + +### dump WAVE09_seed_bitflip_reject.BIN(第二幕首攻样本:20261104 真段种子翻位,未进枚举见 README 发现 F1) → rc=1 + +``` +REJECT: WAVE09_seed_bitflip_reject.BIN: data CRC16 mismatch: stored 0xF8AA calc 0xB02A over 5120 bytes at offset 128 -- segment rejected, nothing drawn +``` diff --git a/docs/测试说明/测试数据/wave_shot_20261106/samples/WAVE06_bitflip_reject.BIN b/docs/测试说明/测试数据/wave_shot_20261106/samples/WAVE06_bitflip_reject.BIN new file mode 100644 index 0000000000000000000000000000000000000000..568667b2ba1ce4891a0a7fb5d3663db636f10a8a GIT binary patch literal 5250 zcmZ9Q*^eE?6~^!QUcB@jX6-v0jmgX?Z~hPRl9z<+iU>Q#ZoO|n==kLtr&gM?8Y0l+x4Y`M&d`e?3S5s5FCU^AndFE?Y z&GV};g;n#*R$sjW8SaR-QwFGeM5EG9PW=^ieF1kJ6sa1>l*Do+c_Rg z_%A!Y+v6S4*HxEW!)Kxc@$n=~Q!iIq4AyiFDUY#W+&}6);`nxo@As>4|M5Qc7lXX& zd`^C+{T}(fTk(N=eCC$$sc3&ZmdvD|2)7XAgqu|!(|(`#+w`8~&UjDsE!Fup`Q0Cn zB=4nhzMQ|1U&>$7Sk5P!Eood-V?D1i(f6X-d5sJCSwCtnL7kHatM!~#M0!RY z4V5j+8!Ti=Bc8KDksZ3(O5MoFI&m(lR@81;vqTyqBNApGNVlRGX%{6q=PWPi%l@Im z)>d#VXmwFvxTx5QWS7)Ifiqs>o0pW_>kCbVI(5I$sO}d^g?fGK3(b=Hh0E3I)f&}{ zn%7F&AdIgOS(AFRBYedtk-s1RK!(zVi z3%brp3|prazVHtZ_9ZpEHM(_upa~&}Cm!q!hpjJJ!)LiPx;Z&CIV^g7nq89^ zs8zkbU>c<<7QDiSN-IiMRI61ZCNM?Ks7 z@E5|~TPK=E?N_TLtqupiL7n)iYP(}HeTy(?`0F8CY~fR7iyfs8^*cW4&Mkh&AJ#c@ zV|-V1ZMb)4clff-)xRfYoxknEd0kW8r#lDqd)n*$O6N?5+Zn!~bL(}TGj+w5(g*sz zAMcKI4!$bfBRXep*17PVaKHG#ofNLY;qZG#d?)-N?>Fg==JX+s1p>tt4IO&ghkEVN)AH}<) z>%x6AJ9KWn5KkrV>%45z`Bv=uv(BTT;C1016K;#nh3kde86I-DFkPo}|ANlTDd9$g zH~ewoIA?z1{BGCzdpMrZxwTIBjk0j~9S#2KPk2x0oY@xt)ZupM{5=?t3s)%Cm6j^F zvEWUA%6l@sH@PdmKe{nIEWgh?zJDn`^4QSzT6ei~I(XZE&D)#)JlQGSO~UO_9tU;4 zy_eSLzEO6#1&4dx+m}8d+`ZBFRln`wzUYw7)ft_?_+6(wW*zQCh3~%T2ddxpaBuW% zJea(je(HIp`Jf;i=lLZ*tHC?|o8F=Hm&x7n1IpKM&%`~+Khw!glbfbo zpV&lW&38)Q@rq=^A&{D$F~fkL6w>UfdXraes_Yrdlw&pTW?h||_3AY-W}KOqjKTcl zp^B=`s#cl4YBw!Tkj7}=s%6Gl)n-_#V?F!g<$rNhFN@hY%`fw+k7_I?Wt}zS%vh?@ zsZG-kgWlNqT6X9%uUML=%oa?B%`6Qux#`u<&>8QvxH9i1Galp_i+KaJ8kzaENU|E4 z^=hWcO#}JC{BV9ieKiF-P>lE?6MVu95Byoj6Sy9Y#y2c2af~<#w#fU0AbY$WQFh1jN7XD-A|)a$ zXyn`Le2~@ZT!{mAawihvpiYB|ojk4jRBu2H9e$BgPxi&u)D$f?eUjq`PsBx>><+we ztlnRC6)Uh=w!>OmuEUCgIH=j6kYoAdVjt7|xK`{Ae>EUR9fBQW?}^Ov!P}VAVv7a! zKt@H5JHI8J)ASDAPdW-$sI_P`DWflWi|gD3=TGhElal36(>u`~^>T5SI_Jdm&x^~x_Wn(MqLX70X&C_-Z|K#23 zqRVPY_1FPx%x&j3Dhe#P<+TaZrtx$72J(ict#GBrK;J7JZlfd{rGve#g1kx++Es;4 z$*2X^Ho~-^w+U~xWsS6Dy-AQ{eL*@_WxZ->yn~kAXfL30Wd#pf-eJ6t;KL3+q{w(5 zAwkY-2rkxOc^TS!i*Z>mC&Pg?zeI_B+3B)~cw3nttYERX6%5F&^X`I$Jjo=B!m?hJ z)bhj{B(Jk7pUv^lOB0OM0+xCAuH=O~r_O%@tWyEQVTH`Pd?_o==6*%j8a(xKt~imzE`W!2^Fi|vxIG`xbLZs?Ze9yj$haTC+;6&V;}t&faq~3 literal 0 HcmV?d00001 diff --git a/docs/测试说明/测试数据/wave_shot_20261106/samples/WAVE06_original.BIN b/docs/测试说明/测试数据/wave_shot_20261106/samples/WAVE06_original.BIN new file mode 100644 index 0000000000000000000000000000000000000000..ae7561b47ab5599ac3bf667b73650671b757d5d2 GIT binary patch literal 5250 zcmZ9Q*^eE?6~^!QUcB@jX6-v0jmgX?Z~hPRl9z<+iU>e^VzdE@KX>+kjxDCSnyYpCZ#DCJ;Biyy|ZPC@?<1^dB=c9r6tz;!_EH;!r7H(L$p5PV# zDevy|rsTSKbM)o#4>Na$FGl_GKaz`8xKqL%^PlzZNpDHMTgKfXTyOlhx{6;eGa32S?U6b8sItPP6|2gmebW3tmye;~w;@cV?cDUKpD{c_qTIGADb6B`T z-UI2@GVbx2+r#Igm*bPkY`VUe|M{CZvE-E*B&!K8o0dpO;dY<0Ll33o7h zF`iCNrE7|7ODn4Lc=vqggmA~aU#Gjpw>|oX>asc9AH5X6mYjCDBv{uq+I_ZjJecrb zc6_(TJEE_vF1LoyLT zey9B&`Mq25fqQ)Bmhh=)e>|4Vq@M`45afiLRUXrRpZDAJp5)GWPxLL-`8N68ACDyO zrEz{Ke<8n|zoc;~pJ=wMaZ!!+yv9V|i)!aJF63u5yO5uAnt36Xg_zfRR%0y8dCfl- z4$VS-#j(ZG86WZ$A@H*(n^leG^P*-Kv|g2*88O9TAigDiX|tLwN;WT!Oo~16F`7Nd zB}p!oqgax^IoZuAwgoq0i*&KQjE-s|!oiD4(hr(Ip7v*Ky*;u~hNu;yFpL6ZJ z=4a&rZ|KNi*2O$qW+X-`LWNhPr+##DLOQ2T^b4+?b@O?B&$ur2+~SuTxkP7X~Diyoh5*CYmN zRj)6YMrn!#udt!qijo!8YSoAdOi?pxQ!KOz-6$zuThxh^sHh1{RJ=(R#6!*N)IEJ+ zXBS!|#~0FCr!P8fNpfqA@?yIJC$%FIWMs~0`;qOfRoLoI{n%IbgFPe87S+!xR4)(w zg|PS5iKbEe)hbD=!+~#5Cw{8h?wCy9A`BY-ddL=A_*B_qN9jZTj!(LCi{J5wb3}4W>^}5cPx?)S|1O48Q zcSkx0Ulr~VoijJ=+L;@#18 z;l7z2I=5bkr;_(|UN-4`D|Y=^=h0B`x^RyPw?*f|^}_884>??zuG6`HLFeU^aHGK+ z{Dx9j{p98c)nTBrNQl5qGP4gTs+cu(k@*%trQ;dbc!Js6J*S18t%mdm)Y z;7xzZdosN@xhuXux-mQ~zt20qeSNHvQxO5gxjM$4(fb+ zFRjsiW69wb9PV{*U;2P>_eS4W{kDhuqC+}YXLSDJcb)Q>b+{8{zWbsdsD9hSz0tGr zVDfJIsppmEgMx6J`)~Uvz5VHf$&UCw@$H}aarkWXOx!QrC*Imptn+uWJ1*n)rN2ma z$3GL_0o|{jj-HPDl6Qo=tTZRwl-uoMU$cRHpH|GQ4Qkb=HYg3VAzAjzitjP4d&SY` z*hU;TR>w5!l?-n~&JIkkTj6sgKU(g@F|O6HI?Pz~i5ZWhvar~Qxe`skLt;q|$OnWS zbABw6elZLvM*NToK4FFj{;cB(T#rWM8HHeyJPvIYL+RH5)l?O z^6hm#$f`P5;((ppiG(<))1YD}PpdxF8&E@sU!>HNeX%t)MTB&T85p~n5;3eCA& zm<;(9>TQLf#%#%%#TIh;dqD{4)ae8+$uK;kKA%X zPoC!A^21NN8s50QT;*b*9u}L`1P<~vHY&k=hx-ioCc8Cqvw_*_!Oe%NkdsAd<3`EJ zh+3GgwOms?Y!p|kI=3ipw{2=2F0xjA?dHXPaO*Wyjxv# zSuLp^J7A5u?c7F1fd#j`HeuQ{eoo&&-q5rauGARld!@r|lw_lHu(y?wS4l#lWW0}% zAm=p%7i+M*4DG$exT2Sn;lP?-qQrj5>9UA;TbUoMV6nFq49KnX?t+Cp$s~)yvR;(b z^28b>ud@oD&GFAm6O7dYmU;KC-_=$7T<|M%CtTjkJNvr4VzKawr~ upWtn6BQIKJiAHkdKNcUjH*TUC|A9bm2>e}ATP=TyjNLOn#?|~|AN?1U=y53k literal 0 HcmV?d00001 diff --git a/docs/测试说明/测试数据/wave_shot_20261106/samples/WAVE09_seed_bitflip_reject.BIN b/docs/测试说明/测试数据/wave_shot_20261106/samples/WAVE09_seed_bitflip_reject.BIN new file mode 100644 index 0000000000000000000000000000000000000000..441f54142f367f38a55193e3a021730987bd15ed GIT binary patch literal 5250 zcmZu!`)?dq72fe3CzE87rrC7cvc>7f1X>Xu5)}ga1Eut#HuRAuRjW`CLLedj3M5*! zpq4)JupK+L*Xy?($97`ZNm_)U`~Za(lBRLI>vcBc$E-8!$J!o0H|6`z-Kkv(U){Nn z^PTUUduHYP%?r;NhO2g44;l3#BlP95($JxoZ~itE8V_9>Ee(Z2J43%aQHe1WG7P&U z)V@z~Ub11XHek#R^U@8NO&jK$H_W$pAIV%wy_dW%opp|Qeg2A}wx5s0$`X6~%O8oo z9NicG(0ZltM*fO>By%}+A^ElRg!7_zu86z0tYL3o`NP1K1NUm-?fjtoQs$G?Mc`cL zd9T;^4P$$Mn2;ZkT$5+xfoP%DcKVz)e-N4l&zsG?4M)->LcA+w#c7Ku4xD0S@e$H65 zyCPpIs{`Mou{VJG)H+(I&X2giEaFC-XT4V6GkoCg2Cl#Sap1lk9<+`ZYVy~C8${f_ z>9q5t*W|m#oZSvwE%+Xby$RektD;bw&$z$J3;`EQ4?73EMt|JM+Z~ZRf$J}SBKCIl zJK>~NS*Xi9zzwDbl6%ra&J$k3A2X)ywn(Jx6zcb6?5*en;bE()5YLagzs_6(E|yLL z*8tp%-6}Zpy%YUzc*LqMG!${?fg5rj^-lSYF=aPJ?kKAkzT?sFhp$_;g{FMg{Y@r` z{Pv^=oyWXdKV#(V=15rL9*7a=San5Q3crI``kM2ISM6UnZrY8&Rqq`r|4Hmv^uh3` z6)&`cuScCzXVhtRR&`51r+Q@URh^i1s}9wx`qaCsUwRj8Ts5OLsv1?LDpj4TRt>62 z)uVO5<6X2qbrF8uXq~EEwWwCaXh-kDtVbA6t2S8Af~6Wf)$pxWC()`fJEh{PRwX1# zE#}pTathA|^eVJCRtb3410P4znbe8B0hUwPuT&LiC(w!2zKl|Xd>Nww`(&;FvQbuz z$g>tZr?5VQ96RM?WQxNpffF*PT3~C?S%G?-rWyNfc(%%%XF82l54g^t3Y{2RfZ($c zEg@CyMa?^;4risF{aCdD&+2suPdBR7D-~z*yzq znp9aeAuQu+>~p>>IOo7RiP6RW6fm<`O<+EaaRzM?^Bh*pWK4O2oW?%+$i#L7`!kZE zi`^;Aau{>M#no65F^QddoWOW6RqG( zOIQ`;bR}|1o<1)q)@&73V10-*WLAoL>bfk$MwSKGe9V{7m*G8&eDoe;>BdMm`TyO*6I~M(F_@g3@e2HWP|EZt$+WjeG61aPC zvk#O%6+2P9v5!Il91^}e(^usNn>1Xz9yekFxTj+kz+J+PeLR2FJuJ8ga0hVHO&Sxx z-3`7A<(Qn=g_iu7@Fjrzr}G2vsQ;;P#eNI8TI6>)))0Mf|NHyj zE4GXKFBWIqK`~fRCeIt@D#Z zS4w9_j`eD37Fx7bGtei9tY^V$-LA9K$aSl>2hjuHz#inrIs~@hh7dyEGn*MQC`$@)PB@?)D2X4 zj7a?%hlLtaYdR`3jiUOiQpfSsij7*2EL4m&=uN`Gy$aDlweX`dq5ezYoPqw+dXpZ_ zpKCv=NsVs9NNvZ~hSnjvsTohIT`D-O*{FJ&fTjN9`OiundZ4FR+djn83Yi*>T8^47 z&}^)=)_Lu)kcV|4s;TJLg}KgSy|%g#$$AzVh)Q7*eHki*wk6E6qMU}+HMEQxhRzztcwKbWGPss-=P#hs zpV%xk#!bYU!joEK5i_bOAF3b?|6!=GBpUffR0@2t|%h|GuZOkq8O7(-BUUz9E?d=+37`Z`X$w%AktvZVwRHqX`DKT6Okv0+=z9- zJ_ZD%j3RFrc52DVV)LMDrr<{n$#YXxE;7w2W#|+0M%zwNX~q zbKoNby=O7!dIBwrHKTJjBUSa_J%&z&yePG$0-gkh8kxvhsk@0NKR=G)P46N_!`MB8QVHp5u&ka@_wgXx#wHj&X18c)V=q7bYGqU=CMVR)8GZp@?v$TeUTb~jWEi|6a#~WFZTA8SF9(Cn6+^T9{`X5|RJ%s=O literal 0 HcmV?d00001 diff --git a/docs/测试说明/测试数据/wave_shot_20261106/serial_excerpt.txt b/docs/测试说明/测试数据/wave_shot_20261106/serial_excerpt.txt new file mode 100644 index 00000000..5cc34dca --- /dev/null +++ b/docs/测试说明/测试数据/wave_shot_20261106/serial_excerpt.txt @@ -0,0 +1,180 @@ +串口实录摘录(serial-assistant 日志原样,剔除 seg=0 心跳行)——2026-11-06 第二幕尾步两窗: +窗一 17:52:3x–17:54:5x:WAVE09 新文件首攻(坏版 STOR + 关开页,见 README 发现 F1) +窗二 18:10:0x–18:16:0x:同号覆盖主链(18:11:38 坏版 STOR→18:12:01 原字节恢复)+ 全删空态(18:14:4x DELE×10 → 18:14:55 open fail fr=4 → 18:15:0x-14 STOR 恢复×9 RETR sha 验) + +[RX] 2026-11-06T17:52:35.660+08:00 [2026-11-06 17:52:34] [FTP] connection received from 192.168.31.161:60945... +[RX] 2026-11-06T17:52:35.670+08:00 [2026-11-06 17:52:34] [FTP] CMD USER admin +[RX] 2026-11-06T17:52:35.670+08:00 [2026-11-06 17:52:34] [FTP] CMD PASS admin +[RX] 2026-11-06T17:52:35.670+08:00 [2026-11-06 17:52:34] [FTP] CMD CWD /WAVE +[RX] 2026-11-06T17:52:35.680+08:00 [2026-11-06 17:52:34] [FTP] CMD TYPE A +[RX] 2026-11-06T17:52:35.691+08:00 [2026-11-06 17:52:34] [FTP] CMD PASV +[RX] 2026-11-06T17:52:35.742+08:00 [2026-11-06 17:52:34] [FTP] CMD NLST +[RX] 2026-11-06T17:52:35.918+08:00 [2026-11-06 17:52:34] [FTP] CMD TYPE I +[RX] 2026-11-06T17:52:35.918+08:00 [2026-11-06 17:52:34] [FTP] CMD PASV +[RX] 2026-11-06T17:52:35.969+08:00 [2026-11-06 17:52:34] [FTP] CMD STOR WAVE09.BIN +[RX] 2026-11-06T17:52:36.052+08:00 [2026-11-06 17:52:34] [FTP] UPLOAD '/WAVE/WAVE09.BIN' 5250 bytes OK +[RX] 2026-11-06T17:52:36.661+08:00 [2026-11-06 17:52:35] [FTP] CMD TYPE A +[RX] 2026-11-06T17:52:36.661+08:00 [2026-11-06 17:52:35] [FTP] CMD PASV +[RX] 2026-11-06T17:52:36.724+08:00 [2026-11-06 17:52:35] [FTP] CMD NLST +[RX] 2026-11-06T17:52:36.910+08:00 [2026-11-06 17:52:35] [FTP] CMD TYPE I +[RX] 2026-11-06T17:52:36.910+08:00 [2026-11-06 17:52:35] [FTP] CMD PASV +[RX] 2026-11-06T17:52:36.962+08:00 [2026-11-06 17:52:35] [FTP] CMD RETR WAVE09.BIN +[RX] 2026-11-06T17:52:37.128+08:00 [2026-11-06 17:52:36] [FTP] DOWNLOAD '/WAVE/WAVE09.BIN' OK +[RX] 2026-11-06T17:52:37.128+08:00 [2026-11-06 17:52:36] [FTP] CMD QUIT +[RX] 2026-11-06T17:52:37.149+08:00 [2026-11-06 17:52:36] [FTP] waiting for connection... +[RX] 2026-11-06T17:52:39.623+08:00 [2026-11-06 17:52:38][UI_CONTENT_PAGE] page close: id=wave_play +[RX] 2026-11-06T17:52:43.461+08:00 [2026-11-06 17:52:42][UI_CONTENT_PAGE] page open: id=wave_play rows=0 +[RX] 2026-11-06T18:10:04.225+08:00 [2026-11-06 18:10:03] [FTP] connection received from 192.168.31.161:54991... +[RX] 2026-11-06T18:10:04.225+08:00 [2026-11-06 18:10:03] [FTP] CMD USER admin +[RX] 2026-11-06T18:10:04.246+08:00 [2026-11-06 18:10:03] [FTP] CMD PASS admin +[RX] 2026-11-06T18:10:04.257+08:00 [2026-11-06 18:10:03] [FTP] CMD CWD /WAVE +[RX] 2026-11-06T18:10:04.278+08:00 [2026-11-06 18:10:03] [FTP] CMD TYPE I +[RX] 2026-11-06T18:10:04.289+08:00 [2026-11-06 18:10:03] [FTP] CMD PASV +[RX] 2026-11-06T18:10:04.424+08:00 [2026-11-06 18:10:03] [FTP] CMD STOR WAVE06.BIN +[RX] 2026-11-06T18:10:04.487+08:00 [2026-11-06 18:10:03] [FTP] UPLOAD '/WAVE/WAVE06.BIN' 5250 bytes OK +[RX] 2026-11-06T18:10:05.098+08:00 [2026-11-06 18:10:03] [FTP] CMD TYPE I +[RX] 2026-11-06T18:10:05.098+08:00 [2026-11-06 18:10:04] [FTP] CMD PASV +[RX] 2026-11-06T18:10:05.171+08:00 [2026-11-06 18:10:04] [FTP] CMD RETR WAVE06.BIN +[RX] 2026-11-06T18:10:05.346+08:00 [2026-11-06 18:10:04] [FTP] DOWNLOAD '/WAVE/WAVE06.BIN' OK +[RX] 2026-11-06T18:10:05.357+08:00 [2026-11-06 18:10:04] [FTP] CMD QUIT +[RX] 2026-11-06T18:10:05.367+08:00 [2026-11-06 18:10:04] [FTP] waiting for connection... +[RX] 2026-11-06T18:11:20.089+08:00 [2026-11-06 18:11:18][UI_CONTENT_PAGE] page open: id=wave_play rows=0 +[RX] 2026-11-06T18:11:38.915+08:00 [2026-11-06 18:11:37] [FTP] connection received from 192.168.31.161:54867... +[RX] 2026-11-06T18:11:38.936+08:00 [2026-11-06 18:11:37] [FTP] CMD USER admin +[RX] 2026-11-06T18:11:38.946+08:00 [2026-11-06 18:11:37] [FTP] CMD PASS admin +[RX] 2026-11-06T18:11:38.967+08:00 [2026-11-06 18:11:37] [FTP] CMD CWD /WAVE +[RX] 2026-11-06T18:11:38.967+08:00 [2026-11-06 18:11:37] [FTP] CMD TYPE I +[RX] 2026-11-06T18:11:38.998+08:00 [2026-11-06 18:11:37] [FTP] CMD PASV +[RX] 2026-11-06T18:11:39.122+08:00 [2026-11-06 18:11:38] [FTP] CMD STOR WAVE06.BIN +[RX] 2026-11-06T18:11:39.216+08:00 [2026-11-06 18:11:38] [FTP] UPLOAD '/WAVE/WAVE06.BIN' 5250 bytes OK +[RX] 2026-11-06T18:11:39.837+08:00 [2026-11-06 18:11:38] [FTP] CMD TYPE I +[RX] 2026-11-06T18:11:39.837+08:00 [2026-11-06 18:11:38] [FTP] CMD PASV +[RX] 2026-11-06T18:11:39.879+08:00 [2026-11-06 18:11:38] [FTP] CMD RETR WAVE06.BIN +[RX] 2026-11-06T18:11:40.013+08:00 [2026-11-06 18:11:38] [FTP] DOWNLOAD '/WAVE/WAVE06.BIN' OK +[RX] 2026-11-06T18:11:40.013+08:00 [2026-11-06 18:11:38] [FTP] CMD QUIT +[RX] 2026-11-06T18:11:40.023+08:00 [2026-11-06 18:11:38] [FTP] waiting for connection... +[RX] 2026-11-06T18:12:02.780+08:00 [2026-11-06 18:12:01] [FTP] connection received from 192.168.31.161:53103... +[RX] 2026-11-06T18:12:02.802+08:00 [2026-11-06 18:12:01] [FTP] CMD USER admin +[RX] 2026-11-06T18:12:02.812+08:00 [2026-11-06 18:12:01] [FTP] CMD PASS admin +[RX] 2026-11-06T18:12:02.895+08:00 [2026-11-06 18:12:01] [FTP] CMD CWD /WAVE +[RX] 2026-11-06T18:12:02.895+08:00 [2026-11-06 18:12:01] [FTP] CMD TYPE I +[RX] 2026-11-06T18:12:02.895+08:00 [2026-11-06 18:12:01] [FTP] CMD PASV +[RX] 2026-11-06T18:12:02.957+08:00 [2026-11-06 18:12:01] [FTP] CMD STOR WAVE06.BIN +[RX] 2026-11-06T18:12:03.030+08:00 [2026-11-06 18:12:01] [FTP] UPLOAD '/WAVE/WAVE06.BIN' 5250 bytes OK +[RX] 2026-11-06T18:12:03.633+08:00 [2026-11-06 18:12:02] [FTP] CMD TYPE I +[RX] 2026-11-06T18:12:03.643+08:00 [2026-11-06 18:12:02] [FTP] CMD PASV +[RX] 2026-11-06T18:12:03.705+08:00 [2026-11-06 18:12:02] [FTP] CMD RETR WAVE06.BIN +[RX] 2026-11-06T18:12:03.839+08:00 [2026-11-06 18:12:02] [FTP] DOWNLOAD '/WAVE/WAVE06.BIN' OK +[RX] 2026-11-06T18:12:03.839+08:00 [2026-11-06 18:12:02] [FTP] CMD QUIT +[RX] 2026-11-06T18:12:03.860+08:00 [2026-11-06 18:12:02] [FTP] waiting for connection... +[RX] 2026-11-06T18:14:44.047+08:00 [2026-11-06 18:14:42] [FTP] connection received from 192.168.31.161:58594... +[RX] 2026-11-06T18:14:44.057+08:00 [2026-11-06 18:14:42] [FTP] CMD USER admin +[RX] 2026-11-06T18:14:44.057+08:00 [2026-11-06 18:14:42] [FTP] CMD PASS admin +[RX] 2026-11-06T18:14:44.067+08:00 [2026-11-06 18:14:42] [FTP] CMD CWD /WAVE +[RX] 2026-11-06T18:14:44.067+08:00 [2026-11-06 18:14:42] [FTP] CMD TYPE A +[RX] 2026-11-06T18:14:44.078+08:00 [2026-11-06 18:14:42] [FTP] CMD PASV +[RX] 2026-11-06T18:14:44.151+08:00 [2026-11-06 18:14:43] [FTP] CMD LIST +[RX] 2026-11-06T18:14:44.285+08:00 [2026-11-06 18:14:43] [FTP] CMD DELE WAVE00.BIN +[RX] 2026-11-06T18:14:44.627+08:00 [2026-11-06 18:14:43] [FTP] CMD DELE WAVE01.BIN +[RX] 2026-11-06T18:14:44.969+08:00 [2026-11-06 18:14:43] [FTP] CMD DELE WAVE02.BIN +[RX] 2026-11-06T18:14:45.312+08:00 [2026-11-06 18:14:44] [FTP] CMD DELE WAVE03.BIN +[RX] 2026-11-06T18:14:45.644+08:00 [2026-11-06 18:14:44] [FTP] CMD DELE WAVE04.BIN +[RX] 2026-11-06T18:14:45.997+08:00 [2026-11-06 18:14:44] [FTP] CMD DELE WAVE05.BIN +[RX] 2026-11-06T18:14:46.340+08:00 [2026-11-06 18:14:45] [FTP] CMD DELE WAVE06.BIN +[RX] 2026-11-06T18:14:46.672+08:00 [2026-11-06 18:14:45] [FTP] CMD DELE WAVE07.BIN +[RX] 2026-11-06T18:14:47.016+08:00 [2026-11-06 18:14:45] [FTP] CMD DELE WAVE08.BIN +[RX] 2026-11-06T18:14:47.358+08:00 [2026-11-06 18:14:46] [FTP] CMD DELE WAVE09.BIN +[RX] 2026-11-06T18:14:48.292+08:00 [2026-11-06 18:14:47] [FTP] CMD TYPE A +[RX] 2026-11-06T18:14:48.292+08:00 [2026-11-06 18:14:47] [FTP] CMD PASV +[RX] 2026-11-06T18:14:48.364+08:00 [2026-11-06 18:14:47] [FTP] CMD LIST +[RX] 2026-11-06T18:14:48.560+08:00 [2026-11-06 18:14:47] [FTP] CMD QUIT +[RX] 2026-11-06T18:14:48.602+08:00 [2026-11-06 18:14:47] [FTP] waiting for connection... +[RX] 2026-11-06T18:14:52.299+08:00 [2026-11-06 18:14:51][UI_CONTENT_PAGE] page close: id=wave_play +[RX] 2026-11-06T18:14:56.144+08:00 [2026-11-06 18:14:55][UI_CONTENT_PAGE] page open: id=wave_play rows=0 +[RX] 2026-11-06T18:14:56.155+08:00 [2026-11-06 18:14:55][ERR][UI_TASK] ui wave head idx=8 open fail fr=4 +[RX] 2026-11-06T18:14:59.703+08:00 [2026-11-06 18:14:58][ERR][UI_TASK] ui wave head idx=8 open fail fr=4 +[RX] 2026-11-06T18:14:59.724+08:00 [2026-11-06 18:14:58][ERR][UI_TASK] ui wave head idx=8 open fail fr=4 +[RX] 2026-11-06T18:15:02.069+08:00 [2026-11-06 18:15:00][UI_CONTENT_PAGE] page close: id=wave_play +[RX] 2026-11-06T18:15:05.361+08:00 [2026-11-06 18:15:04] [FTP] connection received from 192.168.31.161:60925... +[RX] 2026-11-06T18:15:05.372+08:00 [2026-11-06 18:15:04] [FTP] CMD USER admin +[RX] 2026-11-06T18:15:05.372+08:00 [2026-11-06 18:15:04] [FTP] CMD PASS admin +[RX] 2026-11-06T18:15:05.382+08:00 [2026-11-06 18:15:04] [FTP] CMD CWD /WAVE +[RX] 2026-11-06T18:15:05.382+08:00 [2026-11-06 18:15:04] [FTP] CMD TYPE I +[RX] 2026-11-06T18:15:05.393+08:00 [2026-11-06 18:15:04] [FTP] CMD PASV +[RX] 2026-11-06T18:15:05.466+08:00 [2026-11-06 18:15:04] [FTP] CMD STOR WAVE00.BIN +[RX] 2026-11-06T18:15:05.529+08:00 [2026-11-06 18:15:04] [FTP] UPLOAD '/WAVE/WAVE00.BIN' 5250 bytes OK +[RX] 2026-11-06T18:15:06.130+08:00 [2026-11-06 18:15:05] [FTP] CMD TYPE I +[RX] 2026-11-06T18:15:06.140+08:00 [2026-11-06 18:15:05] [FTP] CMD PASV +[RX] 2026-11-06T18:15:06.203+08:00 [2026-11-06 18:15:05] [FTP] CMD RETR WAVE00.BIN +[RX] 2026-11-06T18:15:06.367+08:00 [2026-11-06 18:15:05] [FTP] DOWNLOAD '/WAVE/WAVE00.BIN' OK +[RX] 2026-11-06T18:15:06.367+08:00 [2026-11-06 18:15:05] [FTP] CMD TYPE I +[RX] 2026-11-06T18:15:06.377+08:00 [2026-11-06 18:15:05] [FTP] CMD PASV +[RX] 2026-11-06T18:15:06.449+08:00 [2026-11-06 18:15:05] [FTP] CMD STOR WAVE01.BIN +[RX] 2026-11-06T18:15:06.522+08:00 [2026-11-06 18:15:05] [FTP] UPLOAD '/WAVE/WAVE01.BIN' 5250 bytes OK +[RX] 2026-11-06T18:15:07.135+08:00 [2026-11-06 18:15:06] [FTP] CMD TYPE I +[RX] 2026-11-06T18:15:07.135+08:00 [2026-11-06 18:15:06] [FTP] CMD PASV +[RX] 2026-11-06T18:15:07.197+08:00 [2026-11-06 18:15:06] [FTP] CMD RETR WAVE01.BIN +[RX] 2026-11-06T18:15:07.363+08:00 [2026-11-06 18:15:06] [FTP] DOWNLOAD '/WAVE/WAVE01.BIN' OK +[RX] 2026-11-06T18:15:07.363+08:00 [2026-11-06 18:15:06] [FTP] CMD TYPE I +[RX] 2026-11-06T18:15:07.373+08:00 [2026-11-06 18:15:06] [FTP] CMD PASV +[RX] 2026-11-06T18:15:07.445+08:00 [2026-11-06 18:15:06] [FTP] CMD STOR WAVE02.BIN +[RX] 2026-11-06T18:15:07.519+08:00 [2026-11-06 18:15:06] [FTP] UPLOAD '/WAVE/WAVE02.BIN' 5250 bytes OK +[RX] 2026-11-06T18:15:08.141+08:00 [2026-11-06 18:15:07] [FTP] CMD TYPE I +[RX] 2026-11-06T18:15:08.152+08:00 [2026-11-06 18:15:07] [FTP] CMD PASV +[RX] 2026-11-06T18:15:08.193+08:00 [2026-11-06 18:15:07] [FTP] CMD RETR WAVE02.BIN +[RX] 2026-11-06T18:15:08.370+08:00 [2026-11-06 18:15:07] [FTP] DOWNLOAD '/WAVE/WAVE02.BIN' OK +[RX] 2026-11-06T18:15:08.381+08:00 [2026-11-06 18:15:07] [FTP] CMD TYPE I +[RX] 2026-11-06T18:15:08.381+08:00 [2026-11-06 18:15:07] [FTP] CMD PASV +[RX] 2026-11-06T18:15:08.454+08:00 [2026-11-06 18:15:07] [FTP] CMD STOR WAVE03.BIN +[RX] 2026-11-06T18:15:08.538+08:00 [2026-11-06 18:15:07] [FTP] UPLOAD '/WAVE/WAVE03.BIN' 5250 bytes OK +[RX] 2026-11-06T18:15:09.139+08:00 [2026-11-06 18:15:08] [FTP] CMD TYPE I +[RX] 2026-11-06T18:15:09.150+08:00 [2026-11-06 18:15:08] [FTP] CMD PASV +[RX] 2026-11-06T18:15:09.191+08:00 [2026-11-06 18:15:08] [FTP] CMD RETR WAVE03.BIN +[RX] 2026-11-06T18:15:09.366+08:00 [2026-11-06 18:15:08] [FTP] DOWNLOAD '/WAVE/WAVE03.BIN' OK +[RX] 2026-11-06T18:15:09.366+08:00 [2026-11-06 18:15:08] [FTP] CMD TYPE I +[RX] 2026-11-06T18:15:09.377+08:00 [2026-11-06 18:15:08] [FTP] CMD PASV +[RX] 2026-11-06T18:15:09.461+08:00 [2026-11-06 18:15:08] [FTP] CMD STOR WAVE04.BIN +[RX] 2026-11-06T18:15:09.512+08:00 [2026-11-06 18:15:08] [FTP] UPLOAD '/WAVE/WAVE04.BIN' 5250 bytes OK +[RX] 2026-11-06T18:15:10.117+08:00 [2026-11-06 18:15:09] [FTP] CMD TYPE I +[RX] 2026-11-06T18:15:10.127+08:00 [2026-11-06 18:15:09] [FTP] CMD PASV +[RX] 2026-11-06T18:15:10.191+08:00 [2026-11-06 18:15:09] [FTP] CMD RETR WAVE04.BIN +[RX] 2026-11-06T18:15:10.367+08:00 [2026-11-06 18:15:09] [FTP] DOWNLOAD '/WAVE/WAVE04.BIN' OK +[RX] 2026-11-06T18:15:10.367+08:00 [2026-11-06 18:15:09] [FTP] CMD TYPE I +[RX] 2026-11-06T18:15:10.378+08:00 [2026-11-06 18:15:09] [FTP] CMD PASV +[RX] 2026-11-06T18:15:10.450+08:00 [2026-11-06 18:15:09] [FTP] CMD STOR WAVE05.BIN +[RX] 2026-11-06T18:15:10.513+08:00 [2026-11-06 18:15:09] [FTP] UPLOAD '/WAVE/WAVE05.BIN' 5250 bytes OK +[RX] 2026-11-06T18:15:11.117+08:00 [2026-11-06 18:15:10] [FTP] CMD TYPE I +[RX] 2026-11-06T18:15:11.127+08:00 [2026-11-06 18:15:10] [FTP] CMD PASV +[RX] 2026-11-06T18:15:11.190+08:00 [2026-11-06 18:15:10] [FTP] CMD RETR WAVE05.BIN +[RX] 2026-11-06T18:15:11.366+08:00 [2026-11-06 18:15:10] [FTP] DOWNLOAD '/WAVE/WAVE05.BIN' OK +[RX] 2026-11-06T18:15:11.366+08:00 [2026-11-06 18:15:10] [FTP] CMD TYPE I +[RX] 2026-11-06T18:15:11.377+08:00 [2026-11-06 18:15:10] [FTP] CMD PASV +[RX] 2026-11-06T18:15:11.555+08:00 [2026-11-06 18:15:10] [FTP] CMD STOR WAVE06.BIN +[RX] 2026-11-06T18:15:11.576+08:00 [2026-11-06 18:15:10] [FTP] UPLOAD '/WAVE/WAVE06.BIN' 5250 bytes OK +[RX] 2026-11-06T18:15:12.180+08:00 [2026-11-06 18:15:11] [FTP] CMD TYPE I +[RX] 2026-11-06T18:15:12.191+08:00 [2026-11-06 18:15:11] [FTP] CMD PASV +[RX] 2026-11-06T18:15:12.253+08:00 [2026-11-06 18:15:11] [FTP] CMD RETR WAVE06.BIN +[RX] 2026-11-06T18:15:12.398+08:00 [2026-11-06 18:15:11] [FTP] DOWNLOAD '/WAVE/WAVE06.BIN' OK +[RX] 2026-11-06T18:15:12.398+08:00 [2026-11-06 18:15:11] [FTP] CMD TYPE I +[RX] 2026-11-06T18:15:12.408+08:00 [2026-11-06 18:15:11] [FTP] CMD PASV +[RX] 2026-11-06T18:15:12.470+08:00 [2026-11-06 18:15:11] [FTP] CMD STOR WAVE07.BIN +[RX] 2026-11-06T18:15:12.554+08:00 [2026-11-06 18:15:11] [FTP] UPLOAD '/WAVE/WAVE07.BIN' 5250 bytes OK +[RX] 2026-11-06T18:15:13.156+08:00 [2026-11-06 18:15:12] [FTP] CMD TYPE I +[RX] 2026-11-06T18:15:13.156+08:00 [2026-11-06 18:15:12] [FTP] CMD PASV +[RX] 2026-11-06T18:15:13.207+08:00 [2026-11-06 18:15:12] [FTP] CMD RETR WAVE07.BIN +[RX] 2026-11-06T18:15:13.363+08:00 [2026-11-06 18:15:12] [FTP] DOWNLOAD '/WAVE/WAVE07.BIN' OK +[RX] 2026-11-06T18:15:13.363+08:00 [2026-11-06 18:15:12] [FTP] CMD TYPE I +[RX] 2026-11-06T18:15:13.374+08:00 [2026-11-06 18:15:12] [FTP] CMD PASV +[RX] 2026-11-06T18:15:13.447+08:00 [2026-11-06 18:15:12] [FTP] CMD STOR WAVE08.BIN +[RX] 2026-11-06T18:15:13.519+08:00 [2026-11-06 18:15:12] [FTP] UPLOAD '/WAVE/WAVE08.BIN' 5250 bytes OK +[RX] 2026-11-06T18:15:14.145+08:00 [2026-11-06 18:15:13] [FTP] CMD TYPE I +[RX] 2026-11-06T18:15:14.145+08:00 [2026-11-06 18:15:13] [FTP] CMD PASV +[RX] 2026-11-06T18:15:14.186+08:00 [2026-11-06 18:15:13] [FTP] CMD RETR WAVE08.BIN +[RX] 2026-11-06T18:15:14.363+08:00 [2026-11-06 18:15:13] [FTP] DOWNLOAD '/WAVE/WAVE08.BIN' OK +[RX] 2026-11-06T18:15:14.363+08:00 [2026-11-06 18:15:13] [FTP] CMD TYPE A +[RX] 2026-11-06T18:15:14.374+08:00 [2026-11-06 18:15:13] [FTP] CMD PASV +[RX] 2026-11-06T18:15:14.436+08:00 [2026-11-06 18:15:13] [FTP] CMD LIST +[RX] 2026-11-06T18:15:14.561+08:00 [2026-11-06 18:15:13] [FTP] CMD QUIT +[RX] 2026-11-06T18:15:14.571+08:00 [2026-11-06 18:15:13] [FTP] waiting for connection... +[RX] 2026-11-06T18:15:18.286+08:00 [2026-11-06 18:15:17][UI_CONTENT_PAGE] page open: id=wave_play rows=0 +[RX] 2026-11-06T18:15:21.817+08:00 [2026-11-06 18:15:20][UI_CONTENT_PAGE] page close: id=wave_play From 2e4c167bfb5b5af9b0430697f8111bf0f9285cd0 Mon Sep 17 00:00:00 2001 From: super_agent_bot Date: Fri, 6 Nov 2026 19:10:21 +0800 Subject: [PATCH 2/7] =?UTF-8?q?docs(hw):=20=E2=91=A3=20=E6=AE=B5=E5=8F=98?= =?UTF-8?q?=E6=AF=94=E5=AE=9A=E6=AD=BB=E5=85=A5=E9=80=9A=E9=81=93=E6=98=A0?= =?UTF-8?q?=E5=B0=84=E2=80=94=E2=80=94=E7=94=B5=E5=8E=8B=E6=97=8F=20606.06?= =?UTF-8?q?:1=E3=80=81=E7=94=B5=E6=B5=81=E6=97=8F=2029.4118=20A/V=EF=BC=8C?= =?UTF-8?q?eng=20=E4=BF=9D=E6=8C=81=200?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 用户在 Issue #41 现场报子板参数:PT 2mA/2mA、输入侧 200 kΩ、输出侧 330 Ω; CT 5A/2.5mA、输出侧负担 68 Ω。先复核算术后入库: - 200000 ÷ 330 = 606.060606… V/V ✓;5 ÷ (2.5mA × 68Ω) = 5 ÷ 0.17 = 29.41176470… A/V(= 匝比 2000 ÷ 68)✓,两数与报参口径一致,未发现算误。 - 电流族"变比"实为带单位的 A/V(I端子 ÷ UAINn),与 V/V 不可混写,文档分注。 改动全在 docs/硬件平台/ADC通道映射说明.md(#41 口径:本卡不动代码、 ROM、登记簿): - §7.1 链路分段表 ④ 行由"仍待实测确认"改"定死(参数算定)",给出两族数值; 引文与可评审结论 1/3/4 同步收口。 - 新增 §7.2 登记:算式与额定点(400 V→0.66 V、5 A→0.17 V)、②×③×④ 端到端 标称系数表(92.48 / 488.28 mV/码、4.488 / 23.70 mA/码)、复核口径——铭牌 参数非本板实测,数值确认归两点标定;`eng` 判定:④ 到手满足第一条件, 电气 8 路 ADC_CAL_F_VALID 未置位,eng 保持 0,两点标定转为可开工。 - 移交两点标定卡的两道存储题:电压族端子域标称 k 越 int32 Q16 µV/码上限 32767,且合法带基准读 ROM 出厂表(引脚域)——写入端子域系数前存储单位 与出厂表须一并换血。 验证:check_doc_links.py --all 与 no-mojibake 实跑通过;docs-only, /keil-build 不适用。 --- docs/硬件平台/ADC通道映射说明.md | 72 ++++++++++++++++++++++++++++---- 1 file changed, 65 insertions(+), 7 deletions(-) diff --git a/docs/硬件平台/ADC通道映射说明.md b/docs/硬件平台/ADC通道映射说明.md index 56511b03..a21307ab 100644 --- a/docs/硬件平台/ADC通道映射说明.md +++ b/docs/硬件平台/ADC通道映射说明.md @@ -142,7 +142,7 @@ STM32(U17)为 LQFP144 脚号。 > 出处:`docs/任务规划/数据可信.md` §2.1(量程口径冻结)。本节把 **语义端子(二次侧)→ 子板/端子板 → 网名 `AINn` → 主板电阻网络 → 板级网名 `ADCn` → 转换器引脚 → 码值 → 满量程** 的链路**逐段**定口径。 > ③ 段(`AINn` ↔ 转换器引脚)已有台架实测数值——变比 **1:1**,斜率实测见 §8.1;④ 段(语义端子 ↔ `AINn` 的子板/ -> 端子板变比)仓库内没有任何数据,只给口径与判据。 +> 端子板变比)已于 **2026-11-06 按用户现场报参算定**(#41,登记与复核边界见 §7.2;子板原理图仍不在仓库内)。 **芯片级口径(定死,与前端网络无关)**: @@ -171,19 +171,77 @@ STM32(U17)为 LQFP144 脚号。 | ① 语义 ↔ 网名 ↔ 板级网名 ↔ 转换器代码通道 | §2/§3/§4/§5 的 17 路映射表 | **定死**(本文件为唯一权威) | | ② 转换器引脚电压 ↔ 码值 | TPAFE `U_pin = code × 152.59 µV`(code 带符号);STM32 `U_pin = code × 805.66 µV` | **定死**(纯转换器事实,上表) | | ③ `AINn`(串联电阻子板侧)↔ `ADCn`/转换器引脚 | **变比 = 1:1(2026-10-27 定死)**:`ADCn` 节点只有 {串阻.2, 滤波 C, 转换器引脚},无对地元件(拓扑图见上)。旧"读法 A(2:1 分压 → 305.18 / 1611.3 µV/码)"**作废**——它是把接在差分负端的 1k 误读成对地分压 | **定死**(网表级结论 + **2026-10-27 台架实测确认**,见 §8.1:端子侧注入斜率 6544.2 码/V,与引脚侧理论 6553.6 差 0.14 %,不存在 2:1 分压)。已知电压注入验证已闭环 | -| ④ 语义端子(二次端子)↔ `AINn` | 子板/端子板变比:仓库内**无任何文档**(`docs/硬件平台/` 只有 `.tel` 网表与分析报告,无子板原理图;§8 步骤 4) | **缺口**——待「端子/子板变比确认」实测确认;拿不到变比则"端子二次值"不成立、`eng` 保持 0 | +| ④ 语义端子(二次端子)↔ `AINn` | 子板/端子板变比:**电压族(UA/UB/UC/UN)= 606.06 : 1(V/V)**、**电流族(IA/IB/IC/IN)= 29.4118 A/V**;由用户现场报参(2026-11-06,#41)按式算定,算式与复核边界见 §7.2 | **定死**(参数算定,非本板双表同测;数值确认归两点标定)——"端子二次值"口径成立;但 `eng` 在电气 8 路 `ADC_CAL_F_VALID` 全置位(两点标定卡)前**保持 0** | **可评审结论**: -1. **ROM 默认系数按 ② 引脚口径冻结**:TPAFE 通道 `k = 152.59 µV/码`、STM32 通道 `k = 805.66 µV/码`;标定折算的输出单位 = **ADC 引脚电压 V**(`eng = 0`)。该口径**不依赖** ③④ 两个未决项,自本节点死即成立——这就是 M4 承诺边界止于“引脚电压”的依据(`docs/任务规划/数据可信.md` §2.6)。 +1. **ROM 默认系数按 ② 引脚口径冻结**:TPAFE 通道 `k = 152.59 µV/码`、STM32 通道 `k = 805.66 µV/码`;标定折算的输出单位 = **ADC 引脚电压 V**(`eng = 0`)。该口径与 ③④ 变比何时定死**无关**,冻结当日即成立且此后不因 ④ 到手而改动——这就是 M4 承诺边界止于“引脚电压”的依据(`docs/任务规划/数据可信.md` §2.6)。 2. `docs/任务规划/数据可信.md` §2.1 旧表的“板级系数(输入侧)305.18 / 1611.3 µV/码”**已随 ③ 段定死而删除**(2026-10-27):该值按 2:1 分压折算,而网表证明 `ADCn` 节点无对地元件。板级系数 = 引脚侧系数(152.59 / 805.66);305.18 / 1611.3 今后只允许出现在“±10 V 档 LSB”语境(芯片手册口径),不得再当本板系数。 -3. **满量程必须写明参考点**:TPAFE 通道满量程 = ±5 V **@ 引脚**(跨度 10 V);③ 已定 1:1、④ 仍未知,故端子侧满量程只允许写“引脚侧数值 × ④ 比”,**严禁**把“码 × 152.59 µV”当端子二次值写进代码/文档(那是引脚电压)。 +3. **满量程必须写明参考点**:TPAFE 通道满量程 = ±5 V **@ 引脚**(跨度 10 V);③④ 现均已定死(④ 值见 §7.2),端子侧换算已允许写“引脚侧数值 × ④ 比”;但两点标定置 `VALID` 之前,**严禁**把“码 × 152.59 µV”当端子二次值写进代码/文档(那是引脚电压),§7.2 的标称系数只是算定值、不是已验证二次值。 4. **已知电压注入验证已于 2026-10-27 闭环**(六项判据全 PASS,实测见 §8.1):③ 段 1:1 由台架直接证实, - ② 引脚侧 LSB 与实测斜率差 0.14 %,逐通道映射与极性均已验。**仍待实测的是 ④**(端子→引脚 - 变比,即端子/子板变比确认)与两点标定;两者完成前 `eng` 保持 0、输出单位仍是 ADC 引脚电压。 + ② 引脚侧 LSB 与实测斜率差 0.14 %,逐通道映射与极性均已验。**④ 变比已于 2026-11-06 按用户现场报参算定** + (§7.2;子板原理图仍不在仓库内,本板双表同测未做)。**仍待实测的是两点标定**(给端子域系数、置 `VALID`, + `eng` 随之升 1);标定完成前 `eng` 保持 0、输出单位仍是 ADC 引脚电压。 实测斜率与 ② 理论值偏差 >2 % 时**先查前端**(分压/变比/焊接),不得用系数凑错斜率 (`docs/任务规划/数据可信.md` §8 风险表)。 +### 7.2 ④ 段变比登记(2026-11-06 定死) + +> **来源**:用户现场报的子板参数(2026-11-06,Issue #41),按 `docs/任务规划/数据可信.md` §7 #2 的路 ①「按图(参数)直接算」 +> 算得;子板原理图仍不在仓库内,路 ②「万用表同时量端子与引脚」未做——数值上的理想化偏差与逐路差归两点标定 +> (见本节末「复核口径」)。 + +**电压族 UA/UB/UC/UN——子板 PT:2 mA/2 mA,输入侧 200 kΩ,输出侧 330 Ω**: + +- 变比 = U端子 ÷ UAINn = (2 mA × 200 kΩ) ÷ (2 mA × 330 Ω):电流比 1:1 电流相消,只剩两侧负担电阻之比 = + 200000 ÷ 330 = **606.060606… ≈ 606.06 : 1**(V/V,无量纲); +- 额定点(按参数推读):端子 **≈400 V**(2 mA × 200 kΩ)→ `AINn` 侧 **0.66 V**(2 mA × 330 Ω)。 + +**电流族 IA/IB/IC/IN——子板 CT:5 A/2.5 mA,输出侧负担电阻 68 Ω**: + +- ADC 读的是负担电阻两端电压,所以这个"变比"是**带单位的比**:I端子 ÷ UAINn = 5 A ÷ (2.5 mA × 68 Ω) = + 5 ÷ 0.17 = **29.4118 A/V**(= 匝比 2000 ÷ 68);与 V/V 无量纲量不可混写,进系数表须分注单位; +- 额定点:端子 **5 A** → `AINn` 侧 **0.17 V**。 + +**算术复核**:200000 ÷ 330 = 606.060606… ✓(用户给值 606.0606060606061);5 ÷ 0.17 = 29.41176470… ✓ +(用户给值 29.41176470588235,与 2000 ÷ 68 同源)。两数与报参口径一致,未发现算误。 + +**②×③×④ 端到端标称系数**(③ 已定 1:1)——只作两点标定的初值与量级核对用,**ROM 不动**(ROM 出厂表 +仍按 ② 引脚口径,§7.1 可评审结论 1): + +| 族 | 转换器 | 端子域系数(标称) | 额定点码数(RMS) | 占转换器跨度 | +|---|---|---|---|---| +| 电压 UA/UN | TPAFE | 152.59 µV/码 × 606.06 = **92.48 mV/码** | 0.66 V ≈ 4325 码 | 10 V 跨度的 6.6 % | +| 电压 UB/UC | STM32 | 805.66 µV/码 × 606.06 = **488.28 mV/码** | 0.66 V ≈ 819 码 | 3.3 V 跨度的 20 % | +| 电流 IA | TPAFE | 152.59 µV/码 × 29.4118 A/V = **4.488 mA/码** | 0.17 V ≈ 1114 码 | 10 V 跨度的 1.7 % | +| 电流 IB/IC/IN | STM32 | 805.66 µV/码 × 29.4118 A/V = **23.70 mA/码** | 0.17 V ≈ 211 码 | 3.3 V 跨度的 5.2 % | + +补一句:额定点正弦峰值 = RMS × √2(电压族 ≈0.93 V、电流族 ≈0.24 V),两片转换器的量程都装得下;STM32 +五路交流负半周削到 0 的问题仍是 §7「前端偏置」行的 V0.1 既有口径,不是本节新发现。变比口径只圈电气 8 路, +温度与备用路不进 ④ 换算。 + +**eng 判定(「端子/子板变比确认」卡(#41)的完成判据)**: + +- `eng = 1`(出端子二次值)两条件:④ 变比到手——**已满足**(本节,电压/电流两族);电气 8 路 + `ADC_CAL_F_VALID` 全置位——**未满足**(`App/app/ui_data_feed.c` 的 `feed_eng()` 门,「两点标定与精度验收」卡承担)。 +- 判定:**`eng` 保持 0**,输出单位仍是 ADC 引脚电压,M4 承诺边界不变。本节改变的是:两点标定从 + 「开不了工」变成「可开工」——端子侧参照已定死,本节标称系数即其起点。 + +**复核口径(别把本节数值当本板实测)**: + +- 参数是铭牌/板面值:不含理想变压器偏差(励磁电流、绕组阻抗、负担误差),不含负担电阻容差,也不含逐路差 + (电压 4 路共用 606.06、电流 4 路共用 29.4118,逐路真值以标定实测为准)。 +- 下游机器面核对跟着在:两点标定的逐路实测系数吸收 ④ 段实际偏差;`App/algo/adc_cal.c` 合法带哨兵 + (k ∉ ROM×[0.5, 2.0] → 回退 ROM)是「④ 数量级错了」的兜底。 +- **本节标称系数是给「两点标定与精度验收」卡的输入,且带着两道存储口径题**(本卡不替它定案): + k 按 µV/码 int32 Q16 存储、上限 32767 µV/码(`docs/任务规划/数据可信.md` §4.1 的"远够"论断做在引脚域 + 假设上)——电压族端子域标称已越上限(92.48 mV/码 ≈ 92479 µV/码,UB/UC 达 488.28 mV/码 ≈ 488278 µV/码), + 电流族两档(4488 / 23696 µV 等效)尚在带内;且合法带基准读 ROM 出厂表(现为引脚域系数),端子域 k + 会被 [0.5, 2.0] 哨兵顶回。标定写入端子域系数之前,存储单位(或每路标度因子)与出厂表基准须一并换血, + 否则正确的标定值也会被拒。 +- 端子级上额定电压仍是独立动作:变比已从"没到手"变"到手",但"先量端子对地通断"的前置与风险次序不变 + (`docs/任务规划/数据可信.md` §8),本卡不动高压。 + --- ## 8. 逐通道验证方法(上板自检口径) @@ -191,7 +249,7 @@ STM32(U17)为 LQFP144 脚号。 1. **TPAFE 侧**:对目标 `AIN` 注入 1 V DC → 观察对应 `buf[i]` 变化(UA→`buf[6]`、UN→`buf[5]`、IA→`buf[2]`),同时 U3.14 `BUSY` 有脉冲;**语义与下标不符即映射错**。✅ **2026-10-27 已执行**(原 2026-10-23 挂账的"无执行记录"已消除;`docs/硬件平台/V0.0_网表详细分析报告.md` §5.1 第 6 条的同一验证随之关闭)。判据按已知电压注入验证的**不需要示波器**口径执行:① "`BUSY` 有脉冲"改用固件帧计数——注入前后 `tpafe5160_frame_seq()` 仍严格 1000 Hz 递增即等价;② 幅值判据改用万用表读注入点实际电压 + 同时读 `adc_input_raw()` 码值,三点线性拟合(R² ≥ 0.999)。 2. **STM32 侧**:对目标引脚(如 PC4=UB)注入 0.5 V → 读 `ADC_CHANNEL_14` 应变化;若不变而相邻通道变化 → 通道宏写错(见 §5 警告)。✅ **2026-10-27 已执行**(原 2026-10-10 的"尚未执行"已消除;当时台架只验证了"9 通道全部转换成功 + 零超时 + 互异非饱和 + 跨次开机读数不同",台架无信号源);映射的**代码侧**一致性有两道保证:① `App/algo/adc_input.c` 的 `k_adc_map[]` 与 CubeMX 标签(`ADC17_UB`=PC4 等)逐条对齐;② 开机自检 `adc_input_init()` 校验每个 STM32 语义通道都落在 `k_stm32_rank_ch[]` 扫描序列内(挡"映射到不扫描的通道 → 恒读陈旧值")。 3. **备用通道**:RESERVED 路不接入任何语义,UI 与上报里不得出现;若实测有读数漂移,只记录不消费。 -4. **端子侧变比(2026-10-23 补,2026-10-27 收窄)**:上面 1/2 两条都只到 **ADC 引脚**。③ 段(`AINn` ↔ 转换器引脚)已由网表追线定死为 **1:1**(`ADCn` 节点无对地元件,拓扑图见 §7.1),**板内不再有未知比值**;剩下的未知量只有 ④ **子板/端子板变比**——它在仓库里没有任何文档给出(`docs/硬件平台/` 只有 `.tel` 网表与分析报告,无子板原理图)。故**不得**用"2:1 分压"换算出二次值;该变比由「端子/子板变比确认」实测确认。 +4. **端子侧变比(2026-10-23 补,2026-10-27 收窄)**:上面 1/2 两条都只到 **ADC 引脚**。③ 段(`AINn` ↔ 转换器引脚)已由网表追线定死为 **1:1**(`ADCn` 节点无对地元件,拓扑图见 §7.1),**板内不再有未知比值**;剩下的未知量只有 ④ **子板/端子板变比**,已于 2026-11-06 按用户现场报参算定收口(电压族 606.06 : 1、电流族 29.4118 A/V,算式与复核边界见 §7.2;子板原理图仍不在仓库内,数值确认归两点标定)。故**不得**用"2:1 分压"换算出二次值;端子口径一律按 §7.1 分段表与 §7.2 登记写。 ### 8.1 2026-10-27 实测记录(首次执行,六项判据全 PASS) From 36e309576f365cc035ee14427ca8f637a766c12e Mon Sep 17 00:00:00 2001 From: super_agent_bot Date: Sat, 7 Nov 2026 19:16:21 +0800 Subject: [PATCH 3/7] =?UTF-8?q?fix(wave):=20=E5=9B=9E=E6=94=BE=E9=A1=B5?= =?UTF-8?q?=E5=BC=80=E9=A1=B5=E4=BD=9C=E5=BA=9F=E9=92=89=E8=A1=A8=E9=87=8D?= =?UTF-8?q?=E6=89=AB=20+=20=E5=88=A4=E5=BA=9F=E4=B8=B2=E5=8F=A3=E9=80=90?= =?UTF-8?q?=E6=AC=A1=E7=95=99=E7=97=95=EF=BC=88#93=20F1/F2=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit F1 开机后 FTP 新 STOR 段不进回放页钉住段表(#68 轮现场发现): 注入表新增第七件 wave_enter 作废钩子(纯内存零 I/O),页面 pg_init(方案 A)与空态左右键再探(方案 B)各调一次;重扫仍懒 在首帧绘制,开页链零 I/O 不破;页内普通按键不作废,2026-11-02 钉表防抖纪律零改动。manual_req 同族同纪律:段表与段头缓存一起 作废,同号覆盖不拿旧尺子量新段。 F2 数据 CRC 判废串口静默(同轮发现):ui_task_wave_load_head() 五类 BAD 出口(头解析/长度等式/窗读/尾读/CRC 不符)收敛为一条 `ui wave head idx=%u reject=%u stored=0x%04X calc=0x%04X`; reject=5 带 stored/calc 值对,与 PC 侧 wave_read REJECT 行同名 同值互证;reject 1..4 两字段 0 占位。ERROR 级、不判重(判废是 低频人工动作,逐次留痕),裁定与判读表随第二笔提交入手册 §3。 验证:keil 0 err 0 warn(ER_IROM1 285940 B,+224 B,内存两份 台账 --write 同步随本笔入库);ui-golden 菜单 8 态 + 内容页 74 张全过、录波回放三态像素零刷(模拟器假桩 no-op 即行为不变); 宿主 ui_data 295 / ui_sink 17 / wave_ring 113 / wave_store 170 / wave_trig 110 全绿。板级五项验收进行中,设计说明 §10 / 手册 §3-§4 修订与台账销项随第二笔。 --- App/task/ui_task.c | 93 +++++++++++++++++++++++--- Drivers/BSP/UI/ui_data.c | 14 +++- Drivers/BSP/UI/ui_data.h | 21 ++++-- Drivers/BSP/UI/ui_page_wave_play.c | 18 ++++- docs/内存管理/RAM使用分析与优化方案.md | 4 +- docs/内存管理/RAM预算台账.md | 2 +- simulator/main.c | 8 ++- 7 files changed, 138 insertions(+), 22 deletions(-) diff --git a/App/task/ui_task.c b/App/task/ui_task.c index 6f4ece2a..425eaad9 100644 --- a/App/task/ui_task.c +++ b/App/task/ui_task.c @@ -419,9 +419,12 @@ static const ui_soe_reader_t s_soe_reader = { ui_task_soe_count, ui_task_soe_get * 解码 40 点 + 逐点 code_to_milli 峰值扫描 40 次(int64 乘除, * 微秒级)——不是全段 8×320 扫描,回放页一屏只碰一个通道一窗; * - 纯内存不碰卷的路径(评审据此看最坏的落点):manual_req 只投一个 - * 请求字节;已缓存段的上下切道、左右切段的段号表环游;空态与坏态 - * 直接返回。所以最坏只落在「第一次进回放页 / 第一次切到未缓存段」 - * 这类一次性动作上,同段内连续按键不重复付 ②。 + * 请求字节;wave_enter 只翻两个作废旗标(#93 F1,不取锁不开盘); + * 已缓存段的上下切道、左右切段的段号表环游;空态与坏态直接返回。 + * 所以最坏落在「进回放页(#93 F1 起每次开页都先作废、首帧付一次 ①, + * 总额仍封死在首帧那一帧)/ 第一次切到未缓存段」这类一次性动作上, + * 同段内连续按键不重复付 ②;空态再探盘的按键付 ①(方案 B 自带的 + * 语义——盘真 0 段时每次再探重扫正是该付的,成本有界在空态按键数)。 * 没有实测数,上面是与落盘道同一把尺的**推算**:落盘道的告警线是 * 50 ms / 21 次写,读路径无簇分配、不写 FAT 元数据,只会更便宜,故按 * 同量级不高于它估——一次渲染最坏一窗 ≈ 段表 + 一段全验 + 一窗,仍远 @@ -433,7 +436,8 @@ static const ui_soe_reader_t s_soe_reader = { ui_task_soe_count, ui_task_soe_get */ static uint8_t s_wave_idx[WAVE_ST_SEG_MAX]; /* 盘上现存段号升序表 */ static uint8_t s_wave_cnt; /* 表内条数 */ -static uint8_t s_wave_scanned; /* 表是否有效(manual_req 后作废) */ +static uint8_t s_wave_scanned; /* 表是否有效(manual_req / + * wave_enter 后作废,#93 F1) */ static uint8_t s_wave_cached_idx; /* 段头缓存属于哪一段 */ static uint8_t s_wave_cache_ok; /* 该段已验完整(头+数据 CRC) */ static wave_seg_meta_t s_wave_meta; /* 已验段的头(172B,唯一驻留) */ @@ -567,6 +571,18 @@ static uint8_t ui_task_wave_find(uint8_t a_idx, uint8_t *a_pos) { return 0u; } +/* + * 判废原因码(#93 F2:ui_task_wave_load_head 五类 BAD 出口收敛成一条 + * 串口留痕,reject= 字段取值即本组宏)。值域是判读表与 PC 侧互证的 + * 接口的一部分:只增不改义。1 收「拿不到一个解析得动的头」的一切 + * (头窗读败 = 无从解析,与 head_parse 拒收、段长字段自相矛盾同族)。 + */ +#define UI_WAVE_REJ_HEAD 1u /* 头窗读败 / head_parse 拒收 / seg_size 自相矛盾 */ +#define UI_WAVE_REJ_LEN 2u /* 长度等式不符(文件尺寸 != 头算出的整段尺寸) */ +#define UI_WAVE_REJ_WIN 3u /* 数据区流式读窗失败 */ +#define UI_WAVE_REJ_TAIL 4u /* 尾 2B(存储 CRC)读失败 */ +#define UI_WAVE_REJ_CRC 5u /* 数据 CRC 不符(留痕带 stored/calc,可与 PC 侧 wave_read REJECT 行对值互证) */ + /* * 函数功能:读段并做完整性判定(头 CRC 由 head_parse 判,数据 CRC 流式判), * 成功则把段头留在 s_wave_meta 供 seg_win 免重读 @@ -581,7 +597,10 @@ static uint8_t ui_task_wave_find(uint8_t a_idx, uint8_t *a_pos) { * 成本的代价换「CRC 不符必须拒收」永远现算,不做跨键存的位图 * 函数说明:缓存命中(同段且已验)直接返 OK——左右切段回到上一段、上下切 * 通道都靠它把重复的 5250B 全扫压成一次;文件读中途消失(被别的 - * 写者轮转掉)按 NONE 处理,页面下轮自然重扫 + * 写者轮转掉)按 NONE 处理,页面下轮自然重扫;五类判废(reject= + * 原因码见上方 UI_WAVE_REJ_* 组)在本函数收尾统一收敛成一条 + * DBG_ERROR——只有串口在手的远程轮也要有判废可查面(#93 F2, + * 电平与不判重两条裁定记录在设计说明 §10 的 2026-11-07 节) */ static int ui_task_wave_load_head(uint8_t a_idx) { static FIL f; /* static:FIL = 528B,理由同 soe_store_read */ @@ -591,6 +610,11 @@ static int ui_task_wave_load_head(uint8_t a_idx) { FRESULT ofr; /* 开档 FR 码:开档失败留痕用 */ UINT br = 0u; int rc; + uint8_t reject = 0u; /* 判废原因码 UI_WAVE_REJ_*(#93 F2 留痕; + * 0 = 没走到任何判废点。BAD 时必非 0) */ + uint16_t crc_stored = 0u; /* 仅 reject=UI_WAVE_REJ_CRC 时有值:与 PC 侧 + * wave_read REJECT 行互证的 stored/calc 对 */ + uint16_t crc_calc = 0u; if ((s_wave_cache_ok != 0u) && (s_wave_cached_idx == a_idx)) { return UI_WAVE_OK; @@ -641,6 +665,7 @@ static int ui_task_wave_load_head(uint8_t a_idx) { fr = f_read(&f, s_wave_buf, n, &br); if ((fr != FR_OK) || (br != n)) { rc = UI_WAVE_BAD; + reject = UI_WAVE_REJ_WIN; break; } crc = wave_store_crc_update(crc, s_wave_buf, n); @@ -649,14 +674,27 @@ static int ui_task_wave_load_head(uint8_t a_idx) { /* 第四步:读回存储值比对(低字节在前) */ if ((rc == UI_WAVE_BAD) && (f_lseek(&f, size - 2u) == FR_OK) && (f_read(&f, tail, 2u, &br) == FR_OK) && (br == 2u)) { - if (crc == (uint16_t)(tail[0] | ((uint16_t)tail[1] << 8))) { + uint16_t stored = (uint16_t)(tail[0] | ((uint16_t)tail[1] << 8)); + + if (crc == stored) { rc = UI_WAVE_OK; + } else if (reject == 0u) { + /* 窗读全程跑完还对不上才是真判废(stored/calc 对值得留 + * 给 wave_read 互证);窗已判废(REJ_WIN)时 crc 是半截 + * 值,既不覆原因也不留这对比值——免得互证对上一个假数 */ + reject = UI_WAVE_REJ_CRC; + crc_calc = crc; + crc_stored = stored; } + } else if (reject == 0u) { + reject = UI_WAVE_REJ_TAIL; /* 尾 2B 定位/读失败 */ } } else if (total == 0u) { rc = UI_WAVE_BAD; /* seg_size 返 0 = 头字段自相矛盾,判废 */ + reject = UI_WAVE_REJ_HEAD; } else { rc = UI_WAVE_BAD; /* 长度与头部字段不符,判废 */ + reject = UI_WAVE_REJ_LEN; } (void)f_close(&f); } @@ -671,6 +709,21 @@ static int ui_task_wave_load_head(uint8_t a_idx) { * 没有任何视觉面——必须留痕(10-31 半轮栽就栽在这类静默面上) */ DBG_ERROR("ui wave head idx=%u open fail fr=%d", (unsigned)a_idx, (int)ofr); + } else if (rc == UI_WAVE_BAD) { + /* #93 F2:五类判废出口(头/长度等式/窗/尾/CRC)收敛成这一条 + * 留痕——有画面在手判废有画面自证,只有串口在手的远程无人轮 + * 判废不留痕就是事后黑箱。BAD 不写 cache_ok = 每次进坏段都 + * 付一次完整校验,留痕与按键、画面一一对应,刻意**不判重** + * ——判废是低频人工动作,逐次留痕正是取证要的东西(电平 + * ERROR + 不判重两条裁定见设计说明 §10 的 2026-11-07 节)。 + * reject= 原因码表与「reject!=5 时两个 CRC 字段恒 0x0000」 + * 判读口径见手册 §3;reject=5 的 stored/calc 与 PC 侧 + * wave_read 的 REJECT 行同名同值、可对值互证。[ERR] 会命中 + * /serial-boot-test 的 Forbidden 清单 → 坏段轮里按「预期内」 + * 点名放行(同手册),正常盘上本行一条都不会出现 */ + DBG_ERROR("ui wave head idx=%u reject=%u stored=0x%04X calc=0x%04X", + (unsigned)a_idx, (unsigned)reject, + (unsigned)crc_stored, (unsigned)crc_calc); } } return rc; @@ -698,6 +751,29 @@ static int ui_task_wave_manual_req(void) { return r; } +/* + * 函数功能:回放页开页 / 空态再探盘的作废钩子——作废段表与段头缓存 + * (#93 F1 方案 A/B;与 manual_req 受理支同一条作废纪律,字段 + * 契约见 ui_data.h wave_enter 注) + * 入口参数:无 + * 返回值:无 + * 限定条件:uiTask(页面框架 init_cb / key_cb 链都跑在本任务上;作废的 + * 是本任务私有缓存,无锁无竞态);纯内存零 I/O,开页链不破 + * 函数说明:只翻旗标不重扫——重扫仍懒在 ui_task_wave_table() 首次取数。 + * manual_req 的作废盖「本机自己新落段」,本件盖「别的写者 + * (FTP STOR)在上次开页之后投放的新段」:11-02 把钉表防抖立 + * 成纪律时把这两种情形一起钉死了,开页因此看不见新段(#93 F1 + * 发现面)。页内普通按键**不调本件** = 防抖纪律原样保留;空 + * 态左右键调(方案 B)只在盘真 0 段时逐次重探——「新段可能已 + * 落」这条注释里写了一直没机制兑现的语义从此有兑现。残留纪律 + * (手册 §4 / 设计说明 §10 留痕):**页开着时**投放的段要再开 + * 一次页才可见,页开着追新段本波不做 + */ +static void ui_task_wave_enter(void) { + s_wave_scanned = 0u; + s_wave_cache_ok = 0u; +} + /* * 函数功能:取盘上「数值最大段号」(回放页开屏落点) * 入口参数:a_idx - 出参段号 @@ -903,9 +979,10 @@ static int ui_task_wave_seg_win(uint8_t a_idx, uint8_t a_ch, return rc; } -/* 录波通道函数表(六件齐全;ui_data_wave_bind 拒绝残表,缺件就是装配错) */ +/* 录波通道函数表(七件齐全;ui_data_wave_bind 拒绝残表,缺件就是装配错) */ static const ui_data_wave_ops_t s_wave_ops = { ui_task_wave_manual_req, + ui_task_wave_enter, ui_task_wave_seg_first, ui_task_wave_seg_prev, ui_task_wave_seg_next, @@ -1014,7 +1091,7 @@ void ui_task_func(void *argument) { DBG_ERROR("UI maint bind: FAIL"); } /* 录波通道注入(故障录波道 UI 侧,2026-10-29):手动录波触发页与回放页 - * 的唯一数据入口,同样先于 ui_menu_init。未注入窗口里六件按「无录波段」 + * 的唯一数据入口,同样先于 ui_menu_init。未注入窗口里七件按「无录波段」 * 空态渲染(不画线、不崩);残表 = 装配错,启动日志必须可见 */ if (ui_data_wave_bind(&s_wave_ops) != 0) { DBG_ERROR("UI wave bind: FAIL"); diff --git a/Drivers/BSP/UI/ui_data.c b/Drivers/BSP/UI/ui_data.c index e3572c22..7b1cb37f 100644 --- a/Drivers/BSP/UI/ui_data.c +++ b/Drivers/BSP/UI/ui_data.c @@ -1090,14 +1090,14 @@ uint8_t ui_data_comm_pending(void) { /* ── 通道六:故障录波(wave)注入与包装 ───────────────────────────────────── * 包装层零判据:未注入统一按「无录波段」态返(页面显式空态文案,绝不 - * 画平线——设计 §8.1 空态行);六件的参数校验只到指针级,语义判定 + * 画平线——设计 §8.1 空态行);七件的参数校验只到指针级,语义判定 * (卷忙/段损坏)全在执行侧,与通道四/五同一条分层纪律。 */ static const ui_data_wave_ops_t *s_wave = NULL; /* * 函数功能:注入录波执行侧函数表(启动期一次) - * 入口参数:ops - 六件齐;NULL = 撤销注入 + * 入口参数:ops - 七件齐;NULL = 撤销注入 * 返回值:0 - 已注入/已撤销;-1 - 残表(存量不动,理由逐字同 comm bind) int * 限定条件:uiTask 启动期,先于 ui_menu_init() */ @@ -1106,7 +1106,8 @@ int ui_data_wave_bind(const ui_data_wave_ops_t *a_ops) { s_wave = NULL; return 0; } - if ((a_ops->manual_req == NULL) || (a_ops->seg_first == NULL) || + if ((a_ops->manual_req == NULL) || (a_ops->wave_enter == NULL) || + (a_ops->seg_first == NULL) || (a_ops->seg_prev == NULL) || (a_ops->seg_next == NULL) || (a_ops->seg_head == NULL) || (a_ops->seg_win == NULL)) { return -1; @@ -1123,6 +1124,13 @@ int ui_data_wave_manual_req(void) { return s_wave->manual_req(); } +/* 函数功能:开页 / 空态再探盘的作废钩子(未注入 = 什么都不做,零副作用) void */ +void ui_data_wave_enter(void) { + if (s_wave != NULL) { + s_wave->wave_enter(); + } +} + /* 函数功能:录波通道三态查询的统一未注入兜底(返 NONE 显空态,不崩) int */ static int wp_wave_none(void) { return UI_WAVE_NONE; diff --git a/Drivers/BSP/UI/ui_data.h b/Drivers/BSP/UI/ui_data.h index cb02c5f1..66942b6b 100644 --- a/Drivers/BSP/UI/ui_data.h +++ b/Drivers/BSP/UI/ui_data.h @@ -947,14 +947,20 @@ uint8_t ui_data_comm_pending(void); #define UI_WAVE_BAD 2 /* - * 录波执行侧注入表(六件齐全;ui_data_wave_bind 拒绝残表) - * 返回值约定:除 manual_req 外,各件返回 UI_WAVE_OK / NONE / BAD 三态; - * seg_win 的出参仅在返 UI_WAVE_OK 时可读(通道五同一条出参契约)。 + * 录波执行侧注入表(七件齐全;ui_data_wave_bind 拒绝残表) + * 返回值约定:除 manual_req 与 wave_enter(两件是动作位,不产三态)外, + * 各件返回 UI_WAVE_OK / NONE / BAD 三态;seg_win 的出参仅在返 + * UI_WAVE_OK 时可读(通道五同一条出参契约)。 */ typedef struct { /* 投一次手动录波请求。返回值:0 - 已受理;非零 - 拒收(含未落段通道 * 不可用),页面据此走确认链的 ERR 支 */ int (*manual_req)(void); + /* 回放页开页 / 空态再探盘时作废段表与段头缓存(#93 F1 方案 A/B 的 + * 作废钩子;纯内存零 I/O——重扫仍懒在首次取数,开页链零 I/O 不破; + * 页内按键不调它(空态再探除外),11-02 钉表防抖纪律原样保留)。 + * 返回值:无 */ + void (*wave_enter)(void); /* 取盘上数值最大的段号(回放页开屏落点;左右键从此起环游)。 * 回绕后本序不保证时间最新,页顶段号即自证;时间序要靠段头 * frame_seq/t0,代价是 100 次开文件,本波不做(lead 裁定 2026-10-29) */ @@ -980,7 +986,7 @@ typedef struct { /* * 函数功能:注入录波执行侧函数表(启动期一次;形状对齐 ui_data_comm_bind) - * 入口参数:ops - 函数表(六件都不得为 NULL);NULL = 撤销注入(宿主测试用) + * 入口参数:ops - 函数表(七件都不得为 NULL);NULL = 撤销注入(宿主测试用) * 返回值:0 - 已注入/已撤销;-1 - 残表(存量不动) int * 限定条件:uiTask 启动期、先于 ui_menu_init() */ @@ -992,6 +998,13 @@ int ui_data_wave_bind(const ui_data_wave_ops_t *a_ops); */ int ui_data_wave_manual_req(void); +/* + * 函数功能:回放页开页 / 空态再探盘时作废段表与段头缓存(#93 F1 方案 + * A/B 的作废钩子;纯内存零 I/O,重扫懒在首帧取数) + * 返回值:无(未注入 = 什么都不做,页面取数行为不变) void + */ +void ui_data_wave_enter(void); + /* * 函数功能:取数值最大段号(排序口径见 ui_data.c 同名胶水注释:回绕后本序 * 不保证时间最新,页顶段号即自证;真时间序要逐段读 frame_seq/t0, diff --git a/Drivers/BSP/UI/ui_page_wave_play.c b/Drivers/BSP/UI/ui_page_wave_play.c index f72aa4a0..a25322ec 100644 --- a/Drivers/BSP/UI/ui_page_wave_play.c +++ b/Drivers/BSP/UI/ui_page_wave_play.c @@ -12,7 +12,10 @@ * 空态显式文案「无录波段」/「该段不可读」——画成一条直线等于 * 伪造证据(§8.1 空态行,此判据优先于「页面上总得画点东西」)。 * 键位:上下切通道、左右切段(key_intercept=1 才能把 LEFT 从 - * 「关页」手里要来);ESC 关页。 + * 「关页」手里要来);ESC 关页。页的**缓存作废面**:本文件不持 + * 任何缓存,开页(pg_init)与空态再探盘(pg_key IDLE 支)各调 + * 一次注入表的 wave_enter 作废钩子(#93 F1 方案 A/B,纯内存 + * 零 I/O)——开页后盘上新落盘 / 新投放的段即随重扫进表。 * 取数纪律:本文件零 App include——段号/段头/窗口码值/峰值 mV 全部经 * ui_data.h 录波注入表进来(波形算式与定点换算在执行侧,页面 * 连 b_codes 都不碰,收到的码值已并偏移);首帧绘制才懒取数 @@ -33,6 +36,10 @@ * 本页 key_cb 返回 true(接管键),框架不再替本页失效重绘,状态变了 * 屏上却纹丝不动——该病在枚举修复前整页恒空、从未有键可切,故随 * 2026-11-02 回放页修复首次上板才暴露(真机实证见 PR #67)。 + * v1.2 2026-11-07 DTU 项目组 #93 F1:开页(pg_init)与空态左右键 + * 再探(pg_key IDLE 支)各调注入表新增的 wave_enter 作废钩子—— + * 开机后新落盘/新投放的段重开页即见、空态再探不再被钉表短路; + * 本页像素形态与键位语义不变(黄金参考不刷),重扫仍懒在首帧。 */ /* 头文件包含区 */ @@ -320,14 +327,18 @@ static const char *wp_eng_word(uint8_t a_eng) { } /* - * 函数功能:开页复位(框架 init_cb)——通道回到 UA、数据回到未取态 + * 函数功能:开页复位(框架 init_cb)——通道回到 UA、数据回到未取态, + * 并调执行侧作废钩子丢掉钉住的段表/段头缓存(#93 F1 方案 A: + * 开机后新落盘的段开合一次页即进表;作废是纯内存动作,首帧 + * 懒取数链原样,开页链零 I/O 不破) * 入口参数:无 * 返回值:无 - * 限定条件:框架开页链内;只清状态零 I/O(懒取数在首帧绘制) + * 限定条件:框架开页链内;只清状态与翻作废旗标、零 I/O(懒取数在首帧绘制) */ static void pg_init(void) { s_state = WP_ST_IDLE; s_ch = 0u; + ui_data_wave_enter(); } /* @@ -406,6 +417,7 @@ static bool pg_key(lv_key_t a_key) { case LV_KEY_LEFT: case LV_KEY_RIGHT: if (s_state == WP_ST_IDLE) { + ui_data_wave_enter(); /* #93 F1 方案 B:先作废钉表,再探才探得出新段 */ wp_ensure(); /* 空态下按左右 = 再探一次盘(新段可能已落) */ ui_content_page_invalidate(); return true; diff --git a/docs/内存管理/RAM使用分析与优化方案.md b/docs/内存管理/RAM使用分析与优化方案.md index c8cda4c8..417f5cbd 100644 --- a/docs/内存管理/RAM使用分析与优化方案.md +++ b/docs/内存管理/RAM使用分析与优化方案.md @@ -47,10 +47,10 @@ dhara 失败类 +84;RO 另 +208,全是该失败类名表)→ `ER_IROM1` | 区域 | 用量 | 容量 | 占比 | |---|---|---|---| -| ER_IROM1 | 285,716 B (279.02 KB) | 1,048,576 B (1024 KB) | 27.2% | +| ER_IROM1 | 285,940 B (279.24 KB) | 1,048,576 B (1024 KB) | 27.3% | | RW_IRAM1 | 94,752 B (92.53 KB) | 131,072 B (128 KB) | 72.3% | | RW_CCM | 57,376 B (56.03 KB) | 65,280 B (64 KB) | 87.9% | -| **Flash (ROM 合计)** | **287,788 B (281.0 KB)** | 1,048,576 B (1024 KB) | **27.4%** | +| **Flash (ROM 合计)** | **288,012 B (281.3 KB)** | 1,048,576 B (1024 KB) | **27.5%** | 各区的容量与常量来源: diff --git a/docs/内存管理/RAM预算台账.md b/docs/内存管理/RAM预算台账.md index 3a8299d7..9843a1b8 100644 --- a/docs/内存管理/RAM预算台账.md +++ b/docs/内存管理/RAM预算台账.md @@ -15,7 +15,7 @@ | 区域 | 用量 | 容量 | 占比 | 门禁(≤92%) | |---|---|---|---|---| -| ER_IROM1 (Flash) | 285,716 B | 1,048,576 B | 27.2% | 参考 | +| ER_IROM1 (Flash) | 285,940 B | 1,048,576 B | 27.3% | 参考 | | RW_CCM | 57,376 B | 65,280 B | 87.9% | PASS | | UNINIT_CCM | 48 B | 256 B | 18.8% | 参考 | | RW_IRAM1 | 94,752 B | 131,072 B | 72.3% | PASS | diff --git a/simulator/main.c b/simulator/main.c index 5eb95baf..7de794aa 100644 --- a/simulator/main.c +++ b/simulator/main.c @@ -853,9 +853,15 @@ static int sim_wave_seg_win(uint8_t a_idx, uint8_t a_ch, int16_t *a_codes, return UI_WAVE_OK; } -/* 录波通道假表(与真机 s_wave_ops 同形状六件) */ +/* 函数功能:开页 / 空态再探盘作废钩子假桩(#93 F1:模拟器假表没有段表 / + * 段头缓存可作废,空做 = 行为不变;补这件与真机 s_wave_ops 同形状七件) void */ +static void sim_wave_enter(void) { +} + +/* 录波通道假表(与真机 s_wave_ops 同形状七件) */ static const ui_data_wave_ops_t s_wave_ops = { sim_wave_manual_req, + sim_wave_enter, sim_wave_seg_first, sim_wave_seg_prev, sim_wave_seg_next, From 1df02c46587d274eeef72ff94988f8f3ee9abc4b Mon Sep 17 00:00:00 2001 From: super_agent_bot Date: Sat, 7 Nov 2026 21:55:06 +0800 Subject: [PATCH 4/7] =?UTF-8?q?fix(wave):=20bench=20=E5=AE=9A=E6=97=B6?= =?UTF-8?q?=E8=87=AA=E6=8A=93=E5=88=B0=E6=9C=9F=E5=88=A4=E5=AE=9A=E6=97=A0?= =?UTF-8?q?=E7=AC=A6=E5=8F=B7=E5=9B=9E=E7=BB=95=E6=81=92=E7=9C=9F=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=EF=BC=8C=E7=AC=AC=E5=9B=9B=E5=B9=95=E6=9D=BF=E7=BA=A7?= =?UTF-8?q?=E9=97=AD=E7=8E=AF=E5=85=A5=E6=A1=A3=EF=BC=88#84=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit F0(唯一代码改动,#if DTU_BENCH 闸内,产品影像零漂移): adc_task.c 原无符号判据 (uint32_t)(now-next)>=PERIOD 在 next=now+PERIOD 挂出后立刻成立(now 522 bytes .../测试数据/wave_bench_20261107/phase1.json | 123 +++ .../serial_excerpt_product_final_2133plus.txt | 40 + .../serial_excerpt_sweep5_f1f3.txt | 30 + .../serial_excerpt_sweep7_window.txt | 469 +++++++++++ .../wave_bench_20261107/sweep7_211352.json | 259 ++++++ .../sweep7_probes_210925.jsonl | 17 + .../sweep7_probes_211352.jsonl | 11 + .../wave_bench_20261107/sweep_1794051196.json | 770 ++++++++++++++++++ .../wave_shot_20261106/manifest_sha256.json | 2 +- .../wave_shot_20261106/serial_excerpt.txt | 84 +- scripts/size_attestation.json | 8 +- 20 files changed, 2279 insertions(+), 55 deletions(-) create mode 100644 docs/测试说明/测试数据/wave_bench_20261107/README.md create mode 100644 docs/测试说明/测试数据/wave_bench_20261107/boot_log_fail1_20261107_212910.txt create mode 100644 docs/测试说明/测试数据/wave_bench_20261107/boot_log_fail2_20261107_213307.txt create mode 100644 docs/测试说明/测试数据/wave_bench_20261107/build_log_tails.txt create mode 100644 docs/测试说明/测试数据/wave_bench_20261107/final_wave_listing.txt create mode 100644 docs/测试说明/测试数据/wave_bench_20261107/phase1.json create mode 100644 docs/测试说明/测试数据/wave_bench_20261107/serial_excerpt_product_final_2133plus.txt create mode 100644 docs/测试说明/测试数据/wave_bench_20261107/serial_excerpt_sweep5_f1f3.txt create mode 100644 docs/测试说明/测试数据/wave_bench_20261107/serial_excerpt_sweep7_window.txt create mode 100644 docs/测试说明/测试数据/wave_bench_20261107/sweep7_211352.json create mode 100644 docs/测试说明/测试数据/wave_bench_20261107/sweep7_probes_210925.jsonl create mode 100644 docs/测试说明/测试数据/wave_bench_20261107/sweep7_probes_211352.jsonl create mode 100644 docs/测试说明/测试数据/wave_bench_20261107/sweep_1794051196.json diff --git a/App/task/adc_task.c b/App/task/adc_task.c index 49dd80a8..1f50e90d 100644 --- a/App/task/adc_task.c +++ b/App/task/adc_task.c @@ -585,11 +585,15 @@ void adc_task_func(void *arg) { s_wave_bench_off = 1u; DBG_INFO("wave bench autocap STOP after %u s", (unsigned int)(WAVE_BENCH_MAX_MS / 1000u)); - } else if ((uint32_t)(now - s_wave_bench_next) >= WAVE_BENCH_PERIOD_MS) { + } else if ((int32_t)(now - s_wave_bench_next) >= 0) { + /* 到期判定必须用有符号差值:无符号 (now-next)>=PERIOD 在 + * next=now+PERIOD 挂出后立刻成立(now (idx=… written=…)`,统一打印点 `App/task/default_task.c`:816——`crc selftest FAIL` / `mkdir /wave` / `opendir /wave` / `readdir /wave` / `seg_path` / `pack_start` / `f_open` / `pack_next` / `f_write short` / `pack stall` / `f_close` / `len mismatch` / **`ring abandoned`**(最后一条即 §5.2 第四条陷阱的处置留痕,代码与主机单测面已有、板级未测,观察项见 §10);另有一条非失败的慢段留痕 `[WAVE][WARN] seg held <毫秒> ms (idx=…)`(`App/task/default_task.c`:831)——搬得慢不是错,真失败才走 `seg drop`。 +- **落盘道失败留痕名清单(2026-10-30 并入原卡片登记簿;台架判读按名索引,不新增第二种形态)**:单板上一律一行 `[WAVE] seg drop: <原因> (idx=… written=…)`,统一打印点 `App/task/default_task.c`:843——`crc selftest FAIL` / `mkdir /wave` / `opendir /wave` / `readdir /wave` / `seg_path` / `pack_start` / `f_open` / `pack_next` / `f_write short` / `pack stall` / `f_close` / `len mismatch` / **`ring abandoned`**(最后一条即 §5.2 第四条陷阱的处置留痕,2026-11-07 板级已闭环,留痕原文与三判据实证见 §10「bench 定时自抓与占卷弃段观察闭环记录」);另有一条非失败的慢段留痕 `[WAVE][WARN] seg held <毫秒> ms (idx=…)`(`App/task/default_task.c`:858)——搬得慢不是错,真失败才走 `seg drop`。 - 只在原先静默的黑洞处补锚点,别重复已有步骤——每条 DBG 日志约 90 B Flash 加 216 B 栈(`AGENTS.md` 的日志与工具链节); - 该行已同步进 `docs/测试说明/专项验证/ADC前端注入验证流程.md` 的读数地点表(2026-10-29;同一张表还登记了录波段文件与 PC 侧读段工具)。 @@ -322,7 +322,7 @@ flowchart TD | 主机侧纯逻辑单测(新增,进 `test/host/`) | ① 环:预触发与后触发点数、冻结与解冻、冷却丢弃计数;② 段格式编解码往返,含 CRC 不符、零长度、字节数不符三条失败路径;③ 触发状态机三条来路(手动 / 保护 / bench)。**环与格式必须是纯逻辑**(不碰寄存器、不碰 RTOS)才能这样测——这是 `App/algo/` 既有分层纪律 | | PC 侧工具的定性 | `test/host/wave_read.py` 是 **bench 工具**(`test/host/` 下的 loose .py,先例 `test/host/ftp_capture.py`),**不是**主机单测套件 → 不建 `run_unit_test.py`、不加 pre-commit 专属钩子(专属钩子默认不补,按 Lead 裁定 2026-10-27);它自带 `--selftest` 就是它的自带回归,跑法与四个子命令见 `docs/测试说明/专项验证/ADC前端注入验证流程.md` §4 | | 跨工具链分叉(实证,写进来是为了下一个模块别重踩) | 两份录波 .c 只 include 自身头(链上只有 stdint.h)时,ARMCC 报 22 条 identifier "NULL" is undefined;而主机 MSVC / gcc 会传递性把 stddef.h 拉进来,**主机单测完全照不出这个分叉** → 新增模块需要用 NULL 就自己 include stddef.h(与 `App/algo/sample_ring.c` 同口径,别塞公共头) | -| 板级 | 信号发生器注 1 V / 50 Hz → 手动一段 → FTP 拉回 → PC 脚本量出周波数、幅值、极性与注入一致;再把 PC 重算的基波有效值与板上 `meas:` 对表。**判据只量四样:周波数、幅值、极性、钉轨路数——不比绝对相位**(理由见 §4.2「段内点序」:触发瞬间在工频周期内任意落点,段字节里没有绝对时间参考;真要比相位必须让发生器给同步触发,本波不做)。**钉轨对表的合格判据 = 头位图 ⊇ 实测钉轨路数,且差异必须能由注入条件解释**——因为 `clip_mask` 是按来源派生的链路可信性标记(§6.2 偏移 24 行),不是本段实测值:只加直流或小幅注入时那五路本就不该钉轨,硬取等式会假红。**同段另起一条强观察项**:V0.1 下这五路若在做**交流注入**时反而没钉轨,先怀疑接线或该路根本没被驱动——这是告警面,不是失败面(等式仍作为默认尺子留在 PC 侧 `shape --strict` 里,因为它有这个信号价值;要放行差异用那条判据的解释权,不靠改尺子)。**§5.2 第四条的板级观察项(代码与单测面已有、板级未测)**:bench 连续自抓期间人为把卷占住 2 s 以上(例如同一段跑 FTP 大文件读),看串口 `wave:` 行的 `err` 是否加一、是否只出现**一条** `[ERR] … seg drop: ring abandoned` 留痕(不是每拍刷屏)、且段号不推进(下一段仍写同号文件) | +| 板级 | 信号发生器注 1 V / 50 Hz → 手动一段 → FTP 拉回 → PC 脚本量出周波数、幅值、极性与注入一致;再把 PC 重算的基波有效值与板上 `meas:` 对表。**判据只量四样:周波数、幅值、极性、钉轨路数——不比绝对相位**(理由见 §4.2「段内点序」:触发瞬间在工频周期内任意落点,段字节里没有绝对时间参考;真要比相位必须让发生器给同步触发,本波不做)。**钉轨对表的合格判据 = 头位图 ⊇ 实测钉轨路数,且差异必须能由注入条件解释**——因为 `clip_mask` 是按来源派生的链路可信性标记(§6.2 偏移 24 行),不是本段实测值:只加直流或小幅注入时那五路本就不该钉轨,硬取等式会假红。**同段另起一条强观察项**:V0.1 下这五路若在做**交流注入**时反而没钉轨,先怀疑接线或该路根本没被驱动——这是告警面,不是失败面(等式仍作为默认尺子留在 PC 侧 `shape --strict` 里,因为它有这个信号价值;要放行差异用那条判据的解释权,不靠改尺子)。**§5.2 第四条的板级观察项(代码与单测面已有、板级未测)**:bench 连续自抓期间人为把卷占住 2 s 以上(例如同一段跑 FTP 大文件读),看串口 `wave:` 行的 `err` 是否加一、是否只出现**一条** `[ERR] … seg drop: ring abandoned` 留痕(不是每拍刷屏)、且段号不推进(下一段仍写同号文件)——**2026-11-07 已闭环**:bench 定时自抓与临界占卷三判据台架远程轮逐条对上,长占卷静默自弃(72.6 s 连续占卷 `err` 1→15 零留痕)与临界命中唯一留痕(`err` 恰 +1、同号重写)两种形态都有实证,见下「bench 定时自抓与占卷弃段观察闭环记录」小节 | | 板级·触发来路(2026-10-30 并入原卡「手动触发与保护启动接线」板级段) | 真机面板按一次「手动录波」出一段;造一次过流,段号与该时刻 `/log/start.log` 事件对齐;冷却期内二次触发只加 `ovf` 不重录(**同时看 `armed` 与那一刻 start.log 的时刻,不要只盯 `ovf` 数字**——容差见 §9);冻结窗口内 104 上送与保护判据不受影响(这条是「丢录波样本不丢采集」的验收) | | 板级·回放页(2026-10-30 并入原卡「现场单通道回放页」板级段) | 真机上放一段真波(不是模拟器合成节拍);远端看图能拍到该页做留证(只作留证,不是波形通路,§8.4);**空态与 CRC 失败态绝不允许画成一条直线**——用坏段在真机复现一次。**2026-10-31 远程半轮进展见下「板级远程半轮记录」小节**:PC 侧坏段拒收已过;回放页坏段/空态画面的测试面**已于 2026-11-02 枚举缺陷修复后打开**(真机已验证真段显示 + 切段切道,见下「回放页枚举恒空缺陷修复记录」小节),坏段/空态两画面本身**已于 2026-11-06 台架远程轮拍毕闭环——见下「回放页坏段/空态画面闭环记录」小节,本行判据全部板级实证完毕** | | UI | `ui-verify` 五步;回放页入 `ui-golden` 黄金参考(**参考图一旦入库只能改代码对齐,禁止刷参考掩盖**);新叶走 `gen_menu.py` 重生成 + 字库链 | @@ -382,7 +382,8 @@ try 锁纪律)照常读出并显示 ⇒ try 锁读径正常;`manual_req` 作 **本半轮没跑的(人到场轮清单)**:注量对表(周波数 / 幅值 / 极性 / 钉轨路数)、`meas:` 浮点数值对表、两个待台架核数值(封存超时窗 §4.2 兜底行与冷却时长 `App/algo/wave_ring.h`)、P 触发与 start.log 对齐(还得先解标定闭锁)、 -bench T 源与卷占用 2 s 的 `ring abandoned` 观察(需 bench 构建)、~~回放页坏段画面与空态画面 +~~bench T 源与卷占用 2 s 的 `ring abandoned` 观察(需 bench 构建)~~ **(2026-11-07 台架远程轮已闭环,见下「bench +定时自抓与占卷弃段观察闭环记录」小节)**、~~回放页坏段画面与空态画面 (等枚举缺陷修复后才有测试面)~~ **(2026-11-02 枚举缺陷修复后测试面已开,见下小节;2026-11-06 台架远程轮两画面已拍毕闭环,见「回放页坏段/空态画面闭环记录」小节)**、 `task_prof` 读路径耗时峰值。**执行动作侧**(到场的人做什么、 @@ -477,6 +478,69 @@ stored 0xF991 calc 0xB111 …nothing drawn`(rc=1),画面与解码器两份 跑完(幅值 / 相位 / 削顶,104 浮点遥测按用户裁定不作对照证据),尾步两画面 2026-11-06 拍毕; 手册第二幕状态与 `docs/任务规划/README.md` §2.0「独立」行已同步销项。 +### bench 定时自抓与占卷弃段观察闭环记录(2026-11-07,台架远程轮,#84 第四幕) + +bench 锁全程持有(任务 `exec-issue-84`,`_wt` 规范锁区手工获取、收工 `--bench-pass` +释放);烧写按 2026-11-02 常授权执行(手册 §6 步骤 1 的「等你回“烧”」按常授权跳过)。 +临时开关(`App/task/adc_task.c` 的本地宏 `WAVE_BENCH_AUTOCAP` 翻 1、`uvprojx` 加 +`DTU_BENCH` 定义)全程不入仓、收工还原。证据目录 +`docs/测试说明/测试数据/wave_bench_20261107/`(串口摘录、各轮 JSON、目录清单、构建日志)。 + +**执行链(时间序)**: + +1. bench 构建首烧即暴露 **F0 缺陷**(见下现场发现)。修复重烧后 T 源定时自抓对上判据: + 心跳 `wave: seg=NN armed=0 src=T pts=320` 每 10 s 恰 +5 段(2 s 节奏)、err 平段稳定, + 启动即打 `[WARN] wave bench autocap ON: 1 seg / 2000 ms, auto-stop 300 s`。 +2. 占卷造法:FTP 根 `FILLER.BIN`(2 MB,RETR ≈7.2 s)与 `FILL3.BIN`(600 KB,≈2.2–2.5 s)。 + lftpd 从 open 到 close 全程持卷锁(`Drivers/BSP/NET/lftpd/lftpd_io.c`),主机侧 RETR 完成 + 时刻与串口 `[FTP] DOWNLOAD … OK` 行 ±5 ms 对齐,可互证时间戳。 +3. **长占卷 → 静默自弃分支**:连续 9 轮 RETR 共占卷 72.6 s(`phase1.json`),期间 `err` 1→15、 + `ovf` 1→18、seg 13→27(只有轮间零点几秒空隙抢到盘)——被占覆盖的落盘尝试各在 SEALED 滞留 + 2000 tick 后自弃并各给 `err` +1,**串口零留痕(全窗 0 条 `[ERR] [WAVE]`)**:「不是每拍刷屏」 + 判据以最严形态成立。 +4. **临界占卷 → 唯一留痕**:δ 阶梯扫占卷窗内放锁落点(锚 = ON 行 +2.01 s、周期 2.0005 s、 + 步距 25 ms),第 11 发命中:`[ERR] [WAVE] seg drop: ring abandoned (idx=36 written=5250)`, + 同毫秒 `[WAVE][WARN] seg held 124 ms (idx=36)`;全窗串口仅此一条 `[ERR] [WAVE]` 行 + (打印由一次性闩锁 `s_wfail_latch` 把关,设计即如此)。心跳对 `err=4 ovf=10` → 10 s 后 + `err=5 ovf=11`:**命中本身给 err 恰 +1**(同窗此前 4 发 LATE 类静默自弃与 ovf 各笔均有 + 逐发归因表)。弃段后段号不推进:弃段路径先 unlink 该槽文件,P1(+3.4 s)即见同号 + `WAVE36.BIN` 重建 5250 B 全新单段(对照在档 WAVE00.BIN 已累计 126000 B),P3(+15.4 s) + 同号仍在,sha256 `b12e130e80fb4d8b…2a0a11ca`。三判据(err+1 / 只有一条留痕 / 同号不推进) + 全部板级实证。 +5. **占卷期间活性**:104 端口 2404 TCP 探测在占卷中段收到 `68 04 0b 00 00 00`(STARTDT 确认)、 + 7003 UI 链路 status 正常应答(主菜单 MENU)、串口 `meas:`/`wave:` 心跳不断—— + 「丢录波不丢采集」在占卷场景再添实证(冻结窗口场景见上「板级远程半轮记录」)。 +6. 收工:卷上占卷文件三处全删(ROOT 只剩 V5_UP/CONFIG.INI/PROT_SET/LOG//WAVE/)、`/WAVE` + 只剩真实轮转段 → 重烧产品构建全量重建 → /serial-boot-test 全锚点判定(结论与逐锚点表见 + 证据目录 README)→ bench 锁释放。 + +**现场发现**: + +- **F0(bench 构建定时器判据缺陷,已修复并硬件实证)**:`App/task/adc_task.c`:588 原无符号判据 + `(uint32_t)(now - s_wave_bench_next) >= WAVE_BENCH_PERIOD_MS` 在 `next = now + PERIOD` 挂出后 + 立刻成立(now= 0`(半程内回绕安全)后节奏恰 +5/10 s。产品影像零漂移: + 该段本就整块在 `#if defined(DTU_BENCH)` 闸内(旁证:bench 产物 Code 255284 vs 产品 254820, + 差 464 B,bench 代码确被裁掉)。 +- **F1(单发、未复现、只记不断)**:20:28:57 占卷扫荡窗口一次 `reset cause: software + (NVIC_SystemReset)`,无前置 `[ERR]`/断言/fault 打印(列明的四条软件复位路径都先打印再复位—— + 打印丢失或存在打印外调用点,未定位);此后 6+ 窗口、约 50 min 同等负载未复现。留作观察项, + 再现第二例再升级排查。 +- **F2(占卷方法学)**:lftpd 放卷锁比串口 `[FTP] DOWNLOAD … OK` 行早约 0.11–0.14 s(由放锁后 + writer 首次抢到盘的时点反推)。临界命中要按「DOWNLOAD 行时刻 − 0.13 s + δ」摆放锁落点—— + 此常数是此前多轮全空手、改后 11 发即中的钥匙。 +- **F3(同一竞态的另一留痕名,非新增缺陷)**:20:30:31 长占卷窗内一条 `[ERR] [WAVE] seg drop: + pack_next (idx=28 written=1920)`:与 §5.2 第四条同族——写到一半环已换段,该分支先按旧槽号 + 报 `pack_next` 再走统一弃段。属上表既有留痕名的板级首见,记例不另开缺陷。 +- **i104 bind FAIL 每次上电复现**:`[ERR][I104] i104: bind port 2404 FAIL, retry in loop` 台架与 + 产品构建同现,静默重试后套接字实际绑定成功(TCP 探测 STARTDT 为证)——#53 既有面(见上 + 「回放页坏段/空态画面闭环记录」末段),不新开。 + +**至此第四幕(bench 定时自抓 + 占卷弃段观察)板级闭环**:§5.2 第四条与 §10 板级行的观察项 +销项;手册 §1 第四幕行与 §6 状态已同步。本票唯一入库代码改动 = F0 有符号判定修复 +(bench 闸内,产品行为零变化)。 + --- ## 11. 与 `docs/任务规划/数据可信.md` 的口径变更(三处) diff --git a/docs/架构设计/STM32F4-Base存储架构说明.md b/docs/架构设计/STM32F4-Base存储架构说明.md index 71bca0ef..02f0f5af 100644 --- a/docs/架构设计/STM32F4-Base存储架构说明.md +++ b/docs/架构设计/STM32F4-Base存储架构说明.md @@ -768,4 +768,3 @@ defaultTask(喂狗点)内也不饿狗,残留形态收敛为「有界时长 2026-10-25 F2/F3 探针轮、2026-11-02 录波枚举台架轮(卷锁 try 超时 0 次)、 2026-11-05 PR #82 补验 soak(STOR 密集)均无该签名。重开判据不变:**台架再出 存储侧喂狗饥饿才排期**;观察行留登记簿 §2。 - diff --git a/docs/测试说明/专项验证/故障录波板级到场轮执行手册.md b/docs/测试说明/专项验证/故障录波板级到场轮执行手册.md index 9b7423ff..b4c9a688 100644 --- a/docs/测试说明/专项验证/故障录波板级到场轮执行手册.md +++ b/docs/测试说明/专项验证/故障录波板级到场轮执行手册.md @@ -13,7 +13,7 @@ | 第一幕 | 枚举埋点与修复上板 | **已完成(2026-11-02,远程)** | 无 | 改码加埋点 → 构建 → 烧录回读 → 远程开回放页 → 读 FR 码定性 → 修复重烧 | `docs/子系统设计/故障录波设计说明.md` §10「回放页枚举恒空缺陷修复记录」 | | 第二幕 | 注量对表 | **已闭环(2026-11-06)**——注量对表 2026-11-04 由 #40 交流轮跑完;坏段/空态画面 2026-11-06 台架远程轮拍毕,本幕现场无需重做 | ~~接 UA 发生器线 1 次、拔 1 次;面板按 2 次键(或让 agent 远程注键)~~ 已由远程轮与 #40 消化 | 记心跳基准 → FTP 拉段 → `wave_read` 量四样 → `meas:`/104 YC 对表 → 削顶注大一遍 → 坏段上板看回放页绝不平线 | `docs/子系统设计/故障录波设计说明.md` §10「板级」行 +「板级·回放页」行后半 +「回放页坏段/空态画面闭环记录」 | | 第三幕 | P 触发对时刻 | **要到场**,还含**两个由你拍板的决定** | IA 两点标定各接一次线 + 过流加大到 UI 见数值过 2 A | 读码算 k/b → 写配置生效 → 验证解锁 → 触发后对 start.log 时刻/段号/src=P | `docs/子系统设计/故障录波设计说明.md` §10「板级·触发来路」行 | -| 第四幕 | bench 自抓与卷占用 | **可远程**(烧录同上;占卷用 FTP 造) | 无 | 烧 bench 构建 → 造占卷 ≥2 s → 看 `err`+1、**一条** `ring abandoned`、同号重写 → 还原产品构建 | `docs/子系统设计/故障录波设计说明.md` §10 板级行的 `ring abandoned` 观察项 | +| 第四幕 | bench 自抓与卷占用 | **已完成(2026-11-07,远程)**——三判据逐条对上,且顺手修掉 bench 定时器判据缺陷一枚(F0,见闭环记录);无需重做 | ~~烧 bench 构建 → 造占卷 ≥2 s → 看 `err`+1、**一条** `ring abandoned`、同号重写 → 还原产品构建~~ 已由远程轮消化 | 同左(已全部执行:长占卷 72.6 s 静默自弃 err 1→15 零留痕 + 临界命中唯一留痕 err 恰 +1 同号重写 + 104/UI 占卷中照常) | `docs/子系统设计/故障录波设计说明.md` §10「bench 定时自抓与占卷弃段观察闭环记录」 | 幕间依赖:**第二幕的"坏段上板看回放页"一步已不再被阻塞**(第一幕 2026-11-02 已修好并板级闭环);其余各幕互相独立,可以先做不用等的。 @@ -118,6 +118,15 @@ flowchart LR 3. **判据三件套(agent 读串口与目录,给你摘要)**:`wave:` 行 `err` +1;串口**只有一条** `[ERR] [WAVE] seg drop: ring abandoned`;被弃段号**不推进**,下一段写同号;期间 104 链路与 UI 心跳照常(丢了录波不丢采集)。 4. **[agent]** 删掉 `FILLER.BIN` → 重烧**产品构建**(等"烧"确认)→ 跑一遍启动锚点校验(`/serial-boot-test` 的 required/forbidden 全套)→ 释放 bench 锁。 +> **2026-11-07 本幕已由远程轮跑完闭环(#84)**:步骤 1/4 的等"烧"按 2026-11-02 常授权跳过; +> 判据三件套逐条对上——长占卷 72.6 s 静默自弃 `err` 1→15 零留痕(「不是每拍刷屏」的最严形态)、 +> 临界占卷命中唯一留痕 `ring abandoned` 且 `err` 恰 +1、弃段槽号不推进同号重写、占卷期间 104 +> 链路(STARTDT 实测应答)与 UI(7003 status 主菜单)照常;另修掉 bench 定时器判据缺陷一枚 +> (F0,产品构建字节零漂移)。收工项:占卷文件三处全删、`/WAVE` 只剩真实轮转段、设备已回产品 +> 构建。全程证据与逐数字实证见 `docs/子系统设计/故障录波设计说明.md` §10 +> 「bench 定时自抓与占卷弃段观察闭环记录」+ 证据目录 +> `docs/测试说明/测试数据/wave_bench_20261107/`。 + --- ## 7. 收工还原清单(一项不落,agent 逐条过给你看) diff --git a/docs/测试说明/测试数据/wave_bench_20261107/README.md b/docs/测试说明/测试数据/wave_bench_20261107/README.md new file mode 100644 index 00000000..1e22f964 --- /dev/null +++ b/docs/测试说明/测试数据/wave_bench_20261107/README.md @@ -0,0 +1,87 @@ +# wave_bench_20261107 —— 第四幕「bench 定时自抓与占卷弃段观察」证据(#84,台架远程轮) + +**一句话**:bench 自抓与「卷被占住时弃段」两条路径都拿到了板级实证——临界占卷命中恰好**一条** +`[ERR] [WAVE] seg drop: ring abandoned`、`err` 恰 +1、段号不推进同号重写;长占卷 72.6 s 静默 +自弃 err 1→15 零留痕;期间 104 链路与 UI 照常;顺手修掉 bench 定时器判据缺陷一枚(F0)。 +产品构建已还烧,除 #53 跟踪中的 i104 首绑 FAIL 行外全锚点过(端口实测活,见「已知限制」)。 + +## 1. 判据对照(手册 §6 步骤 3 三件套 + 活度) + +| 判据 | 结果 | 实证 | +| --- | --- | --- | +| `wave:` 行 `err` +1 | ✅ 恰 +1 | `serial_excerpt_sweep7_window.txt`:`seg=36 … err=4` (21:15:32) → `seg=39 … err=5` (21:15:42);err 全窗归因 = 4 次静默自弃 + 1 次命中 = 5 ✓ | +| 只出现**一条** `ring abandoned`(不是每拍刷屏) | ✅ 唯一 | 同 excerpt:21:13–21:19 全窗 `[ERR]` 共 2 条 = 命中 1 条 + `[ERR][I104] bind FAIL`(#53 启动面,非落盘留痕);命中行:`seg drop: ring abandoned (idx=36 written=5250)` | +| 段号不推进、下一段仍写同号文件 | ✅ | `sweep7_211352.json` P1/P2/P3:命中即 unlink WAVE36.BIN → +3.4 s 起该槽 5250 B 全新单段(同刻邻槽 WAVE00=126000 B 累积对照),sha256 `b12e130e…2a0a11ca`;心跳 seg 36→39 但**文件 idx 恒 36** | +| 长占卷静默侧(err+N 零留痕,「不刷屏」最严形态) | ✅ | `phase1.json`:72.61 s 连续 FILLER 占卷,err 1→15(+14 = 覆盖 14 次封存的自弃),`err_lines=0` | +| 期间 104 链路与 UI 心跳照常 | ✅ | `phase1.json` probes(占卷中转储中):i104 TCP 2404 → `68040b000000`(STARTDT 确认)、7003 UI status=**MENU**(主菜单)ok | +| 收工:FILLER 删净 / /WAVE 只剩真实段 / 产品构建 / 锁空闲 | ✅ | `final_wave_listing.txt`(根 = LOG、WAVE、V5_UP.BIN、CONFIG.INI、PROT_SET.BIN,FILLER/FILL2/FILL3 全删);产品构建 `fw build: Nov 7 2026 21:32:52`,`boot_log_fail2_*` 除 i104 行外 8/9 required 全过 + readback OK;bench 锁以 `--bench-pass` 释放 | + +## 2. 命中窗口时间线(`sweep7_probes_211352.jsonl` 逐拍) + +bootstrap stlink 复位 21:13:52 → `wave bench autocap ON` 21:13:53.357(锚 0=ON+2.01 s, +周期实测 2.0005 s)→ 探针 1–10(`/FILL3.BIN` 600 KB RETR ≈2.4 s,δ 阶梯 −150…+160 ms, +锚只被 LATE 类更新防自污染):LATE 4 次(rel 2.019/2.007/1.932/1.812 = 释放点在弃段边界后, +各自静默自弃 err+1 零留痕)、E 6 次(rel −0.02…−0.12 = 提前干净落盘)→ **探针 11 +δ=−90 ms,rel=−0.011 s 命中**:21:15:35.576 `[ERR] seg drop: ring abandoned (idx=36)`, +同刻 `seg held 124 ms (idx=36)`(临界抓段全程含住边界,写毕复检判死自删)。 + +方法要点(F2):lftpd 交还卷锁比 `[FTP] DOWNLOAD … OK` 串口落账行**早约 0.11–0.135 s**, +δ 阶梯常数 C_BASE=2.19 s 已把该提前量烧进目标式;锚自 LATE 探针回收(grab_rx − (2P+0.16+QP))。 + +## 3. 现场发现 + +- **F0(已修,本 PR 唯一代码改动)**:`App/task/adc_task.c` bench 周期到期判定用无符号差值, + `next=now+PERIOD` 挂出后 `(now−next)>=2000` 因回绕**每拍成立**——首个 bench 构建台架实证 + 以 ~1 kHz 连发请求(ovf 每秒 +1000、段节奏钳到 ~1.5 s/段、drop 计数狂涨),违背 ON 行 + 承诺的 `1 seg / 2000 ms`。改有符号比较后实测 seg 精确 +5/10 s。产品镜像字节零漂移 + (bench 段在 `#if DTU_BENCH` 门内;bench Code=255284 vs 产品 254820,差 464 B 即门控旁证)。 + 首烧 run_boot_test 的 FAIL(i104 MISS + bind FAIL)与本缺陷无关,属 #53 面。 +- **F1(单次未复现,仅记录)**:20:28:57 板载 `reset cause: software (NVIC_SystemReset)` + 无任何打印前导;四个复位调用点均「先打印后复位」。其后 6+ 个 autocap 窗(含 72.6 s 连续 + 占卷)未复现。复原摘录与来源声明见 `serial_excerpt_sweep5_f1f3.txt`。 +- **F3(同族分支板级首见)**:20:30:31 `seg drop: pack_next (idx=28 written=1920)`——复检 + 判死的「落盘中途」分支(对照命中走的是「落盘前解冻」分支),同一段竞态家族,同套处置 + (删文件、号不推进、统一打印点),见设计说明 §5.2 第四条 / §10 留痕名清单。 +- **i104 首绑 FAIL(#53 既有跟踪)**:每次上电/复位 +2.7 s 复现一行 `[ERR][I104] bind port + 2404 FAIL, retry in loop`,net 层 reconcile 静默重挂后端口实测活(本窗 21:37:09 探针 + `68040b000000` + `serial_excerpt_product_final_2133plus.txt` 的 relisten 三连行)。 + 本轮不新开(11-06 第二幕轮先例同此,设计说明 §10 回放页记录有注)。 + +## 4. 复现要点 + +1. bench 构建:`STM32F407-Demo.uvprojx` Define 加 `DTU_BENCH` + `adc_task.c` 的 + `WAVE_BENCH_AUTOCAP` 置 1(两枚临时开关都不入库),烧写,串口见 + `wave bench autocap ON`(300 s 自动停,reset 可重挂窗)。 +2. 根目录 STOR 占卷文件(8.3 名,本窗用 2 MB `FILLER.BIN` ≈7.1 s/次 与 600 KB + `FILL3.BIN` ≈2.4 s/次);RETR 释放点按 §2 方法贴到弃段边界前 ~110 ms 带内。 +3. 看串口 `[ERR] [WAVE] seg drop:` 唯一行 + `wave:` 心跳 err 增量 + `/WAVE` 同号槽重写。 +4. 收工按手册 §6 步骤 4。驱动脚本为票据级(未入库),关键常数见 §2;台架常授权下免「等烧」。 + +## 5. 已知限制 + +- **串口持久日志被后续 run_boot_test 的 open+clear 清空**(21:33:07 gen=3):sweep5 窗口 + (20:2x)原始切片未及整段归档,`serial_excerpt_sweep5_f1f3.txt` 为**逐字复原件**(来源 + 声明在文件头);sweep7 窗口与产品终窗为原始切片。 +- `/WAVE` 是 100 槽轮转覆盖,命中时刻 WAVE36 的 5250 B 样本无法事后单独归档(后续真实段 + 继续同号重写属设计行为);命中时状态以 P1/P2/P3 三点尺寸+sha + 目录清单固化。 +- 启动锚点校验在产品构建上因 #53 行判 FAIL(两次复跑同因);该行是唯一 MISS/HIT, + 端口活度以 TCP STARTDT 实测补偿,定性沿用 11-06 轮先例。 +- F1 复位不定性、不复现即不追(观察面),如现场再见按 `boot_stats` CSR 值起单。 + +## 6. 文件清单 + +| 文件 | 内容 | +| --- | --- | +| `sweep7_211352.json` | 命中窗总结(锚链、P1/P2/P3 采样、心跳对、唯一性核验) | +| `sweep7_probes_211352.jsonl` | 命中轮 11 探针逐拍记录(δ/rel/cls/err_lines_new) | +| `sweep7_probes_210925.jsonl` | 前一轮(网格自污染教训,探针 1–2 回收陈旧封存) | +| `serial_excerpt_sweep7_window.txt` | 命中窗串口原始切片(21:13:52–21:15:59,噪声过滤) | +| `phase1.json` | 72.6 s 连续占卷 + 占卷中 104/UI 探针 + err 1→15 心跳链 | +| `serial_excerpt_sweep5_f1f3.txt` | F1 复位 + F3 pack_next 复原摘录(含来源声明) | +| `serial_excerpt_product_final_2133plus.txt` | 产品终窗串口切片(bind FAIL→relisten→探针应答) | +| `boot_log_fail1/fail2_20261107_*.txt` | 产品构建两次启动锚点校验全日志(唯一 FAIL 项 = #53 行) | +| `final_wave_listing.txt` | 收工态 /WAVE 计数与抽样尺寸、WAVE36=10500 注记 | +| `sweep_1794051196.json` | 更早 58 拍扫相位轮(全 E 类零 err——「1.6 s 占卷结构上够不着边界」的方法学反证) | + +关联:`docs/子系统设计/故障录波设计说明.md` §10「bench 定时自抓与占卷弃段观察闭环记录」; +`docs/测试说明/专项验证/故障录波板级到场轮执行手册.md` §1/§6/§7;Gitea #84。 diff --git a/docs/测试说明/测试数据/wave_bench_20261107/boot_log_fail1_20261107_212910.txt b/docs/测试说明/测试数据/wave_bench_20261107/boot_log_fail1_20261107_212910.txt new file mode 100644 index 00000000..708492d1 --- /dev/null +++ b/docs/测试说明/测试数据/wave_bench_20261107/boot_log_fail1_20261107_212910.txt @@ -0,0 +1,157 @@ +[+0ms] [----/--/-- --:--:--][APP] boot: syslog init OK +[+0ms] [----/--/-- --:--:--][APP] fw build: Nov 7 2026 21:28:55 suite=NONE dstr=off +[+10ms] [----/--/-- --:--:--][APP] reset cause: software (NVIC_SystemReset) (CSR=0x14000000) +[+10ms] PREVRUN seg=2 seq=2101112827 t=436031 +[+21ms] TICKRUN uw=436055 n=436055 duw=24 +[+21ms] [----/--/-- --:--:--][RTC] sd2506_init: OK +[+31ms] [----/--/-- --:--:--][APP] SD2506 init: OK (ret=0) +[+42ms] [2026-11-07 21:29:18][CLK] sys_clock_init: RTC initial time 2026-11-07 21:29:18 +[+42ms] [2026-11-07 21:29:18][CLK] sys_clock_init: wall clock base = unix 1794086958, base_tick=142 +[+52ms] [2026-11-07 21:29:18][APP] RS485 init: OK (UART4, DE=PA15) +[+63ms] [2026-11-07 21:29:18][APP] ScreenLink init: OK (ret=0, USART1 700000 baud, BRR=0x0078) +[+73ms] [2026-11-07 21:29:18][NAND] Resetting NAND... +[+94ms] [2026-11-07 21:29:18][NAND] Reading NAND ID... +[+94ms] [2026-11-07 21:29:18][NAND] NAND ID: MID=0xC8, DID=0x52 +[+105ms] [2026-11-07 21:29:18][NAND] Scanning bad blocks... +[+240ms] [2026-11-07 21:29:18][NAND] BBT scan: 0 bad blocks found +[+240ms] [2026-11-07 21:29:18][NAND] Enabling ECC... +[+240ms] [2026-11-07 21:29:18][NAND] Unlocking block protection... +[+250ms] [2026-11-07 21:29:18][NAND] Locating BBT pool... +[+250ms] [2026-11-07 21:29:18][NAND] Loading persisted BBT... +[+261ms] [2026-11-07 21:29:18][NAND] NAND init OK +[+261ms] [2026-11-07 21:29:18][APP] NAND init: OK +[+271ms] [2026-11-07 21:29:18][ADC] Init OK +[+271ms] [2026-11-07 21:29:18][APP] ADC init: OK +[+271ms] [2026-11-07 21:29:18][APP] ADC input layer init: OK +[+282ms] [2026-11-07 21:29:18][APP] phasor layer init: OK (inst=5) +[+282ms] [2026-11-07 21:29:18][APP] freq layer init: OK +[+292ms] [2026-11-07 21:29:18][CFG] register: section 'adc_cal' (9 keys) +[+292ms] [2026-11-07 21:29:18][CFG] register: section 'adc_cal_ofs' (8 keys) +[+303ms] [2026-11-07 21:29:18][APP] adc cal init: OK (k_q16 tpafe=10000000 stm32=52800000) +[+313ms] [2026-11-07 21:29:18][CFG] register: section 'run_par' (9 keys) +[+313ms] [2026-11-07 21:29:18][APP] run par init: OK (db9 k/b via adc_cal, evt=1<<8) +[+323ms] [2026-11-07 21:29:18][CFG] register: section 'comm' (2 keys) +[+333ms] [2026-11-07 21:29:18][APP] comm init: OK (ca=1 port=2404) +[+333ms] [2026-11-07 21:29:18][APP] protection init: OK (set=40 elm=9) +[+344ms] [2026-11-07 21:29:18][APP] SD2506 ID: 2512153425482405 +[+344ms] [2026-11-07 21:29:18][APP] SD2506 time: 2026-11-07 21:29:19 (week 6) +[+354ms] [2026-11-07 21:29:18][APP] SD2506 temp: 24 C +[+354ms] [2026-11-07 21:29:18][APP] SD2506 battery: 3.12 V +[+365ms] [2026-11-07 21:29:18][APP] App init OK +[+365ms] [2026-11-07 21:29:18][NAND_FTL] Initializing NAND FTL... +[+386ms] [2026-11-07 21:29:18][PROT] uncalibrated -> protection blocked (UA/UN/IA VALID not all set) +[+469ms] [2026-11-07 21:29:18] [FS] FATFS mounted +[+532ms] [2026-11-07 21:29:18][SYSLOG] runlog boot entry: reboot +[+532ms] [2026-11-07 21:29:18][CFG] register: section 'network' (4 keys) +[+542ms] [2026-11-07 21:29:18][CFG] register: section 'ftp' (3 keys) +[+553ms] [2026-11-07 21:29:18][CFG] register: section 'sntp' (4 keys) +[+563ms] [2026-11-07 21:29:18][CFG] load: OK (1064B, heap free 16552B) +[+563ms] [2026-11-07 21:29:18][NET_CFG] load: OK ip=192.168.31.100 +[+574ms] [2026-11-07 21:29:18] [CFG] prot set loaded (/prot_set.bin) +[+595ms] [2026-11-07 21:29:18][NAND_FTL] Map resumed: 46942/93232 sectors used +[+605ms] [2026-11-07 21:29:18][NAND_FTL] Map head=36160 tail=91677 epoch=8 +[+605ms] [2026-11-07 21:29:18][NAND_FTL] NAND FTL ready (capacity: 93232 pages = 182 MB) +[+616ms] [2026-11-07 21:29:18][ADC_TASK] first: UA=-19 UB=414 UC=518 UN=-18 IA=-16 IB=0 IC=768 IN=901 T=713 +[+626ms] [2026-11-07 21:29:18][ADC_TASK] phasor(first) C01-IA-F1: Re=0 Im=0 rms=0 (x0.1) +[+626ms] [2026-11-07 21:29:18][ADC_TASK] phasor(first) C02-UA-F1: Re=0 Im=0 rms=0 (x0.1) +[+636ms] [2026-11-07 21:29:18][ADC_TASK] phasor(first) C03-UN-F1: Re=0 Im=0 rms=0 (x0.1) +[+646ms] [2026-11-07 21:29:18][ADC_TASK] phasor(first) C04-IA-F2: Re=0 Im=0 rms=0 (x0.1) +[+656ms] [2026-11-07 21:29:18][ADC_TASK] phasor(first) C05-IA-F5: Re=0 Im=0 rms=0 (x0.1) +[+656ms] [2026-11-07 21:29:18][ADC_TASK] freq(first): f=0 valid=0 (x0.01) +[+667ms] [2026-11-07 21:29:18][PROT] protect task start: cycle=20ms elm=9 +[+667ms] [2026-11-07 21:29:18][NET_TASK] === Network Init === +[+677ms] [2026-11-07 21:29:18][NET] ch395f ver=0x4A fun_para=0x08 +[+677ms] [2026-11-07 21:29:18][NET_TASK] net init: OK +[+688ms] [2026-11-07 21:29:18][NET_TASK] MAC: 3C:AB:72:53:2B:12 +[+688ms] MISS start snap=0x000001E7 req=0x000001F7 t=794 +[+688ms] [2026-11-07 21:29:18][WD] [WD] armed: timeout ~2498ms (worst ~1701ms), miss_tol=800ms +[+698ms] [2026-11-07 21:29:18][NET_TASK] IP_INF: IP=192.168.31.100 GW=192.168.31.1 MASK=255.255.255.0 +[+751ms] [2026-11-07 21:29:18][UI_TASK] UI task: started, wait net ready +[+2642ms] [2026-11-07 21:29:20][NET_TASK] PHY: 100M FULL +[+2663ms] [2026-11-07 21:29:20][NET_TASK] netTask: started (single-socket mode) +[+2694ms] [2026-11-07 21:29:20][ERR][I104] i104: bind port 2404 FAIL, retry in loop +[+2725ms] [2026-11-07 21:29:20] [FTP] using factory default password +[+2735ms] MISS start snap=0x000001E7 req=0x000001F7 t=2839 +[+2735ms] [PROF] t=2843 uic=0 uip=0 uipn=0 uil=0 uiw=0 uis=0 uisn=0 adc=2370 adcm=1997 adcn=0 gl=0 +[+2746ms] [PROF2] t=2843 defd=92186 defs=37170 netp=1004 netn=387 adcp=8 adcq=0 gl=0 +[+2756ms] [2026-11-07 21:29:20] [FTP] waiting for connection... +[+2756ms] [2026-11-07 21:29:20][UI_TASK] UI task: net ready, init port +[+2766ms] [2026-11-07 21:29:20][UI_TASK] UI task: ui_port_init enter +[+2777ms] [2026-11-07 21:29:20][UI_PORT] theme: mono dark_bg=true applied +[+2777ms] [2026-11-07 21:29:20][UI_TASK] UI port init: OK +[+2787ms] [2026-11-07 21:29:20][UI_TASK] UI task: ui_menu_init enter +[+2787ms] [2026-11-07 21:29:20][UI_MENU] menu build start: total=15136 free=12692 big=12692 +[+2798ms] [2026-11-07 21:29:20][UI_MENU_VIEW] view init: root frame w=66 h=107 +[+2808ms] [2026-11-07 21:29:20][UI_MENU] menu build done: total=15020 free=11828 big=11816 used=3192 +[+2818ms] [2026-11-07 21:29:20][UI_TASK] UI menu init: OK +[+2818ms] [2026-11-07 21:29:20][UI_STANDBY] standby: ready (idle=60000ms) +[+2829ms] [2026-11-07 21:29:20][UI_TASK] UI standby: ready (idle=60s) +[+2871ms] [2026-11-07 21:29:20][UI_TASK] UI net sink: started (port 7003) +[+2892ms] [2026-11-07 21:29:20][SBLINK] first frame: size=6 cmd=1 key=0 +[+4898ms] [PROF] t=5005 uic=181 uip=29627 uipn=5854 uil=10999 uiw=19608 uis=1139 uisn=0 adc=4531 adcm=1997 adcn=0 gl=0 +[+4909ms] [PROF2] t=5005 defd=92186 defs=37170 netp=1024 netn=0 adcp=9 adcq=0 gl=0 +[+5368ms] [2026-11-07 21:29:23][SBLINK] rx=19 ok=19 keys=0 crc=0 len=0 fmt=0 err=1 bits=0x08 rearm=0 size=6 key=0 +[+5379ms] [2026-11-07 21:29:23] [STACK] default peak_used=2176/5120 free_min=2944 (57%) +[+5389ms] [2026-11-07 21:29:23] [STACK] net peak_used=1116/3840 free_min=2724 (70%) +[+5389ms] [2026-11-07 21:29:23] [STACK] ftp peak_used=740/4096 free_min=3356 (81%) +[+5400ms] [2026-11-07 21:29:23] [STACK] ui peak_used=4104/16384 free_min=12280 (74%) +[+5410ms] [2026-11-07 21:29:23] [STACK] timesync peak_used=476/2560 free_min=2084 (81%) +[+5410ms] [2026-11-07 21:29:23] [STACK] adc peak_used=1024/2560 free_min=1536 (60%) +[+5421ms] [2026-11-07 21:29:23] [STACK] iec104 peak_used=540/2560 free_min=2020 (78%) +[+5432ms] [2026-11-07 21:29:23] [STACK] protect peak_used=492/2048 free_min=1556 (75%) +[+5442ms] [2026-11-07 21:29:23] [STACK] heap free=15624 min_ever=8464 +[+5442ms] [2026-11-07 21:29:23][SBLINK] tx=9 done=8 drop=10 kerr=0 abor=0 fb=5 bad=0 us=511 max=513 kq=0 off=0 dfok=0 dfold=0 +[+6902ms] [PROF] t=7008 uic=354 uip=94941 uipn=5854 uil=11000 uiw=85308 uis=1139 uisn=0 adc=6534 adcm=1997 adcn=0 gl=0 +[+6912ms] [PROF2] t=7008 defd=92186 defs=37170 netp=1984 netn=0 adcp=9 adcq=0 gl=0 +[+8918ms] [PROF] t=9025 uic=536 uip=94941 uipn=4855 uil=10998 uiw=85308 uis=1139 uisn=0 adc=8551 adcm=1997 adcn=0 gl=0 +[+8929ms] [PROF2] t=9025 defd=92186 defs=37170 netp=1984 netn=0 adcp=9 adcq=0 gl=0 +[+10368ms] [2026-11-07 21:29:28][ADC_TASK] frames=10000 idle=0 skip=1 seq=10006 frst_err=0 ring=9999 adc1_rc=0 adc1_err=0 adc1_seq=10005 adc1_gap=5 adc1_hw=0 tgap=1 +[+10379ms] [2026-11-07 21:29:28][ADC_TASK] phasor(hb) C01-IA-F1: Re=0 Im=0 rms=0 (x0.1) +[+10389ms] [2026-11-07 21:29:28][ADC_TASK] phasor(hb) C02-UA-F1: Re=0 Im=0 rms=0 (x0.1) +[+10399ms] [2026-11-07 21:29:28][ADC_TASK] phasor(hb) C03-UN-F1: Re=0 Im=0 rms=0 (x0.1) +[+10410ms] [2026-11-07 21:29:28][ADC_TASK] phasor(hb) C04-IA-F2: Re=0 Im=0 rms=0 (x0.1) +[+10410ms] [2026-11-07 21:29:28][ADC_TASK] phasor(hb) C05-IA-F5: Re=0 Im=0 rms=0 (x0.1) +[+10420ms] [2026-11-07 21:29:28][ADC_TASK] freq(hb): f=0 valid=0 (x0.01) +[+10420ms] [2026-11-07 21:29:28][ADC_TASK] adc: UA=-20 UB=404 UC=618 UN=-19 IA=-20 IB=0 IC=760 IN=893 T=730 +[+10431ms] [2026-11-07 21:29:28][ADC_TASK] cal: ua_mv=-3 un_mv=-2 ia_mv=-3 vl=0x00 cl=0xe6 rail=0x000 edge=0x000 +[+10441ms] [2026-11-07 21:29:28][ADC_TASK] meas: seq=50 v=1 ua_mv=0 un_mv=0 ia_mv=0 f=0 fv=0 +[+10452ms] [2026-11-07 21:29:28][ADC_TASK] wave: seg=0 armed=0 src=- pts=320 err=0 ovf=0 drop=0 +[+10462ms] [2026-11-07 21:29:28][SBLINK] rx=37 ok=37 keys=0 crc=0 len=0 fmt=0 err=1 bits=0x08 rearm=0 size=6 key=0 +[+10473ms] [2026-11-07 21:29:28][SBLINK] tx=27 done=27 drop=10 kerr=0 abor=0 fb=16 bad=0 us=674 max=674 kq=0 off=0 dfok=0 dfold=0 +[+10928ms] [PROF] t=11033 uic=707 uip=98476 uipn=9855 uil=10997 uiw=85308 uis=1139 uisn=0 adc=10557 adcm=3430 adcn=0 gl=0 +[+10939ms] [PROF2] t=11033 defd=92186 defs=37170 netp=5002 netn=0 adcp=9 adcq=0 gl=0 +[+12948ms] [PROF] t=13051 uic=889 uip=98476 uipn=5859 uil=10999 uiw=85308 uis=1139 uisn=0 adc=12575 adcm=3430 adcn=0 gl=0 +[+12958ms] [PROF2] t=13051 defd=92186 defs=37170 netp=5002 netn=0 adcp=9 adcq=0 gl=0 +[+14969ms] [PROF] t=15069 uic=1071 uip=98476 uipn=5855 uil=10997 uiw=85308 uis=1139 uisn=0 adc=14593 adcm=3430 adcn=0 gl=0 +[+14969ms] [PROF2] t=15069 defd=92186 defs=37170 netp=5002 netn=0 adcp=9 adcq=0 gl=0 +[+15467ms] [2026-11-07 21:29:33][SBLINK] rx=55 ok=55 keys=0 crc=0 len=0 fmt=0 err=1 bits=0x08 rearm=0 size=6 key=0 +[+15477ms] [2026-11-07 21:29:33][SBLINK] tx=45 done=44 drop=10 kerr=0 abor=0 fb=26 bad=0 us=513 max=674 kq=0 off=0 dfok=0 dfold=0 +[+16986ms] [PROF] t=17094 uic=1252 uip=98476 uipn=1853 uil=11000 uiw=85308 uis=1139 uisn=0 adc=16618 adcm=3430 adcn=0 gl=0 +[+16996ms] [PROF2] t=17094 defd=92186 defs=37170 netp=5002 netn=0 adcp=9 adcq=0 gl=0 +[+19005ms] [PROF] t=19112 uic=1434 uip=98476 uipn=5855 uil=10998 uiw=85308 uis=1139 uisn=0 adc=18636 adcm=3430 adcn=0 gl=0 +[+19015ms] [PROF2] t=19112 defd=92186 defs=37170 netp=5002 netn=0 adcp=9 adcq=0 gl=0 +[+20371ms] [2026-11-07 21:29:38][ADC_TASK] frames=19998 idle=0 skip=2 seq=20006 frst_err=0 ring=19996 adc1_rc=0 adc1_err=0 adc1_seq=20005 adc1_gap=8 adc1_hw=0 tgap=3 +[+20382ms] [2026-11-07 21:29:38][ADC_TASK] phasor(hb) C01-IA-F1: Re=0 Im=0 rms=0 (x0.1) +[+20393ms] [2026-11-07 21:29:38][ADC_TASK] phasor(hb) C02-UA-F1: Re=0 Im=0 rms=0 (x0.1) +[+20393ms] [2026-11-07 21:29:38][ADC_TASK] phasor(hb) C03-UN-F1: Re=0 Im=0 rms=0 (x0.1) +[+20403ms] [2026-11-07 21:29:38][ADC_TASK] phasor(hb) C04-IA-F2: Re=0 Im=0 rms=0 (x0.1) +[+20413ms] [2026-11-07 21:29:38][ADC_TASK] phasor(hb) C05-IA-F5: Re=0 Im=0 rms=0 (x0.1) +[+20424ms] [2026-11-07 21:29:38][ADC_TASK] freq(hb): f=0 valid=0 (x0.01) +[+20424ms] [2026-11-07 21:29:38][ADC_TASK] adc: UA=-21 UB=403 UC=618 UN=-20 IA=-19 IB=0 IC=769 IN=885 T=752 +[+20435ms] [2026-11-07 21:29:38][ADC_TASK] cal: ua_mv=-3 un_mv=-3 ia_mv=-2 vl=0x00 cl=0xe6 rail=0x000 edge=0x000 +[+20445ms] [2026-11-07 21:29:38][ADC_TASK] meas: seq=100 v=1 ua_mv=0 un_mv=0 ia_mv=0 f=0 fv=0 +[+20445ms] [2026-11-07 21:29:38][ADC_TASK] wave: seg=0 armed=0 src=- pts=320 err=0 ovf=0 drop=0 +[+20466ms] [2026-11-07 21:29:38][SBLINK] rx=72 ok=72 keys=0 crc=0 len=0 fmt=0 err=1 bits=0x08 rearm=0 size=6 key=0 +[+20476ms] [2026-11-07 21:29:38][SBLINK] tx=62 done=62 drop=10 kerr=0 abor=0 fb=36 bad=0 us=692 max=692 kq=0 off=0 dfok=0 dfold=0 +[+21043ms] [PROF] t=21144 uic=1607 uip=99653 uipn=10854 uil=10999 uiw=85308 uis=1139 uisn=0 adc=20666 adcm=3453 adcn=0 gl=0 +[+21054ms] [PROF2] t=21144 defd=92186 defs=37170 netp=5002 netn=0 adcp=9 adcq=0 gl=0 +[+23054ms] [PROF] t=23162 uic=1789 uip=99653 uipn=5854 uil=11000 uiw=85308 uis=1139 uisn=0 adc=22684 adcm=3453 adcn=0 gl=0 +[+23065ms] [PROF2] t=23162 defd=92186 defs=37170 netp=5002 netn=0 adcp=9 adcq=0 gl=0 +[+25075ms] [PROF] t=25180 uic=1971 uip=99653 uipn=5853 uil=10984 uiw=85308 uis=1139 uisn=0 adc=24702 adcm=3453 adcn=0 gl=0 +[+25085ms] [PROF2] t=25180 defd=92186 defs=37170 netp=5002 netn=0 adcp=9 adcq=0 gl=0 +[+25478ms] [2026-11-07 21:29:43][SBLINK] rx=90 ok=90 keys=0 crc=0 len=0 fmt=0 err=1 bits=0x08 rearm=0 size=6 key=0 +[+25489ms] [2026-11-07 21:29:43][SBLINK] tx=80 done=80 drop=10 kerr=0 abor=0 fb=46 bad=0 us=513 max=692 kq=0 off=0 dfok=0 dfold=0 +[+27105ms] [PROF] t=27205 uic=2152 uip=99653 uipn=3850 uil=11003 uiw=85308 uis=1139 uisn=0 adc=26727 adcm=3453 adcn=0 gl=0 +[+27105ms] [PROF2] t=27205 defd=92186 defs=37170 netp=5002 netn=0 adcp=9 adcq=0 gl=0 +[+29124ms] [PROF] t=29223 uic=2334 uip=99653 uipn=5854 uil=10999 uiw=85308 uis=1139 uisn=0 adc=28745 adcm=3453 adcn=0 gl=0 +[+29124ms] [PROF2] t=29223 defd=92186 defs=37170 netp=5002 netn=0 adcp=9 adcq=0 gl=0 diff --git a/docs/测试说明/测试数据/wave_bench_20261107/boot_log_fail2_20261107_213307.txt b/docs/测试说明/测试数据/wave_bench_20261107/boot_log_fail2_20261107_213307.txt new file mode 100644 index 00000000..c96cb554 --- /dev/null +++ b/docs/测试说明/测试数据/wave_bench_20261107/boot_log_fail2_20261107_213307.txt @@ -0,0 +1,157 @@ +[+0ms] [----/--/-- --:--:--][APP] boot: syslog init OK +[+10ms] [----/--/-- --:--:--][APP] fw build: Nov 7 2026 21:32:52 suite=NONE dstr=off +[+10ms] [----/--/-- --:--:--][APP] reset cause: software (NVIC_SystemReset) (CSR=0x14000000) +[+21ms] PREVRUN seg=2 seq=2101145323 t=196140 +[+21ms] TICKRUN uw=196153 n=196153 duw=13 +[+31ms] [----/--/-- --:--:--][RTC] sd2506_init: OK +[+31ms] [----/--/-- --:--:--][APP] SD2506 init: OK (ret=0) +[+42ms] [2026-11-07 21:33:15][CLK] sys_clock_init: RTC initial time 2026-11-07 21:33:15 +[+52ms] [2026-11-07 21:33:15][CLK] sys_clock_init: wall clock base = unix 1794087195, base_tick=142 +[+62ms] [2026-11-07 21:33:15][APP] RS485 init: OK (UART4, DE=PA15) +[+62ms] [2026-11-07 21:33:15][APP] ScreenLink init: OK (ret=0, USART1 700000 baud, BRR=0x0078) +[+83ms] [2026-11-07 21:33:15][NAND] Resetting NAND... +[+94ms] [2026-11-07 21:33:15][NAND] Reading NAND ID... +[+104ms] [2026-11-07 21:33:15][NAND] NAND ID: MID=0xC8, DID=0x52 +[+104ms] [2026-11-07 21:33:15][NAND] Scanning bad blocks... +[+240ms] [2026-11-07 21:33:15][NAND] BBT scan: 0 bad blocks found +[+240ms] [2026-11-07 21:33:15][NAND] Enabling ECC... +[+250ms] [2026-11-07 21:33:15][NAND] Unlocking block protection... +[+250ms] [2026-11-07 21:33:15][NAND] Locating BBT pool... +[+261ms] [2026-11-07 21:33:15][NAND] Loading persisted BBT... +[+271ms] [2026-11-07 21:33:15][NAND] NAND init OK +[+271ms] [2026-11-07 21:33:15][APP] NAND init: OK +[+271ms] [2026-11-07 21:33:15][ADC] Init OK +[+271ms] [2026-11-07 21:33:15][APP] ADC init: OK +[+281ms] [2026-11-07 21:33:15][APP] ADC input layer init: OK +[+281ms] [2026-11-07 21:33:15][APP] phasor layer init: OK (inst=5) +[+292ms] [2026-11-07 21:33:15][APP] freq layer init: OK +[+292ms] [2026-11-07 21:33:15][CFG] register: section 'adc_cal' (9 keys) +[+302ms] [2026-11-07 21:33:15][CFG] register: section 'adc_cal_ofs' (8 keys) +[+302ms] [2026-11-07 21:33:15][APP] adc cal init: OK (k_q16 tpafe=10000000 stm32=52800000) +[+313ms] [2026-11-07 21:33:15][CFG] register: section 'run_par' (9 keys) +[+324ms] [2026-11-07 21:33:15][APP] run par init: OK (db9 k/b via adc_cal, evt=1<<8) +[+324ms] [2026-11-07 21:33:15][CFG] register: section 'comm' (2 keys) +[+334ms] [2026-11-07 21:33:15][APP] comm init: OK (ca=1 port=2404) +[+334ms] [2026-11-07 21:33:15][APP] protection init: OK (set=40 elm=9) +[+345ms] [2026-11-07 21:33:15][APP] SD2506 ID: 2512153425482405 +[+355ms] [2026-11-07 21:33:15][APP] SD2506 time: 2026-11-07 21:33:16 (week 6) +[+355ms] [2026-11-07 21:33:15][APP] SD2506 temp: 23 C +[+365ms] [2026-11-07 21:33:15][APP] SD2506 battery: 3.12 V +[+365ms] [2026-11-07 21:33:15][APP] App init OK +[+376ms] [2026-11-07 21:33:15][NAND_FTL] Initializing NAND FTL... +[+397ms] [2026-11-07 21:33:15][PROT] uncalibrated -> protection blocked (UA/UN/IA VALID not all set) +[+480ms] [2026-11-07 21:33:15] [FS] FATFS mounted +[+542ms] [2026-11-07 21:33:15][SYSLOG] runlog boot entry: reboot +[+542ms] [2026-11-07 21:33:15][CFG] register: section 'network' (4 keys) +[+553ms] [2026-11-07 21:33:15][CFG] register: section 'ftp' (3 keys) +[+563ms] [2026-11-07 21:33:15][CFG] register: section 'sntp' (4 keys) +[+574ms] [2026-11-07 21:33:15][CFG] load: OK (1064B, heap free 16552B) +[+574ms] [2026-11-07 21:33:15][NET_CFG] load: OK ip=192.168.31.100 +[+584ms] [2026-11-07 21:33:15] [CFG] prot set loaded (/prot_set.bin) +[+605ms] [2026-11-07 21:33:15][NAND_FTL] Map resumed: 46942/93232 sectors used +[+615ms] [2026-11-07 21:33:15][NAND_FTL] Map head=36288 tail=91795 epoch=8 +[+615ms] [2026-11-07 21:33:15][NAND_FTL] NAND FTL ready (capacity: 93232 pages = 182 MB) +[+625ms] [2026-11-07 21:33:15][ADC_TASK] first: UA=-19 UB=414 UC=518 UN=-17 IA=-17 IB=0 IC=764 IN=898 T=718 +[+636ms] [2026-11-07 21:33:15][ADC_TASK] phasor(first) C01-IA-F1: Re=0 Im=0 rms=0 (x0.1) +[+636ms] [2026-11-07 21:33:15][ADC_TASK] phasor(first) C02-UA-F1: Re=0 Im=0 rms=0 (x0.1) +[+646ms] [2026-11-07 21:33:15][ADC_TASK] phasor(first) C03-UN-F1: Re=0 Im=0 rms=0 (x0.1) +[+657ms] [2026-11-07 21:33:15][ADC_TASK] phasor(first) C04-IA-F2: Re=0 Im=0 rms=0 (x0.1) +[+667ms] [2026-11-07 21:33:15][ADC_TASK] phasor(first) C05-IA-F5: Re=0 Im=0 rms=0 (x0.1) +[+667ms] [2026-11-07 21:33:15][ADC_TASK] freq(first): f=0 valid=0 (x0.01) +[+677ms] [2026-11-07 21:33:15][NET_TASK] === Network Init === +[+677ms] [2026-11-07 21:33:15][PROT] protect task start: cycle=20ms elm=9 +[+688ms] [2026-11-07 21:33:15][NET] ch395f ver=0x4A fun_para=0x08 +[+688ms] [2026-11-07 21:33:15][NET_TASK] net init: OK +[+688ms] [2026-11-07 21:33:15][NET_TASK] MAC: 3C:AB:72:53:2B:12 +[+698ms] MISS start snap=0x000001E7 req=0x000001F7 t=799 +[+698ms] [2026-11-07 21:33:15][WD] [WD] armed: timeout ~2498ms (worst ~1701ms), miss_tol=800ms +[+709ms] [2026-11-07 21:33:15][NET_TASK] IP_INF: IP=192.168.31.100 GW=192.168.31.1 MASK=255.255.255.0 +[+761ms] [2026-11-07 21:33:15][UI_TASK] UI task: started, wait net ready +[+2654ms] [2026-11-07 21:33:17][NET_TASK] PHY: 100M FULL +[+2675ms] [2026-11-07 21:33:17][NET_TASK] netTask: started (single-socket mode) +[+2706ms] [2026-11-07 21:33:17][ERR][I104] i104: bind port 2404 FAIL, retry in loop +[+2738ms] [2026-11-07 21:33:17] [FTP] using factory default password +[+2738ms] MISS start snap=0x000001E7 req=0x000001F7 t=2845 +[+2748ms] [PROF] t=2849 uic=0 uip=0 uipn=0 uil=0 uiw=0 uis=0 uisn=0 adc=2376 adcm=2000 adcn=0 gl=0 +[+2758ms] [PROF2] t=2849 defd=92190 defs=37462 netp=1004 netn=393 adcp=8 adcq=0 gl=0 +[+2758ms] [2026-11-07 21:33:17] [FTP] waiting for connection... +[+2769ms] [2026-11-07 21:33:17][UI_TASK] UI task: net ready, init port +[+2779ms] [2026-11-07 21:33:17][UI_TASK] UI task: ui_port_init enter +[+2779ms] [2026-11-07 21:33:17][UI_PORT] theme: mono dark_bg=true applied +[+2790ms] [2026-11-07 21:33:17][UI_TASK] UI port init: OK +[+2790ms] [2026-11-07 21:33:17][UI_TASK] UI task: ui_menu_init enter +[+2801ms] [2026-11-07 21:33:17][UI_MENU] menu build start: total=15136 free=12692 big=12692 +[+2811ms] [2026-11-07 21:33:17][UI_MENU_VIEW] view init: root frame w=66 h=107 +[+2821ms] [2026-11-07 21:33:17][UI_MENU] menu build done: total=15020 free=11828 big=11816 used=3192 +[+2821ms] [2026-11-07 21:33:17][UI_TASK] UI menu init: OK +[+2832ms] [2026-11-07 21:33:17][UI_STANDBY] standby: ready (idle=60000ms) +[+2832ms] [2026-11-07 21:33:17][UI_TASK] UI standby: ready (idle=60s) +[+2884ms] [2026-11-07 21:33:17][UI_TASK] UI net sink: started (port 7003) +[+2905ms] [2026-11-07 21:33:17][SBLINK] first frame: size=6 cmd=1 key=0 +[+4909ms] [PROF] t=5010 uic=181 uip=29627 uipn=5850 uil=11004 uiw=19639 uis=1138 uisn=0 adc=4536 adcm=2000 adcn=0 gl=0 +[+4920ms] [PROF2] t=5010 defd=92190 defs=37462 netp=1983 netn=0 adcp=8 adcq=0 gl=0 +[+5375ms] [2026-11-07 21:33:20] [STACK] default peak_used=2176/5120 free_min=2944 (57%) +[+5385ms] [2026-11-07 21:33:20] [STACK] net peak_used=1116/3840 free_min=2724 (70%) +[+5385ms] [2026-11-07 21:33:20] [STACK] ftp peak_used=740/4096 free_min=3356 (81%) +[+5396ms] [2026-11-07 21:33:20] [STACK] ui peak_used=4204/16384 free_min=12180 (74%) +[+5406ms] [2026-11-07 21:33:20] [STACK] timesync peak_used=476/2560 free_min=2084 (81%) +[+5416ms] [2026-11-07 21:33:20] [STACK] adc peak_used=1024/2560 free_min=1536 (60%) +[+5416ms] [2026-11-07 21:33:20] [STACK] iec104 peak_used=540/2560 free_min=2020 (78%) +[+5427ms] [2026-11-07 21:33:20] [STACK] protect peak_used=492/2048 free_min=1556 (75%) +[+5438ms] [2026-11-07 21:33:20] [STACK] heap free=15624 min_ever=8464 +[+5438ms] [2026-11-07 21:33:20][SBLINK] rx=19 ok=19 keys=0 crc=0 len=0 fmt=0 err=1 bits=0x08 rearm=0 size=6 key=0 +[+5448ms] [2026-11-07 21:33:20][SBLINK] tx=9 done=9 drop=10 kerr=0 abor=0 fb=6 bad=0 us=676 max=676 kq=0 off=0 dfok=0 dfold=0 +[+6915ms] [PROF] t=7011 uic=354 uip=72696 uipn=6850 uil=11004 uiw=21657 uis=1138 uisn=0 adc=6537 adcm=2000 adcn=0 gl=0 +[+6915ms] [PROF2] t=7011 defd=92190 defs=37462 netp=1984 netn=0 adcp=8 adcq=0 gl=0 +[+8931ms] [PROF] t=9028 uic=536 uip=72696 uipn=6855 uil=10997 uiw=21657 uis=1139 uisn=0 adc=8554 adcm=2000 adcn=0 gl=0 +[+8941ms] [PROF2] t=9028 defd=92190 defs=37462 netp=1984 netn=0 adcp=8 adcq=0 gl=0 +[+10372ms] [2026-11-07 21:33:25][ADC_TASK] frames=10000 idle=0 skip=1 seq=10006 frst_err=0 ring=9999 adc1_rc=0 adc1_err=0 adc1_seq=10005 adc1_gap=5 adc1_hw=0 tgap=1 +[+10392ms] [2026-11-07 21:33:25][ADC_TASK] phasor(hb) C01-IA-F1: Re=0 Im=0 rms=0 (x0.1) +[+10392ms] [2026-11-07 21:33:25][ADC_TASK] phasor(hb) C02-UA-F1: Re=0 Im=0 rms=0 (x0.1) +[+10403ms] [2026-11-07 21:33:25][ADC_TASK] phasor(hb) C03-UN-F1: Re=0 Im=0 rms=0 (x0.1) +[+10413ms] [2026-11-07 21:33:25][ADC_TASK] phasor(hb) C04-IA-F2: Re=0 Im=0 rms=0 (x0.1) +[+10413ms] [2026-11-07 21:33:25][ADC_TASK] phasor(hb) C05-IA-F5: Re=0 Im=0 rms=0 (x0.1) +[+10424ms] [2026-11-07 21:33:25][ADC_TASK] freq(hb): f=0 valid=0 (x0.01) +[+10434ms] [2026-11-07 21:33:25][ADC_TASK] adc: UA=-21 UB=404 UC=618 UN=-21 IA=-22 IB=0 IC=757 IN=890 T=732 +[+10434ms] [2026-11-07 21:33:25][ADC_TASK] cal: ua_mv=-3 un_mv=-3 ia_mv=-3 vl=0x00 cl=0xe6 rail=0x000 edge=0x000 +[+10445ms] [2026-11-07 21:33:25][ADC_TASK] meas: seq=50 v=1 ua_mv=0 un_mv=0 ia_mv=0 f=0 fv=0 +[+10455ms] [2026-11-07 21:33:25][ADC_TASK] wave: seg=0 armed=0 src=- pts=320 err=0 ovf=0 drop=0 +[+10465ms] [2026-11-07 21:33:25][SBLINK] rx=37 ok=37 keys=0 crc=0 len=0 fmt=0 err=1 bits=0x08 rearm=0 size=6 key=0 +[+10476ms] [2026-11-07 21:33:25][SBLINK] tx=27 done=27 drop=10 kerr=0 abor=0 fb=16 bad=0 us=674 max=676 kq=0 off=0 dfok=0 dfold=0 +[+10931ms] [PROF] t=11033 uic=707 uip=94476 uipn=9855 uil=10982 uiw=22171 uis=1139 uisn=0 adc=10557 adcm=3434 adcn=0 gl=0 +[+10941ms] [PROF2] t=11033 defd=92190 defs=37462 netp=4024 netn=0 adcp=8 adcq=0 gl=0 +[+12949ms] [PROF] t=13051 uic=889 uip=94476 uipn=5854 uil=10999 uiw=22171 uis=1155 uisn=0 adc=12575 adcm=3434 adcn=0 gl=0 +[+12959ms] [PROF2] t=13051 defd=92190 defs=37462 netp=4024 netn=0 adcp=8 adcq=0 gl=0 +[+14973ms] [PROF] t=15069 uic=1071 uip=94476 uipn=5855 uil=10981 uiw=22171 uis=1155 uisn=0 adc=14593 adcm=3434 adcn=0 gl=0 +[+14983ms] [PROF2] t=15069 defd=92190 defs=37462 netp=4024 netn=0 adcp=8 adcq=0 gl=0 +[+15472ms] [2026-11-07 21:33:30][SBLINK] rx=55 ok=55 keys=0 crc=0 len=0 fmt=0 err=1 bits=0x08 rearm=0 size=6 key=0 +[+15482ms] [2026-11-07 21:33:30][SBLINK] tx=45 done=45 drop=10 kerr=0 abor=0 fb=26 bad=0 us=513 max=676 kq=0 off=0 dfok=0 dfold=0 +[+16994ms] [PROF] t=17092 uic=1252 uip=94476 uipn=1862 uil=11000 uiw=22171 uis=1155 uisn=0 adc=16616 adcm=3434 adcn=0 gl=0 +[+17005ms] [PROF2] t=17092 defd=92190 defs=37462 netp=4024 netn=0 adcp=8 adcq=0 gl=0 +[+19016ms] [PROF] t=19110 uic=1434 uip=94476 uipn=5851 uil=10919 uiw=22171 uis=1155 uisn=0 adc=18634 adcm=3434 adcn=0 gl=0 +[+19016ms] [PROF2] t=19110 defd=92190 defs=37462 netp=4024 netn=0 adcp=8 adcq=0 gl=0 +[+20371ms] [2026-11-07 21:33:35][ADC_TASK] frames=19998 idle=0 skip=2 seq=20006 frst_err=0 ring=19996 adc1_rc=0 adc1_err=0 adc1_seq=20005 adc1_gap=8 adc1_hw=0 tgap=3 +[+20392ms] [2026-11-07 21:33:35][ADC_TASK] phasor(hb) C01-IA-F1: Re=0 Im=0 rms=0 (x0.1) +[+20392ms] [2026-11-07 21:33:35][ADC_TASK] phasor(hb) C02-UA-F1: Re=0 Im=0 rms=0 (x0.1) +[+20403ms] [2026-11-07 21:33:35][ADC_TASK] phasor(hb) C03-UN-F1: Re=0 Im=0 rms=0 (x0.1) +[+20413ms] [2026-11-07 21:33:35][ADC_TASK] phasor(hb) C04-IA-F2: Re=0 Im=0 rms=0 (x0.1) +[+20413ms] [2026-11-07 21:33:35][ADC_TASK] phasor(hb) C05-IA-F5: Re=0 Im=0 rms=0 (x0.1) +[+20424ms] [2026-11-07 21:33:35][ADC_TASK] freq(hb): f=0 valid=0 (x0.01) +[+20435ms] [2026-11-07 21:33:35][ADC_TASK] adc: UA=-22 UB=403 UC=619 UN=-22 IA=-22 IB=0 IC=761 IN=894 T=752 +[+20435ms] [2026-11-07 21:33:35][ADC_TASK] cal: ua_mv=-3 un_mv=-3 ia_mv=-3 vl=0x00 cl=0xe6 rail=0x000 edge=0x000 +[+20445ms] [2026-11-07 21:33:35][ADC_TASK] meas: seq=100 v=1 ua_mv=0 un_mv=0 ia_mv=0 f=0 fv=0 +[+20455ms] [2026-11-07 21:33:35][ADC_TASK] wave: seg=0 armed=0 src=- pts=320 err=0 ovf=0 drop=0 +[+20476ms] [2026-11-07 21:33:35][SBLINK] rx=73 ok=73 keys=0 crc=0 len=0 fmt=0 err=1 bits=0x08 rearm=0 size=6 key=0 +[+20487ms] [2026-11-07 21:33:35][SBLINK] tx=63 done=63 drop=10 kerr=0 abor=0 fb=36 bad=0 us=676 max=676 kq=0 off=0 dfok=0 dfold=0 +[+21046ms] [PROF] t=21144 uic=1608 uip=94476 uipn=10854 uil=11000 uiw=22171 uis=1155 uisn=0 adc=20666 adcm=3457 adcn=0 gl=0 +[+21056ms] [PROF2] t=21144 defd=92190 defs=37462 netp=4984 netn=0 adcp=8 adcq=0 gl=0 +[+23067ms] [PROF] t=23162 uic=1790 uip=94476 uipn=5854 uil=11000 uiw=22171 uis=1155 uisn=0 adc=22684 adcm=3457 adcn=0 gl=0 +[+23067ms] [PROF2] t=23162 defd=92190 defs=37462 netp=4984 netn=0 adcp=8 adcq=0 gl=0 +[+25081ms] [PROF] t=25180 uic=1972 uip=94476 uipn=5853 uil=11000 uiw=22171 uis=1155 uisn=0 adc=24702 adcm=3457 adcn=0 gl=0 +[+25091ms] [PROF2] t=25180 defd=92190 defs=37462 netp=4984 netn=0 adcp=8 adcq=0 gl=0 +[+25485ms] [2026-11-07 21:33:40][SBLINK] rx=91 ok=91 keys=0 crc=0 len=0 fmt=0 err=1 bits=0x08 rearm=0 size=6 key=0 +[+25495ms] [2026-11-07 21:33:40][SBLINK] tx=81 done=81 drop=10 kerr=0 abor=0 fb=46 bad=0 us=513 max=676 kq=0 off=0 dfok=0 dfold=0 +[+27110ms] [PROF] t=27205 uic=2153 uip=94476 uipn=3777 uil=11082 uiw=22171 uis=1155 uisn=0 adc=26727 adcm=3457 adcn=0 gl=0 +[+27110ms] [PROF2] t=27205 defd=92190 defs=37462 netp=4984 netn=0 adcp=8 adcq=0 gl=0 +[+29128ms] [PROF] t=29223 uic=2335 uip=94476 uipn=5854 uil=10999 uiw=22171 uis=1155 uisn=0 adc=28745 adcm=3457 adcn=0 gl=0 +[+29128ms] [PROF2] t=29223 defd=92190 defs=37462 netp=4984 netn=0 adcp=8 adcq=0 gl=0 diff --git a/docs/测试说明/测试数据/wave_bench_20261107/build_log_tails.txt b/docs/测试说明/测试数据/wave_bench_20261107/build_log_tails.txt new file mode 100644 index 00000000..29d3f4c4 --- /dev/null +++ b/docs/测试说明/测试数据/wave_bench_20261107/build_log_tails.txt @@ -0,0 +1,28 @@ +== build_log_verify.txt == +Program Size line: Program Size: Code=255292 RO-data=30992 RW-data=2080 ZI-data=150104 +linking... +Program Size: Code=255292 RO-data=30992 RW-data=2080 ZI-data=150104 +FromELF: creating hex file... +".\STM32F407-Demo\STM32F407-Demo.axf" - 0 Error(s), 0 Warning(s). +Build Time Elapsed: 00:00:16 +== build_log_fix.txt == +Program Size line: Program Size: Code=255284 RO-data=30992 RW-data=2080 ZI-data=150104 +linking... +Program Size: Code=255284 RO-data=30992 RW-data=2080 ZI-data=150104 +FromELF: creating hex file... +".\STM32F407-Demo\STM32F407-Demo.axf" - 0 Error(s), 0 Warning(s). +Build Time Elapsed: 00:00:16 +== build_log_final.txt == +Program Size line: Program Size: Code=254820 RO-data=30896 RW-data=2072 ZI-data=150104 +linking... +Program Size: Code=254820 RO-data=30896 RW-data=2072 ZI-data=150104 +FromELF: creating hex file... +".\STM32F407-Demo\STM32F407-Demo.axf" - 0 Error(s), 0 Warning(s). +Build Time Elapsed: 00:00:15 +== build_log_final2.txt == +Program Size line: Program Size: Code=254820 RO-data=30896 RW-data=2072 ZI-data=150104 +linking... +Program Size: Code=254820 RO-data=30896 RW-data=2072 ZI-data=150104 +FromELF: creating hex file... +".\STM32F407-Demo\STM32F407-Demo.axf" - 0 Error(s), 0 Warning(s). +Build Time Elapsed: 00:00:15 diff --git a/docs/测试说明/测试数据/wave_bench_20261107/final_wave_listing.txt b/docs/测试说明/测试数据/wave_bench_20261107/final_wave_listing.txt new file mode 100644 index 0000000000000000000000000000000000000000..08fc0ffc4a744eda87d7ac2bc03100ade9365e86 GIT binary patch literal 522 zcmb7=K??yv9L0ZUO&zutR3 zGA@)9oXNN`CBo3xY0{8>)f~vB9=YponTVMtCDDu-edsN7HY|yydd6=0zMte#=zq!3 z`Rr)Z;{D5d_E@lDEw!r+Mx2q0-OzDLl{bO>Adru1`Mql>S3Ca_*> relisten +[RX] 2026-11-07T21:37:09.885+08:00 [2026-11-07 21:37:09] sock0 auto-relisten ok (eof) +[RX] 2026-11-07T21:37:19.074+08:00 [2026-11-07 21:37:18][ADC_TASK] wave: seg=0 armed=0 src=- pts=320 err=0 ovf=0 drop=0 +[RX] 2026-11-07T21:37:29.070+08:00 [2026-11-07 21:37:28][ADC_TASK] wave: seg=0 armed=0 src=- pts=320 err=0 ovf=0 drop=0 +[RX] 2026-11-07T21:37:39.078+08:00 [2026-11-07 21:37:38][ADC_TASK] wave: seg=0 armed=0 src=- pts=320 err=0 ovf=0 drop=0 +[RX] 2026-11-07T21:37:49.078+08:00 [2026-11-07 21:37:48][ADC_TASK] wave: seg=0 armed=0 src=- pts=320 err=0 ovf=0 drop=0 diff --git a/docs/测试说明/测试数据/wave_bench_20261107/serial_excerpt_sweep5_f1f3.txt b/docs/测试说明/测试数据/wave_bench_20261107/serial_excerpt_sweep5_f1f3.txt new file mode 100644 index 00000000..d4981fcd --- /dev/null +++ b/docs/测试说明/测试数据/wave_bench_20261107/serial_excerpt_sweep5_f1f3.txt @@ -0,0 +1,30 @@ +# exec-issue-84 sweep5 窗口取证摘录(F1 复位异常 + F3 pack_next 留痕 + 静默自弃心跳链) +# +# 【来源声明】本文件非原始 serial.log 切片:会话用 daemon 持久日志于 21:33:07 被 +# run_boot_test 的 open+clear 步骤清空(log cleared (gen=3)),20:27–20:36 窗口的 +# 原始行未能赶在清空前整段归档。以下行为当时(20:28–20:30)从 live 日志逐字抓取 +# 进会话记录的关键行,按时间序复原;行内 [RX] 主机时戳与板载时戳均为原始值, +# 个别噪声行(xx 占位)为复原时精度缺失标注,事实与时间戳未经改写。 + +## F1:单次未复现的板载软件复位(20:28:57,无任何打印前导) +# 复位前最后一条业务线(正常抓段 WARN): +[RX] 2026-11-07T20:28:56.5xx+08:00 [2026-11-07 20:28:56] [WAVE][WARN] seg held 59 ms (idx=37) +# 约 1.1 s 后,无 [ERR]、无 ASSERT/ERROR/堆栈溢出打印,直接出现冷启动横幅: +[RX] 2026-11-07T20:28:57.xx+08:00 reset cause: software (NVIC_SystemReset) (CSR=0x14000000) +# 复位时刻无 RETR 在飞(上一条 DOWNLOAD 落账 20:28:09,下一条 20:29:31 起)。 +# 全仓四个 NVIC_SystemReset 调用点(Error_Handler / 栈溢出钩子 / ASSERT / 故障处理器) +# 均先打印后复位,本次一条都没落进日志——调用点未定。此后 6+ 个 autocap 窗、 +# 含 72.6 s 连续占卷在内未再复现,按单次未复现异常记录,不下结论(设计说明 §10 F1)。 + +## F3:落盘中途弃段留痕 pack_next(20:30:31,与 ring abandoned 同族、不同分支) +# 该刻处于 7.1 s FILLER 占卷的锁已交还、writer 抓段慢尾期: +[RX] 2026-11-07T20:30:3x+08:00 [2026-11-07 20:30:31][ERR] [WAVE] seg drop: pack_next (idx=28 written=1920) +# written=1920 B 为半程停笔(满段 5250 B):落盘途中复检判死→删文件→同号不推进, +# 与 §5.2 第四条同族竞态的「落盘中途」分支,板级首见(设计说明 §10 F3)。 + +## 静默自弃类伴行证据(同类留痕唯一性对照) +# 20:2x 窗口内 err 计数 0→1→2 两次跳变,各自对应一次被占卷覆盖封存的静默自弃: +[RX] 2026-11-07T20:28:4x+08:00 wave: seg=… src=T err=1 +[RX] 2026-11-07T20:29:4x+08:00 wave: seg=… src=T err=2 +# 全程无 [ERR][WAVE] 伴随(除 20:30:31 的 pack_next)——「err+1 静默、留痕只此一条」 +# 的静默侧实证,与 21:15:35 sweep7 命中(留痕侧)互补,两形态齐。 diff --git a/docs/测试说明/测试数据/wave_bench_20261107/serial_excerpt_sweep7_window.txt b/docs/测试说明/测试数据/wave_bench_20261107/serial_excerpt_sweep7_window.txt new file mode 100644 index 00000000..f26e9192 --- /dev/null +++ b/docs/测试说明/测试数据/wave_bench_20261107/serial_excerpt_sweep7_window.txt @@ -0,0 +1,469 @@ +[RX] 2026-11-07T21:13:00.716+08:00 [2026-11-07 21:12:59] [WAVE][WARN] seg held 60 ms (idx=97) +[RX] 2026-11-07T21:13:02.715+08:00 [2026-11-07 21:13:01] [WAVE][WARN] seg held 62 ms (idx=98) +[RX] 2026-11-07T21:13:04.708+08:00 [2026-11-07 21:13:03] [WAVE][WARN] seg held 61 ms (idx=99) +[RX] 2026-11-07T21:13:06.211+08:00 [2026-11-07 21:13:05][ADC_TASK] freq(hb): f=0 valid=0 (x0.01) +[RX] 2026-11-07T21:13:06.211+08:00 [2026-11-07 21:13:05][ADC_TASK] adc: UA=-21 UB=404 UC=609 UN=-20 IA=-20 IB=0 IC=764 IN=899 T=752 +[RX] 2026-11-07T21:13:06.221+08:00 [2026-11-07 21:13:05][ADC_TASK] cal: ua_mv=-3 un_mv=-3 ia_mv=-3 vl=0x00 cl=0xe6 rail=0x000 edge=0x000 +[RX] 2026-11-07T21:13:06.231+08:00 [2026-11-07 21:13:05][ADC_TASK] meas: seq=1100 v=1 ua_mv=0 un_mv=0 ia_mv=0 f=0 fv=0 +[RX] 2026-11-07T21:13:06.242+08:00 [2026-11-07 21:13:05][ADC_TASK] wave: seg=99 armed=0 src=T pts=320 err=1 ovf=10 drop=240680 +[RX] 2026-11-07T21:13:06.707+08:00 [2026-11-07 21:13:05] [WAVE][WARN] seg held 59 ms (idx=0) +[RX] 2026-11-07T21:13:08.701+08:00 [2026-11-07 21:13:07] [WAVE][WARN] seg held 64 ms (idx=1) +[RX] 2026-11-07T21:13:10.694+08:00 [2026-11-07 21:13:09] [WAVE][WARN] seg held 67 ms (idx=2) +[RX] 2026-11-07T21:13:12.682+08:00 [2026-11-07 21:13:11] [WAVE][WARN] seg held 62 ms (idx=3) +[RX] 2026-11-07T21:13:14.723+08:00 [2026-11-07 21:13:13] [WAVE][WARN] seg held 63 ms (idx=4) +[RX] 2026-11-07T21:13:16.212+08:00 [2026-11-07 21:13:15][ADC_TASK] freq(hb): f=0 valid=0 (x0.01) +[RX] 2026-11-07T21:13:16.212+08:00 [2026-11-07 21:13:15][ADC_TASK] adc: UA=-21 UB=404 UC=608 UN=-20 IA=-21 IB=0 IC=763 IN=900 T=750 +[RX] 2026-11-07T21:13:16.222+08:00 [2026-11-07 21:13:15][ADC_TASK] cal: ua_mv=-3 un_mv=-3 ia_mv=-3 vl=0x00 cl=0xe6 rail=0x000 edge=0x000 +[RX] 2026-11-07T21:13:16.233+08:00 [2026-11-07 21:13:15][ADC_TASK] meas: seq=1150 v=1 ua_mv=0 un_mv=0 ia_mv=0 f=0 fv=0 +[RX] 2026-11-07T21:13:16.233+08:00 [2026-11-07 21:13:15][ADC_TASK] wave: seg=104 armed=0 src=T pts=320 err=1 ovf=10 drop=244008 +[RX] 2026-11-07T21:13:16.709+08:00 [2026-11-07 21:13:15] [WAVE][WARN] seg held 65 ms (idx=5) +[RX] 2026-11-07T21:13:18.721+08:00 [2026-11-07 21:13:17] [WAVE][WARN] seg held 63 ms (idx=6) +[RX] 2026-11-07T21:13:20.698+08:00 [2026-11-07 21:13:19] [WAVE][WARN] seg held 60 ms (idx=7) +[RX] 2026-11-07T21:13:22.702+08:00 [2026-11-07 21:13:21] [WAVE][WARN] seg held 63 ms (idx=8) +[RX] 2026-11-07T21:13:24.687+08:00 [2026-11-07 21:13:23] [WAVE][WARN] seg held 60 ms (idx=9) +[RX] 2026-11-07T21:13:26.204+08:00 [2026-11-07 21:13:25][ADC_TASK] freq(hb): f=0 valid=0 (x0.01) +[RX] 2026-11-07T21:13:26.215+08:00 [2026-11-07 21:13:25][ADC_TASK] adc: UA=-20 UB=405 UC=610 UN=-21 IA=-20 IB=0 IC=763 IN=898 T=751 +[RX] 2026-11-07T21:13:26.225+08:00 [2026-11-07 21:13:25][ADC_TASK] cal: ua_mv=-3 un_mv=-3 ia_mv=-3 vl=0x00 cl=0xe6 rail=0x000 edge=0x000 +[RX] 2026-11-07T21:13:26.225+08:00 [2026-11-07 21:13:25][ADC_TASK] meas: seq=1200 v=1 ua_mv=0 un_mv=0 ia_mv=0 f=0 fv=0 +[RX] 2026-11-07T21:13:26.235+08:00 [2026-11-07 21:13:25][ADC_TASK] wave: seg=109 armed=0 src=T pts=320 err=1 ovf=10 drop=247464 +[RX] 2026-11-07T21:13:26.711+08:00 [2026-11-07 21:13:25] [WAVE][WARN] seg held 65 ms (idx=10) +[RX] 2026-11-07T21:13:28.724+08:00 [2026-11-07 21:13:27] [WAVE][WARN] seg held 59 ms (idx=11) +[RX] 2026-11-07T21:13:30.711+08:00 [2026-11-07 21:13:29] [WAVE][WARN] seg held 60 ms (idx=12) +[RX] 2026-11-07T21:13:32.683+08:00 [2026-11-07 21:13:31] [WAVE][WARN] seg held 61 ms (idx=13) +[RX] 2026-11-07T21:13:34.723+08:00 [2026-11-07 21:13:33] [WAVE][WARN] seg held 63 ms (idx=14) +[RX] 2026-11-07T21:13:36.205+08:00 [2026-11-07 21:13:35][ADC_TASK] freq(hb): f=0 valid=0 (x0.01) +[RX] 2026-11-07T21:13:36.215+08:00 [2026-11-07 21:13:35][ADC_TASK] adc: UA=-21 UB=403 UC=609 UN=-20 IA=-20 IB=0 IC=763 IN=897 T=750 +[RX] 2026-11-07T21:13:36.215+08:00 [2026-11-07 21:13:35][ADC_TASK] cal: ua_mv=-3 un_mv=-3 ia_mv=-3 vl=0x00 cl=0xe6 rail=0x000 edge=0x000 +[RX] 2026-11-07T21:13:36.226+08:00 [2026-11-07 21:13:35][ADC_TASK] meas: seq=1250 v=1 ua_mv=0 un_mv=0 ia_mv=0 f=0 fv=0 +[RX] 2026-11-07T21:13:36.236+08:00 [2026-11-07 21:13:35][ADC_TASK] wave: seg=114 armed=0 src=T pts=320 err=1 ovf=10 drop=251080 +[RX] 2026-11-07T21:13:36.724+08:00 [2026-11-07 21:13:35] [WAVE][WARN] seg held 60 ms (idx=15) +[RX] 2026-11-07T21:13:38.682+08:00 [2026-11-07 21:13:37] [WAVE][WARN] seg held 62 ms (idx=16) +[RX] 2026-11-07T21:13:40.719+08:00 [2026-11-07 21:13:39] [WAVE][WARN] seg held 60 ms (idx=17) +[RX] 2026-11-07T21:13:42.704+08:00 [2026-11-07 21:13:41] [WAVE][WARN] seg held 64 ms (idx=18) +[RX] 2026-11-07T21:13:44.320+08:00 [2026-11-07 21:13:43][SNTP] off=547ms within deadband, no step +[RX] 2026-11-07T21:13:44.548+08:00 [2026-11-07 21:13:43] [STACK] default peak_used=2188/5120 free_min=2932 (57%) +[RX] 2026-11-07T21:13:44.559+08:00 [2026-11-07 21:13:43] [STACK] net peak_used=1188/3840 free_min=2652 (69%) +[RX] 2026-11-07T21:13:44.559+08:00 [2026-11-07 21:13:43] [STACK] ftp peak_used=2300/4096 free_min=1796 (43%) +[RX] 2026-11-07T21:13:44.569+08:00 [2026-11-07 21:13:43] [STACK] ui peak_used=4204/16384 free_min=12180 (74%) +[RX] 2026-11-07T21:13:44.580+08:00 [2026-11-07 21:13:43] [STACK] timesync peak_used=952/2560 free_min=1608 (62%) +[RX] 2026-11-07T21:13:44.590+08:00 [2026-11-07 21:13:43] [STACK] adc peak_used=1000/2560 free_min=1560 (60%) +[RX] 2026-11-07T21:13:44.590+08:00 [2026-11-07 21:13:43] [STACK] iec104 peak_used=544/2560 free_min=2016 (78%) +[RX] 2026-11-07T21:13:44.600+08:00 [2026-11-07 21:13:43] [STACK] protect peak_used=828/2048 free_min=1220 (59%) +[RX] 2026-11-07T21:13:44.600+08:00 [2026-11-07 21:13:43] [STACK] heap free=15624 min_ever=8464 +[RX] 2026-11-07T21:13:44.725+08:00 [2026-11-07 21:13:43] [WAVE][WARN] seg held 59 ms (idx=19) +[RX] 2026-11-07T21:13:46.207+08:00 [2026-11-07 21:13:45][ADC_TASK] freq(hb): f=0 valid=0 (x0.01) +[RX] 2026-11-07T21:13:46.207+08:00 [2026-11-07 21:13:45][ADC_TASK] adc: UA=-21 UB=404 UC=609 UN=-20 IA=-20 IB=0 IC=763 IN=898 T=751 +[RX] 2026-11-07T21:13:46.217+08:00 [2026-11-07 21:13:45][ADC_TASK] cal: ua_mv=-3 un_mv=-3 ia_mv=-3 vl=0x00 cl=0xe6 rail=0x000 edge=0x000 +[RX] 2026-11-07T21:13:46.228+08:00 [2026-11-07 21:13:45][ADC_TASK] meas: seq=1300 v=1 ua_mv=0 un_mv=0 ia_mv=0 f=0 fv=0 +[RX] 2026-11-07T21:13:46.238+08:00 [2026-11-07 21:13:45][ADC_TASK] wave: seg=119 armed=0 src=T pts=320 err=1 ovf=10 drop=254800 +[RX] 2026-11-07T21:13:46.724+08:00 [2026-11-07 21:13:45] [WAVE][WARN] seg held 60 ms (idx=20) +[RX] 2026-11-07T21:13:48.706+08:00 [2026-11-07 21:13:47] [WAVE][WARN] seg held 61 ms (idx=21) +[RX] 2026-11-07T21:13:50.698+08:00 [2026-11-07 21:13:49] [WAVE][WARN] seg held 62 ms (idx=22) +[RX] 2026-11-07T21:13:52.638+08:00 [----/--/-- --:--:--][APP] boot: syslog init OK +[RX] 2026-11-07T21:13:52.638+08:00 [----/--/-- --:--:--][APP] fw build: Nov 7 2026 19:15:10 suite=NONE dstr=off +[RX] 2026-11-07T21:13:52.649+08:00 [----/--/-- --:--:--][APP] reset cause: software (NVIC_SystemReset) (CSR=0x14000000) +[RX] 2026-11-07T21:13:52.649+08:00 PREVRUN seg=2 seq=2100979038 t=266652 +[RX] 2026-11-07T21:13:52.659+08:00 TICKRUN uw=266674 n=266674 duw=22 +[RX] 2026-11-07T21:13:52.659+08:00 [----/--/-- --:--:--][RTC] sd2506_init: OK +[RX] 2026-11-07T21:13:52.669+08:00 [----/--/-- --:--:--][APP] SD2506 init: OK (ret=0) +[RX] 2026-11-07T21:13:52.680+08:00 [2026-11-07 21:13:52][CLK] sys_clock_init: RTC initial time 2026-11-07 21:13:52 +[RX] 2026-11-07T21:13:52.680+08:00 [2026-11-07 21:13:52][CLK] sys_clock_init: wall clock base = unix 1794086032, base_tick=142 +[RX] 2026-11-07T21:13:52.690+08:00 [2026-11-07 21:13:52][APP] RS485 init: OK (UART4, DE=PA15) +[RX] 2026-11-07T21:13:52.701+08:00 [2026-11-07 21:13:52][APP] ScreenLink init: OK (ret=0, USART1 700000 baud, BRR=0x0078) +[RX] 2026-11-07T21:13:52.711+08:00 [2026-11-07 21:13:52][NAND] Resetting NAND... +[RX] 2026-11-07T21:13:52.732+08:00 [2026-11-07 21:13:52][NAND] Reading NAND ID... +[RX] 2026-11-07T21:13:52.732+08:00 [2026-11-07 21:13:52][NAND] NAND ID: MID=0xC8, DID=0x52 +[RX] 2026-11-07T21:13:52.743+08:00 [2026-11-07 21:13:52][NAND] Scanning bad blocks... +[RX] 2026-11-07T21:13:52.878+08:00 [2026-11-07 21:13:52][NAND] BBT scan: 0 bad blocks found +[RX] 2026-11-07T21:13:52.878+08:00 [2026-11-07 21:13:52][NAND] Enabling ECC... +[RX] 2026-11-07T21:13:52.878+08:00 [2026-11-07 21:13:52][NAND] Unlocking block protection... +[RX] 2026-11-07T21:13:52.888+08:00 [2026-11-07 21:13:52][NAND] Locating BBT pool... +[RX] 2026-11-07T21:13:52.888+08:00 [2026-11-07 21:13:52][NAND] Loading persisted BBT... +[RX] 2026-11-07T21:13:52.899+08:00 [2026-11-07 21:13:52][NAND] NAND init OK +[RX] 2026-11-07T21:13:52.899+08:00 [2026-11-07 21:13:52][APP] NAND init: OK +[RX] 2026-11-07T21:13:52.909+08:00 [2026-11-07 21:13:52][ADC] Init OK +[RX] 2026-11-07T21:13:52.909+08:00 [2026-11-07 21:13:52][APP] ADC init: OK +[RX] 2026-11-07T21:13:52.909+08:00 [2026-11-07 21:13:52][APP] ADC input layer init: OK +[RX] 2026-11-07T21:13:52.919+08:00 [2026-11-07 21:13:52][APP] freq layer init: OK +[RX] 2026-11-07T21:13:52.930+08:00 [2026-11-07 21:13:52][CFG] register: section 'adc_cal' (9 keys) +[RX] 2026-11-07T21:13:52.930+08:00 [2026-11-07 21:13:52][CFG] register: section 'adc_cal_ofs' (8 keys) +[RX] 2026-11-07T21:13:52.941+08:00 [2026-11-07 21:13:52][APP] adc cal init: OK (k_q16 tpafe=10000000 stm32=52800000) +[RX] 2026-11-07T21:13:52.951+08:00 [2026-11-07 21:13:52][CFG] register: section 'run_par' (9 keys) +[RX] 2026-11-07T21:13:52.951+08:00 [2026-11-07 21:13:52][APP] run par init: OK (db9 k/b via adc_cal, evt=1<<8) +[RX] 2026-11-07T21:13:52.961+08:00 [2026-11-07 21:13:52][CFG] register: section 'comm' (2 keys) +[RX] 2026-11-07T21:13:52.961+08:00 [2026-11-07 21:13:52][APP] comm init: OK (ca=1 port=2404) +[RX] 2026-11-07T21:13:52.972+08:00 [2026-11-07 21:13:52][APP] protection init: OK (set=40 elm=9) +[RX] 2026-11-07T21:13:52.982+08:00 [2026-11-07 21:13:52][APP] SD2506 ID: 2512153425482405 +[RX] 2026-11-07T21:13:52.982+08:00 [2026-11-07 21:13:52][APP] SD2506 time: 2026-11-07 21:13:52 (week 6) +[RX] 2026-11-07T21:13:52.993+08:00 [2026-11-07 21:13:52][APP] SD2506 temp: 23 C +[RX] 2026-11-07T21:13:52.993+08:00 [2026-11-07 21:13:52][APP] SD2506 battery: 3.12 V +[RX] 2026-11-07T21:13:53.003+08:00 [2026-11-07 21:13:52][APP] App init OK +[RX] 2026-11-07T21:13:53.003+08:00 [2026-11-07 21:13:52][NAND_FTL] Initializing NAND FTL... +[RX] 2026-11-07T21:13:53.138+08:00 [2026-11-07 21:13:52][NAND_FTL] Map resumed: 46942/93232 sectors used +[RX] 2026-11-07T21:13:53.148+08:00 [2026-11-07 21:13:52][NAND_FTL] Map head=31888 tail=90356 epoch=8 +[RX] 2026-11-07T21:13:53.148+08:00 [2026-11-07 21:13:52][NAND_FTL] NAND FTL ready (capacity: 93232 pages = 182 MB) +[RX] 2026-11-07T21:13:53.231+08:00 [2026-11-07 21:13:52] [FS] FATFS mounted +[RX] 2026-11-07T21:13:53.294+08:00 [2026-11-07 21:13:52][SYSLOG] runlog boot entry: reboot +[RX] 2026-11-07T21:13:53.294+08:00 [2026-11-07 21:13:52][CFG] register: section 'network' (4 keys) +[RX] 2026-11-07T21:13:53.305+08:00 [2026-11-07 21:13:52][CFG] register: section 'ftp' (3 keys) +[RX] 2026-11-07T21:13:53.315+08:00 [2026-11-07 21:13:52][CFG] register: section 'sntp' (4 keys) +[RX] 2026-11-07T21:13:53.326+08:00 [2026-11-07 21:13:52][CFG] load: OK (1064B, heap free 16552B) +[RX] 2026-11-07T21:13:53.326+08:00 [2026-11-07 21:13:52][NET_CFG] load: OK ip=192.168.31.100 +[RX] 2026-11-07T21:13:53.336+08:00 [2026-11-07 21:13:52] [CFG] prot set loaded (/prot_set.bin) +[RX] 2026-11-07T21:13:53.357+08:00 [2026-11-07 21:13:52][ADC_TASK] [WARN] wave bench autocap ON: 1 seg / 2000 ms, auto-stop 300 s (BENCH BUILD ONLY) +[RX] 2026-11-07T21:13:53.368+08:00 [2026-11-07 21:13:52][ADC_TASK] first: UA=-17 UB=404 UC=594 UN=-17 IA=-17 IB=0 IC=763 IN=899 T=747 +[RX] 2026-11-07T21:13:53.410+08:00 [2026-11-07 21:13:52][ADC_TASK] freq(first): f=0 valid=0 (x0.01) +[RX] 2026-11-07T21:13:53.420+08:00 [2026-11-07 21:13:52][PROT] protect task start: cycle=20ms elm=9 +[RX] 2026-11-07T21:13:53.420+08:00 [2026-11-07 21:13:52][NET_TASK] === Network Init === +[RX] 2026-11-07T21:13:53.431+08:00 [2026-11-07 21:13:52][NET] ch395f ver=0x4A fun_para=0x08 +[RX] 2026-11-07T21:13:53.431+08:00 [2026-11-07 21:13:52][NET_TASK] net init: OK +[RX] 2026-11-07T21:13:53.441+08:00 MISS start snap=0x000001E7 req=0x000001F7 t=906 +[RX] 2026-11-07T21:13:53.441+08:00 [2026-11-07 21:13:52][WD] [WD] armed: timeout ~2498ms (worst ~1701ms), miss_tol=800ms +[RX] 2026-11-07T21:13:53.452+08:00 [2026-11-07 21:13:52][NET_TASK] MAC: 3C:AB:72:53:2B:12 +[RX] 2026-11-07T21:13:53.567+08:00 [2026-11-07 21:13:52][NET_TASK] IP_INF: IP=192.168.31.100 GW=192.168.31.1 MASK=255.255.255.0 +[RX] 2026-11-07T21:13:53.577+08:00 [2026-11-07 21:13:52] [WAVE][WARN] seg held 79 ms (idx=1) +[RX] 2026-11-07T21:13:53.577+08:00 [2026-11-07 21:13:52][UI_TASK] UI task: started, wait net ready +[RX] 2026-11-07T21:13:55.414+08:00 [2026-11-07 21:13:54][NET_TASK] PHY: 100M FULL +[RX] 2026-11-07T21:13:55.424+08:00 [2026-11-07 21:13:54][NET_TASK] netTask: started (single-socket mode) +[RX] 2026-11-07T21:13:55.455+08:00 [2026-11-07 21:13:54][ERR][I104] i104: bind port 2404 FAIL, retry in loop +[RX] 2026-11-07T21:13:55.497+08:00 [2026-11-07 21:13:54] [FTP] using factory default password +[RX] 2026-11-07T21:13:55.497+08:00 [2026-11-07 21:13:54] [FTP] waiting for connection... +[RX] 2026-11-07T21:13:55.570+08:00 [2026-11-07 21:13:54] [WAVE][WARN] seg held 65 ms (idx=2) +[RX] 2026-11-07T21:13:55.570+08:00 [2026-11-07 21:13:54][UI_TASK] UI task: net ready, init port +[RX] 2026-11-07T21:13:55.580+08:00 [2026-11-07 21:13:54][UI_TASK] UI task: ui_port_init enter +[RX] 2026-11-07T21:13:55.591+08:00 [2026-11-07 21:13:54][UI_PORT] theme: mono dark_bg=true applied +[RX] 2026-11-07T21:13:55.591+08:00 [2026-11-07 21:13:54][UI_TASK] UI port init: OK +[RX] 2026-11-07T21:13:55.601+08:00 MISS start snap=0x000001E7 req=0x000001F7 t=3067 +[RX] 2026-11-07T21:13:55.622+08:00 [2026-11-07 21:13:54][UI_TASK] UI task: ui_menu_init enter +[RX] 2026-11-07T21:13:55.622+08:00 [2026-11-07 21:13:54][UI_MENU] menu build start: total=15136 free=12692 big=12692 +[RX] 2026-11-07T21:13:55.632+08:00 [2026-11-07 21:13:54][UI_MENU_VIEW] view init: root frame w=66 h=107 +[RX] 2026-11-07T21:13:55.642+08:00 [2026-11-07 21:13:54][UI_MENU] menu build done: total=15020 free=11828 big=11816 used=3192 +[RX] 2026-11-07T21:13:55.653+08:00 [2026-11-07 21:13:54][UI_TASK] UI menu init: OK +[RX] 2026-11-07T21:13:55.653+08:00 [2026-11-07 21:13:54][UI_STANDBY] standby: ready (idle=60000ms) +[RX] 2026-11-07T21:13:55.663+08:00 [2026-11-07 21:13:54][UI_TASK] UI standby: ready (idle=60s) +[RX] 2026-11-07T21:13:55.715+08:00 [2026-11-07 21:13:55][UI_TASK] UI net sink: started (port 7003) +[RX] 2026-11-07T21:13:57.598+08:00 [2026-11-07 21:13:56] [WAVE][WARN] seg held 63 ms (idx=3) +[RX] 2026-11-07T21:13:58.024+08:00 [2026-11-07 21:13:57] [STACK] default peak_used=2188/5120 free_min=2932 (57%) +[RX] 2026-11-07T21:13:58.034+08:00 [2026-11-07 21:13:57] [STACK] net peak_used=1116/3840 free_min=2724 (70%) +[RX] 2026-11-07T21:13:58.034+08:00 [2026-11-07 21:13:57] [STACK] ftp peak_used=764/4096 free_min=3332 (81%) +[RX] 2026-11-07T21:13:58.045+08:00 [2026-11-07 21:13:57] [STACK] ui peak_used=4204/16384 free_min=12180 (74%) +[RX] 2026-11-07T21:13:58.055+08:00 [2026-11-07 21:13:57] [STACK] timesync peak_used=476/2560 free_min=2084 (81%) +[RX] 2026-11-07T21:13:58.055+08:00 [2026-11-07 21:13:57] [STACK] adc peak_used=1000/2560 free_min=1560 (60%) +[RX] 2026-11-07T21:13:58.066+08:00 [2026-11-07 21:13:57] [STACK] iec104 peak_used=540/2560 free_min=2020 (78%) +[RX] 2026-11-07T21:13:58.076+08:00 [2026-11-07 21:13:57] [STACK] protect peak_used=540/2048 free_min=1508 (73%) +[RX] 2026-11-07T21:13:58.076+08:00 [2026-11-07 21:13:57] [STACK] heap free=15624 min_ever=8464 +[RX] 2026-11-07T21:13:59.614+08:00 [2026-11-07 21:13:58] [WAVE][WARN] seg held 67 ms (idx=4) +[RX] 2026-11-07T21:14:01.600+08:00 [2026-11-07 21:14:00] [WAVE][WARN] seg held 64 ms (idx=5) +[RX] 2026-11-07T21:14:03.061+08:00 [2026-11-07 21:14:02][ADC_TASK] freq(hb): f=0 valid=0 (x0.01) +[RX] 2026-11-07T21:14:03.061+08:00 [2026-11-07 21:14:02][ADC_TASK] adc: UA=-21 UB=404 UC=617 UN=-20 IA=-21 IB=0 IC=771 IN=882 T=752 +[RX] 2026-11-07T21:14:03.071+08:00 [2026-11-07 21:14:02][ADC_TASK] cal: ua_mv=-3 un_mv=-3 ia_mv=-3 vl=0x00 cl=0xe6 rail=0x000 edge=0x000 +[RX] 2026-11-07T21:14:03.082+08:00 [2026-11-07 21:14:02][ADC_TASK] meas: seq=50 v=1 ua_mv=0 un_mv=0 ia_mv=0 f=0 fv=0 +[RX] 2026-11-07T21:14:03.082+08:00 [2026-11-07 21:14:02][ADC_TASK] wave: seg=5 armed=0 src=T pts=320 err=0 ovf=0 drop=6024 +[RX] 2026-11-07T21:14:03.092+08:00 [2026-11-07 21:14:02][PROT] elm UV-UA asserted=1 picked=1 +[RX] 2026-11-07T21:14:03.581+08:00 [2026-11-07 21:14:02] [WAVE][WARN] seg held 69 ms (idx=6) +[RX] 2026-11-07T21:14:04.109+08:00 [2026-11-07 21:14:03] [STACK] default peak_used=2188/5120 free_min=2932 (57%) +[RX] 2026-11-07T21:14:04.109+08:00 [2026-11-07 21:14:03] [STACK] net peak_used=1116/3840 free_min=2724 (70%) +[RX] 2026-11-07T21:14:04.119+08:00 [2026-11-07 21:14:03] [STACK] ftp peak_used=764/4096 free_min=3332 (81%) +[RX] 2026-11-07T21:14:04.129+08:00 [2026-11-07 21:14:03] [STACK] ui peak_used=4204/16384 free_min=12180 (74%) +[RX] 2026-11-07T21:14:04.129+08:00 [2026-11-07 21:14:03] [STACK] timesync peak_used=476/2560 free_min=2084 (81%) +[RX] 2026-11-07T21:14:04.140+08:00 [2026-11-07 21:14:03] [STACK] adc peak_used=1000/2560 free_min=1560 (60%) +[RX] 2026-11-07T21:14:04.151+08:00 [2026-11-07 21:14:03] [STACK] iec104 peak_used=540/2560 free_min=2020 (78%) +[RX] 2026-11-07T21:14:04.151+08:00 [2026-11-07 21:14:03] [STACK] protect peak_used=624/2048 free_min=1424 (69%) +[RX] 2026-11-07T21:14:04.161+08:00 [2026-11-07 21:14:03] [STACK] heap free=15624 min_ever=8464 +[RX] 2026-11-07T21:14:05.579+08:00 [2026-11-07 21:14:04] [WAVE][WARN] seg held 64 ms (idx=7) +[RX] 2026-11-07T21:14:07.578+08:00 [2026-11-07 21:14:06] [WAVE][WARN] seg held 65 ms (idx=8) +[RX] 2026-11-07T21:14:09.585+08:00 [2026-11-07 21:14:08] [WAVE][WARN] seg held 62 ms (idx=9) +[RX] 2026-11-07T21:14:11.572+08:00 [2026-11-07 21:14:10] [WAVE][WARN] seg held 64 ms (idx=10) +[RX] 2026-11-07T21:14:13.053+08:00 [2026-11-07 21:14:12][ADC_TASK] freq(hb): f=0 valid=0 (x0.01) +[RX] 2026-11-07T21:14:13.063+08:00 [2026-11-07 21:14:12][ADC_TASK] adc: UA=-21 UB=404 UC=611 UN=-21 IA=-20 IB=0 IC=772 IN=848 T=759 +[RX] 2026-11-07T21:14:13.073+08:00 [2026-11-07 21:14:12][ADC_TASK] cal: ua_mv=-3 un_mv=-3 ia_mv=-3 vl=0x00 cl=0xe6 rail=0x000 edge=0x000 +[RX] 2026-11-07T21:14:13.084+08:00 [2026-11-07 21:14:12][ADC_TASK] meas: seq=100 v=1 ua_mv=0 un_mv=0 ia_mv=0 f=0 fv=0 +[RX] 2026-11-07T21:14:13.084+08:00 [2026-11-07 21:14:12][ADC_TASK] wave: seg=10 armed=0 src=T pts=320 err=0 ovf=0 drop=8960 +[RX] 2026-11-07T21:14:13.228+08:00 [2026-11-07 21:14:12][NET] sock1 standalone accept +[RX] 2026-11-07T21:14:13.259+08:00 [2026-11-07 21:14:12] [FTP] connection received from 192.168.31.161:60724... +[RX] 2026-11-07T21:14:13.269+08:00 [2026-11-07 21:14:12] [FTP] CMD USER admin +[RX] 2026-11-07T21:14:13.269+08:00 [2026-11-07 21:14:12] [FTP] CMD PASS admin +[RX] 2026-11-07T21:14:13.280+08:00 [2026-11-07 21:14:12] [FTP] CMD TYPE I +[RX] 2026-11-07T21:14:13.290+08:00 [2026-11-07 21:14:12] [FTP] CMD PASV +[RX] 2026-11-07T21:14:13.332+08:00 [2026-11-07 21:14:12][NET] sock3 standalone accept +[RX] 2026-11-07T21:14:13.353+08:00 [2026-11-07 21:14:12] [FTP] CMD RETR /FILL3.BIN +[RX] 2026-11-07T21:14:14.287+08:00 [2026-11-07 21:14:13] [STACK] default peak_used=2188/5120 free_min=2932 (57%) +[RX] 2026-11-07T21:14:14.287+08:00 [2026-11-07 21:14:13] [STACK] net peak_used=1116/3840 free_min=2724 (70%) +[RX] 2026-11-07T21:14:14.298+08:00 [2026-11-07 21:14:13] [STACK] ftp peak_used=2028/4096 free_min=2068 (50%) +[RX] 2026-11-07T21:14:14.308+08:00 [2026-11-07 21:14:13] [STACK] ui peak_used=4204/16384 free_min=12180 (74%) +[RX] 2026-11-07T21:14:14.308+08:00 [2026-11-07 21:14:13] [STACK] timesync peak_used=476/2560 free_min=2084 (81%) +[RX] 2026-11-07T21:14:14.319+08:00 [2026-11-07 21:14:13] [STACK] adc peak_used=1000/2560 free_min=1560 (60%) +[RX] 2026-11-07T21:14:14.329+08:00 [2026-11-07 21:14:13] [STACK] iec104 peak_used=540/2560 free_min=2020 (78%) +[RX] 2026-11-07T21:14:14.340+08:00 [2026-11-07 21:14:13] [STACK] protect peak_used=624/2048 free_min=1424 (69%) +[RX] 2026-11-07T21:14:14.350+08:00 [2026-11-07 21:14:13] [STACK] heap free=15600 min_ever=8464 +[RX] 2026-11-07T21:14:14.454+08:00 MISS start snap=0x00000177 req=0x000001F7 t=21918 +[RX] 2026-11-07T21:14:15.593+08:00 [2026-11-07 21:14:14] [FTP] DOWNLOAD '/FILL3.BIN' OK +[RX] 2026-11-07T21:14:15.603+08:00 [2026-11-07 21:14:14] [FTP] CMD QUIT +[RX] 2026-11-07T21:14:15.603+08:00 [2026-11-07 21:14:14][NET] sock1 DISCONNECTED, releasing (chip st=0x05/0x00) +[RX] 2026-11-07T21:14:15.614+08:00 [2026-11-07 21:14:14] [FTP] waiting for connection... +[RX] 2026-11-07T21:14:15.635+08:00 [2026-11-07 21:14:14] sock1 relisten settle (sock=0x00 tcp=0x00) +[RX] 2026-11-07T21:14:15.645+08:00 MISS start snap=0x000001E7 req=0x000001F7 t=23112 +[RX] 2026-11-07T21:14:15.800+08:00 [2026-11-07 21:14:15] sock1 auto-relisten ok (accept) +[RX] 2026-11-07T21:14:15.800+08:00 [2026-11-07 21:14:15][NET] sock1 reconcile: chip not listening (0x00/0xFF, was state=3) -> relisten +[RX] 2026-11-07T21:14:16.286+08:00 [2026-11-07 21:14:15] [STACK] default peak_used=2188/5120 free_min=2932 (57%) +[RX] 2026-11-07T21:14:16.286+08:00 [2026-11-07 21:14:15] [STACK] net peak_used=1120/3840 free_min=2720 (70%) +[RX] 2026-11-07T21:14:16.297+08:00 [2026-11-07 21:14:15] [STACK] ftp peak_used=2028/4096 free_min=2068 (50%) +[RX] 2026-11-07T21:14:16.307+08:00 [2026-11-07 21:14:15] [STACK] ui peak_used=4204/16384 free_min=12180 (74%) +[RX] 2026-11-07T21:14:16.307+08:00 [2026-11-07 21:14:15] [STACK] timesync peak_used=476/2560 free_min=2084 (81%) +[RX] 2026-11-07T21:14:16.318+08:00 [2026-11-07 21:14:15] [STACK] adc peak_used=1000/2560 free_min=1560 (60%) +[RX] 2026-11-07T21:14:16.328+08:00 [2026-11-07 21:14:15] [STACK] iec104 peak_used=540/2560 free_min=2020 (78%) +[RX] 2026-11-07T21:14:16.328+08:00 [2026-11-07 21:14:15] [STACK] protect peak_used=624/2048 free_min=1424 (69%) +[RX] 2026-11-07T21:14:16.338+08:00 [2026-11-07 21:14:15] [STACK] heap free=15624 min_ever=8464 +[RX] 2026-11-07T21:14:17.612+08:00 [2026-11-07 21:14:16] [WAVE][WARN] seg held 64 ms (idx=11) +[RX] 2026-11-07T21:14:18.327+08:00 [2026-11-07 21:14:17] [STACK] default peak_used=2188/5120 free_min=2932 (57%) +[RX] 2026-11-07T21:14:18.338+08:00 [2026-11-07 21:14:17] [STACK] net peak_used=1120/3840 free_min=2720 (70%) +[RX] 2026-11-07T21:14:18.338+08:00 [2026-11-07 21:14:17] [STACK] ftp peak_used=2028/4096 free_min=2068 (50%) +[RX] 2026-11-07T21:14:18.348+08:00 [2026-11-07 21:14:17] [STACK] ui peak_used=4204/16384 free_min=12180 (74%) +[RX] 2026-11-07T21:14:18.359+08:00 [2026-11-07 21:14:17] [STACK] timesync peak_used=476/2560 free_min=2084 (81%) +[RX] 2026-11-07T21:14:18.369+08:00 [2026-11-07 21:14:17] [STACK] adc peak_used=1000/2560 free_min=1560 (60%) +[RX] 2026-11-07T21:14:18.369+08:00 [2026-11-07 21:14:17] [STACK] iec104 peak_used=544/2560 free_min=2016 (78%) +[RX] 2026-11-07T21:14:18.379+08:00 [2026-11-07 21:14:17] [STACK] protect peak_used=624/2048 free_min=1424 (69%) +[RX] 2026-11-07T21:14:18.390+08:00 [2026-11-07 21:14:17] [STACK] heap free=15624 min_ever=8464 +[RX] 2026-11-07T21:14:19.611+08:00 [2026-11-07 21:14:18] [WAVE][WARN] seg held 62 ms (idx=12) +[RX] 2026-11-07T21:14:21.235+08:00 [2026-11-07 21:14:20][NET] sock1 standalone accept +[RX] 2026-11-07T21:14:21.246+08:00 [2026-11-07 21:14:20] [FTP] connection received from 192.168.31.161:50978... +[RX] 2026-11-07T21:14:21.267+08:00 [2026-11-07 21:14:20] [FTP] CMD USER admin +[RX] 2026-11-07T21:14:21.267+08:00 [2026-11-07 21:14:20] [FTP] CMD PASS admin +[RX] 2026-11-07T21:14:21.277+08:00 [2026-11-07 21:14:20] [FTP] CMD TYPE I +[RX] 2026-11-07T21:14:21.277+08:00 [2026-11-07 21:14:20] [FTP] CMD PASV +[RX] 2026-11-07T21:14:21.329+08:00 [2026-11-07 21:14:20][NET] sock3 standalone accept +[RX] 2026-11-07T21:14:21.340+08:00 [2026-11-07 21:14:20] [FTP] CMD RETR /FILL3.BIN +[RX] 2026-11-07T21:14:23.059+08:00 [2026-11-07 21:14:22][ADC_TASK] freq(hb): f=0 valid=0 (x0.01) +[RX] 2026-11-07T21:14:23.070+08:00 [2026-11-07 21:14:22][ADC_TASK] adc: UA=-21 UB=405 UC=611 UN=-21 IA=-20 IB=0 IC=769 IN=836 T=757 +[RX] 2026-11-07T21:14:23.081+08:00 [2026-11-07 21:14:22][ADC_TASK] cal: ua_mv=-3 un_mv=-3 ia_mv=-3 vl=0x00 cl=0xe6 rail=0x000 edge=0x000 +[RX] 2026-11-07T21:14:23.092+08:00 [2026-11-07 21:14:22][ADC_TASK] meas: seq=150 v=1 ua_mv=0 un_mv=0 ia_mv=0 f=0 fv=0 +[RX] 2026-11-07T21:14:23.092+08:00 [2026-11-07 21:14:22][ADC_TASK] wave: seg=12 armed=1 src=T pts=320 err=1 ovf=1 drop=38656 +[RX] 2026-11-07T21:14:23.610+08:00 [2026-11-07 21:14:22] [FTP] DOWNLOAD '/FILL3.BIN' OK +[RX] 2026-11-07T21:14:23.620+08:00 [2026-11-07 21:14:22] [FTP] CMD QUIT +[RX] 2026-11-07T21:14:23.620+08:00 [2026-11-07 21:14:22][NET] sock1 DISCONNECTED, releasing (chip st=0x05/0x00) +[RX] 2026-11-07T21:14:23.631+08:00 [2026-11-07 21:14:22] [FTP] waiting for connection... +[RX] 2026-11-07T21:14:23.652+08:00 [2026-11-07 21:14:22] sock1 relisten settle (sock=0x00 tcp=0x00) +[RX] 2026-11-07T21:14:23.662+08:00 MISS start snap=0x000001E7 req=0x000001F7 t=31130 +[RX] 2026-11-07T21:14:23.818+08:00 [2026-11-07 21:14:23] sock1 auto-relisten ok (accept) +[RX] 2026-11-07T21:14:23.818+08:00 [2026-11-07 21:14:23][NET] sock1 reconcile: chip not listening (0x00/0xFF, was state=3) -> relisten +[RX] 2026-11-07T21:14:25.617+08:00 [2026-11-07 21:14:24] [WAVE][WARN] seg held 63 ms (idx=13) +[RX] 2026-11-07T21:14:27.606+08:00 [2026-11-07 21:14:26] [WAVE][WARN] seg held 63 ms (idx=14) +[RX] 2026-11-07T21:14:29.148+08:00 [2026-11-07 21:14:28][NET] sock1 standalone accept +[RX] 2026-11-07T21:14:29.158+08:00 [2026-11-07 21:14:28] [FTP] connection received from 192.168.31.161:60337... +[RX] 2026-11-07T21:14:29.158+08:00 [2026-11-07 21:14:28] [FTP] CMD USER admin +[RX] 2026-11-07T21:14:29.169+08:00 [2026-11-07 21:14:28] [FTP] CMD PASS admin +[RX] 2026-11-07T21:14:29.169+08:00 [2026-11-07 21:14:28] [FTP] CMD TYPE I +[RX] 2026-11-07T21:14:29.179+08:00 [2026-11-07 21:14:28] [FTP] CMD PASV +[RX] 2026-11-07T21:14:29.220+08:00 [2026-11-07 21:14:28][NET] sock3 standalone accept +[RX] 2026-11-07T21:14:29.231+08:00 [2026-11-07 21:14:28] [FTP] CMD RETR /FILL3.BIN +[RX] 2026-11-07T21:14:31.368+08:00 [2026-11-07 21:14:30] [WAVE][WARN] seg held 63 ms (idx=15) +[RX] 2026-11-07T21:14:31.410+08:00 [2026-11-07 21:14:30] [FTP] DOWNLOAD '/FILL3.BIN' OK +[RX] 2026-11-07T21:14:31.420+08:00 [2026-11-07 21:14:30] [FTP] CMD QUIT +[RX] 2026-11-07T21:14:31.420+08:00 [2026-11-07 21:14:30][NET] sock1 DISCONNECTED, releasing (chip st=0x05/0x00) +[RX] 2026-11-07T21:14:31.420+08:00 [2026-11-07 21:14:30] [FTP] waiting for connection... +[RX] 2026-11-07T21:14:31.451+08:00 [2026-11-07 21:14:30] sock1 relisten settle (sock=0x00 tcp=0x00) +[RX] 2026-11-07T21:14:31.514+08:00 MISS start snap=0x00000177 req=0x000001F7 t=38974 +[RX] 2026-11-07T21:14:31.609+08:00 [2026-11-07 21:14:30] sock1 auto-relisten ok (accept) +[RX] 2026-11-07T21:14:31.619+08:00 [2026-11-07 21:14:30][NET] sock1 reconcile: chip not listening (0x00/0xFF, was state=3) -> relisten +[RX] 2026-11-07T21:14:33.058+08:00 [2026-11-07 21:14:32][ADC_TASK] freq(hb): f=0 valid=0 (x0.01) +[RX] 2026-11-07T21:14:33.058+08:00 [2026-11-07 21:14:32][ADC_TASK] adc: UA=-23 UB=404 UC=608 UN=-22 IA=-23 IB=0 IC=772 IN=834 T=753 +[RX] 2026-11-07T21:14:33.069+08:00 [2026-11-07 21:14:32][ADC_TASK] cal: ua_mv=-3 un_mv=-3 ia_mv=-3 vl=0x00 cl=0xe6 rail=0x000 edge=0x000 +[RX] 2026-11-07T21:14:33.079+08:00 [2026-11-07 21:14:32][ADC_TASK] meas: seq=200 v=1 ua_mv=0 un_mv=0 ia_mv=0 f=0 fv=0 +[RX] 2026-11-07T21:14:33.089+08:00 [2026-11-07 21:14:32][ADC_TASK] wave: seg=15 armed=0 src=T pts=320 err=2 ovf=3 drop=59256 +[RX] 2026-11-07T21:14:33.566+08:00 [2026-11-07 21:14:32] [WAVE][WARN] seg held 62 ms (idx=16) +[RX] 2026-11-07T21:14:35.610+08:00 [2026-11-07 21:14:34] [WAVE][WARN] seg held 62 ms (idx=17) +[RX] 2026-11-07T21:14:37.331+08:00 [2026-11-07 21:14:36][NET] sock1 standalone accept +[RX] 2026-11-07T21:14:37.352+08:00 [2026-11-07 21:14:36] [FTP] connection received from 192.168.31.161:61067... +[RX] 2026-11-07T21:14:37.362+08:00 [2026-11-07 21:14:36] [FTP] CMD USER admin +[RX] 2026-11-07T21:14:37.362+08:00 [2026-11-07 21:14:36] [FTP] CMD PASS admin +[RX] 2026-11-07T21:14:37.373+08:00 [2026-11-07 21:14:36] [FTP] CMD TYPE I +[RX] 2026-11-07T21:14:37.373+08:00 [2026-11-07 21:14:36] [FTP] CMD PASV +[RX] 2026-11-07T21:14:37.424+08:00 [2026-11-07 21:14:36][NET] sock3 standalone accept +[RX] 2026-11-07T21:14:37.445+08:00 [2026-11-07 21:14:36] [FTP] CMD RETR /FILL3.BIN +[RX] 2026-11-07T21:14:39.641+08:00 [2026-11-07 21:14:38] [FTP] DOWNLOAD '/FILL3.BIN' OK +[RX] 2026-11-07T21:14:39.641+08:00 MISS start snap=0x000001E7 req=0x000001F7 t=47112 +[RX] 2026-11-07T21:14:39.662+08:00 [2026-11-07 21:14:38] [FTP] CMD QUIT +[RX] 2026-11-07T21:14:39.673+08:00 [2026-11-07 21:14:38][NET] sock1 DISCONNECTED, releasing (chip st=0x05/0x00) +[RX] 2026-11-07T21:14:39.673+08:00 [2026-11-07 21:14:38] [FTP] waiting for connection... +[RX] 2026-11-07T21:14:39.694+08:00 [2026-11-07 21:14:39] sock1 relisten settle (sock=0x00 tcp=0x00) +[RX] 2026-11-07T21:14:39.850+08:00 MISS start snap=0x00000177 req=0x000001F7 t=47317 +[RX] 2026-11-07T21:14:39.871+08:00 [2026-11-07 21:14:39] sock1 auto-relisten ok (accept) +[RX] 2026-11-07T21:14:39.882+08:00 [2026-11-07 21:14:39][NET] sock1 reconcile: chip not listening (0x00/0xFF, was state=3) -> relisten +[RX] 2026-11-07T21:14:41.573+08:00 [2026-11-07 21:14:40] [WAVE][WARN] seg held 64 ms (idx=18) +[RX] 2026-11-07T21:14:43.053+08:00 [2026-11-07 21:14:42][ADC_TASK] freq(hb): f=0 valid=0 (x0.01) +[RX] 2026-11-07T21:14:43.064+08:00 [2026-11-07 21:14:42][ADC_TASK] adc: UA=-21 UB=404 UC=608 UN=-19 IA=-20 IB=0 IC=772 IN=832 T=753 +[RX] 2026-11-07T21:14:43.074+08:00 [2026-11-07 21:14:42][ADC_TASK] cal: ua_mv=-3 un_mv=-2 ia_mv=-3 vl=0x00 cl=0xe6 rail=0x000 edge=0x000 +[RX] 2026-11-07T21:14:43.074+08:00 [2026-11-07 21:14:42][ADC_TASK] meas: seq=250 v=1 ua_mv=0 un_mv=0 ia_mv=0 f=0 fv=0 +[RX] 2026-11-07T21:14:43.084+08:00 [2026-11-07 21:14:42][ADC_TASK] wave: seg=18 armed=0 src=T pts=320 err=3 ovf=4 drop=77160 +[RX] 2026-11-07T21:14:43.582+08:00 [2026-11-07 21:14:42] [WAVE][WARN] seg held 68 ms (idx=19) +[RX] 2026-11-07T21:14:45.104+08:00 [2026-11-07 21:14:44][NET] sock1 standalone accept +[RX] 2026-11-07T21:14:45.197+08:00 [2026-11-07 21:14:44] [FTP] connection received from 192.168.31.161:64880... +[RX] 2026-11-07T21:14:45.207+08:00 [2026-11-07 21:14:44] [FTP] CMD USER admin +[RX] 2026-11-07T21:14:45.207+08:00 [2026-11-07 21:14:44] [FTP] CMD PASS admin +[RX] 2026-11-07T21:14:45.217+08:00 [2026-11-07 21:14:44] [FTP] CMD TYPE I +[RX] 2026-11-07T21:14:45.217+08:00 [2026-11-07 21:14:44] [FTP] CMD PASV +[RX] 2026-11-07T21:14:45.269+08:00 [2026-11-07 21:14:44][NET] sock3 standalone accept +[RX] 2026-11-07T21:14:45.280+08:00 [2026-11-07 21:14:44] [FTP] CMD RETR /FILL3.BIN +[RX] 2026-11-07T21:14:47.420+08:00 [2026-11-07 21:14:46] [WAVE][WARN] seg held 62 ms (idx=20) +[RX] 2026-11-07T21:14:47.461+08:00 [2026-11-07 21:14:46] [FTP] DOWNLOAD '/FILL3.BIN' OK +[RX] 2026-11-07T21:14:47.461+08:00 [2026-11-07 21:14:46] [FTP] CMD QUIT +[RX] 2026-11-07T21:14:47.461+08:00 [2026-11-07 21:14:46][NET] sock1 DISCONNECTED, releasing (chip st=0x05/0x00) +[RX] 2026-11-07T21:14:47.471+08:00 [2026-11-07 21:14:46] [FTP] waiting for connection... +[RX] 2026-11-07T21:14:47.503+08:00 [2026-11-07 21:14:46] sock1 relisten settle (sock=0x00 tcp=0x00) +[RX] 2026-11-07T21:14:47.556+08:00 MISS start snap=0x00000177 req=0x000001F7 t=55024 +[RX] 2026-11-07T21:14:47.660+08:00 [2026-11-07 21:14:46] sock1 auto-relisten ok (accept) +[RX] 2026-11-07T21:14:47.670+08:00 [2026-11-07 21:14:46][NET] sock1 reconcile: chip not listening (0x00/0xFF, was state=3) -> relisten +[RX] 2026-11-07T21:14:49.596+08:00 [2026-11-07 21:14:48] [WAVE][WARN] seg held 62 ms (idx=21) +[RX] 2026-11-07T21:15:26.136+08:00 MISS start snap=0x000001E7 req=0x000001F7 t=93607 +[RX] 2026-11-07T21:15:27.392+08:00 [2026-11-07 21:15:26] [WAVE][WARN] seg held 61 ms (idx=34) +[RX] 2026-11-07T21:15:27.433+08:00 [2026-11-07 21:15:26] [FTP] DOWNLOAD '/FILL3.BIN' OK +[RX] 2026-11-07T21:15:27.433+08:00 [2026-11-07 21:15:26] [FTP] CMD QUIT +[RX] 2026-11-07T21:15:27.433+08:00 [2026-11-07 21:15:26][NET] sock1 DISCONNECTED, releasing (chip st=0x05/0x00) +[RX] 2026-11-07T21:15:27.444+08:00 [2026-11-07 21:15:26] [FTP] waiting for connection... +[RX] 2026-11-07T21:15:27.475+08:00 [2026-11-07 21:15:26] sock1 relisten settle (sock=0x00 tcp=0x00) +[RX] 2026-11-07T21:15:27.631+08:00 [2026-11-07 21:15:26] sock1 auto-relisten ok (accept) +[RX] 2026-11-07T21:15:27.642+08:00 [2026-11-07 21:15:26][NET] sock1 reconcile: chip not listening (0x00/0xFF, was state=3) -> relisten +[RX] 2026-11-07T21:15:29.610+08:00 [2026-11-07 21:15:28] [WAVE][WARN] seg held 61 ms (idx=35) +[RX] 2026-11-07T21:15:31.597+08:00 [2026-11-07 21:15:30] [WAVE][WARN] seg held 60 ms (idx=36) +[RX] 2026-11-07T21:15:33.060+08:00 [2026-11-07 21:15:32][ADC_TASK] freq(hb): f=0 valid=0 (x0.01) +[RX] 2026-11-07T21:15:33.070+08:00 [2026-11-07 21:15:32][ADC_TASK] adc: UA=-19 UB=404 UC=608 UN=-19 IA=-19 IB=0 IC=770 IN=835 T=751 +[RX] 2026-11-07T21:15:33.081+08:00 [2026-11-07 21:15:32][ADC_TASK] cal: ua_mv=-2 un_mv=-2 ia_mv=-2 vl=0x00 cl=0xe6 rail=0x000 edge=0x000 +[RX] 2026-11-07T21:15:33.091+08:00 [2026-11-07 21:15:32][ADC_TASK] meas: seq=500 v=1 ua_mv=0 un_mv=0 ia_mv=0 f=0 fv=0 +[RX] 2026-11-07T21:15:33.091+08:00 [2026-11-07 21:15:32][ADC_TASK] wave: seg=36 armed=0 src=T pts=320 err=4 ovf=10 drop=178416 +[RX] 2026-11-07T21:15:33.205+08:00 [2026-11-07 21:15:32][NET] sock1 standalone accept +[RX] 2026-11-07T21:15:33.267+08:00 [2026-11-07 21:15:32] [FTP] connection received from 192.168.31.161:50846... +[RX] 2026-11-07T21:15:33.278+08:00 [2026-11-07 21:15:32] [FTP] CMD USER admin +[RX] 2026-11-07T21:15:33.288+08:00 [2026-11-07 21:15:32] [FTP] CMD PASS admin +[RX] 2026-11-07T21:15:33.288+08:00 [2026-11-07 21:15:32] [FTP] CMD TYPE I +[RX] 2026-11-07T21:15:33.299+08:00 [2026-11-07 21:15:32] [FTP] CMD PASV +[RX] 2026-11-07T21:15:33.351+08:00 [2026-11-07 21:15:32][NET] sock3 standalone accept +[RX] 2026-11-07T21:15:33.351+08:00 [2026-11-07 21:15:32] [FTP] CMD RETR /FILL3.BIN +[RX] 2026-11-07T21:15:35.576+08:00 [2026-11-07 21:15:34][ERR] [WAVE] seg drop: ring abandoned (idx=36 written=5250) +[RX] 2026-11-07T21:15:35.576+08:00 [2026-11-07 21:15:34] [WAVE][WARN] seg held 124 ms (idx=36) +[RX] 2026-11-07T21:15:35.587+08:00 [2026-11-07 21:15:34] [FTP] DOWNLOAD '/FILL3.BIN' OK +[RX] 2026-11-07T21:15:35.587+08:00 [2026-11-07 21:15:34] [FTP] CMD QUIT +[RX] 2026-11-07T21:15:35.597+08:00 [2026-11-07 21:15:34][NET] sock1 DISCONNECTED, releasing (chip st=0x05/0x00) +[RX] 2026-11-07T21:15:35.597+08:00 [2026-11-07 21:15:34] [FTP] waiting for connection... +[RX] 2026-11-07T21:15:35.628+08:00 [2026-11-07 21:15:34] sock1 relisten settle (sock=0x00 tcp=0x00) +[RX] 2026-11-07T21:15:35.784+08:00 MISS start snap=0x00000177 req=0x000001F7 t=103250 +[RX] 2026-11-07T21:15:35.805+08:00 [2026-11-07 21:15:35] sock1 auto-relisten ok (accept) +[RX] 2026-11-07T21:15:35.816+08:00 [2026-11-07 21:15:35][NET] sock1 reconcile: chip not listening (0x00/0xFF, was state=3) -> relisten +[RX] 2026-11-07T21:15:38.900+08:00 [2026-11-07 21:15:38][NET] sock1 standalone accept +[RX] 2026-11-07T21:15:38.921+08:00 [2026-11-07 21:15:38] [FTP] connection received from 192.168.31.161:56248... +[RX] 2026-11-07T21:15:38.921+08:00 [2026-11-07 21:15:38] [FTP] CMD USER admin +[RX] 2026-11-07T21:15:38.931+08:00 [2026-11-07 21:15:38] [FTP] CMD PASS admin +[RX] 2026-11-07T21:15:38.941+08:00 [2026-11-07 21:15:38] [FTP] CMD SIZE /WAVE/WAVE36.BIN +[RX] 2026-11-07T21:15:38.941+08:00 [2026-11-07 21:15:38] [FTP] CMD QUIT +[RX] 2026-11-07T21:15:38.941+08:00 [2026-11-07 21:15:38][NET] sock1 DISCONNECTED, releasing (chip st=0x05/0x00) +[RX] 2026-11-07T21:15:38.952+08:00 [2026-11-07 21:15:38] [FTP] waiting for connection... +[RX] 2026-11-07T21:15:38.982+08:00 [2026-11-07 21:15:38] sock1 relisten settle (sock=0x00 tcp=0x00) +[RX] 2026-11-07T21:15:39.149+08:00 [2026-11-07 21:15:38] sock1 auto-relisten ok (accept) +[RX] 2026-11-07T21:15:39.149+08:00 [2026-11-07 21:15:38][NET] sock1 reconcile: chip not listening (0x00/0xFF, was state=3) -> relisten +[RX] 2026-11-07T21:15:39.459+08:00 [2026-11-07 21:15:38][NET] sock1 standalone accept +[RX] 2026-11-07T21:15:39.470+08:00 [2026-11-07 21:15:38] [FTP] connection received from 192.168.31.161:56249... +[RX] 2026-11-07T21:15:39.480+08:00 [2026-11-07 21:15:38] [FTP] CMD USER admin +[RX] 2026-11-07T21:15:39.480+08:00 [2026-11-07 21:15:38] [FTP] CMD PASS admin +[RX] 2026-11-07T21:15:39.491+08:00 [2026-11-07 21:15:38] [FTP] CMD SIZE /WAVE/WAVE00.BIN +[RX] 2026-11-07T21:15:39.501+08:00 [2026-11-07 21:15:38] [FTP] CMD QUIT +[RX] 2026-11-07T21:15:39.501+08:00 [2026-11-07 21:15:38][NET] sock1 DISCONNECTED, releasing (chip st=0x05/0x00) +[RX] 2026-11-07T21:15:39.501+08:00 [2026-11-07 21:15:38] [FTP] waiting for connection... +[RX] 2026-11-07T21:15:39.574+08:00 [2026-11-07 21:15:38] sock1 relisten settle (sock=0x00 tcp=0x00) +[RX] 2026-11-07T21:15:39.584+08:00 [2026-11-07 21:15:38] [WAVE][WARN] seg held 61 ms (idx=38) +[RX] 2026-11-07T21:15:39.698+08:00 [2026-11-07 21:15:39] sock1 auto-relisten ok (accept) +[RX] 2026-11-07T21:15:41.371+08:00 [2026-11-07 21:15:40] [STACK] default peak_used=2188/5120 free_min=2932 (57%) +[RX] 2026-11-07T21:15:41.382+08:00 [2026-11-07 21:15:40] [STACK] net peak_used=1188/3840 free_min=2652 (69%) +[RX] 2026-11-07T21:15:41.382+08:00 [2026-11-07 21:15:40] [STACK] ftp peak_used=2028/4096 free_min=2068 (50%) +[RX] 2026-11-07T21:15:41.392+08:00 [2026-11-07 21:15:40] [STACK] ui peak_used=4204/16384 free_min=12180 (74%) +[RX] 2026-11-07T21:15:41.403+08:00 [2026-11-07 21:15:40] [STACK] timesync peak_used=476/2560 free_min=2084 (81%) +[RX] 2026-11-07T21:15:41.413+08:00 [2026-11-07 21:15:40] [STACK] adc peak_used=1000/2560 free_min=1560 (60%) +[RX] 2026-11-07T21:15:41.413+08:00 [2026-11-07 21:15:40] [STACK] iec104 peak_used=544/2560 free_min=2016 (78%) +[RX] 2026-11-07T21:15:41.424+08:00 [2026-11-07 21:15:40] [STACK] protect peak_used=624/2048 free_min=1424 (69%) +[RX] 2026-11-07T21:15:41.434+08:00 [2026-11-07 21:15:40] [STACK] heap free=15624 min_ever=8464 +[RX] 2026-11-07T21:15:41.599+08:00 [2026-11-07 21:15:40] [WAVE][WARN] seg held 60 ms (idx=39) +[RX] 2026-11-07T21:15:41.796+08:00 [2026-11-07 21:15:41][NET] sock1 standalone accept +[RX] 2026-11-07T21:15:41.828+08:00 [2026-11-07 21:15:41] [FTP] connection received from 192.168.31.161:56562... +[RX] 2026-11-07T21:15:41.838+08:00 [2026-11-07 21:15:41] [FTP] CMD USER admin +[RX] 2026-11-07T21:15:41.838+08:00 [2026-11-07 21:15:41] [FTP] CMD PASS admin +[RX] 2026-11-07T21:15:41.849+08:00 [2026-11-07 21:15:41] [FTP] CMD SIZE /WAVE/WAVE36.BIN +[RX] 2026-11-07T21:15:41.859+08:00 [2026-11-07 21:15:41] [FTP] CMD QUIT +[RX] 2026-11-07T21:15:41.859+08:00 [2026-11-07 21:15:41][NET] sock1 DISCONNECTED, releasing (chip st=0x05/0x00) +[RX] 2026-11-07T21:15:41.869+08:00 [2026-11-07 21:15:41] [FTP] waiting for connection... +[RX] 2026-11-07T21:15:41.891+08:00 [2026-11-07 21:15:41] sock1 relisten settle (sock=0x00 tcp=0x00) +[RX] 2026-11-07T21:15:42.056+08:00 [2026-11-07 21:15:41] sock1 auto-relisten ok (accept) +[RX] 2026-11-07T21:15:42.056+08:00 [2026-11-07 21:15:41][NET] sock1 reconcile: chip not listening (0x00/0xFF, was state=3) -> relisten +[RX] 2026-11-07T21:15:43.051+08:00 [2026-11-07 21:15:42][ADC_TASK] freq(hb): f=0 valid=0 (x0.01) +[RX] 2026-11-07T21:15:43.061+08:00 [2026-11-07 21:15:42][ADC_TASK] adc: UA=-20 UB=403 UC=609 UN=-20 IA=-20 IB=0 IC=773 IN=832 T=751 +[RX] 2026-11-07T21:15:43.072+08:00 [2026-11-07 21:15:42][ADC_TASK] cal: ua_mv=-3 un_mv=-3 ia_mv=-3 vl=0x00 cl=0xe6 rail=0x000 edge=0x000 +[RX] 2026-11-07T21:15:43.082+08:00 [2026-11-07 21:15:42][ADC_TASK] meas: seq=550 v=1 ua_mv=0 un_mv=0 ia_mv=0 f=0 fv=0 +[RX] 2026-11-07T21:15:43.082+08:00 [2026-11-07 21:15:42][ADC_TASK] wave: seg=39 armed=0 src=T pts=320 err=5 ovf=11 drop=196424 +[RX] 2026-11-07T21:15:43.590+08:00 [2026-11-07 21:15:42] [WAVE][WARN] seg held 64 ms (idx=40) +[RX] 2026-11-07T21:15:45.578+08:00 [2026-11-07 21:15:44] [WAVE][WARN] seg held 59 ms (idx=41) +[RX] 2026-11-07T21:15:47.607+08:00 [2026-11-07 21:15:46] [WAVE][WARN] seg held 62 ms (idx=42) +[RX] 2026-11-07T21:15:49.610+08:00 [2026-11-07 21:15:48] [WAVE][WARN] seg held 63 ms (idx=43) +[RX] 2026-11-07T21:15:50.866+08:00 [2026-11-07 21:15:50][NET] sock1 standalone accept +[RX] 2026-11-07T21:15:50.907+08:00 [2026-11-07 21:15:50] [FTP] connection received from 192.168.31.161:64624... +[RX] 2026-11-07T21:15:50.907+08:00 [2026-11-07 21:15:50] [FTP] CMD USER admin +[RX] 2026-11-07T21:15:50.918+08:00 [2026-11-07 21:15:50] [FTP] CMD PASS admin +[RX] 2026-11-07T21:15:50.929+08:00 [2026-11-07 21:15:50] [FTP] CMD SIZE /WAVE/WAVE36.BIN +[RX] 2026-11-07T21:15:50.929+08:00 [2026-11-07 21:15:50] [FTP] CMD QUIT +[RX] 2026-11-07T21:15:50.929+08:00 [2026-11-07 21:15:50][NET] sock1 DISCONNECTED, releasing (chip st=0x05/0x00) +[RX] 2026-11-07T21:15:50.939+08:00 [2026-11-07 21:15:50] [FTP] waiting for connection... +[RX] 2026-11-07T21:15:50.971+08:00 [2026-11-07 21:15:50] sock1 relisten settle (sock=0x00 tcp=0x00) +[RX] 2026-11-07T21:15:51.127+08:00 [2026-11-07 21:15:50] sock1 auto-relisten ok (accept) +[RX] 2026-11-07T21:15:51.127+08:00 [2026-11-07 21:15:50][NET] sock1 reconcile: chip not listening (0x00/0xFF, was state=3) -> relisten +[RX] 2026-11-07T21:15:51.439+08:00 [2026-11-07 21:15:50][NET] sock1 standalone accept +[RX] 2026-11-07T21:15:51.459+08:00 [2026-11-07 21:15:50] [FTP] connection received from 192.168.31.161:64625... +[RX] 2026-11-07T21:15:51.470+08:00 [2026-11-07 21:15:50] [FTP] CMD USER admin +[RX] 2026-11-07T21:15:51.470+08:00 [2026-11-07 21:15:50] [FTP] CMD PASS admin +[RX] 2026-11-07T21:15:51.470+08:00 [2026-11-07 21:15:50] [FTP] CMD TYPE I +[RX] 2026-11-07T21:15:51.480+08:00 [2026-11-07 21:15:50] [FTP] CMD PASV +[RX] 2026-11-07T21:15:51.532+08:00 [2026-11-07 21:15:50][NET] sock3 standalone accept +[RX] 2026-11-07T21:15:51.594+08:00 [2026-11-07 21:15:50] [FTP] CMD RETR /WAVE/WAVE36.BIN +[RX] 2026-11-07T21:15:51.604+08:00 [2026-11-07 21:15:50] [WAVE][WARN] seg held 62 ms (idx=44) +[RX] 2026-11-07T21:15:51.781+08:00 [2026-11-07 21:15:51] [FTP] DOWNLOAD '/WAVE/WAVE36.BIN' OK +[RX] 2026-11-07T21:15:51.781+08:00 [2026-11-07 21:15:51] [FTP] CMD QUIT +[RX] 2026-11-07T21:15:51.791+08:00 [2026-11-07 21:15:51][NET] sock1 DISCONNECTED, releasing (chip st=0x05/0x00) +[RX] 2026-11-07T21:15:51.791+08:00 [2026-11-07 21:15:51] [FTP] waiting for connection... +[RX] 2026-11-07T21:15:51.822+08:00 [2026-11-07 21:15:51] sock1 relisten settle (sock=0x00 tcp=0x00) +[RX] 2026-11-07T21:15:51.822+08:00 MISS start snap=0x000001E7 req=0x000001F7 t=119296 +[RX] 2026-11-07T21:15:51.979+08:00 [2026-11-07 21:15:51] sock1 auto-relisten ok (accept) +[RX] 2026-11-07T21:15:52.301+08:00 [2026-11-07 21:15:51][NET] sock1 standalone accept +[RX] 2026-11-07T21:15:52.312+08:00 [2026-11-07 21:15:51] [FTP] connection received from 192.168.31.161:54362... +[RX] 2026-11-07T21:15:52.312+08:00 [2026-11-07 21:15:51] [FTP] CMD USER admin +[RX] 2026-11-07T21:15:52.323+08:00 [2026-11-07 21:15:51] [FTP] CMD PASS admin +[RX] 2026-11-07T21:15:52.333+08:00 [2026-11-07 21:15:51] [FTP] CMD CWD /WAVE +[RX] 2026-11-07T21:15:52.333+08:00 [2026-11-07 21:15:51] [FTP] CMD TYPE A +[RX] 2026-11-07T21:15:52.333+08:00 [2026-11-07 21:15:51] [FTP] CMD PASV +[RX] 2026-11-07T21:15:52.385+08:00 [2026-11-07 21:15:51][NET] sock3 standalone accept +[RX] 2026-11-07T21:15:52.406+08:00 [2026-11-07 21:15:51] [FTP] CMD LIST +[RX] 2026-11-07T21:15:52.582+08:00 [2026-11-07 21:15:51] [FTP] CMD CWD / +[RX] 2026-11-07T21:15:52.582+08:00 [2026-11-07 21:15:51] [FTP] CMD TYPE A +[RX] 2026-11-07T21:15:52.593+08:00 [2026-11-07 21:15:51] [FTP] CMD PASV +[RX] 2026-11-07T21:15:52.635+08:00 [2026-11-07 21:15:51][NET] sock3 standalone accept +[RX] 2026-11-07T21:15:52.635+08:00 MISS start snap=0x00000177 req=0x000001F7 t=120110 +[RX] 2026-11-07T21:15:52.666+08:00 [2026-11-07 21:15:51] [FTP] CMD LIST +[RX] 2026-11-07T21:15:52.781+08:00 [2026-11-07 21:15:52] [FTP] CMD QUIT +[RX] 2026-11-07T21:15:52.791+08:00 [2026-11-07 21:15:52][NET] sock1 DISCONNECTED, releasing (chip st=0x05/0x00) +[RX] 2026-11-07T21:15:52.791+08:00 [2026-11-07 21:15:52] [FTP] waiting for connection... +[RX] 2026-11-07T21:15:52.823+08:00 [2026-11-07 21:15:52] sock1 relisten settle (sock=0x00 tcp=0x00) +[RX] 2026-11-07T21:15:52.886+08:00 MISS start snap=0x00000177 req=0x000001F7 t=120348 +[RX] 2026-11-07T21:15:52.989+08:00 [2026-11-07 21:15:52] sock1 auto-relisten ok (accept) +[RX] 2026-11-07T21:15:52.989+08:00 [2026-11-07 21:15:52][NET] sock1 reconcile: chip not listening (0x00/0xFF, was state=3) -> relisten +[RX] 2026-11-07T21:15:53.052+08:00 [2026-11-07 21:15:52][ADC_TASK] freq(hb): f=0 valid=0 (x0.01) +[RX] 2026-11-07T21:15:53.062+08:00 [2026-11-07 21:15:52][ADC_TASK] adc: UA=-21 UB=404 UC=607 UN=-20 IA=-20 IB=0 IC=772 IN=831 T=751 +[RX] 2026-11-07T21:15:53.073+08:00 [2026-11-07 21:15:52][ADC_TASK] cal: ua_mv=-3 un_mv=-3 ia_mv=-3 vl=0x00 cl=0xe6 rail=0x000 edge=0x000 +[RX] 2026-11-07T21:15:53.073+08:00 [2026-11-07 21:15:52][ADC_TASK] meas: seq=600 v=1 ua_mv=0 un_mv=0 ia_mv=0 f=0 fv=0 +[RX] 2026-11-07T21:15:53.083+08:00 [2026-11-07 21:15:52][ADC_TASK] wave: seg=44 armed=0 src=T pts=320 err=5 ovf=11 drop=200120 +[RX] 2026-11-07T21:15:53.581+08:00 [2026-11-07 21:15:52] [WAVE][WARN] seg held 51 ms (idx=45) +[RX] 2026-11-07T21:15:53.632+08:00 [2026-11-07 21:15:52] [STACK] default peak_used=2188/5120 free_min=2932 (57%) +[RX] 2026-11-07T21:15:53.642+08:00 [2026-11-07 21:15:52] [STACK] net peak_used=1188/3840 free_min=2652 (69%) +[RX] 2026-11-07T21:15:53.653+08:00 [2026-11-07 21:15:52] [STACK] ftp peak_used=2356/4096 free_min=1740 (42%) +[RX] 2026-11-07T21:15:53.653+08:00 [2026-11-07 21:15:52] [STACK] ui peak_used=4204/16384 free_min=12180 (74%) +[RX] 2026-11-07T21:15:53.663+08:00 [2026-11-07 21:15:52] [STACK] timesync peak_used=476/2560 free_min=2084 (81%) +[RX] 2026-11-07T21:15:53.674+08:00 [2026-11-07 21:15:52] [STACK] adc peak_used=1000/2560 free_min=1560 (60%) +[RX] 2026-11-07T21:15:53.674+08:00 [2026-11-07 21:15:53] [STACK] iec104 peak_used=544/2560 free_min=2016 (78%) +[RX] 2026-11-07T21:15:53.684+08:00 [2026-11-07 21:15:53] [STACK] protect peak_used=624/2048 free_min=1424 (69%) +[RX] 2026-11-07T21:15:53.695+08:00 [2026-11-07 21:15:53] [STACK] heap free=15624 min_ever=8464 +[RX] 2026-11-07T21:15:55.573+08:00 [2026-11-07 21:15:54] [WAVE][WARN] seg held 58 ms (idx=46) +[RX] 2026-11-07T21:15:57.611+08:00 [2026-11-07 21:15:56] [WAVE][WARN] seg held 57 ms (idx=47) +[RX] 2026-11-07T21:15:59.560+08:00 [2026-11-07 21:15:58] [WAVE][WARN] seg held 58 ms (idx=48) diff --git a/docs/测试说明/测试数据/wave_bench_20261107/sweep7_211352.json b/docs/测试说明/测试数据/wave_bench_20261107/sweep7_211352.json new file mode 100644 index 00000000..c8ed57e1 --- /dev/null +++ b/docs/测试说明/测试数据/wave_bench_20261107/sweep7_211352.json @@ -0,0 +1,259 @@ +{ + "mode": "sweep7", + "remote": "/FILL3.BIN", + "t_start": "2026-11-07T21:13:52.246+08:00", + "probes": [ + { + "n": 1, + "fe": 1794057253.3715, + "delta": 0.16, + "lad": 0.0, + "anchor": 1794057235.367, + "meas": false, + "start_at": 1794057253.2115, + "dur_ema": 2.35, + "dur_ms": 2384, + "start_epoch": 1794057253.2117734, + "err_lines_new": [], + "dl_rx": 1794057255.593, + "grab": "[RX] 2026-11-07T21:14:17.612+08:00 [2026-11-07 21:14:16] [WAVE][WARN] seg held 64 ms (idx=11)", + "rel": 2.019, + "cls": "LATE", + "anchor_after": 1794057253.3569999 + }, + { + "n": 2, + "fe": 1794057261.359, + "delta": 0.1286, + "lad": -0.045, + "anchor": 1794057253.3569999, + "meas": true, + "start_at": 1794057261.2304, + "dur_ema": 2.364, + "dur_ms": 2383, + "start_epoch": 1794057261.2308095, + "err_lines_new": [], + "dl_rx": 1794057263.61, + "grab": "[RX] 2026-11-07T21:14:25.617+08:00 [2026-11-07 21:14:24] [WAVE][WARN] seg held 63 ms (idx=13)", + "rel": 2.007, + "cls": "LATE", + "anchor_after": 1794057261.3630002 + }, + { + "n": 3, + "fe": 1794057269.3650002, + "delta": 0.2264, + "lad": 0.045, + "anchor": 1794057261.3630002, + "meas": true, + "start_at": 1794057269.1386402, + "dur_ema": 2.371, + "dur_ms": 2269, + "start_epoch": 1794057269.1391664, + "err_lines_new": [], + "dl_rx": 1794057271.41, + "grab": "[RX] 2026-11-07T21:14:31.368+08:00 [2026-11-07 21:14:30] [WAVE][WARN] seg held 63 ms (idx=15)", + "rel": -0.042, + "cls": "E", + "anchor_after": 1794057261.3630002 + }, + { + "n": 4, + "fe": 1794057277.367, + "delta": 0.0504, + "lad": -0.09, + "anchor": 1794057261.3630002, + "meas": true, + "start_at": 1794057277.316584, + "dur_ema": 2.33, + "dur_ms": 2325, + "start_epoch": 1794057277.3168, + "err_lines_new": [], + "dl_rx": 1794057279.641, + "grab": "[RX] 2026-11-07T21:14:41.573+08:00 [2026-11-07 21:14:40] [WAVE][WARN] seg held 64 ms (idx=18)", + "rel": 1.932, + "cls": "LATE", + "anchor_after": 1794057277.3179998 + }, + { + "n": 5, + "fe": 1794057285.32, + "delta": 0.2282, + "lad": 0.09, + "anchor": 1794057277.3179998, + "meas": true, + "start_at": 1794057285.0917504, + "dur_ema": 2.328, + "dur_ms": 2366, + "start_epoch": 1794057285.092287, + "err_lines_new": [], + "dl_rx": 1794057287.461, + "grab": "[RX] 2026-11-07T21:14:47.420+08:00 [2026-11-07 21:14:46] [WAVE][WARN] seg held 62 ms (idx=20)", + "rel": -0.041, + "cls": "E", + "anchor_after": 1794057277.3179998 + }, + { + "n": 6, + "fe": 1794057293.3219998, + "delta": 0.1733, + "lad": 0.02, + "anchor": 1794057277.3179998, + "meas": true, + "start_at": 1794057293.14865, + "dur_ema": 2.343, + "dur_ms": 2246, + "start_epoch": 1794057293.1490636, + "err_lines_new": [], + "dl_rx": 1794057295.401, + "grab": "[RX] 2026-11-07T21:14:55.380+08:00 [2026-11-07 21:14:54] [WAVE][WARN] seg held 62 ms (idx=23)", + "rel": -0.021, + "cls": "E", + "anchor_after": 1794057277.3179998 + }, + { + "n": 7, + "fe": 1794057301.324, + "delta": 0.0944, + "lad": -0.02, + "anchor": 1794057277.3179998, + "meas": true, + "start_at": 1794057301.22959, + "dur_ema": 2.304, + "dur_ms": 2545, + "start_epoch": 1794057301.2299962, + "err_lines_new": [], + "dl_rx": 1794057303.773, + "grab": "[RX] 2026-11-07T21:15:05.585+08:00 [2026-11-07 21:15:04] [WAVE][WARN] seg held 69 ms (idx=26)", + "rel": 1.812, + "cls": "LATE", + "anchor_after": 1794057301.325 + }, + { + "n": 8, + "fe": 1794057309.3270001, + "delta": 0.2106, + "lad": 0.0, + "anchor": 1794057301.325, + "meas": true, + "start_at": 1794057309.1163542, + "dur_ema": 2.401, + "dur_ms": 2462, + "start_epoch": 1794057309.116947, + "err_lines_new": [], + "dl_rx": 1794057311.575, + "grab": "[RX] 2026-11-07T21:15:11.472+08:00 [2026-11-07 21:15:10] [WAVE][WARN] seg held 62 ms (idx=28)", + "rel": -0.103, + "cls": "E", + "anchor_after": 1794057301.325 + }, + { + "n": 9, + "fe": 1794057317.329, + "delta": 0.1902, + "lad": -0.045, + "anchor": 1794057301.325, + "meas": true, + "start_at": 1794057317.1388125, + "dur_ema": 2.425, + "dur_ms": 2453, + "start_epoch": 1794057317.1393352, + "err_lines_new": [], + "dl_rx": 1794057319.594, + "grab": "[RX] 2026-11-07T21:15:19.470+08:00 [2026-11-07 21:15:18] [WAVE][WARN] seg held 64 ms (idx=31)", + "rel": -0.124, + "cls": "E", + "anchor_after": 1794057301.325 + }, + { + "n": 10, + "fe": 1794057325.331, + "delta": 0.2913, + "lad": 0.045, + "anchor": 1794057301.325, + "meas": true, + "start_at": 1794057325.0396876, + "dur_ema": 2.436, + "dur_ms": 2389, + "start_epoch": 1794057325.039925, + "err_lines_new": [], + "dl_rx": 1794057327.433, + "grab": "[RX] 2026-11-07T21:15:27.392+08:00 [2026-11-07 21:15:26] [WAVE][WARN] seg held 61 ms (idx=34)", + "rel": -0.041, + "cls": "E", + "anchor_after": 1794057301.325 + }, + { + "n": 11, + "fe": 1794057333.333, + "delta": 0.1374, + "lad": -0.09, + "anchor": 1794057301.325, + "meas": true, + "start_at": 1794057333.1956124, + "dur_ema": 2.417, + "dur_ms": 2388, + "start_epoch": 1794057333.195739, + "err_lines_new": [ + "[RX] 2026-11-07T21:15:35.576+08:00 [2026-11-07 21:15:34][ERR] [WAVE] seg drop: ring abandoned (idx=36 written=5250)" + ], + "dl_rx": 1794057335.587, + "grab": "[RX] 2026-11-07T21:15:35.576+08:00 [2026-11-07 21:15:34] [WAVE][WARN] seg held 124 ms (idx=36)", + "rel": -0.011, + "cls": "HIT", + "anchor_after": 1794057301.325 + } + ], + "hits": [ + "[RX] 2026-11-07T21:15:35.576+08:00 [2026-11-07 21:15:34][ERR] [WAVE] seg drop: ring abandoned (idx=36 written=5250)" + ], + "windows": [], + "resets": [], + "bootstrap_reset": { + "rc": 0, + "out": "ware reset\nDevice ID: 0x413 \nDevice flash Size: 1024 Kbytes\nDevice family: STM32F405xx/F407xx/F415xx/F417xx\n\nMCU Reset.\n\nrun application to exit\nApplication started.\nRC: 0 elapsed_ms=233\nSTLINK_RC=0\n", + "err": "", + "ts": "2026-11-07T21:13:52.527+08:00" + }, + "anchor0": 1794057235.367, + "hit_slot": "/WAVE/WAVE36.BIN", + "P1": { + "slot": { + "path": "/WAVE/WAVE36.BIN", + "size": 5250, + "ts": "2026-11-07T21:15:38.934+08:00" + }, + "ctrl": { + "path": "/WAVE/WAVE00.BIN", + "size": 126000, + "ts": "2026-11-07T21:15:39.486+08:00" + } + }, + "P2": { + "slot": { + "path": "/WAVE/WAVE36.BIN", + "size": 5250, + "ts": "2026-11-07T21:15:41.848+08:00" + } + }, + "P3": { + "slot": { + "path": "/WAVE/WAVE36.BIN", + "size": 5250, + "ts": "2026-11-07T21:15:50.920+08:00" + }, + "sha": { + "path": "/WAVE/WAVE36.BIN", + "bytes": 5250, + "sha256": "b12e130e80fb4d8b5f47498af153294dc54856ed961056dd9851ceec2a0a11ca", + "ts": "2026-11-07T21:15:51.779+08:00" + }, + "hb_after": "[RX] 2026-11-07T21:15:43.082+08:00 [2026-11-07 21:15:42][ADC_TASK] wave: seg=39 armed=0 src=T pts=320 err=5 ovf=11 drop=196424" + }, + "dir_after": { + "ts": "2026-11-07T21:15:52.316+08:00", + "list": "226 Closing data connection.", + "root": "226 Closing data connection." + }, + "t_end": "2026-11-07T21:15:52.779+08:00" +} \ No newline at end of file diff --git a/docs/测试说明/测试数据/wave_bench_20261107/sweep7_probes_210925.jsonl b/docs/测试说明/测试数据/wave_bench_20261107/sweep7_probes_210925.jsonl new file mode 100644 index 00000000..739c8c54 --- /dev/null +++ b/docs/测试说明/测试数据/wave_bench_20261107/sweep7_probes_210925.jsonl @@ -0,0 +1,17 @@ +{"n": 1, "fe": 1794056986.4975, "delta": 0.23, "lad": 0.0, "anchor": 1794056968.493, "meas": false, "start_at": 1794056986.2675, "dur_ema": 2.35, "dur_ms": 2324, "start_epoch": 1794056986.268142, "err_lines_new": [], "dl_rx": 1794056988.594, "grab": "[RX] 2026-11-07T21:09:48.583+08:00 [2026-11-07 21:09:47] [WAVE][WARN] seg held 63 ms (idx=11)", "rel": -0.011, "cls": "E", "anchor_after": 1794056988.33} +{"n": 2, "fe": 1794056994.3314998, "delta": 0.1746, "lad": -0.045, "anchor": 1794056988.33, "meas": true, "start_at": 1794056994.1569, "dur_ema": 2.34, "dur_ms": 2339, "start_epoch": 1794056994.157187, "err_lines_new": [], "dl_rx": 1794056996.498, "grab": "[RX] 2026-11-07T21:09:56.425+08:00 [2026-11-07 21:09:55] [WAVE][WARN] seg held 61 ms (idx=14)", "rel": -0.073, "cls": "E", "anchor_after": 1794056996.174} +{"n": 3, "fe": 1794057002.1755, "delta": 0.2644, "lad": 0.045, "anchor": 1794056996.174, "meas": true, "start_at": 1794057001.91114, "dur_ema": 2.339, "dur_ms": 2237, "start_epoch": 1794057001.9116395, "err_lines_new": [], "dl_rx": 1794057004.154, "grab": "[RX] 2026-11-07T21:10:04.133+08:00 [2026-11-07 21:10:03] [WAVE][WARN] seg held 63 ms (idx=17)", "rel": -0.021, "cls": "E", "anchor_after": 1794057003.8799999} +{"n": 4, "fe": 1794057009.8814998, "delta": 0.2684, "lad": 0.09, "anchor": 1794057003.8799999, "meas": true, "start_at": 1794057009.6130838, "dur_ema": 2.298, "dur_ms": 2382, "start_epoch": 1794057009.6133535, "err_lines_new": [], "dl_rx": 1794057011.995, "grab": "[RX] 2026-11-07T21:10:11.964+08:00 [2026-11-07 21:10:11] [WAVE][WARN] seg held 59 ms (idx=20)", "rel": -0.031, "cls": "E", "anchor_after": 1794057011.715} +{"n": 5, "fe": 1794057017.7164998, "delta": 0.1218, "lad": -0.09, "anchor": 1794057011.715, "meas": true, "start_at": 1794057017.5946503, "dur_ema": 2.332, "dur_ms": 2302, "start_epoch": 1794057017.595509, "err_lines_new": [], "dl_rx": 1794057019.896, "grab": "[RX] 2026-11-07T21:10:19.854+08:00 [2026-11-07 21:10:19] [WAVE][WARN] seg held 62 ms (idx=23)", "rel": -0.042, "cls": "E", "anchor_after": 1794057019.602} +{"n": 6, "fe": 1794057025.6035, "delta": 0.3349, "lad": 0.135, "anchor": 1794057019.602, "meas": true, "start_at": 1794057025.2685902, "dur_ema": 2.32, "dur_ms": 2428, "start_epoch": 1794057025.2690685, "err_lines_new": [], "dl_rx": 1794057027.7, "grab": "[RX] 2026-11-07T21:10:27.668+08:00 [2026-11-07 21:10:26] [WAVE][WARN] seg held 61 ms (idx=27)", "rel": -0.032, "cls": "E", "anchor_after": 1794057027.417} +{"n": 7, "fe": 1794057033.4185, "delta": 0.1081, "lad": -0.135, "anchor": 1794057027.417, "meas": true, "start_at": 1794057033.310354, "dur_ema": 2.363, "dur_ms": 2389, "start_epoch": 1794057033.3105276, "err_lines_new": [], "dl_rx": 1794057035.695, "grab": "[RX] 2026-11-07T21:10:35.582+08:00 [2026-11-07 21:10:34] [WAVE][WARN] seg held 59 ms (idx=31)", "rel": -0.113, "cls": "E", "anchor_after": 1794057035.333} +{"n": 8, "fe": 1794057041.3344998, "delta": 0.2535, "lad": 0.0, "anchor": 1794057035.333, "meas": true, "start_at": 1794057041.0810122, "dur_ema": 2.373, "dur_ms": 2304, "start_epoch": 1794057041.0815556, "err_lines_new": [], "dl_rx": 1794057043.393, "grab": "[RX] 2026-11-07T21:10:43.372+08:00 [2026-11-07 21:10:42] [WAVE][WARN] seg held 59 ms (idx=35)", "rel": -0.021, "cls": "E", "anchor_after": 1794057043.123} +{"n": 9, "fe": 1794057049.1244998, "delta": 0.1807, "lad": -0.045, "anchor": 1794057043.123, "meas": true, "start_at": 1794057048.9438074, "dur_ema": 2.346, "dur_ms": 2355, "start_epoch": 1794057048.9439747, "err_lines_new": [], "dl_rx": 1794057051.301, "grab": "[RX] 2026-11-07T21:10:51.239+08:00 [2026-11-07 21:10:50] [WAVE][WARN] seg held 57 ms (idx=39)", "rel": -0.062, "cls": "E", "anchor_after": 1794057050.992} +{"n": 10, "fe": 1794057056.9935, "delta": 0.2744, "lad": 0.045, "anchor": 1794057050.992, "meas": true, "start_at": 1794057056.7190845, "dur_ema": 2.349, "dur_ms": 2271, "start_epoch": 1794057056.7191944, "err_lines_new": [], "dl_rx": 1794057058.995, "grab": "[RX] 2026-11-07T21:10:58.985+08:00 [2026-11-07 21:10:58] [WAVE][WARN] seg held 60 ms (idx=43)", "rel": -0.01, "cls": "E", "anchor_after": 1794057058.735} +{"n": 11, "fe": 1794057064.7364998, "delta": 0.288, "lad": 0.09, "anchor": 1794057058.735, "meas": true, "start_at": 1794057064.4484506, "dur_ema": 2.318, "dur_ms": 2452, "start_epoch": 1794057064.4488025, "err_lines_new": [], "dl_rx": 1794057066.901, "grab": "[RX] 2026-11-07T21:11:08.682+08:00 [2026-11-07 21:11:07] [WAVE][WARN] seg held 59 ms (idx=46)", "rel": 1.781, "cls": "LATE", "anchor_after": 1794057064.432} +{"n": 12, "fe": 1794057072.434, "delta": 0.1616, "lad": -0.09, "anchor": 1794057064.432, "meas": true, "start_at": 1794057072.2723703, "dur_ema": 2.372, "dur_ms": 2311, "start_epoch": 1794057072.2729049, "err_lines_new": [], "dl_rx": 1794057074.588, "grab": "[RX] 2026-11-07T21:11:14.537+08:00 [2026-11-07 21:11:13] [WAVE][WARN] seg held 54 ms (idx=48)", "rel": -0.051, "cls": "E", "anchor_after": 1794057074.293} +{"n": 13, "fe": 1794057080.2944999, "delta": 0.3624, "lad": 0.135, "anchor": 1794057074.293, "meas": true, "start_at": 1794057079.9321222, "dur_ema": 2.347, "dur_ms": 2368, "start_epoch": 1794057079.9323525, "err_lines_new": [], "dl_rx": 1794057082.306, "grab": "[RX] 2026-11-07T21:11:22.254+08:00 [2026-11-07 21:11:21] [WAVE][WARN] seg held 54 ms (idx=51)", "rel": -0.052, "cls": "E", "anchor_after": 1794057082.01} +{"n": 14, "fe": 1794057088.0115, "delta": 0.1006, "lad": -0.135, "anchor": 1794057082.01, "meas": true, "start_at": 1794057087.9108732, "dur_ema": 2.356, "dur_ms": 2257, "start_epoch": 1794057087.9113526, "err_lines_new": [], "dl_rx": 1794057090.172, "grab": "[RX] 2026-11-07T21:11:30.161+08:00 [2026-11-07 21:11:29] [WAVE][WARN] seg held 58 ms (idx=54)", "rel": -0.011, "cls": "E", "anchor_after": 1794057089.913} +{"n": 15, "fe": 1794057095.9145, "delta": 0.1962, "lad": 0.0, "anchor": 1794057089.913, "meas": true, "start_at": 1794057095.718324, "dur_ema": 2.316, "dur_ms": 2591, "start_epoch": 1794057095.7185712, "err_lines_new": [], "dl_rx": 1794057098.318, "grab": "[RX] 2026-11-07T21:11:38.193+08:00 [2026-11-07 21:11:37] [WAVE][WARN] seg held 57 ms (idx=57)", "rel": -0.125, "cls": "E", "anchor_after": 1794057097.946} +{"n": 16, "fe": 1794057103.9475, "delta": 0.2611, "lad": -0.045, "anchor": 1794057097.946, "meas": true, "start_at": 1794057103.6863945, "dur_ema": 2.426, "dur_ms": 2414, "start_epoch": 1794057103.6871831, "err_lines_new": [], "dl_rx": 1794057106.107, "grab": "[RX] 2026-11-07T21:11:46.014+08:00 [2026-11-07 21:11:45] [WAVE][WARN] seg held 54 ms (idx=60)", "rel": -0.093, "cls": "E", "anchor_after": 1794057105.77} +{"n": 17, "fe": 1794057111.7714999, "delta": 0.3463, "lad": 0.045, "anchor": 1794057105.77, "meas": true, "start_at": 1794057111.4252365, "dur_ema": 2.421, "dur_ms": 2349, "start_epoch": 1794057111.4257514, "err_lines_new": [], "dl_rx": 1794057113.772, "grab": "[RX] 2026-11-07T21:11:53.741+08:00 [2026-11-07 21:11:52] [WAVE][WARN] seg held 57 ms (idx=63)", "rel": -0.031, "cls": "E", "anchor_after": 1794057113.494} diff --git a/docs/测试说明/测试数据/wave_bench_20261107/sweep7_probes_211352.jsonl b/docs/测试说明/测试数据/wave_bench_20261107/sweep7_probes_211352.jsonl new file mode 100644 index 00000000..0580a62c --- /dev/null +++ b/docs/测试说明/测试数据/wave_bench_20261107/sweep7_probes_211352.jsonl @@ -0,0 +1,11 @@ +{"n": 1, "fe": 1794057253.3715, "delta": 0.16, "lad": 0.0, "anchor": 1794057235.367, "meas": false, "start_at": 1794057253.2115, "dur_ema": 2.35, "dur_ms": 2384, "start_epoch": 1794057253.2117734, "err_lines_new": [], "dl_rx": 1794057255.593, "grab": "[RX] 2026-11-07T21:14:17.612+08:00 [2026-11-07 21:14:16] [WAVE][WARN] seg held 64 ms (idx=11)", "rel": 2.019, "cls": "LATE", "anchor_after": 1794057253.3569999} +{"n": 2, "fe": 1794057261.359, "delta": 0.1286, "lad": -0.045, "anchor": 1794057253.3569999, "meas": true, "start_at": 1794057261.2304, "dur_ema": 2.364, "dur_ms": 2383, "start_epoch": 1794057261.2308095, "err_lines_new": [], "dl_rx": 1794057263.61, "grab": "[RX] 2026-11-07T21:14:25.617+08:00 [2026-11-07 21:14:24] [WAVE][WARN] seg held 63 ms (idx=13)", "rel": 2.007, "cls": "LATE", "anchor_after": 1794057261.3630002} +{"n": 3, "fe": 1794057269.3650002, "delta": 0.2264, "lad": 0.045, "anchor": 1794057261.3630002, "meas": true, "start_at": 1794057269.1386402, "dur_ema": 2.371, "dur_ms": 2269, "start_epoch": 1794057269.1391664, "err_lines_new": [], "dl_rx": 1794057271.41, "grab": "[RX] 2026-11-07T21:14:31.368+08:00 [2026-11-07 21:14:30] [WAVE][WARN] seg held 63 ms (idx=15)", "rel": -0.042, "cls": "E", "anchor_after": 1794057261.3630002} +{"n": 4, "fe": 1794057277.367, "delta": 0.0504, "lad": -0.09, "anchor": 1794057261.3630002, "meas": true, "start_at": 1794057277.316584, "dur_ema": 2.33, "dur_ms": 2325, "start_epoch": 1794057277.3168, "err_lines_new": [], "dl_rx": 1794057279.641, "grab": "[RX] 2026-11-07T21:14:41.573+08:00 [2026-11-07 21:14:40] [WAVE][WARN] seg held 64 ms (idx=18)", "rel": 1.932, "cls": "LATE", "anchor_after": 1794057277.3179998} +{"n": 5, "fe": 1794057285.32, "delta": 0.2282, "lad": 0.09, "anchor": 1794057277.3179998, "meas": true, "start_at": 1794057285.0917504, "dur_ema": 2.328, "dur_ms": 2366, "start_epoch": 1794057285.092287, "err_lines_new": [], "dl_rx": 1794057287.461, "grab": "[RX] 2026-11-07T21:14:47.420+08:00 [2026-11-07 21:14:46] [WAVE][WARN] seg held 62 ms (idx=20)", "rel": -0.041, "cls": "E", "anchor_after": 1794057277.3179998} +{"n": 6, "fe": 1794057293.3219998, "delta": 0.1733, "lad": 0.02, "anchor": 1794057277.3179998, "meas": true, "start_at": 1794057293.14865, "dur_ema": 2.343, "dur_ms": 2246, "start_epoch": 1794057293.1490636, "err_lines_new": [], "dl_rx": 1794057295.401, "grab": "[RX] 2026-11-07T21:14:55.380+08:00 [2026-11-07 21:14:54] [WAVE][WARN] seg held 62 ms (idx=23)", "rel": -0.021, "cls": "E", "anchor_after": 1794057277.3179998} +{"n": 7, "fe": 1794057301.324, "delta": 0.0944, "lad": -0.02, "anchor": 1794057277.3179998, "meas": true, "start_at": 1794057301.22959, "dur_ema": 2.304, "dur_ms": 2545, "start_epoch": 1794057301.2299962, "err_lines_new": [], "dl_rx": 1794057303.773, "grab": "[RX] 2026-11-07T21:15:05.585+08:00 [2026-11-07 21:15:04] [WAVE][WARN] seg held 69 ms (idx=26)", "rel": 1.812, "cls": "LATE", "anchor_after": 1794057301.325} +{"n": 8, "fe": 1794057309.3270001, "delta": 0.2106, "lad": 0.0, "anchor": 1794057301.325, "meas": true, "start_at": 1794057309.1163542, "dur_ema": 2.401, "dur_ms": 2462, "start_epoch": 1794057309.116947, "err_lines_new": [], "dl_rx": 1794057311.575, "grab": "[RX] 2026-11-07T21:15:11.472+08:00 [2026-11-07 21:15:10] [WAVE][WARN] seg held 62 ms (idx=28)", "rel": -0.103, "cls": "E", "anchor_after": 1794057301.325} +{"n": 9, "fe": 1794057317.329, "delta": 0.1902, "lad": -0.045, "anchor": 1794057301.325, "meas": true, "start_at": 1794057317.1388125, "dur_ema": 2.425, "dur_ms": 2453, "start_epoch": 1794057317.1393352, "err_lines_new": [], "dl_rx": 1794057319.594, "grab": "[RX] 2026-11-07T21:15:19.470+08:00 [2026-11-07 21:15:18] [WAVE][WARN] seg held 64 ms (idx=31)", "rel": -0.124, "cls": "E", "anchor_after": 1794057301.325} +{"n": 10, "fe": 1794057325.331, "delta": 0.2913, "lad": 0.045, "anchor": 1794057301.325, "meas": true, "start_at": 1794057325.0396876, "dur_ema": 2.436, "dur_ms": 2389, "start_epoch": 1794057325.039925, "err_lines_new": [], "dl_rx": 1794057327.433, "grab": "[RX] 2026-11-07T21:15:27.392+08:00 [2026-11-07 21:15:26] [WAVE][WARN] seg held 61 ms (idx=34)", "rel": -0.041, "cls": "E", "anchor_after": 1794057301.325} +{"n": 11, "fe": 1794057333.333, "delta": 0.1374, "lad": -0.09, "anchor": 1794057301.325, "meas": true, "start_at": 1794057333.1956124, "dur_ema": 2.417, "dur_ms": 2388, "start_epoch": 1794057333.195739, "err_lines_new": ["[RX] 2026-11-07T21:15:35.576+08:00 [2026-11-07 21:15:34][ERR] [WAVE] seg drop: ring abandoned (idx=36 written=5250)"], "dl_rx": 1794057335.587, "grab": "[RX] 2026-11-07T21:15:35.576+08:00 [2026-11-07 21:15:34] [WAVE][WARN] seg held 124 ms (idx=36)", "rel": -0.011, "cls": "HIT", "anchor_after": 1794057301.325} diff --git a/docs/测试说明/测试数据/wave_bench_20261107/sweep_1794051196.json b/docs/测试说明/测试数据/wave_bench_20261107/sweep_1794051196.json new file mode 100644 index 00000000..bcec699f --- /dev/null +++ b/docs/测试说明/测试数据/wave_bench_20261107/sweep_1794051196.json @@ -0,0 +1,770 @@ +{ + "mode": "sweep2", + "remote": "/FILL2.BIN", + "t_start": "2026-11-07T19:28:54.668+08:00", + "rounds": [ + { + "start": "2026-11-07T19:29:15.824+08:00", + "start_epoch": 1794050955.8246725, + "end": "2026-11-07T19:29:17.440+08:00", + "dur_ms": 1616, + "round": 1, + "err_lines_total": 0, + "last_hb": "[RX] 2026-11-07T19:29:15.503+08:00 [2026-11-07 19:29:14][ADC_TASK] wave: seg=10 armed=0 src=T pts=320 err=0 ovf=0 drop=8016", + "held": [ + "[RX] 2026-11-07T19:29:05.982+08:00 [2026-11-07 19:29:04] [WAVE][WARN] seg held 52 ms (idx=6)", + "[RX] 2026-11-07T19:29:09.986+08:00 [2026-11-07 19:29:08] [WAVE][WARN] seg held 52 ms (idx=8)" + ] + }, + { + "start": "2026-11-07T19:29:20.388+08:00", + "start_epoch": 1794050960.3885086, + "end": "2026-11-07T19:29:21.979+08:00", + "dur_ms": 1591, + "round": 2, + "err_lines_total": 0, + "last_hb": "[RX] 2026-11-07T19:29:15.503+08:00 [2026-11-07 19:29:14][ADC_TASK] wave: seg=10 armed=0 src=T pts=320 err=0 ovf=0 drop=8016", + "held": [ + "[RX] 2026-11-07T19:29:05.982+08:00 [2026-11-07 19:29:04] [WAVE][WARN] seg held 52 ms (idx=6)", + "[RX] 2026-11-07T19:29:09.986+08:00 [2026-11-07 19:29:08] [WAVE][WARN] seg held 52 ms (idx=8)" + ] + }, + { + "start": "2026-11-07T19:29:25.411+08:00", + "start_epoch": 1794050965.4118137, + "end": "2026-11-07T19:29:26.993+08:00", + "dur_ms": 1581, + "round": 3, + "err_lines_total": 0, + "last_hb": "[RX] 2026-11-07T19:29:25.502+08:00 [2026-11-07 19:29:24][ADC_TASK] wave: seg=15 armed=0 src=T pts=320 err=0 ovf=0 drop=10480", + "held": [ + "[RX] 2026-11-07T19:29:09.986+08:00 [2026-11-07 19:29:08] [WAVE][WARN] seg held 52 ms (idx=8)", + "[RX] 2026-11-07T19:29:27.961+08:00 [2026-11-07 19:29:26] [WAVE][WARN] seg held 51 ms (idx=17)" + ] + }, + { + "start": "2026-11-07T19:29:30.137+08:00", + "start_epoch": 1794050970.1374831, + "end": "2026-11-07T19:29:31.763+08:00", + "dur_ms": 1627, + "round": 4, + "err_lines_total": 0, + "last_hb": "[RX] 2026-11-07T19:29:25.502+08:00 [2026-11-07 19:29:24][ADC_TASK] wave: seg=15 armed=0 src=T pts=320 err=0 ovf=0 drop=10480", + "held": [ + "[RX] 2026-11-07T19:29:27.961+08:00 [2026-11-07 19:29:26] [WAVE][WARN] seg held 51 ms (idx=17)", + "[RX] 2026-11-07T19:29:32.024+08:00 [2026-11-07 19:29:30] [WAVE][WARN] seg held 99 ms (idx=19)" + ] + }, + { + "start": "2026-11-07T19:29:34.012+08:00", + "start_epoch": 1794050974.0120728, + "end": "2026-11-07T19:29:35.564+08:00", + "dur_ms": 1553, + "round": 5, + "err_lines_total": 0, + "last_hb": "[RX] 2026-11-07T19:29:35.503+08:00 [2026-11-07 19:29:34][ADC_TASK] wave: seg=20 armed=0 src=T pts=320 err=0 ovf=0 drop=21800", + "held": [ + "[RX] 2026-11-07T19:29:27.961+08:00 [2026-11-07 19:29:26] [WAVE][WARN] seg held 51 ms (idx=17)", + "[RX] 2026-11-07T19:29:32.024+08:00 [2026-11-07 19:29:30] [WAVE][WARN] seg held 99 ms (idx=19)" + ] + }, + { + "start": "2026-11-07T19:29:38.711+08:00", + "start_epoch": 1794050978.7110798, + "end": "2026-11-07T19:29:40.210+08:00", + "dur_ms": 1499, + "round": 6, + "err_lines_total": 0, + "last_hb": "[RX] 2026-11-07T19:29:35.503+08:00 [2026-11-07 19:29:34][ADC_TASK] wave: seg=20 armed=0 src=T pts=320 err=0 ovf=0 drop=21800", + "held": [ + "[RX] 2026-11-07T19:29:27.961+08:00 [2026-11-07 19:29:26] [WAVE][WARN] seg held 51 ms (idx=17)", + "[RX] 2026-11-07T19:29:32.024+08:00 [2026-11-07 19:29:30] [WAVE][WARN] seg held 99 ms (idx=19)" + ] + }, + { + "start": "2026-11-07T19:29:43.054+08:00", + "start_epoch": 1794050983.0540175, + "end": "2026-11-07T19:29:44.595+08:00", + "dur_ms": 1541, + "round": 7, + "err_lines_total": 0, + "last_hb": "[RX] 2026-11-07T19:29:45.617+08:00 [2026-11-07 19:29:44][ADC_TASK] wave: seg=25 armed=0 src=T pts=320 err=0 ovf=0 drop=31320", + "held": [ + "[RX] 2026-11-07T19:29:27.961+08:00 [2026-11-07 19:29:26] [WAVE][WARN] seg held 51 ms (idx=17)", + "[RX] 2026-11-07T19:29:32.024+08:00 [2026-11-07 19:29:30] [WAVE][WARN] seg held 99 ms (idx=19)" + ] + }, + { + "start": "2026-11-07T19:29:46.945+08:00", + "start_epoch": 1794050986.945817, + "end": "2026-11-07T19:29:48.445+08:00", + "dur_ms": 1499, + "round": 8, + "err_lines_total": 0, + "last_hb": "[RX] 2026-11-07T19:29:45.617+08:00 [2026-11-07 19:29:44][ADC_TASK] wave: seg=25 armed=0 src=T pts=320 err=0 ovf=0 drop=31320", + "held": [ + "[RX] 2026-11-07T19:29:27.961+08:00 [2026-11-07 19:29:26] [WAVE][WARN] seg held 51 ms (idx=17)", + "[RX] 2026-11-07T19:29:32.024+08:00 [2026-11-07 19:29:30] [WAVE][WARN] seg held 99 ms (idx=19)" + ] + }, + { + "start": "2026-11-07T19:29:50.486+08:00", + "start_epoch": 1794050990.4860992, + "end": "2026-11-07T19:29:52.015+08:00", + "dur_ms": 1529, + "round": 9, + "err_lines_total": 0, + "last_hb": "[RX] 2026-11-07T19:29:45.617+08:00 [2026-11-07 19:29:44][ADC_TASK] wave: seg=25 armed=0 src=T pts=320 err=0 ovf=0 drop=31320", + "held": [ + "[RX] 2026-11-07T19:29:32.024+08:00 [2026-11-07 19:29:30] [WAVE][WARN] seg held 99 ms (idx=19)", + "[RX] 2026-11-07T19:29:52.000+08:00 [2026-11-07 19:29:50] [WAVE][WARN] seg held 51 ms (idx=29)" + ] + }, + { + "start": "2026-11-07T19:29:55.061+08:00", + "start_epoch": 1794050995.0619583, + "end": "2026-11-07T19:29:56.660+08:00", + "dur_ms": 1599, + "round": 10, + "err_lines_total": 0, + "last_hb": "[RX] 2026-11-07T19:29:55.508+08:00 [2026-11-07 19:29:54][ADC_TASK] wave: seg=30 armed=0 src=T pts=320 err=0 ovf=0 drop=38144", + "held": [ + "[RX] 2026-11-07T19:29:32.024+08:00 [2026-11-07 19:29:30] [WAVE][WARN] seg held 99 ms (idx=19)", + "[RX] 2026-11-07T19:29:52.000+08:00 [2026-11-07 19:29:50] [WAVE][WARN] seg held 51 ms (idx=29)" + ] + }, + { + "start": "2026-11-07T19:29:59.917+08:00", + "start_epoch": 1794050999.9178953, + "end": "2026-11-07T19:30:01.565+08:00", + "dur_ms": 1648, + "round": 11, + "err_lines_total": 0, + "last_hb": "[RX] 2026-11-07T19:29:55.508+08:00 [2026-11-07 19:29:54][ADC_TASK] wave: seg=30 armed=0 src=T pts=320 err=0 ovf=0 drop=38144", + "held": [ + "[RX] 2026-11-07T19:29:59.975+08:00 [2026-11-07 19:29:58] [WAVE][WARN] seg held 52 ms (idx=33)", + "[RX] 2026-11-07T19:30:01.985+08:00 [2026-11-07 19:30:00] [WAVE][WARN] seg held 52 ms (idx=34)" + ] + }, + { + "start": "2026-11-07T19:30:03.406+08:00", + "start_epoch": 1794051003.4064732, + "end": "2026-11-07T19:30:04.965+08:00", + "dur_ms": 1559, + "round": 12, + "err_lines_total": 0, + "last_hb": "[RX] 2026-11-07T19:30:05.504+08:00 [2026-11-07 19:30:04][ADC_TASK] wave: seg=35 armed=0 src=T pts=320 err=0 ovf=0 drop=54168", + "held": [ + "[RX] 2026-11-07T19:29:59.975+08:00 [2026-11-07 19:29:58] [WAVE][WARN] seg held 52 ms (idx=33)", + "[RX] 2026-11-07T19:30:01.985+08:00 [2026-11-07 19:30:00] [WAVE][WARN] seg held 52 ms (idx=34)" + ] + }, + { + "start": "2026-11-07T19:30:07.609+08:00", + "start_epoch": 1794051007.6099582, + "end": "2026-11-07T19:30:09.168+08:00", + "dur_ms": 1558, + "round": 13, + "err_lines_total": 0, + "last_hb": "[RX] 2026-11-07T19:30:05.504+08:00 [2026-11-07 19:30:04][ADC_TASK] wave: seg=35 armed=0 src=T pts=320 err=0 ovf=0 drop=54168", + "held": [ + "[RX] 2026-11-07T19:29:59.975+08:00 [2026-11-07 19:29:58] [WAVE][WARN] seg held 52 ms (idx=33)", + "[RX] 2026-11-07T19:30:01.985+08:00 [2026-11-07 19:30:00] [WAVE][WARN] seg held 52 ms (idx=34)" + ] + }, + { + "start": "2026-11-07T19:30:12.732+08:00", + "start_epoch": 1794051012.7321181, + "end": "2026-11-07T19:30:14.366+08:00", + "dur_ms": 1634, + "round": 14, + "err_lines_total": 0, + "last_hb": "[RX] 2026-11-07T19:30:15.504+08:00 [2026-11-07 19:30:14][ADC_TASK] wave: seg=40 armed=0 src=T pts=320 err=0 ovf=0 drop=68528", + "held": [ + "[RX] 2026-11-07T19:30:01.985+08:00 [2026-11-07 19:30:00] [WAVE][WARN] seg held 52 ms (idx=34)", + "[RX] 2026-11-07T19:30:14.239+08:00 [2026-11-07 19:30:13] [WAVE][WARN] seg held 51 ms (idx=40)" + ] + }, + { + "start": "2026-11-07T19:30:17.116+08:00", + "start_epoch": 1794051017.1160338, + "end": "2026-11-07T19:30:18.598+08:00", + "dur_ms": 1482, + "round": 15, + "err_lines_total": 0, + "last_hb": "[RX] 2026-11-07T19:30:15.504+08:00 [2026-11-07 19:30:14][ADC_TASK] wave: seg=40 armed=0 src=T pts=320 err=0 ovf=0 drop=68528", + "held": [ + "[RX] 2026-11-07T19:30:01.985+08:00 [2026-11-07 19:30:00] [WAVE][WARN] seg held 52 ms (idx=34)", + "[RX] 2026-11-07T19:30:14.239+08:00 [2026-11-07 19:30:13] [WAVE][WARN] seg held 51 ms (idx=40)" + ] + }, + { + "start": "2026-11-07T19:30:20.945+08:00", + "start_epoch": 1794051020.9456198, + "end": "2026-11-07T19:30:22.455+08:00", + "dur_ms": 1510, + "round": 16, + "err_lines_total": 0, + "last_hb": "[RX] 2026-11-07T19:30:15.504+08:00 [2026-11-07 19:30:14][ADC_TASK] wave: seg=40 armed=0 src=T pts=320 err=0 ovf=0 drop=68528", + "held": [ + "[RX] 2026-11-07T19:30:01.985+08:00 [2026-11-07 19:30:00] [WAVE][WARN] seg held 52 ms (idx=34)", + "[RX] 2026-11-07T19:30:14.239+08:00 [2026-11-07 19:30:13] [WAVE][WARN] seg held 51 ms (idx=40)" + ] + }, + { + "start": "2026-11-07T19:30:25.297+08:00", + "start_epoch": 1794051025.297716, + "end": "2026-11-07T19:30:26.965+08:00", + "dur_ms": 1668, + "round": 17, + "err_lines_total": 0, + "last_hb": "[RX] 2026-11-07T19:30:25.512+08:00 [2026-11-07 19:30:24][ADC_TASK] wave: seg=45 armed=0 src=T pts=320 err=0 ovf=0 drop=79704", + "held": [ + "[RX] 2026-11-07T19:30:01.985+08:00 [2026-11-07 19:30:00] [WAVE][WARN] seg held 52 ms (idx=34)", + "[RX] 2026-11-07T19:30:14.239+08:00 [2026-11-07 19:30:13] [WAVE][WARN] seg held 51 ms (idx=40)" + ] + }, + { + "start": "2026-11-07T19:30:29.510+08:00", + "start_epoch": 1794051029.5106008, + "end": "2026-11-07T19:30:31.067+08:00", + "dur_ms": 1557, + "round": 18, + "err_lines_total": 0, + "last_hb": "[RX] 2026-11-07T19:30:25.512+08:00 [2026-11-07 19:30:24][ADC_TASK] wave: seg=45 armed=0 src=T pts=320 err=0 ovf=0 drop=79704", + "held": [ + "[RX] 2026-11-07T19:30:01.985+08:00 [2026-11-07 19:30:00] [WAVE][WARN] seg held 52 ms (idx=34)", + "[RX] 2026-11-07T19:30:14.239+08:00 [2026-11-07 19:30:13] [WAVE][WARN] seg held 51 ms (idx=40)" + ] + }, + { + "start": "2026-11-07T19:30:32.913+08:00", + "start_epoch": 1794051032.9134269, + "end": "2026-11-07T19:30:34.472+08:00", + "dur_ms": 1559, + "round": 19, + "err_lines_total": 0, + "last_hb": "[RX] 2026-11-07T19:30:35.502+08:00 [2026-11-07 19:30:34][ADC_TASK] wave: seg=50 armed=0 src=T pts=320 err=0 ovf=0 drop=102496", + "held": [ + "[RX] 2026-11-07T19:30:01.985+08:00 [2026-11-07 19:30:00] [WAVE][WARN] seg held 52 ms (idx=34)", + "[RX] 2026-11-07T19:30:14.239+08:00 [2026-11-07 19:30:13] [WAVE][WARN] seg held 51 ms (idx=40)" + ] + }, + { + "start": "2026-11-07T19:30:37.116+08:00", + "start_epoch": 1794051037.1162913, + "end": "2026-11-07T19:30:38.766+08:00", + "dur_ms": 1651, + "round": 20, + "err_lines_total": 0, + "last_hb": "[RX] 2026-11-07T19:30:35.502+08:00 [2026-11-07 19:30:34][ADC_TASK] wave: seg=50 armed=0 src=T pts=320 err=0 ovf=0 drop=102496", + "held": [ + "[RX] 2026-11-07T19:30:01.985+08:00 [2026-11-07 19:30:00] [WAVE][WARN] seg held 52 ms (idx=34)", + "[RX] 2026-11-07T19:30:14.239+08:00 [2026-11-07 19:30:13] [WAVE][WARN] seg held 51 ms (idx=40)" + ] + }, + { + "start": "2026-11-07T19:30:41.939+08:00", + "start_epoch": 1794051041.9395332, + "end": "2026-11-07T19:30:43.567+08:00", + "dur_ms": 1628, + "round": 21, + "err_lines_total": 0, + "last_hb": "[RX] 2026-11-07T19:30:35.502+08:00 [2026-11-07 19:30:34][ADC_TASK] wave: seg=50 armed=0 src=T pts=320 err=0 ovf=0 drop=102496", + "held": [ + "[RX] 2026-11-07T19:30:01.985+08:00 [2026-11-07 19:30:00] [WAVE][WARN] seg held 52 ms (idx=34)", + "[RX] 2026-11-07T19:30:14.239+08:00 [2026-11-07 19:30:13] [WAVE][WARN] seg held 51 ms (idx=40)" + ] + }, + { + "start": "2026-11-07T19:30:45.614+08:00", + "start_epoch": 1794051045.6142116, + "end": "2026-11-07T19:30:47.173+08:00", + "dur_ms": 1559, + "round": 22, + "err_lines_total": 0, + "last_hb": "[RX] 2026-11-07T19:30:45.500+08:00 [2026-11-07 19:30:44][ADC_TASK] wave: seg=55 armed=0 src=T pts=320 err=0 ovf=0 drop=111056", + "held": [ + "[RX] 2026-11-07T19:30:01.985+08:00 [2026-11-07 19:30:00] [WAVE][WARN] seg held 52 ms (idx=34)", + "[RX] 2026-11-07T19:30:14.239+08:00 [2026-11-07 19:30:13] [WAVE][WARN] seg held 51 ms (idx=40)" + ] + }, + { + "start": "2026-11-07T19:30:50.223+08:00", + "start_epoch": 1794051050.2224383, + "end": "2026-11-07T19:30:51.809+08:00", + "dur_ms": 1587, + "round": 23, + "err_lines_total": 0, + "last_hb": "[RX] 2026-11-07T19:30:45.500+08:00 [2026-11-07 19:30:44][ADC_TASK] wave: seg=55 armed=0 src=T pts=320 err=0 ovf=0 drop=111056", + "held": [ + "[RX] 2026-11-07T19:30:14.239+08:00 [2026-11-07 19:30:13] [WAVE][WARN] seg held 51 ms (idx=40)", + "[RX] 2026-11-07T19:30:51.987+08:00 [2026-11-07 19:30:50] [WAVE][WARN] seg held 55 ms (idx=59)" + ] + }, + { + "start": "2026-11-07T19:30:55.154+08:00", + "start_epoch": 1794051055.1541958, + "end": "2026-11-07T19:30:56.772+08:00", + "dur_ms": 1619, + "round": 24, + "err_lines_total": 0, + "last_hb": "[RX] 2026-11-07T19:30:55.509+08:00 [2026-11-07 19:30:54][ADC_TASK] wave: seg=60 armed=0 src=T pts=320 err=0 ovf=0 drop=123016", + "held": [ + "[RX] 2026-11-07T19:30:14.239+08:00 [2026-11-07 19:30:13] [WAVE][WARN] seg held 51 ms (idx=40)", + "[RX] 2026-11-07T19:30:51.987+08:00 [2026-11-07 19:30:50] [WAVE][WARN] seg held 55 ms (idx=59)" + ] + }, + { + "start": "2026-11-07T19:30:59.114+08:00", + "start_epoch": 1794051059.114208, + "end": "2026-11-07T19:31:00.772+08:00", + "dur_ms": 1658, + "round": 25, + "err_lines_total": 0, + "last_hb": "[RX] 2026-11-07T19:30:55.509+08:00 [2026-11-07 19:30:54][ADC_TASK] wave: seg=60 armed=0 src=T pts=320 err=0 ovf=0 drop=123016", + "held": [ + "[RX] 2026-11-07T19:30:14.239+08:00 [2026-11-07 19:30:13] [WAVE][WARN] seg held 51 ms (idx=40)", + "[RX] 2026-11-07T19:30:51.987+08:00 [2026-11-07 19:30:50] [WAVE][WARN] seg held 55 ms (idx=59)" + ] + }, + { + "start": "2026-11-07T19:31:03.120+08:00", + "start_epoch": 1794051063.1209435, + "end": "2026-11-07T19:31:04.767+08:00", + "dur_ms": 1647, + "round": 26, + "err_lines_total": 0, + "last_hb": "[RX] 2026-11-07T19:31:05.500+08:00 [2026-11-07 19:31:04][ADC_TASK] wave: seg=65 armed=0 src=T pts=320 err=0 ovf=0 drop=143056", + "held": [ + "[RX] 2026-11-07T19:30:51.987+08:00 [2026-11-07 19:30:50] [WAVE][WARN] seg held 55 ms (idx=59)", + "[RX] 2026-11-07T19:31:04.680+08:00 [2026-11-07 19:31:03] [WAVE][WARN] seg held 92 ms (idx=65)" + ] + }, + { + "start": "2026-11-07T19:31:07.821+08:00", + "start_epoch": 1794051067.8214972, + "end": "2026-11-07T19:31:09.410+08:00", + "dur_ms": 1589, + "round": 27, + "err_lines_total": 0, + "last_hb": "[RX] 2026-11-07T19:31:05.500+08:00 [2026-11-07 19:31:04][ADC_TASK] wave: seg=65 armed=0 src=T pts=320 err=0 ovf=0 drop=143056", + "held": [ + "[RX] 2026-11-07T19:31:07.990+08:00 [2026-11-07 19:31:06] [WAVE][WARN] seg held 76 ms (idx=67)", + "[RX] 2026-11-07T19:31:10.081+08:00 [2026-11-07 19:31:08] [WAVE][WARN] seg held 146 ms (idx=68)" + ] + }, + { + "start": "2026-11-07T19:31:12.365+08:00", + "start_epoch": 1794051072.3654168, + "end": "2026-11-07T19:31:13.985+08:00", + "dur_ms": 1621, + "round": 28, + "err_lines_total": 0, + "last_hb": "[RX] 2026-11-07T19:31:05.500+08:00 [2026-11-07 19:31:04][ADC_TASK] wave: seg=65 armed=0 src=T pts=320 err=0 ovf=0 drop=143056", + "held": [ + "[RX] 2026-11-07T19:31:12.047+08:00 [2026-11-07 19:31:10] [WAVE][WARN] seg held 122 ms (idx=69)", + "[RX] 2026-11-07T19:31:14.108+08:00 [2026-11-07 19:31:12] [WAVE][WARN] seg held 127 ms (idx=70)" + ] + }, + { + "start": "2026-11-07T19:31:16.151+08:00", + "start_epoch": 1794051076.1515968, + "end": "2026-11-07T19:31:17.770+08:00", + "dur_ms": 1619, + "round": 29, + "err_lines_total": 0, + "last_hb": "[RX] 2026-11-07T19:31:15.507+08:00 [2026-11-07 19:31:14][ADC_TASK] wave: seg=70 armed=0 src=T pts=320 err=0 ovf=0 drop=148656", + "held": [ + "[RX] 2026-11-07T19:31:16.054+08:00 [2026-11-07 19:31:14] [WAVE][WARN] seg held 123 ms (idx=71)", + "[RX] 2026-11-07T19:31:18.290+08:00 [2026-11-07 19:31:17] [WAVE][WARN] seg held 350 ms (idx=72)" + ] + }, + { + "start": "2026-11-07T19:31:20.429+08:00", + "start_epoch": 1794051080.4295971, + "end": "2026-11-07T19:31:21.987+08:00", + "dur_ms": 1558, + "round": 30, + "err_lines_total": 0, + "last_hb": "[RX] 2026-11-07T19:31:15.507+08:00 [2026-11-07 19:31:14][ADC_TASK] wave: seg=70 armed=0 src=T pts=320 err=0 ovf=0 drop=148656", + "held": [ + "[RX] 2026-11-07T19:31:20.003+08:00 [2026-11-07 19:31:18] [WAVE][WARN] seg held 94 ms (idx=73)", + "[RX] 2026-11-07T19:31:21.998+08:00 [2026-11-07 19:31:20] [WAVE][WARN] seg held 96 ms (idx=74)" + ] + }, + { + "start": "2026-11-07T19:31:24.743+08:00", + "start_epoch": 1794051084.7433267, + "end": "2026-11-07T19:31:26.386+08:00", + "dur_ms": 1643, + "round": 31, + "err_lines_total": 0, + "last_hb": "[RX] 2026-11-07T19:31:25.505+08:00 [2026-11-07 19:31:24][ADC_TASK] wave: seg=75 armed=0 src=T pts=320 err=0 ovf=0 drop=155648", + "held": [ + "[RX] 2026-11-07T19:31:24.033+08:00 [2026-11-07 19:31:22] [WAVE][WARN] seg held 98 ms (idx=75)", + "[RX] 2026-11-07T19:31:26.445+08:00 [2026-11-07 19:31:25] [WAVE][WARN] seg held 152 ms (idx=76)" + ] + }, + { + "start": "2026-11-07T19:31:27.955+08:00", + "start_epoch": 1794051087.955911, + "end": "2026-11-07T19:31:29.574+08:00", + "dur_ms": 1618, + "round": 32, + "err_lines_total": 0, + "last_hb": "[RX] 2026-11-07T19:31:25.505+08:00 [2026-11-07 19:31:24][ADC_TASK] wave: seg=75 armed=0 src=T pts=320 err=0 ovf=0 drop=155648", + "held": [ + "[RX] 2026-11-07T19:31:28.091+08:00 [2026-11-07 19:31:26] [WAVE][WARN] seg held 157 ms (idx=77)", + "[RX] 2026-11-07T19:31:30.088+08:00 [2026-11-07 19:31:29] [WAVE][WARN] seg held 189 ms (idx=78)" + ] + }, + { + "start": "2026-11-07T19:31:32.734+08:00", + "start_epoch": 1794051092.7341805, + "end": "2026-11-07T19:31:34.255+08:00", + "dur_ms": 1522, + "round": 33, + "err_lines_total": 0, + "last_hb": "[RX] 2026-11-07T19:31:25.505+08:00 [2026-11-07 19:31:24][ADC_TASK] wave: seg=75 armed=0 src=T pts=320 err=0 ovf=0 drop=155648", + "held": [ + "[RX] 2026-11-07T19:31:32.012+08:00 [2026-11-07 19:31:30] [WAVE][WARN] seg held 113 ms (idx=79)", + "[RX] 2026-11-07T19:31:34.250+08:00 [2026-11-07 19:31:33] [WAVE][WARN] seg held 109 ms (idx=80)" + ] + }, + { + "start": "2026-11-07T19:31:36.404+08:00", + "start_epoch": 1794051096.4041886, + "end": "2026-11-07T19:31:37.987+08:00", + "dur_ms": 1583, + "round": 34, + "err_lines_total": 0, + "last_hb": "[RX] 2026-11-07T19:31:35.494+08:00 [2026-11-07 19:31:34][ADC_TASK] wave: seg=80 armed=0 src=T pts=320 err=0 ovf=0 drop=166696", + "held": [ + "[RX] 2026-11-07T19:31:36.032+08:00 [2026-11-07 19:31:34] [WAVE][WARN] seg held 102 ms (idx=81)", + "[RX] 2026-11-07T19:31:38.101+08:00 [2026-11-07 19:31:36] [WAVE][WARN] seg held 122 ms (idx=82)" + ] + }, + { + "start": "2026-11-07T19:31:40.547+08:00", + "start_epoch": 1794051100.5470848, + "end": "2026-11-07T19:31:42.091+08:00", + "dur_ms": 1545, + "round": 35, + "err_lines_total": 0, + "last_hb": "[RX] 2026-11-07T19:31:35.494+08:00 [2026-11-07 19:31:34][ADC_TASK] wave: seg=80 armed=0 src=T pts=320 err=0 ovf=0 drop=166696", + "held": [ + "[RX] 2026-11-07T19:31:40.066+08:00 [2026-11-07 19:31:38] [WAVE][WARN] seg held 126 ms (idx=83)", + "[RX] 2026-11-07T19:31:42.106+08:00 [2026-11-07 19:31:41] [WAVE][WARN] seg held 87 ms (idx=84)" + ] + }, + { + "start": "2026-11-07T19:31:45.548+08:00", + "start_epoch": 1794051105.5484278, + "end": "2026-11-07T19:31:47.052+08:00", + "dur_ms": 1504, + "round": 36, + "err_lines_total": 0, + "last_hb": "[RX] 2026-11-07T19:31:45.495+08:00 [2026-11-07 19:31:44][ADC_TASK] wave: seg=85 armed=0 src=T pts=320 err=0 ovf=0 drop=173616", + "held": [ + "[RX] 2026-11-07T19:31:47.048+08:00 [2026-11-07 19:31:45] [WAVE][WARN] seg held 115 ms (idx=86)", + "[RX] 2026-11-07T19:31:48.029+08:00 [2026-11-07 19:31:46] [WAVE][WARN] seg held 87 ms (idx=87)" + ] + }, + { + "start": "2026-11-07T19:31:48.796+08:00", + "start_epoch": 1794051108.7965755, + "end": "2026-11-07T19:31:50.369+08:00", + "dur_ms": 1573, + "round": 37, + "err_lines_total": 0, + "last_hb": "[RX] 2026-11-07T19:31:45.495+08:00 [2026-11-07 19:31:44][ADC_TASK] wave: seg=85 armed=0 src=T pts=320 err=0 ovf=0 drop=173616", + "held": [ + "[RX] 2026-11-07T19:31:48.029+08:00 [2026-11-07 19:31:46] [WAVE][WARN] seg held 87 ms (idx=87)", + "[RX] 2026-11-07T19:31:50.300+08:00 [2026-11-07 19:31:49] [WAVE][WARN] seg held 81 ms (idx=88)" + ] + }, + { + "start": "2026-11-07T19:31:52.216+08:00", + "start_epoch": 1794051112.2167828, + "end": "2026-11-07T19:31:53.773+08:00", + "dur_ms": 1557, + "round": 38, + "err_lines_total": 0, + "last_hb": "[RX] 2026-11-07T19:31:45.495+08:00 [2026-11-07 19:31:44][ADC_TASK] wave: seg=85 armed=0 src=T pts=320 err=0 ovf=0 drop=173616", + "held": [ + "[RX] 2026-11-07T19:31:51.971+08:00 [2026-11-07 19:31:50] [WAVE][WARN] seg held 81 ms (idx=89)", + "[RX] 2026-11-07T19:31:53.991+08:00 [2026-11-07 19:31:52] [WAVE][WARN] seg held 92 ms (idx=90)" + ] + }, + { + "start": "2026-11-07T19:31:57.241+08:00", + "start_epoch": 1794051117.241369, + "end": "2026-11-07T19:31:58.776+08:00", + "dur_ms": 1535, + "round": 39, + "err_lines_total": 0, + "last_hb": "[RX] 2026-11-07T19:31:55.501+08:00 [2026-11-07 19:31:54][ADC_TASK] wave: seg=90 armed=0 src=T pts=320 err=0 ovf=0 drop=188664", + "held": [ + "[RX] 2026-11-07T19:31:56.029+08:00 [2026-11-07 19:31:54] [WAVE][WARN] seg held 116 ms (idx=91)", + "[RX] 2026-11-07T19:31:58.770+08:00 [2026-11-07 19:31:57] [WAVE][WARN] seg held 103 ms (idx=92)" + ] + }, + { + "start": "2026-11-07T19:32:00.728+08:00", + "start_epoch": 1794051120.7286644, + "end": "2026-11-07T19:32:02.386+08:00", + "dur_ms": 1657, + "round": 40, + "err_lines_total": 0, + "last_hb": "[RX] 2026-11-07T19:31:55.501+08:00 [2026-11-07 19:31:54][ADC_TASK] wave: seg=90 armed=0 src=T pts=320 err=0 ovf=0 drop=188664", + "held": [ + "[RX] 2026-11-07T19:32:00.020+08:00 [2026-11-07 19:31:58] [WAVE][WARN] seg held 105 ms (idx=93)", + "[RX] 2026-11-07T19:32:02.255+08:00 [2026-11-07 19:32:01] [WAVE][WARN] seg held 86 ms (idx=94)" + ] + }, + { + "start": "2026-11-07T19:32:04.144+08:00", + "start_epoch": 1794051124.1445668, + "end": "2026-11-07T19:32:05.789+08:00", + "dur_ms": 1645, + "round": 41, + "err_lines_total": 0, + "last_hb": "[RX] 2026-11-07T19:32:05.505+08:00 [2026-11-07 19:32:04][ADC_TASK] wave: seg=95 armed=0 src=T pts=320 err=0 ovf=0 drop=201592", + "held": [ + "[RX] 2026-11-07T19:32:03.996+08:00 [2026-11-07 19:32:02] [WAVE][WARN] seg held 92 ms (idx=95)", + "[RX] 2026-11-07T19:32:06.169+08:00 [2026-11-07 19:32:05] [WAVE][WARN] seg held 227 ms (idx=96)" + ] + }, + { + "start": "2026-11-07T19:32:08.138+08:00", + "start_epoch": 1794051128.1382148, + "end": "2026-11-07T19:32:09.618+08:00", + "dur_ms": 1480, + "round": 42, + "err_lines_total": 0, + "last_hb": "[RX] 2026-11-07T19:32:05.505+08:00 [2026-11-07 19:32:04][ADC_TASK] wave: seg=95 armed=0 src=T pts=320 err=0 ovf=0 drop=201592", + "held": [ + "[RX] 2026-11-07T19:32:08.056+08:00 [2026-11-07 19:32:06] [WAVE][WARN] seg held 128 ms (idx=97)", + "[RX] 2026-11-07T19:32:10.104+08:00 [2026-11-07 19:32:09] [WAVE][WARN] seg held 164 ms (idx=98)" + ] + }, + { + "start": "2026-11-07T19:32:10.968+08:00", + "start_epoch": 1794051130.9683368, + "end": "2026-11-07T19:32:12.570+08:00", + "dur_ms": 1603, + "round": 43, + "err_lines_total": 0, + "last_hb": "[RX] 2026-11-07T19:32:05.505+08:00 [2026-11-07 19:32:04][ADC_TASK] wave: seg=95 armed=0 src=T pts=320 err=0 ovf=0 drop=201592", + "held": [ + "[RX] 2026-11-07T19:32:10.104+08:00 [2026-11-07 19:32:09] [WAVE][WARN] seg held 164 ms (idx=98)", + "[RX] 2026-11-07T19:32:12.557+08:00 [2026-11-07 19:32:11] [WAVE][WARN] seg held 122 ms (idx=99)" + ] + }, + { + "start": "2026-11-07T19:32:15.018+08:00", + "start_epoch": 1794051135.0183134, + "end": "2026-11-07T19:32:16.629+08:00", + "dur_ms": 1611, + "round": 44, + "err_lines_total": 0, + "last_hb": "[RX] 2026-11-07T19:32:15.504+08:00 [2026-11-07 19:32:14][ADC_TASK] wave: seg=100 armed=0 src=T pts=320 err=0 ovf=0 drop=212960", + "held": [ + "[RX] 2026-11-07T19:32:14.008+08:00 [2026-11-07 19:32:12] [WAVE][WARN] seg held 113 ms (idx=0)", + "[RX] 2026-11-07T19:32:16.613+08:00 [2026-11-07 19:32:15] [WAVE][WARN] seg held 93 ms (idx=1)" + ] + }, + { + "start": "2026-11-07T19:32:20.000+08:00", + "start_epoch": 1794051140.0007622, + "end": "2026-11-07T19:32:21.624+08:00", + "dur_ms": 1624, + "round": 45, + "err_lines_total": 0, + "last_hb": "[RX] 2026-11-07T19:32:15.504+08:00 [2026-11-07 19:32:14][ADC_TASK] wave: seg=100 armed=0 src=T pts=320 err=0 ovf=0 drop=212960", + "held": [ + "[RX] 2026-11-07T19:32:20.047+08:00 [2026-11-07 19:32:18] [WAVE][WARN] seg held 95 ms (idx=3)", + "[RX] 2026-11-07T19:32:22.002+08:00 [2026-11-07 19:32:20] [WAVE][WARN] seg held 104 ms (idx=4)" + ] + }, + { + "start": "2026-11-07T19:32:24.179+08:00", + "start_epoch": 1794051144.1798894, + "end": "2026-11-07T19:32:25.789+08:00", + "dur_ms": 1609, + "round": 46, + "err_lines_total": 0, + "last_hb": "[RX] 2026-11-07T19:32:25.501+08:00 [2026-11-07 19:32:24][ADC_TASK] wave: seg=105 armed=0 src=T pts=320 err=0 ovf=0 drop=222672", + "held": [ + "[RX] 2026-11-07T19:32:24.030+08:00 [2026-11-07 19:32:22] [WAVE][WARN] seg held 103 ms (idx=5)", + "[RX] 2026-11-07T19:32:26.105+08:00 [2026-11-07 19:32:25] [WAVE][WARN] seg held 154 ms (idx=6)" + ] + }, + { + "start": "2026-11-07T19:32:28.144+08:00", + "start_epoch": 1794051148.144161, + "end": "2026-11-07T19:32:29.668+08:00", + "dur_ms": 1524, + "round": 47, + "err_lines_total": 0, + "last_hb": "[RX] 2026-11-07T19:32:25.501+08:00 [2026-11-07 19:32:24][ADC_TASK] wave: seg=105 armed=0 src=T pts=320 err=0 ovf=0 drop=222672", + "held": [ + "[RX] 2026-11-07T19:32:28.034+08:00 [2026-11-07 19:32:26] [WAVE][WARN] seg held 106 ms (idx=7)", + "[RX] 2026-11-07T19:32:30.015+08:00 [2026-11-07 19:32:28] [WAVE][WARN] seg held 103 ms (idx=8)" + ] + }, + { + "start": "2026-11-07T19:32:32.224+08:00", + "start_epoch": 1794051152.2245808, + "end": "2026-11-07T19:32:33.770+08:00", + "dur_ms": 1546, + "round": 48, + "err_lines_total": 0, + "last_hb": "[RX] 2026-11-07T19:32:25.501+08:00 [2026-11-07 19:32:24][ADC_TASK] wave: seg=105 armed=0 src=T pts=320 err=0 ovf=0 drop=222672", + "held": [ + "[RX] 2026-11-07T19:32:31.985+08:00 [2026-11-07 19:32:30] [WAVE][WARN] seg held 73 ms (idx=9)", + "[RX] 2026-11-07T19:32:34.091+08:00 [2026-11-07 19:32:32] [WAVE][WARN] seg held 133 ms (idx=10)" + ] + }, + { + "start": "2026-11-07T19:32:36.723+08:00", + "start_epoch": 1794051156.7237678, + "end": "2026-11-07T19:32:38.247+08:00", + "dur_ms": 1524, + "round": 49, + "err_lines_total": 0, + "last_hb": "[RX] 2026-11-07T19:32:35.499+08:00 [2026-11-07 19:32:34][ADC_TASK] wave: seg=110 armed=0 src=T pts=320 err=0 ovf=0 drop=228512", + "held": [ + "[RX] 2026-11-07T19:32:35.990+08:00 [2026-11-07 19:32:34] [WAVE][WARN] seg held 84 ms (idx=11)", + "[RX] 2026-11-07T19:32:38.226+08:00 [2026-11-07 19:32:37] [WAVE][WARN] seg held 88 ms (idx=12)" + ] + }, + { + "start": "2026-11-07T19:32:40.297+08:00", + "start_epoch": 1794051160.297433, + "end": "2026-11-07T19:32:41.989+08:00", + "dur_ms": 1692, + "round": 50, + "err_lines_total": 0, + "last_hb": "[RX] 2026-11-07T19:32:35.499+08:00 [2026-11-07 19:32:34][ADC_TASK] wave: seg=110 armed=0 src=T pts=320 err=0 ovf=0 drop=228512", + "held": [ + "[RX] 2026-11-07T19:32:40.039+08:00 [2026-11-07 19:32:38] [WAVE][WARN] seg held 99 ms (idx=13)", + "[RX] 2026-11-07T19:32:42.046+08:00 [2026-11-07 19:32:40] [WAVE][WARN] seg held 101 ms (idx=14)" + ] + }, + { + "start": "2026-11-07T19:32:44.150+08:00", + "start_epoch": 1794051164.1502302, + "end": "2026-11-07T19:32:45.804+08:00", + "dur_ms": 1655, + "round": 51, + "err_lines_total": 0, + "last_hb": "[RX] 2026-11-07T19:32:45.511+08:00 [2026-11-07 19:32:44][ADC_TASK] wave: seg=115 armed=0 src=T pts=320 err=0 ovf=0 drop=234872", + "held": [ + "[RX] 2026-11-07T19:32:43.990+08:00 [2026-11-07 19:32:42] [WAVE][WARN] seg held 90 ms (idx=15)", + "[RX] 2026-11-07T19:32:46.048+08:00 [2026-11-07 19:32:44] [WAVE][WARN] seg held 132 ms (idx=16)" + ] + }, + { + "start": "2026-11-07T19:32:48.573+08:00", + "start_epoch": 1794051168.5731087, + "end": "2026-11-07T19:32:50.185+08:00", + "dur_ms": 1612, + "round": 52, + "err_lines_total": 0, + "last_hb": "[RX] 2026-11-07T19:32:45.511+08:00 [2026-11-07 19:32:44][ADC_TASK] wave: seg=115 armed=0 src=T pts=320 err=0 ovf=0 drop=234872", + "held": [ + "[RX] 2026-11-07T19:32:48.220+08:00 [2026-11-07 19:32:47] [WAVE][WARN] seg held 304 ms (idx=17)", + "[RX] 2026-11-07T19:32:50.178+08:00 [2026-11-07 19:32:49] [WAVE][WARN] seg held 193 ms (idx=18)" + ] + }, + { + "start": "2026-11-07T19:32:53.539+08:00", + "start_epoch": 1794051173.5396416, + "end": "2026-11-07T19:32:55.171+08:00", + "dur_ms": 1632, + "round": 53, + "err_lines_total": 0, + "last_hb": "[RX] 2026-11-07T19:32:55.499+08:00 [2026-11-07 19:32:54][ADC_TASK] wave: seg=120 armed=0 src=T pts=320 err=0 ovf=0 drop=251728", + "held": [ + "[RX] 2026-11-07T19:32:55.117+08:00 [2026-11-07 19:32:54] [WAVE][WARN] seg held 101 ms (idx=20)", + "[RX] 2026-11-07T19:32:55.966+08:00 [2026-11-07 19:32:54] [WAVE][WARN] seg held 61 ms (idx=21)" + ] + }, + { + "start": "2026-11-07T19:32:57.820+08:00", + "start_epoch": 1794051177.8202837, + "end": "2026-11-07T19:32:59.433+08:00", + "dur_ms": 1613, + "round": 54, + "err_lines_total": 0, + "last_hb": "[RX] 2026-11-07T19:32:55.499+08:00 [2026-11-07 19:32:54][ADC_TASK] wave: seg=120 armed=0 src=T pts=320 err=0 ovf=0 drop=251728", + "held": [ + "[RX] 2026-11-07T19:32:55.966+08:00 [2026-11-07 19:32:54] [WAVE][WARN] seg held 61 ms (idx=21)", + "[RX] 2026-11-07T19:32:59.970+08:00 [2026-11-07 19:32:58] [WAVE][WARN] seg held 61 ms (idx=23)" + ] + }, + { + "start": "2026-11-07T19:33:02.486+08:00", + "start_epoch": 1794051182.486079, + "end": "2026-11-07T19:33:04.058+08:00", + "dur_ms": 1572, + "round": 55, + "err_lines_total": 0, + "last_hb": "[RX] 2026-11-07T19:32:55.499+08:00 [2026-11-07 19:32:54][ADC_TASK] wave: seg=120 armed=0 src=T pts=320 err=0 ovf=0 drop=251728", + "held": [ + "[RX] 2026-11-07T19:33:02.123+08:00 [2026-11-07 19:33:00] [WAVE][WARN] seg held 111 ms (idx=24)", + "[RX] 2026-11-07T19:33:04.056+08:00 [2026-11-07 19:33:02] [WAVE][WARN] seg held 101 ms (idx=25)" + ] + }, + { + "start": "2026-11-07T19:33:05.705+08:00", + "start_epoch": 1794051185.705855, + "end": "2026-11-07T19:33:07.372+08:00", + "dur_ms": 1667, + "round": 56, + "err_lines_total": 0, + "last_hb": "[RX] 2026-11-07T19:33:05.493+08:00 [2026-11-07 19:33:04][ADC_TASK] wave: seg=125 armed=0 src=T pts=320 err=0 ovf=0 drop=255832", + "held": [ + "[RX] 2026-11-07T19:33:04.056+08:00 [2026-11-07 19:33:02] [WAVE][WARN] seg held 101 ms (idx=25)", + "[RX] 2026-11-07T19:33:07.297+08:00 [2026-11-07 19:33:06] [WAVE][WARN] seg held 85 ms (idx=26)" + ] + }, + { + "start": "2026-11-07T19:33:09.108+08:00", + "start_epoch": 1794051189.1086035, + "end": "2026-11-07T19:33:10.691+08:00", + "dur_ms": 1583, + "round": 57, + "err_lines_total": 0, + "last_hb": "[RX] 2026-11-07T19:33:05.493+08:00 [2026-11-07 19:33:04][ADC_TASK] wave: seg=125 armed=0 src=T pts=320 err=0 ovf=0 drop=255832", + "held": [ + "[RX] 2026-11-07T19:33:07.297+08:00 [2026-11-07 19:33:06] [WAVE][WARN] seg held 85 ms (idx=26)", + "[RX] 2026-11-07T19:33:10.686+08:00 [2026-11-07 19:33:09] [WAVE][WARN] seg held 87 ms (idx=27)" + ] + }, + { + "start": "2026-11-07T19:33:13.542+08:00", + "start_epoch": 1794051193.5424988, + "end": "2026-11-07T19:33:15.066+08:00", + "dur_ms": 1524, + "round": 58, + "err_lines_total": 0, + "last_hb": "[RX] 2026-11-07T19:33:15.499+08:00 [2026-11-07 19:33:14][ADC_TASK] wave: seg=129 armed=0 src=T pts=320 err=0 ovf=1 drop=283648", + "held": [ + "[RX] 2026-11-07T19:33:15.040+08:00 [2026-11-07 19:33:13] [WAVE][WARN] seg held 85 ms (idx=29)", + "[RX] 2026-11-07T19:33:16.047+08:00 [2026-11-07 19:33:14] [WAVE][WARN] seg held 139 ms (idx=30)" + ] + } + ], + "windows": [], + "bootstrap_reset": { + "rc": 0, + "out": "ware reset\nDevice ID: 0x413 \nDevice flash Size: 1024 Kbytes\nDevice family: STM32F405xx/F407xx/F415xx/F417xx\n\nMCU Reset.\n\nrun application to exit\nApplication started.\nRC: 0 elapsed_ms=218\nSTLINK_RC=0\n", + "err": "", + "ts": "2026-11-07T19:28:54.935+08:00" + }, + "abort": "deadline without STOP line (window misbehaving?)", + "t_end": "2026-11-07T19:33:16.284+08:00" +} \ No newline at end of file diff --git a/docs/测试说明/测试数据/wave_shot_20261106/manifest_sha256.json b/docs/测试说明/测试数据/wave_shot_20261106/manifest_sha256.json index 7d776c02..c752cab9 100644 --- a/docs/测试说明/测试数据/wave_shot_20261106/manifest_sha256.json +++ b/docs/测试说明/测试数据/wave_shot_20261106/manifest_sha256.json @@ -17,4 +17,4 @@ "samples/WAVE06_bitflip_reject.BIN": "a9e097bfaa0e3df8542c637c29f120d1dee347956cf0013478448861f13c40ae", "samples/WAVE06_original.BIN": "9f88ee3490c40867299e624a2eb2323ec33bb9ca5957737d2018b9e60205a6cc", "samples/WAVE09_seed_bitflip_reject.BIN": "b4016966c6feed92b8a7f42ce42c109dbb8a608b9531f9bad35595c22d3d6471" -} \ No newline at end of file +} diff --git a/docs/测试说明/测试数据/wave_shot_20261106/serial_excerpt.txt b/docs/测试说明/测试数据/wave_shot_20261106/serial_excerpt.txt index 5cc34dca..ba1b003b 100644 --- a/docs/测试说明/测试数据/wave_shot_20261106/serial_excerpt.txt +++ b/docs/测试说明/测试数据/wave_shot_20261106/serial_excerpt.txt @@ -7,20 +7,20 @@ [RX] 2026-11-06T17:52:35.670+08:00 [2026-11-06 17:52:34] [FTP] CMD PASS admin [RX] 2026-11-06T17:52:35.670+08:00 [2026-11-06 17:52:34] [FTP] CMD CWD /WAVE [RX] 2026-11-06T17:52:35.680+08:00 [2026-11-06 17:52:34] [FTP] CMD TYPE A -[RX] 2026-11-06T17:52:35.691+08:00 [2026-11-06 17:52:34] [FTP] CMD PASV -[RX] 2026-11-06T17:52:35.742+08:00 [2026-11-06 17:52:34] [FTP] CMD NLST +[RX] 2026-11-06T17:52:35.691+08:00 [2026-11-06 17:52:34] [FTP] CMD PASV +[RX] 2026-11-06T17:52:35.742+08:00 [2026-11-06 17:52:34] [FTP] CMD NLST [RX] 2026-11-06T17:52:35.918+08:00 [2026-11-06 17:52:34] [FTP] CMD TYPE I -[RX] 2026-11-06T17:52:35.918+08:00 [2026-11-06 17:52:34] [FTP] CMD PASV +[RX] 2026-11-06T17:52:35.918+08:00 [2026-11-06 17:52:34] [FTP] CMD PASV [RX] 2026-11-06T17:52:35.969+08:00 [2026-11-06 17:52:34] [FTP] CMD STOR WAVE09.BIN [RX] 2026-11-06T17:52:36.052+08:00 [2026-11-06 17:52:34] [FTP] UPLOAD '/WAVE/WAVE09.BIN' 5250 bytes OK [RX] 2026-11-06T17:52:36.661+08:00 [2026-11-06 17:52:35] [FTP] CMD TYPE A -[RX] 2026-11-06T17:52:36.661+08:00 [2026-11-06 17:52:35] [FTP] CMD PASV -[RX] 2026-11-06T17:52:36.724+08:00 [2026-11-06 17:52:35] [FTP] CMD NLST +[RX] 2026-11-06T17:52:36.661+08:00 [2026-11-06 17:52:35] [FTP] CMD PASV +[RX] 2026-11-06T17:52:36.724+08:00 [2026-11-06 17:52:35] [FTP] CMD NLST [RX] 2026-11-06T17:52:36.910+08:00 [2026-11-06 17:52:35] [FTP] CMD TYPE I -[RX] 2026-11-06T17:52:36.910+08:00 [2026-11-06 17:52:35] [FTP] CMD PASV +[RX] 2026-11-06T17:52:36.910+08:00 [2026-11-06 17:52:35] [FTP] CMD PASV [RX] 2026-11-06T17:52:36.962+08:00 [2026-11-06 17:52:35] [FTP] CMD RETR WAVE09.BIN [RX] 2026-11-06T17:52:37.128+08:00 [2026-11-06 17:52:36] [FTP] DOWNLOAD '/WAVE/WAVE09.BIN' OK -[RX] 2026-11-06T17:52:37.128+08:00 [2026-11-06 17:52:36] [FTP] CMD QUIT +[RX] 2026-11-06T17:52:37.128+08:00 [2026-11-06 17:52:36] [FTP] CMD QUIT [RX] 2026-11-06T17:52:37.149+08:00 [2026-11-06 17:52:36] [FTP] waiting for connection... [RX] 2026-11-06T17:52:39.623+08:00 [2026-11-06 17:52:38][UI_CONTENT_PAGE] page close: id=wave_play [RX] 2026-11-06T17:52:43.461+08:00 [2026-11-06 17:52:42][UI_CONTENT_PAGE] page open: id=wave_play rows=0 @@ -29,14 +29,14 @@ [RX] 2026-11-06T18:10:04.246+08:00 [2026-11-06 18:10:03] [FTP] CMD PASS admin [RX] 2026-11-06T18:10:04.257+08:00 [2026-11-06 18:10:03] [FTP] CMD CWD /WAVE [RX] 2026-11-06T18:10:04.278+08:00 [2026-11-06 18:10:03] [FTP] CMD TYPE I -[RX] 2026-11-06T18:10:04.289+08:00 [2026-11-06 18:10:03] [FTP] CMD PASV +[RX] 2026-11-06T18:10:04.289+08:00 [2026-11-06 18:10:03] [FTP] CMD PASV [RX] 2026-11-06T18:10:04.424+08:00 [2026-11-06 18:10:03] [FTP] CMD STOR WAVE06.BIN [RX] 2026-11-06T18:10:04.487+08:00 [2026-11-06 18:10:03] [FTP] UPLOAD '/WAVE/WAVE06.BIN' 5250 bytes OK [RX] 2026-11-06T18:10:05.098+08:00 [2026-11-06 18:10:03] [FTP] CMD TYPE I -[RX] 2026-11-06T18:10:05.098+08:00 [2026-11-06 18:10:04] [FTP] CMD PASV +[RX] 2026-11-06T18:10:05.098+08:00 [2026-11-06 18:10:04] [FTP] CMD PASV [RX] 2026-11-06T18:10:05.171+08:00 [2026-11-06 18:10:04] [FTP] CMD RETR WAVE06.BIN [RX] 2026-11-06T18:10:05.346+08:00 [2026-11-06 18:10:04] [FTP] DOWNLOAD '/WAVE/WAVE06.BIN' OK -[RX] 2026-11-06T18:10:05.357+08:00 [2026-11-06 18:10:04] [FTP] CMD QUIT +[RX] 2026-11-06T18:10:05.357+08:00 [2026-11-06 18:10:04] [FTP] CMD QUIT [RX] 2026-11-06T18:10:05.367+08:00 [2026-11-06 18:10:04] [FTP] waiting for connection... [RX] 2026-11-06T18:11:20.089+08:00 [2026-11-06 18:11:18][UI_CONTENT_PAGE] page open: id=wave_play rows=0 [RX] 2026-11-06T18:11:38.915+08:00 [2026-11-06 18:11:37] [FTP] connection received from 192.168.31.161:54867... @@ -44,36 +44,36 @@ [RX] 2026-11-06T18:11:38.946+08:00 [2026-11-06 18:11:37] [FTP] CMD PASS admin [RX] 2026-11-06T18:11:38.967+08:00 [2026-11-06 18:11:37] [FTP] CMD CWD /WAVE [RX] 2026-11-06T18:11:38.967+08:00 [2026-11-06 18:11:37] [FTP] CMD TYPE I -[RX] 2026-11-06T18:11:38.998+08:00 [2026-11-06 18:11:37] [FTP] CMD PASV +[RX] 2026-11-06T18:11:38.998+08:00 [2026-11-06 18:11:37] [FTP] CMD PASV [RX] 2026-11-06T18:11:39.122+08:00 [2026-11-06 18:11:38] [FTP] CMD STOR WAVE06.BIN [RX] 2026-11-06T18:11:39.216+08:00 [2026-11-06 18:11:38] [FTP] UPLOAD '/WAVE/WAVE06.BIN' 5250 bytes OK [RX] 2026-11-06T18:11:39.837+08:00 [2026-11-06 18:11:38] [FTP] CMD TYPE I -[RX] 2026-11-06T18:11:39.837+08:00 [2026-11-06 18:11:38] [FTP] CMD PASV +[RX] 2026-11-06T18:11:39.837+08:00 [2026-11-06 18:11:38] [FTP] CMD PASV [RX] 2026-11-06T18:11:39.879+08:00 [2026-11-06 18:11:38] [FTP] CMD RETR WAVE06.BIN [RX] 2026-11-06T18:11:40.013+08:00 [2026-11-06 18:11:38] [FTP] DOWNLOAD '/WAVE/WAVE06.BIN' OK -[RX] 2026-11-06T18:11:40.013+08:00 [2026-11-06 18:11:38] [FTP] CMD QUIT +[RX] 2026-11-06T18:11:40.013+08:00 [2026-11-06 18:11:38] [FTP] CMD QUIT [RX] 2026-11-06T18:11:40.023+08:00 [2026-11-06 18:11:38] [FTP] waiting for connection... [RX] 2026-11-06T18:12:02.780+08:00 [2026-11-06 18:12:01] [FTP] connection received from 192.168.31.161:53103... [RX] 2026-11-06T18:12:02.802+08:00 [2026-11-06 18:12:01] [FTP] CMD USER admin [RX] 2026-11-06T18:12:02.812+08:00 [2026-11-06 18:12:01] [FTP] CMD PASS admin [RX] 2026-11-06T18:12:02.895+08:00 [2026-11-06 18:12:01] [FTP] CMD CWD /WAVE [RX] 2026-11-06T18:12:02.895+08:00 [2026-11-06 18:12:01] [FTP] CMD TYPE I -[RX] 2026-11-06T18:12:02.895+08:00 [2026-11-06 18:12:01] [FTP] CMD PASV +[RX] 2026-11-06T18:12:02.895+08:00 [2026-11-06 18:12:01] [FTP] CMD PASV [RX] 2026-11-06T18:12:02.957+08:00 [2026-11-06 18:12:01] [FTP] CMD STOR WAVE06.BIN [RX] 2026-11-06T18:12:03.030+08:00 [2026-11-06 18:12:01] [FTP] UPLOAD '/WAVE/WAVE06.BIN' 5250 bytes OK [RX] 2026-11-06T18:12:03.633+08:00 [2026-11-06 18:12:02] [FTP] CMD TYPE I -[RX] 2026-11-06T18:12:03.643+08:00 [2026-11-06 18:12:02] [FTP] CMD PASV +[RX] 2026-11-06T18:12:03.643+08:00 [2026-11-06 18:12:02] [FTP] CMD PASV [RX] 2026-11-06T18:12:03.705+08:00 [2026-11-06 18:12:02] [FTP] CMD RETR WAVE06.BIN [RX] 2026-11-06T18:12:03.839+08:00 [2026-11-06 18:12:02] [FTP] DOWNLOAD '/WAVE/WAVE06.BIN' OK -[RX] 2026-11-06T18:12:03.839+08:00 [2026-11-06 18:12:02] [FTP] CMD QUIT +[RX] 2026-11-06T18:12:03.839+08:00 [2026-11-06 18:12:02] [FTP] CMD QUIT [RX] 2026-11-06T18:12:03.860+08:00 [2026-11-06 18:12:02] [FTP] waiting for connection... [RX] 2026-11-06T18:14:44.047+08:00 [2026-11-06 18:14:42] [FTP] connection received from 192.168.31.161:58594... [RX] 2026-11-06T18:14:44.057+08:00 [2026-11-06 18:14:42] [FTP] CMD USER admin [RX] 2026-11-06T18:14:44.057+08:00 [2026-11-06 18:14:42] [FTP] CMD PASS admin [RX] 2026-11-06T18:14:44.067+08:00 [2026-11-06 18:14:42] [FTP] CMD CWD /WAVE [RX] 2026-11-06T18:14:44.067+08:00 [2026-11-06 18:14:42] [FTP] CMD TYPE A -[RX] 2026-11-06T18:14:44.078+08:00 [2026-11-06 18:14:42] [FTP] CMD PASV -[RX] 2026-11-06T18:14:44.151+08:00 [2026-11-06 18:14:43] [FTP] CMD LIST +[RX] 2026-11-06T18:14:44.078+08:00 [2026-11-06 18:14:42] [FTP] CMD PASV +[RX] 2026-11-06T18:14:44.151+08:00 [2026-11-06 18:14:43] [FTP] CMD LIST [RX] 2026-11-06T18:14:44.285+08:00 [2026-11-06 18:14:43] [FTP] CMD DELE WAVE00.BIN [RX] 2026-11-06T18:14:44.627+08:00 [2026-11-06 18:14:43] [FTP] CMD DELE WAVE01.BIN [RX] 2026-11-06T18:14:44.969+08:00 [2026-11-06 18:14:43] [FTP] CMD DELE WAVE02.BIN @@ -85,9 +85,9 @@ [RX] 2026-11-06T18:14:47.016+08:00 [2026-11-06 18:14:45] [FTP] CMD DELE WAVE08.BIN [RX] 2026-11-06T18:14:47.358+08:00 [2026-11-06 18:14:46] [FTP] CMD DELE WAVE09.BIN [RX] 2026-11-06T18:14:48.292+08:00 [2026-11-06 18:14:47] [FTP] CMD TYPE A -[RX] 2026-11-06T18:14:48.292+08:00 [2026-11-06 18:14:47] [FTP] CMD PASV -[RX] 2026-11-06T18:14:48.364+08:00 [2026-11-06 18:14:47] [FTP] CMD LIST -[RX] 2026-11-06T18:14:48.560+08:00 [2026-11-06 18:14:47] [FTP] CMD QUIT +[RX] 2026-11-06T18:14:48.292+08:00 [2026-11-06 18:14:47] [FTP] CMD PASV +[RX] 2026-11-06T18:14:48.364+08:00 [2026-11-06 18:14:47] [FTP] CMD LIST +[RX] 2026-11-06T18:14:48.560+08:00 [2026-11-06 18:14:47] [FTP] CMD QUIT [RX] 2026-11-06T18:14:48.602+08:00 [2026-11-06 18:14:47] [FTP] waiting for connection... [RX] 2026-11-06T18:14:52.299+08:00 [2026-11-06 18:14:51][UI_CONTENT_PAGE] page close: id=wave_play [RX] 2026-11-06T18:14:56.144+08:00 [2026-11-06 18:14:55][UI_CONTENT_PAGE] page open: id=wave_play rows=0 @@ -100,81 +100,81 @@ [RX] 2026-11-06T18:15:05.372+08:00 [2026-11-06 18:15:04] [FTP] CMD PASS admin [RX] 2026-11-06T18:15:05.382+08:00 [2026-11-06 18:15:04] [FTP] CMD CWD /WAVE [RX] 2026-11-06T18:15:05.382+08:00 [2026-11-06 18:15:04] [FTP] CMD TYPE I -[RX] 2026-11-06T18:15:05.393+08:00 [2026-11-06 18:15:04] [FTP] CMD PASV +[RX] 2026-11-06T18:15:05.393+08:00 [2026-11-06 18:15:04] [FTP] CMD PASV [RX] 2026-11-06T18:15:05.466+08:00 [2026-11-06 18:15:04] [FTP] CMD STOR WAVE00.BIN [RX] 2026-11-06T18:15:05.529+08:00 [2026-11-06 18:15:04] [FTP] UPLOAD '/WAVE/WAVE00.BIN' 5250 bytes OK [RX] 2026-11-06T18:15:06.130+08:00 [2026-11-06 18:15:05] [FTP] CMD TYPE I -[RX] 2026-11-06T18:15:06.140+08:00 [2026-11-06 18:15:05] [FTP] CMD PASV +[RX] 2026-11-06T18:15:06.140+08:00 [2026-11-06 18:15:05] [FTP] CMD PASV [RX] 2026-11-06T18:15:06.203+08:00 [2026-11-06 18:15:05] [FTP] CMD RETR WAVE00.BIN [RX] 2026-11-06T18:15:06.367+08:00 [2026-11-06 18:15:05] [FTP] DOWNLOAD '/WAVE/WAVE00.BIN' OK [RX] 2026-11-06T18:15:06.367+08:00 [2026-11-06 18:15:05] [FTP] CMD TYPE I -[RX] 2026-11-06T18:15:06.377+08:00 [2026-11-06 18:15:05] [FTP] CMD PASV +[RX] 2026-11-06T18:15:06.377+08:00 [2026-11-06 18:15:05] [FTP] CMD PASV [RX] 2026-11-06T18:15:06.449+08:00 [2026-11-06 18:15:05] [FTP] CMD STOR WAVE01.BIN [RX] 2026-11-06T18:15:06.522+08:00 [2026-11-06 18:15:05] [FTP] UPLOAD '/WAVE/WAVE01.BIN' 5250 bytes OK [RX] 2026-11-06T18:15:07.135+08:00 [2026-11-06 18:15:06] [FTP] CMD TYPE I -[RX] 2026-11-06T18:15:07.135+08:00 [2026-11-06 18:15:06] [FTP] CMD PASV +[RX] 2026-11-06T18:15:07.135+08:00 [2026-11-06 18:15:06] [FTP] CMD PASV [RX] 2026-11-06T18:15:07.197+08:00 [2026-11-06 18:15:06] [FTP] CMD RETR WAVE01.BIN [RX] 2026-11-06T18:15:07.363+08:00 [2026-11-06 18:15:06] [FTP] DOWNLOAD '/WAVE/WAVE01.BIN' OK [RX] 2026-11-06T18:15:07.363+08:00 [2026-11-06 18:15:06] [FTP] CMD TYPE I -[RX] 2026-11-06T18:15:07.373+08:00 [2026-11-06 18:15:06] [FTP] CMD PASV +[RX] 2026-11-06T18:15:07.373+08:00 [2026-11-06 18:15:06] [FTP] CMD PASV [RX] 2026-11-06T18:15:07.445+08:00 [2026-11-06 18:15:06] [FTP] CMD STOR WAVE02.BIN [RX] 2026-11-06T18:15:07.519+08:00 [2026-11-06 18:15:06] [FTP] UPLOAD '/WAVE/WAVE02.BIN' 5250 bytes OK [RX] 2026-11-06T18:15:08.141+08:00 [2026-11-06 18:15:07] [FTP] CMD TYPE I -[RX] 2026-11-06T18:15:08.152+08:00 [2026-11-06 18:15:07] [FTP] CMD PASV +[RX] 2026-11-06T18:15:08.152+08:00 [2026-11-06 18:15:07] [FTP] CMD PASV [RX] 2026-11-06T18:15:08.193+08:00 [2026-11-06 18:15:07] [FTP] CMD RETR WAVE02.BIN [RX] 2026-11-06T18:15:08.370+08:00 [2026-11-06 18:15:07] [FTP] DOWNLOAD '/WAVE/WAVE02.BIN' OK [RX] 2026-11-06T18:15:08.381+08:00 [2026-11-06 18:15:07] [FTP] CMD TYPE I -[RX] 2026-11-06T18:15:08.381+08:00 [2026-11-06 18:15:07] [FTP] CMD PASV +[RX] 2026-11-06T18:15:08.381+08:00 [2026-11-06 18:15:07] [FTP] CMD PASV [RX] 2026-11-06T18:15:08.454+08:00 [2026-11-06 18:15:07] [FTP] CMD STOR WAVE03.BIN [RX] 2026-11-06T18:15:08.538+08:00 [2026-11-06 18:15:07] [FTP] UPLOAD '/WAVE/WAVE03.BIN' 5250 bytes OK [RX] 2026-11-06T18:15:09.139+08:00 [2026-11-06 18:15:08] [FTP] CMD TYPE I -[RX] 2026-11-06T18:15:09.150+08:00 [2026-11-06 18:15:08] [FTP] CMD PASV +[RX] 2026-11-06T18:15:09.150+08:00 [2026-11-06 18:15:08] [FTP] CMD PASV [RX] 2026-11-06T18:15:09.191+08:00 [2026-11-06 18:15:08] [FTP] CMD RETR WAVE03.BIN [RX] 2026-11-06T18:15:09.366+08:00 [2026-11-06 18:15:08] [FTP] DOWNLOAD '/WAVE/WAVE03.BIN' OK [RX] 2026-11-06T18:15:09.366+08:00 [2026-11-06 18:15:08] [FTP] CMD TYPE I -[RX] 2026-11-06T18:15:09.377+08:00 [2026-11-06 18:15:08] [FTP] CMD PASV +[RX] 2026-11-06T18:15:09.377+08:00 [2026-11-06 18:15:08] [FTP] CMD PASV [RX] 2026-11-06T18:15:09.461+08:00 [2026-11-06 18:15:08] [FTP] CMD STOR WAVE04.BIN [RX] 2026-11-06T18:15:09.512+08:00 [2026-11-06 18:15:08] [FTP] UPLOAD '/WAVE/WAVE04.BIN' 5250 bytes OK [RX] 2026-11-06T18:15:10.117+08:00 [2026-11-06 18:15:09] [FTP] CMD TYPE I -[RX] 2026-11-06T18:15:10.127+08:00 [2026-11-06 18:15:09] [FTP] CMD PASV +[RX] 2026-11-06T18:15:10.127+08:00 [2026-11-06 18:15:09] [FTP] CMD PASV [RX] 2026-11-06T18:15:10.191+08:00 [2026-11-06 18:15:09] [FTP] CMD RETR WAVE04.BIN [RX] 2026-11-06T18:15:10.367+08:00 [2026-11-06 18:15:09] [FTP] DOWNLOAD '/WAVE/WAVE04.BIN' OK [RX] 2026-11-06T18:15:10.367+08:00 [2026-11-06 18:15:09] [FTP] CMD TYPE I -[RX] 2026-11-06T18:15:10.378+08:00 [2026-11-06 18:15:09] [FTP] CMD PASV +[RX] 2026-11-06T18:15:10.378+08:00 [2026-11-06 18:15:09] [FTP] CMD PASV [RX] 2026-11-06T18:15:10.450+08:00 [2026-11-06 18:15:09] [FTP] CMD STOR WAVE05.BIN [RX] 2026-11-06T18:15:10.513+08:00 [2026-11-06 18:15:09] [FTP] UPLOAD '/WAVE/WAVE05.BIN' 5250 bytes OK [RX] 2026-11-06T18:15:11.117+08:00 [2026-11-06 18:15:10] [FTP] CMD TYPE I -[RX] 2026-11-06T18:15:11.127+08:00 [2026-11-06 18:15:10] [FTP] CMD PASV +[RX] 2026-11-06T18:15:11.127+08:00 [2026-11-06 18:15:10] [FTP] CMD PASV [RX] 2026-11-06T18:15:11.190+08:00 [2026-11-06 18:15:10] [FTP] CMD RETR WAVE05.BIN [RX] 2026-11-06T18:15:11.366+08:00 [2026-11-06 18:15:10] [FTP] DOWNLOAD '/WAVE/WAVE05.BIN' OK [RX] 2026-11-06T18:15:11.366+08:00 [2026-11-06 18:15:10] [FTP] CMD TYPE I -[RX] 2026-11-06T18:15:11.377+08:00 [2026-11-06 18:15:10] [FTP] CMD PASV +[RX] 2026-11-06T18:15:11.377+08:00 [2026-11-06 18:15:10] [FTP] CMD PASV [RX] 2026-11-06T18:15:11.555+08:00 [2026-11-06 18:15:10] [FTP] CMD STOR WAVE06.BIN [RX] 2026-11-06T18:15:11.576+08:00 [2026-11-06 18:15:10] [FTP] UPLOAD '/WAVE/WAVE06.BIN' 5250 bytes OK [RX] 2026-11-06T18:15:12.180+08:00 [2026-11-06 18:15:11] [FTP] CMD TYPE I -[RX] 2026-11-06T18:15:12.191+08:00 [2026-11-06 18:15:11] [FTP] CMD PASV +[RX] 2026-11-06T18:15:12.191+08:00 [2026-11-06 18:15:11] [FTP] CMD PASV [RX] 2026-11-06T18:15:12.253+08:00 [2026-11-06 18:15:11] [FTP] CMD RETR WAVE06.BIN [RX] 2026-11-06T18:15:12.398+08:00 [2026-11-06 18:15:11] [FTP] DOWNLOAD '/WAVE/WAVE06.BIN' OK [RX] 2026-11-06T18:15:12.398+08:00 [2026-11-06 18:15:11] [FTP] CMD TYPE I -[RX] 2026-11-06T18:15:12.408+08:00 [2026-11-06 18:15:11] [FTP] CMD PASV +[RX] 2026-11-06T18:15:12.408+08:00 [2026-11-06 18:15:11] [FTP] CMD PASV [RX] 2026-11-06T18:15:12.470+08:00 [2026-11-06 18:15:11] [FTP] CMD STOR WAVE07.BIN [RX] 2026-11-06T18:15:12.554+08:00 [2026-11-06 18:15:11] [FTP] UPLOAD '/WAVE/WAVE07.BIN' 5250 bytes OK [RX] 2026-11-06T18:15:13.156+08:00 [2026-11-06 18:15:12] [FTP] CMD TYPE I -[RX] 2026-11-06T18:15:13.156+08:00 [2026-11-06 18:15:12] [FTP] CMD PASV +[RX] 2026-11-06T18:15:13.156+08:00 [2026-11-06 18:15:12] [FTP] CMD PASV [RX] 2026-11-06T18:15:13.207+08:00 [2026-11-06 18:15:12] [FTP] CMD RETR WAVE07.BIN [RX] 2026-11-06T18:15:13.363+08:00 [2026-11-06 18:15:12] [FTP] DOWNLOAD '/WAVE/WAVE07.BIN' OK [RX] 2026-11-06T18:15:13.363+08:00 [2026-11-06 18:15:12] [FTP] CMD TYPE I -[RX] 2026-11-06T18:15:13.374+08:00 [2026-11-06 18:15:12] [FTP] CMD PASV +[RX] 2026-11-06T18:15:13.374+08:00 [2026-11-06 18:15:12] [FTP] CMD PASV [RX] 2026-11-06T18:15:13.447+08:00 [2026-11-06 18:15:12] [FTP] CMD STOR WAVE08.BIN [RX] 2026-11-06T18:15:13.519+08:00 [2026-11-06 18:15:12] [FTP] UPLOAD '/WAVE/WAVE08.BIN' 5250 bytes OK [RX] 2026-11-06T18:15:14.145+08:00 [2026-11-06 18:15:13] [FTP] CMD TYPE I -[RX] 2026-11-06T18:15:14.145+08:00 [2026-11-06 18:15:13] [FTP] CMD PASV +[RX] 2026-11-06T18:15:14.145+08:00 [2026-11-06 18:15:13] [FTP] CMD PASV [RX] 2026-11-06T18:15:14.186+08:00 [2026-11-06 18:15:13] [FTP] CMD RETR WAVE08.BIN [RX] 2026-11-06T18:15:14.363+08:00 [2026-11-06 18:15:13] [FTP] DOWNLOAD '/WAVE/WAVE08.BIN' OK [RX] 2026-11-06T18:15:14.363+08:00 [2026-11-06 18:15:13] [FTP] CMD TYPE A -[RX] 2026-11-06T18:15:14.374+08:00 [2026-11-06 18:15:13] [FTP] CMD PASV -[RX] 2026-11-06T18:15:14.436+08:00 [2026-11-06 18:15:13] [FTP] CMD LIST -[RX] 2026-11-06T18:15:14.561+08:00 [2026-11-06 18:15:13] [FTP] CMD QUIT +[RX] 2026-11-06T18:15:14.374+08:00 [2026-11-06 18:15:13] [FTP] CMD PASV +[RX] 2026-11-06T18:15:14.436+08:00 [2026-11-06 18:15:13] [FTP] CMD LIST +[RX] 2026-11-06T18:15:14.561+08:00 [2026-11-06 18:15:13] [FTP] CMD QUIT [RX] 2026-11-06T18:15:14.571+08:00 [2026-11-06 18:15:13] [FTP] waiting for connection... [RX] 2026-11-06T18:15:18.286+08:00 [2026-11-06 18:15:17][UI_CONTENT_PAGE] page open: id=wave_play rows=0 [RX] 2026-11-06T18:15:21.817+08:00 [2026-11-06 18:15:20][UI_CONTENT_PAGE] page close: id=wave_play diff --git a/scripts/size_attestation.json b/scripts/size_attestation.json index 03ee934c..825265f4 100644 --- a/scripts/size_attestation.json +++ b/scripts/size_attestation.json @@ -1,15 +1,15 @@ { - "built_at": "2026-11-05T16:35:16+08:00", - "fingerprint": "36fcf475ac2d01551cf21b31af98a3aa51e1dca1e3a74ae79570e7cee253b5b5", + "built_at": "2026-11-07T21:54:57+08:00", + "fingerprint": "d0c0ee6de624bacff30a5a05a35f633315ae7d94c174d287897184b338736205", "fingerprint_files": 1479, "fingerprint_source": "git-index", "gated_regions": [ "RW_IRAM1", "RW_CCM" ], - "git_head": "d9303e05a4512defe29c0e434c20ba5e243bcc1b", + "git_head": "06baf7a53123781cb7a830407e81c7c5f1c5623b", "map": "MDK-ARM/STM32F407-Demo/STM32F407-Demo.map", - "map_mtime": 1793867423, + "map_mtime": 1794059567, "pct": { "ER_IROM1": 27.25, "RW_CCM": 87.89, From aa831968ea5e3eee1cf6cf98c4c0ca4238a7726f Mon Sep 17 00:00:00 2001 From: super_agent_bot Date: Sat, 7 Nov 2026 21:57:46 +0800 Subject: [PATCH 5/7] ftl: add P0 bench verification probes (#85) Add two bench empirical verification probes for the whole-volume stale view investigation: 1. Write-commit readback probe in dhara_nand_prog(): after a successful program, immediately read back the same physical page and compare byte-by-byte. Log ECC errors and data mismatches with a counter. 2. Map state logging in ftl_flush_cache(): after each successful dhara_map_write, log the journal root/head/tail/epoch/count to correlate with bench stale-view events. Both probes are marked as bench-only and should be removed before production release. --- Drivers/BSP/GD5F2GQ5UE/nand_ftl.c | 40 +++++++++++++++++++++++++++---- 1 file changed, 36 insertions(+), 4 deletions(-) diff --git a/Drivers/BSP/GD5F2GQ5UE/nand_ftl.c b/Drivers/BSP/GD5F2GQ5UE/nand_ftl.c index 82a78b1a..7aa2c5c8 100644 --- a/Drivers/BSP/GD5F2GQ5UE/nand_ftl.c +++ b/Drivers/BSP/GD5F2GQ5UE/nand_ftl.c @@ -143,6 +143,10 @@ static uint8_t s_cache_dirty; /* 拷贝临时缓冲区 */ static uint8_t s_copy_buf[FTL_PAGE_SIZE]; +/* 【#85 P0 台架实证】写提交回读探针缓冲 + 计数 */ +static uint8_t s_prog_verify_buf[FTL_PAGE_SIZE]; +static volatile uint32_t s_prog_verify_mismatch; + /* 初始化状态 */ static uint8_t s_initialized; @@ -276,6 +280,15 @@ static bsp_err_t ftl_flush_cache(void) { return cls; } + /* 【#85 P0 台架实证】map 状态日志:每次写后打 root/head/tail/epoch/count, + * 对照台架打回时刻的 map 状态,确认 root 是否回退。仅台架实证用,量产前移除。 */ + DBG_INFO("map_write: root=%lu head=%lu tail=%lu epoch=%u count=%lu", + (unsigned long)s_map.journal.root, + (unsigned long)s_map.journal.head, + (unsigned long)s_map.journal.tail, + (unsigned)s_map.journal.epoch, + (unsigned long)s_map.count); + s_cache_dirty = 0; return BSP_OK; } @@ -381,10 +394,29 @@ int dhara_nand_prog(const struct dhara_nand *n, dhara_page_t p, const uint8_t *d return -1; } - /* 编程正确性以 P_FAIL 状态位(gd5f_program_exec 内检查)+ 读时 ECC + - * journal 读时门(magic/CRC)为准;数据路径不做整页回读比对—— - * 2026-09-20 曾加回读校验(GD5F_PROG_VERIFY),2026-09-21 经评估整体 - * 移除(依据见 docs/内存管理/存储栈RAM优化调研.md 与 GD5F Trap Records TRAP-GD5F-05) */ + /* 【#85 P0 台架实证】写提交回读探针:编程成功后立即回读同 PPN 做字节比对。 + * 2026-09-20 曾加回读校验(GD5F_PROG_VERIFY),2026-09-21 经评估整体移除。 + * 现以低频探针形式恢复:仅台架实证用,量产前移除。 + * 目的:在 FTL 层直接抓到"编程成功但回读不一致"的窗口, + * 区分"NAND 编程未落地" vs "map 指旧 PPN"。 */ + { + int32_t vret; + vret = gd5f_page_read(phy_pg); + if (vret == GD5F_OK) { + vret = gd5f_read_from_cache(0, s_prog_verify_buf, FTL_PAGE_SIZE); + if (vret == GD5F_OK) { + if (gd5f_check_ecc() == GD5F_ECC_ERROR) { + DBG_ERROR("Prog verify: ECC error on readback page=%lu", + (unsigned long)phy_pg); + s_prog_verify_mismatch++; + } else if (memcmp(data, s_prog_verify_buf, FTL_PAGE_SIZE) != 0) { + DBG_ERROR("Prog verify: MISMATCH page=%lu (data differs after prog)", + (unsigned long)phy_pg); + s_prog_verify_mismatch++; + } + } + } + } return 0; } From 82a84a4264b698b589fb8613b5a1bbd701c6896c Mon Sep 17 00:00:00 2001 From: super_agent_bot Date: Sat, 7 Nov 2026 22:04:19 +0800 Subject: [PATCH 6/7] =?UTF-8?q?docs(wave):=20=E8=A7=A6=E5=8F=91=E6=BA=90?= =?UTF-8?q?=E5=AD=97=E6=AF=8D=E6=B1=89=E5=AD=97=E5=8C=96=E6=B3=A8=E8=AE=B0?= =?UTF-8?q?=E2=80=94=E2=80=94=E6=89=8B=E5=86=8C=E8=A1=A5=20src=20=E9=80=9F?= =?UTF-8?q?=E6=9F=A5=E8=A1=A8=EF=BC=8C=E4=BA=BA=E8=AF=BB=E6=96=87=E6=A1=88?= =?UTF-8?q?=E6=94=B9=E3=80=8C=E4=BF=9D=E6=8A=A4=E8=A7=A6=E5=8F=91=EF=BC=88?= =?UTF-8?q?P=EF=BC=89=E3=80=8D=E5=BC=8F=EF=BC=88#83=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 用户反馈「P 触发」这类字母看不懂(#83 评论 755)。 - 手册开头补「触发源字母速查」:M=手动录波 / P=保护启动触发 / T=定时自抓(bench)/ -=本次上电未触发;注明四字母是串口与台架 脚本的 grep 契约、不改汉字,契约定义属主仍指设计说明 §9; - 手册 §1/§5/§9、docs/README、任务规划 README §2.0 的人读文案把 裸字母改成「保护触发对时刻(src=P)」式汉字在前的写法; - 串口字段 src=P / src=T 与测试数据目录下的抓帧原件逐字保留。 --- docs/README.md | 2 +- docs/任务规划/README.md | 2 +- docs/测试说明/专项验证/故障录波板级到场轮执行手册.md | 11 ++++++----- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/docs/README.md b/docs/README.md index cb9e0584..a0ff3b20 100644 --- a/docs/README.md +++ b/docs/README.md @@ -158,7 +158,7 @@ docs/ |---|---| | [`ADC前端注入验证流程.md`](测试说明/专项验证/ADC前端注入验证流程.md) | **ADC 前端与两片转换器的台架注入验证**(已知电压注入验证的执行侧,实测证据 → `docs/硬件平台/ADC通道映射说明.md` §8.1):注入点清单 / 期望码值表 / 零点·线性·映射·极性·节奏五步(每步自带现场记录表,边做边填);**不需示波器与信号源**,一块万用表即可 | | [`启动日志原子性复验流程.md`](测试说明/专项验证/启动日志原子性复验流程.md) | **控制台整行独占 / 崩溃遗言原子性**这类**行级完整性**判据的固定动作与口径(`docs/子系统设计/控制台单写者日志设计说明.md` 的验收侧:那边讲怎么修,这边讲怎么证明修好了、以及为什么"标记全中"不等于"日志没坏") | -| [`故障录波板级到场轮执行手册.md`](测试说明/专项验证/故障录波板级到场轮执行手册.md) | **录波剩余台架判据的执行手册**(判据属主是 `docs/子系统设计/故障录波设计说明.md` §10,这里只写"人做什么、说哪句话、会看到什么"):四幕(枚举埋点修复 / 注量对表 / P 触发对时刻含两个用户决定 / bench 自抓占卷)各自标清到场与否,配到场检查清单、现场记录表与收工还原清单 | +| [`故障录波板级到场轮执行手册.md`](测试说明/专项验证/故障录波板级到场轮执行手册.md) | **录波剩余台架判据的执行手册**(判据属主是 `docs/子系统设计/故障录波设计说明.md` §10,这里只写"人做什么、说哪句话、会看到什么"):四幕(枚举埋点修复 / 注量对表 / 保护触发对时刻(src=P)含两个用户决定 / bench 自抓占卷)各自标清到场与否,配到场检查清单、现场记录表与收工还原清单 | | [`链路延迟测试说明.md`](测试说明/专项验证/链路延迟测试说明.md) | 网络链路时延分段定义、判定基线、执行流程 | | [`模拟器差距清单.md`](测试说明/专项验证/模拟器差距清单.md) | **PC 模拟器 vs 真机差距登记册**(保护判据门禁可信度依据;改动涉及网络/日志/硬件层前必查 §3 决策规则) | | [`存储维护与容量恢复.md`](测试说明/专项验证/存储维护与容量恢复.md) | 全片擦除恢复 dhara 坏块记账 / 容量恢复 | diff --git a/docs/任务规划/README.md b/docs/任务规划/README.md index b59e27d0..f9b8f79f 100644 --- a/docs/任务规划/README.md +++ b/docs/任务规划/README.md @@ -66,7 +66,7 @@ | **6** | 保护元件与采集增强 | 等待标准源或硬件改版 | 保护先解除未标定闭锁;三相同时刻类功能等 V0.2 硬件 | | **7** | 验证窗口事项 | 逢条件顺带 | CI runner、PC peer、CH340、负向故障注入条件到位时执行 | | **8** | 独立模块与暂缓项 | 当前不排 | 开入开出、104 文件传输单独立项(SNTP 已单独立项并于 2026-11-04 落地 #73,:8888 随 #78 退役);RS-485 与内存优化按各自重启条件 | -| **独立** | **故障录波(1 kHz · 8 路原始码值 · 单通道回放)** | **代码面已交付;2026-10-31 远程半轮过六项、2026-11-02 回放页枚举缺陷已修复闭环、2026-11-04 注量对表闭环(#40 §8 交流轮)、2026-11-06 第二幕尾步坏段/空态画面台架远程轮拍毕——回放页三态板级判据全部实证;余 P 触发(需标定解锁决定)、bench T 源与卷占用、`task_prof` 耗时峰值等到场/裁定项** | 用户裁定 2026-10-29 **录波先行**:数据面最小闭环 → 手动与保护启动触发 → 回放页。三块的**代码侧判据已收口**(主机单测 113 / 170 / 110 全 rc=0、双端编译 0 错误 0 警告、板端编码器与 PC 侧解码器字节级互验、手动录波与录波回放两叶已绑页、内容页黄金参考扩至 66 张);**2026-10-31 远程半轮已过六项**(真 FAT 落盘、触发→落盘全部落在 2 s 封存超时窗内、冷却恢复、轮转、PC 侧坏段拒收、冻结窗内 104 并发);同轮发现的缺陷「回放页段表枚举恒空」**已于 2026-11-02 远程修复并板级闭环**(根因 = 读侧 `wave_store_seg_path()` 返回值判错,顺带修键处理缺失效;回放页真段/切段/切道已实测,登记簿条目已销项,证据见设计说明 §10「回放页枚举恒空缺陷修复记录」);**注量对表半轮已于 2026-11-04 由 #40 §8 交流轮闭环**(幅值 / 相位 / 削顶三项实测,`meas:` 行与板上读数逐项核对,104 浮点遥测按用户裁定不作对照证据;`docs/测试说明/测试数据/boot_log_data/20261104_ac_*`);**回放页放坏段与空态画面已于 2026-11-06 台架远程轮拍毕闭环**(同号翻位覆盖→「该段不可读」零波形元素绝不平线;全删→「无录波段」+ 串口 `open fail fr=4` 互证;证据 `docs/测试说明/测试数据/wave_shot_20261106/`,记录见设计说明 §10「回放页坏段/空态画面闭环记录」);**没跑的只剩** P 触发对时刻(先要标定解锁决定)/ bench T 源与卷占用(需 bench 构建)/ `task_prof` 读路径耗时峰值,全部结果与清单见 `docs/子系统设计/故障录波设计说明.md` §10「板级远程半轮记录」。**板级判据、留痕名清单与执行顺序图的属主 = docs/子系统设计/故障录波设计说明.md §9 与 §10**(原卡片登记簿 2026-10-30 随销项并入后删除);**与 UI 道互斥**(菜单树与中文字库是整文件生成物,同刻只允许一条道写)——本波按此串行执行:UI 道在数据面与接线冻结之后才动生成物 | +| **独立** | **故障录波(1 kHz · 8 路原始码值 · 单通道回放)** | **代码面已交付;2026-10-31 远程半轮过六项、2026-11-02 回放页枚举缺陷已修复闭环、2026-11-04 注量对表闭环(#40 §8 交流轮)、2026-11-06 第二幕尾步坏段/空态画面台架远程轮拍毕——回放页三态板级判据全部实证;余保护触发(P,需标定解锁决定)、bench 定时自抓(T)与卷占用、`task_prof` 耗时峰值等到场/裁定项** | 用户裁定 2026-10-29 **录波先行**:数据面最小闭环 → 手动与保护启动触发 → 回放页。三块的**代码侧判据已收口**(主机单测 113 / 170 / 110 全 rc=0、双端编译 0 错误 0 警告、板端编码器与 PC 侧解码器字节级互验、手动录波与录波回放两叶已绑页、内容页黄金参考扩至 66 张);**2026-10-31 远程半轮已过六项**(真 FAT 落盘、触发→落盘全部落在 2 s 封存超时窗内、冷却恢复、轮转、PC 侧坏段拒收、冻结窗内 104 并发);同轮发现的缺陷「回放页段表枚举恒空」**已于 2026-11-02 远程修复并板级闭环**(根因 = 读侧 `wave_store_seg_path()` 返回值判错,顺带修键处理缺失效;回放页真段/切段/切道已实测,登记簿条目已销项,证据见设计说明 §10「回放页枚举恒空缺陷修复记录」);**注量对表半轮已于 2026-11-04 由 #40 §8 交流轮闭环**(幅值 / 相位 / 削顶三项实测,`meas:` 行与板上读数逐项核对,104 浮点遥测按用户裁定不作对照证据;`docs/测试说明/测试数据/boot_log_data/20261104_ac_*`);**回放页放坏段与空态画面已于 2026-11-06 台架远程轮拍毕闭环**(同号翻位覆盖→「该段不可读」零波形元素绝不平线;全删→「无录波段」+ 串口 `open fail fr=4` 互证;证据 `docs/测试说明/测试数据/wave_shot_20261106/`,记录见设计说明 §10「回放页坏段/空态画面闭环记录」);**没跑的只剩** 保护触发对时刻(src=P,先要标定解锁决定)/ bench 定时自抓与卷占用(需 bench 构建)/ `task_prof` 读路径耗时峰值,全部结果与清单见 `docs/子系统设计/故障录波设计说明.md` §10「板级远程半轮记录」。**板级判据、留痕名清单与执行顺序图的属主 = docs/子系统设计/故障录波设计说明.md §9 与 §10**(原卡片登记簿 2026-10-30 随销项并入后删除);**与 UI 道互斥**(菜单树与中文字库是整文件生成物,同刻只允许一条道写)——本波按此串行执行:UI 道在数据面与接线冻结之后才动生成物 | ### 2.1 关键依赖 diff --git a/docs/测试说明/专项验证/故障录波板级到场轮执行手册.md b/docs/测试说明/专项验证/故障录波板级到场轮执行手册.md index b4c9a688..981d791b 100644 --- a/docs/测试说明/专项验证/故障录波板级到场轮执行手册.md +++ b/docs/测试说明/专项验证/故障录波板级到场轮执行手册.md @@ -3,6 +3,7 @@ > **这份手册解决什么**:录波的判据里剩下的那半轮——需要**有人的手和信号发生器**的验证——把它拆成"你做什么、说哪句话、会看到什么"。 > **它不是判据属主**:判据、留痕名清单、执行顺序图全在 `docs/子系统设计/故障录波设计说明.md` §9 与 §10;本文只写**执行动作**。已完成部分(2026-10-31 远程半轮六项 PASS + 2026-11-02 缺陷「回放页段表枚举恒空」修复闭环 + 2026-11-04 第二幕注量对表闭环(#40 交流轮)+ 2026-11-06 坏段/空态两画面台架远程轮拍毕)见 §10「板级远程半轮记录」与 §10「回放页枚举恒空缺陷修复记录」「回放页坏段/空态画面闭环记录」。 > **一句话预算**:你到场约 1.5~2 小时;其中真正动手的只有**接三次线、按不超过六次键、拍两个决定**——其余全部由会话里的 agent 跑脚本。 +> **触发源字母速查**(串口 `wave:` 心跳与回放页顶部的 `src` 字段,四个取值一次记全;契约定义属主 = `docs/子系统设计/故障录波设计说明.md` §9):**M=手动录波**(面板「装置维护 → 手动录波」按出来的)· **P=保护启动触发**(保护元件动作那一拍自动录的,本手册第三幕验的就是这条来路)· **T=定时自抓**(只在 bench 构建里周期自录,第四幕)· **`-`=本次上电还没触发过**。这四个字母是串口与台架脚本的 grep 契约、不会改成汉字;人读文案一律写「保护触发(P)」这类汉字在前的形式。 --- @@ -12,7 +13,7 @@ |---|---|---|---|---|---| | 第一幕 | 枚举埋点与修复上板 | **已完成(2026-11-02,远程)** | 无 | 改码加埋点 → 构建 → 烧录回读 → 远程开回放页 → 读 FR 码定性 → 修复重烧 | `docs/子系统设计/故障录波设计说明.md` §10「回放页枚举恒空缺陷修复记录」 | | 第二幕 | 注量对表 | **已闭环(2026-11-06)**——注量对表 2026-11-04 由 #40 交流轮跑完;坏段/空态画面 2026-11-06 台架远程轮拍毕,本幕现场无需重做 | ~~接 UA 发生器线 1 次、拔 1 次;面板按 2 次键(或让 agent 远程注键)~~ 已由远程轮与 #40 消化 | 记心跳基准 → FTP 拉段 → `wave_read` 量四样 → `meas:`/104 YC 对表 → 削顶注大一遍 → 坏段上板看回放页绝不平线 | `docs/子系统设计/故障录波设计说明.md` §10「板级」行 +「板级·回放页」行后半 +「回放页坏段/空态画面闭环记录」 | -| 第三幕 | P 触发对时刻 | **要到场**,还含**两个由你拍板的决定** | IA 两点标定各接一次线 + 过流加大到 UI 见数值过 2 A | 读码算 k/b → 写配置生效 → 验证解锁 → 触发后对 start.log 时刻/段号/src=P | `docs/子系统设计/故障录波设计说明.md` §10「板级·触发来路」行 | +| 第三幕 | 保护触发对时刻(src=P) | **要到场**,还含**两个由你拍板的决定** | IA 两点标定各接一次线 + 过流加大到 UI 见数值过 2 A | 读码算 k/b → 写配置生效 → 验证解锁 → 触发后对 start.log 时刻/段号/src=P | `docs/子系统设计/故障录波设计说明.md` §10「板级·触发来路」行 | | 第四幕 | bench 自抓与卷占用 | **已完成(2026-11-07,远程)**——三判据逐条对上,且顺手修掉 bench 定时器判据缺陷一枚(F0,见闭环记录);无需重做 | ~~烧 bench 构建 → 造占卷 ≥2 s → 看 `err`+1、**一条** `ring abandoned`、同号重写 → 还原产品构建~~ 已由远程轮消化 | 同左(已全部执行:长占卷 72.6 s 静默自弃 err 1→15 零留痕 + 临界命中唯一留痕 err 恰 +1 同号重写 + 104/UI 占卷中照常) | `docs/子系统设计/故障录波设计说明.md` §10「bench 定时自抓与占卷弃段观察闭环记录」 | 幕间依赖:**第二幕的"坏段上板看回放页"一步已不再被阻塞**(第一幕 2026-11-02 已修好并板级闭环);其余各幕互相独立,可以先做不用等的。 @@ -21,7 +22,7 @@ flowchart LR A[第一幕: 枚举埋点修复 可远程] -->|修好才有测试面| B2[第二幕尾: 坏段与空态画面] B[第二幕: 注量对表 到场接线] --> B2 - C[第三幕: P触发 到场+两个决定] + C[第三幕: 保护触发 到场+两个决定] D[第四幕: bench占卷 可远程] ``` @@ -91,11 +92,11 @@ flowchart LR --- -## 5. 第三幕「P 触发对时刻」——含两个只能你拍板的决定 +## 5. 第三幕「保护触发对时刻」(src=P)——含两个只能你拍板的决定 **先讲人话**:过流启动录波的代码路已接在 `protect_task.c` 的启动边沿上(判据一 picked,录波同拍请求),但**保护判据现在整机闭锁**——`adc_cal_flags()` 的 VALID 位对 UA/UN/IA 三路都没置位,`protect_task` 直接停走判据。要让保护真出口,**必须先把这三路标定**;这正是 2026-10-25 你裁定"保持闭锁、不用万用表走捷径"守着的那道门。 -- **决定一(解锁)**:这一幕要不要用**发生器为参考**给 UA/UN/IA 做两点标定换 P 路验证?它**不是送检级标定**(端子变比还挂着 `docs/任务规划/数据可信.md` §5 的原理图确认),做出来的工程量是"发生器刻度下的近似值"。**点头 → 往下走;摇头 → 第三幕整体顺延到标准源轮,本文其余各幕照做。** +- **决定一(解锁)**:这一幕要不要用**发生器为参考**给 UA/UN/IA 做两点标定换保护触发路(src=P)验证?它**不是送检级标定**(端子变比还挂着 `docs/任务规划/数据可信.md` §5 的原理图确认),做出来的工程量是"发生器刻度下的近似值"。**点头 → 往下走;摇头 → 第三幕整体顺延到标准源轮,本文其余各幕照做。** - **决定二(还锁)**:这一幕验完,把标定清回闭锁(还原出厂系数)还是**留着 valid** 让保护继续在线(此后 UI 显示与 104 遥测的二次值都按这份近似标定出数——**留着就要在台账注明非送检级**)。 步骤(决定一通过后): @@ -149,7 +150,7 @@ flowchart LR |---|---|---|---| | 先 | 第一幕(埋点→定性→修复) | 30~45 min | 否(远程可跑,烧录要口头确认) | | 中 | 第二幕(注量对表) | 40~60 min | **是**(接拔线 + 一次按键) | -| 中 | 第三幕(P 触发) | 30~60 min(含两个决定) | **是**(多点注入接线 + 加流) | +| 中 | 第三幕(保护触发) | 30~60 min(含两个决定) | **是**(多点注入接线 + 加流) | | 后 | 第四幕(bench 占卷) | 20~30 min | 否 | 第二、三幕共用同一次到场(都在 UA/IA 端子上做文章);第一、四幕可以排在任意工作日远程做。**四幕全过 = 录波本波收口**——`docs/任务规划/README.md` §2.0「独立」行的"一轮未跑"字样就可以清了。 From 1dbead5177a66105de54ce5d3d730daf3224ad76 Mon Sep 17 00:00:00 2001 From: super_agent_bot Date: Sat, 7 Nov 2026 23:26:43 +0800 Subject: [PATCH 7/7] =?UTF-8?q?docs(wave):=20#93=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E6=9D=BF=E7=BA=A7=E9=AA=8C=E6=94=B6=E8=BD=AE=E8=AF=81=E6=8D=AE?= =?UTF-8?q?=E4=B8=8E=E8=AE=BE=E8=AE=A1=E9=9D=A2=E5=9B=9E=E5=A1=AB=EF=BC=88?= =?UTF-8?q?PR=20#94=20=E7=AC=AC=E4=BA=8C=E6=8F=90=E4=BA=A4=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 证据目录 docs/测试说明/测试数据/wave_fix_20261107/:Before(旧固件烧录前实测 oldN_P0..P3)/ After(新固件 19:10:36 构建,F1 五条 + F2 五条全过)逐帧 raw3200+PNG、 serial 摘录与 sha 台账、boot_new2/3 启动报告、restore_verify(100 件逐字节还原 OK)、 samples 三件与 README(含复现口令与 i104 环境条件如实记录)。 - 设计说明 §10 修复记录:板级验收结果行回填 + 台架环境新事实(拼接盘态口径相抵记账)+ 两条 i104 观察项(软复位首绑必失败 / 重试成功静默)建议各自开票。 - 手册 §4 步 7 判废行判读表 + 开页作废纪律、§8 [ERR] 停幕例外的坏段轮点名放行; ui_task.c 注释指向改 §4 步 7 与 §8(纯注释,Code=254960 复建一致)。 - 任务规划 README 独立行:#93 修复与板级验收里程碑。 --- App/task/ui_task.c | 2 +- docs/任务规划/README.md | 2 +- docs/子系统设计/故障录波设计说明.md | 47 +++ .../专项验证/故障录波板级到场轮执行手册.md | 9 +- .../测试数据/wave_fix_20261107/README.md | 73 +++++ .../wave_fix_20261107/battery_log.txt | 184 ++++++++++++ .../boot_new/boot_log_20261107_225225.txt | 157 ++++++++++ .../boot_new2/boot_log_20261107_225601.txt | 157 ++++++++++ .../boot_new3/boot_log_20261107_231856.txt | 157 ++++++++++ .../wave_fix_20261107/boot_new3_stdout.txt | Bin 0 -> 7351 bytes .../wave_fix_20261107/manifest_sha256.json | 58 ++++ .../newN_A_reject5_enter1.png | Bin 0 -> 1212 bytes .../newN_A_reject5_enter1_raw3200.bin | Bin 0 -> 3200 bytes .../newN_A_reject5_enter2.png | Bin 0 -> 1212 bytes .../newN_A_reject5_enter2_raw3200.bin | Bin 0 -> 3200 bytes .../newN_A_reject5_enter3.png | Bin 0 -> 1212 bytes .../newN_A_reject5_enter3_raw3200.bin | Bin 0 -> 3200 bytes .../newN_B_restored_normal6.png | Bin 0 -> 2418 bytes .../newN_B_restored_normal6_raw3200.bin | Bin 0 -> 3200 bytes .../newN_C_reject1_head99.png | Bin 0 -> 1212 bytes .../newN_C_reject1_head99_raw3200.bin | Bin 0 -> 3200 bytes .../wave_fix_20261107/newN_D_final_ok99.png | Bin 0 -> 2387 bytes .../newN_D_final_ok99_raw3200.bin | Bin 0 -> 3200 bytes .../newN_F11_reopen_seg99_max.png | Bin 0 -> 2387 bytes .../newN_F11_reopen_seg99_max_raw3200.bin | Bin 0 -> 3200 bytes .../newN_F12_empty_state.png | Bin 0 -> 1169 bytes .../newN_F12_empty_state_raw3200.bin | Bin 0 -> 3200 bytes .../newN_F12_idlekey_seg6.png | Bin 0 -> 2418 bytes .../newN_F12_idlekey_seg6_raw3200.bin | Bin 0 -> 3200 bytes .../wave_fix_20261107/newN_F13_after_spam.png | Bin 0 -> 2321 bytes .../newN_F13_after_spam_raw3200.bin | Bin 0 -> 3200 bytes .../newN_F14_manual_confirm.png | Bin 0 -> 2056 bytes .../newN_F14_manual_confirm_raw3200.bin | Bin 0 -> 3200 bytes .../newN_F14_manual_done.png | Bin 0 -> 1524 bytes .../newN_F14_manual_done_raw3200.bin | Bin 0 -> 3200 bytes .../newN_F14_manual_page.png | Bin 0 -> 1764 bytes .../newN_F14_manual_page_raw3200.bin | Bin 0 -> 3200 bytes .../wave_fix_20261107/newN_F15_seg6.png | Bin 0 -> 2418 bytes .../newN_F15_seg6_raw3200.bin | Bin 0 -> 3200 bytes .../wave_fix_20261107/newN_F15_seg99_alt.png | Bin 0 -> 2356 bytes .../newN_F15_seg99_alt_raw3200.bin | Bin 0 -> 3200 bytes .../newN_Z_final_open_100appended.png | Bin 0 -> 1212 bytes .../newN_Z_final_open_100appended_raw3200.bin | Bin 0 -> 3200 bytes .../oldN_P0_first_open_face.png | Bin 0 -> 1212 bytes .../oldN_P0_first_open_face_raw3200.bin | Bin 0 -> 3200 bytes .../oldN_P1_stale_table_after_dele.png | Bin 0 -> 1169 bytes ...oldN_P1_stale_table_after_dele_raw3200.bin | Bin 0 -> 3200 bytes .../oldN_P2_crc_reject_silent.png | Bin 0 -> 1212 bytes .../oldN_P2_crc_reject_silent_raw3200.bin | Bin 0 -> 3200 bytes .../wave_fix_20261107/oldN_P3_good_seg99.png | Bin 0 -> 2387 bytes .../oldN_P3_good_seg99_raw3200.bin | Bin 0 -> 3200 bytes .../wave_fix_20261107/restore_verify.txt | 101 +++++++ .../samples/WAVE06_bitflip.BIN | Bin 0 -> 5250 bytes .../samples/WAVE99_altseg.BIN | Bin 0 -> 5250 bytes .../samples/WAVE99_headflip.BIN | Bin 0 -> 5250 bytes .../serial_excerpt_after.txt | 187 ++++++++++++ .../serial_excerpt_before.txt | 16 + .../wave_fix_20261107/serial_excerpt_f1.txt | 150 +++++++++ .../wave_fix_20261107/serial_excerpt_f2.txt | 166 ++++++++++ .../serial_excerpt_man_post.txt | 168 +++++++++++ .../serial_excerpt_restore.txt | 284 ++++++++++++++++++ .../wave_fix_20261107/serial_stats.json | 25 ++ 62 files changed, 1940 insertions(+), 3 deletions(-) create mode 100644 docs/测试说明/测试数据/wave_fix_20261107/README.md create mode 100644 docs/测试说明/测试数据/wave_fix_20261107/battery_log.txt create mode 100644 docs/测试说明/测试数据/wave_fix_20261107/boot_new/boot_log_20261107_225225.txt create mode 100644 docs/测试说明/测试数据/wave_fix_20261107/boot_new2/boot_log_20261107_225601.txt create mode 100644 docs/测试说明/测试数据/wave_fix_20261107/boot_new3/boot_log_20261107_231856.txt create mode 100644 docs/测试说明/测试数据/wave_fix_20261107/boot_new3_stdout.txt create mode 100644 docs/测试说明/测试数据/wave_fix_20261107/manifest_sha256.json create mode 100644 docs/测试说明/测试数据/wave_fix_20261107/newN_A_reject5_enter1.png create mode 100644 docs/测试说明/测试数据/wave_fix_20261107/newN_A_reject5_enter1_raw3200.bin create mode 100644 docs/测试说明/测试数据/wave_fix_20261107/newN_A_reject5_enter2.png create mode 100644 docs/测试说明/测试数据/wave_fix_20261107/newN_A_reject5_enter2_raw3200.bin create mode 100644 docs/测试说明/测试数据/wave_fix_20261107/newN_A_reject5_enter3.png create mode 100644 docs/测试说明/测试数据/wave_fix_20261107/newN_A_reject5_enter3_raw3200.bin create mode 100644 docs/测试说明/测试数据/wave_fix_20261107/newN_B_restored_normal6.png create mode 100644 docs/测试说明/测试数据/wave_fix_20261107/newN_B_restored_normal6_raw3200.bin create mode 100644 docs/测试说明/测试数据/wave_fix_20261107/newN_C_reject1_head99.png create mode 100644 docs/测试说明/测试数据/wave_fix_20261107/newN_C_reject1_head99_raw3200.bin create mode 100644 docs/测试说明/测试数据/wave_fix_20261107/newN_D_final_ok99.png create mode 100644 docs/测试说明/测试数据/wave_fix_20261107/newN_D_final_ok99_raw3200.bin create mode 100644 docs/测试说明/测试数据/wave_fix_20261107/newN_F11_reopen_seg99_max.png create mode 100644 docs/测试说明/测试数据/wave_fix_20261107/newN_F11_reopen_seg99_max_raw3200.bin create mode 100644 docs/测试说明/测试数据/wave_fix_20261107/newN_F12_empty_state.png create mode 100644 docs/测试说明/测试数据/wave_fix_20261107/newN_F12_empty_state_raw3200.bin create mode 100644 docs/测试说明/测试数据/wave_fix_20261107/newN_F12_idlekey_seg6.png create mode 100644 docs/测试说明/测试数据/wave_fix_20261107/newN_F12_idlekey_seg6_raw3200.bin create mode 100644 docs/测试说明/测试数据/wave_fix_20261107/newN_F13_after_spam.png create mode 100644 docs/测试说明/测试数据/wave_fix_20261107/newN_F13_after_spam_raw3200.bin create mode 100644 docs/测试说明/测试数据/wave_fix_20261107/newN_F14_manual_confirm.png create mode 100644 docs/测试说明/测试数据/wave_fix_20261107/newN_F14_manual_confirm_raw3200.bin create mode 100644 docs/测试说明/测试数据/wave_fix_20261107/newN_F14_manual_done.png create mode 100644 docs/测试说明/测试数据/wave_fix_20261107/newN_F14_manual_done_raw3200.bin create mode 100644 docs/测试说明/测试数据/wave_fix_20261107/newN_F14_manual_page.png create mode 100644 docs/测试说明/测试数据/wave_fix_20261107/newN_F14_manual_page_raw3200.bin create mode 100644 docs/测试说明/测试数据/wave_fix_20261107/newN_F15_seg6.png create mode 100644 docs/测试说明/测试数据/wave_fix_20261107/newN_F15_seg6_raw3200.bin create mode 100644 docs/测试说明/测试数据/wave_fix_20261107/newN_F15_seg99_alt.png create mode 100644 docs/测试说明/测试数据/wave_fix_20261107/newN_F15_seg99_alt_raw3200.bin create mode 100644 docs/测试说明/测试数据/wave_fix_20261107/newN_Z_final_open_100appended.png create mode 100644 docs/测试说明/测试数据/wave_fix_20261107/newN_Z_final_open_100appended_raw3200.bin create mode 100644 docs/测试说明/测试数据/wave_fix_20261107/oldN_P0_first_open_face.png create mode 100644 docs/测试说明/测试数据/wave_fix_20261107/oldN_P0_first_open_face_raw3200.bin create mode 100644 docs/测试说明/测试数据/wave_fix_20261107/oldN_P1_stale_table_after_dele.png create mode 100644 docs/测试说明/测试数据/wave_fix_20261107/oldN_P1_stale_table_after_dele_raw3200.bin create mode 100644 docs/测试说明/测试数据/wave_fix_20261107/oldN_P2_crc_reject_silent.png create mode 100644 docs/测试说明/测试数据/wave_fix_20261107/oldN_P2_crc_reject_silent_raw3200.bin create mode 100644 docs/测试说明/测试数据/wave_fix_20261107/oldN_P3_good_seg99.png create mode 100644 docs/测试说明/测试数据/wave_fix_20261107/oldN_P3_good_seg99_raw3200.bin create mode 100644 docs/测试说明/测试数据/wave_fix_20261107/restore_verify.txt create mode 100644 docs/测试说明/测试数据/wave_fix_20261107/samples/WAVE06_bitflip.BIN create mode 100644 docs/测试说明/测试数据/wave_fix_20261107/samples/WAVE99_altseg.BIN create mode 100644 docs/测试说明/测试数据/wave_fix_20261107/samples/WAVE99_headflip.BIN create mode 100644 docs/测试说明/测试数据/wave_fix_20261107/serial_excerpt_after.txt create mode 100644 docs/测试说明/测试数据/wave_fix_20261107/serial_excerpt_before.txt create mode 100644 docs/测试说明/测试数据/wave_fix_20261107/serial_excerpt_f1.txt create mode 100644 docs/测试说明/测试数据/wave_fix_20261107/serial_excerpt_f2.txt create mode 100644 docs/测试说明/测试数据/wave_fix_20261107/serial_excerpt_man_post.txt create mode 100644 docs/测试说明/测试数据/wave_fix_20261107/serial_excerpt_restore.txt create mode 100644 docs/测试说明/测试数据/wave_fix_20261107/serial_stats.json diff --git a/App/task/ui_task.c b/App/task/ui_task.c index 425eaad9..1909a739 100644 --- a/App/task/ui_task.c +++ b/App/task/ui_task.c @@ -717,7 +717,7 @@ static int ui_task_wave_load_head(uint8_t a_idx) { * ——判废是低频人工动作,逐次留痕正是取证要的东西(电平 * ERROR + 不判重两条裁定见设计说明 §10 的 2026-11-07 节)。 * reject= 原因码表与「reject!=5 时两个 CRC 字段恒 0x0000」 - * 判读口径见手册 §3;reject=5 的 stored/calc 与 PC 侧 + * 判读口径见手册 §4 步 7 与 §8;reject=5 的 stored/calc 与 PC 侧 * wave_read 的 REJECT 行同名同值、可对值互证。[ERR] 会命中 * /serial-boot-test 的 Forbidden 清单 → 坏段轮里按「预期内」 * 点名放行(同手册),正常盘上本行一条都不会出现 */ diff --git a/docs/任务规划/README.md b/docs/任务规划/README.md index f9b8f79f..11664a15 100644 --- a/docs/任务规划/README.md +++ b/docs/任务规划/README.md @@ -66,7 +66,7 @@ | **6** | 保护元件与采集增强 | 等待标准源或硬件改版 | 保护先解除未标定闭锁;三相同时刻类功能等 V0.2 硬件 | | **7** | 验证窗口事项 | 逢条件顺带 | CI runner、PC peer、CH340、负向故障注入条件到位时执行 | | **8** | 独立模块与暂缓项 | 当前不排 | 开入开出、104 文件传输单独立项(SNTP 已单独立项并于 2026-11-04 落地 #73,:8888 随 #78 退役);RS-485 与内存优化按各自重启条件 | -| **独立** | **故障录波(1 kHz · 8 路原始码值 · 单通道回放)** | **代码面已交付;2026-10-31 远程半轮过六项、2026-11-02 回放页枚举缺陷已修复闭环、2026-11-04 注量对表闭环(#40 §8 交流轮)、2026-11-06 第二幕尾步坏段/空态画面台架远程轮拍毕——回放页三态板级判据全部实证;余保护触发(P,需标定解锁决定)、bench 定时自抓(T)与卷占用、`task_prof` 耗时峰值等到场/裁定项** | 用户裁定 2026-10-29 **录波先行**:数据面最小闭环 → 手动与保护启动触发 → 回放页。三块的**代码侧判据已收口**(主机单测 113 / 170 / 110 全 rc=0、双端编译 0 错误 0 警告、板端编码器与 PC 侧解码器字节级互验、手动录波与录波回放两叶已绑页、内容页黄金参考扩至 66 张);**2026-10-31 远程半轮已过六项**(真 FAT 落盘、触发→落盘全部落在 2 s 封存超时窗内、冷却恢复、轮转、PC 侧坏段拒收、冻结窗内 104 并发);同轮发现的缺陷「回放页段表枚举恒空」**已于 2026-11-02 远程修复并板级闭环**(根因 = 读侧 `wave_store_seg_path()` 返回值判错,顺带修键处理缺失效;回放页真段/切段/切道已实测,登记簿条目已销项,证据见设计说明 §10「回放页枚举恒空缺陷修复记录」);**注量对表半轮已于 2026-11-04 由 #40 §8 交流轮闭环**(幅值 / 相位 / 削顶三项实测,`meas:` 行与板上读数逐项核对,104 浮点遥测按用户裁定不作对照证据;`docs/测试说明/测试数据/boot_log_data/20261104_ac_*`);**回放页放坏段与空态画面已于 2026-11-06 台架远程轮拍毕闭环**(同号翻位覆盖→「该段不可读」零波形元素绝不平线;全删→「无录波段」+ 串口 `open fail fr=4` 互证;证据 `docs/测试说明/测试数据/wave_shot_20261106/`,记录见设计说明 §10「回放页坏段/空态画面闭环记录」);**没跑的只剩** 保护触发对时刻(src=P,先要标定解锁决定)/ bench 定时自抓与卷占用(需 bench 构建)/ `task_prof` 读路径耗时峰值,全部结果与清单见 `docs/子系统设计/故障录波设计说明.md` §10「板级远程半轮记录」。**板级判据、留痕名清单与执行顺序图的属主 = docs/子系统设计/故障录波设计说明.md §9 与 §10**(原卡片登记簿 2026-10-30 随销项并入后删除);**与 UI 道互斥**(菜单树与中文字库是整文件生成物,同刻只允许一条道写)——本波按此串行执行:UI 道在数据面与接线冻结之后才动生成物 | +| **独立** | **故障录波(1 kHz · 8 路原始码值 · 单通道回放)** | **代码面已交付;2026-10-31 远程半轮过六项、2026-11-02 回放页枚举缺陷已修复闭环、2026-11-04 注量对表闭环(#40 §8 交流轮)、2026-11-06 第二幕尾步坏段/空态画面台架远程轮拍毕——回放页三态板级判据全部实证、2026-11-07 #93 两条现场发现修复后台架验收 F1/F2 全过(PR #94);余保护触发(P,需标定解锁决定)、bench 定时自抓(T)与卷占用、`task_prof` 耗时峰值等到场/裁定项** | 用户裁定 2026-10-29 **录波先行**:数据面最小闭环 → 手动与保护启动触发 → 回放页。三块的**代码侧判据已收口**(主机单测 113 / 170 / 110 全 rc=0、双端编译 0 错误 0 警告、板端编码器与 PC 侧解码器字节级互验、手动录波与录波回放两叶已绑页、内容页黄金参考扩至 66 张);**2026-10-31 远程半轮已过六项**(真 FAT 落盘、触发→落盘全部落在 2 s 封存超时窗内、冷却恢复、轮转、PC 侧坏段拒收、冻结窗内 104 并发);同轮发现的缺陷「回放页段表枚举恒空」**已于 2026-11-02 远程修复并板级闭环**(根因 = 读侧 `wave_store_seg_path()` 返回值判错,顺带修键处理缺失效;回放页真段/切段/切道已实测,登记簿条目已销项,证据见设计说明 §10「回放页枚举恒空缺陷修复记录」);**注量对表半轮已于 2026-11-04 由 #40 §8 交流轮闭环**(幅值 / 相位 / 削顶三项实测,`meas:` 行与板上读数逐项核对,104 浮点遥测按用户裁定不作对照证据;`docs/测试说明/测试数据/boot_log_data/20261104_ac_*`);**回放页放坏段与空态画面已于 2026-11-06 台架远程轮拍毕闭环**(同号翻位覆盖→「该段不可读」零波形元素绝不平线;全删→「无录波段」+ 串口 `open fail fr=4` 互证;证据 `docs/测试说明/测试数据/wave_shot_20261106/`,记录见设计说明 §10「回放页坏段/空态画面闭环记录」);**#93 回放页两条现场发现(开页后新段不进表 / CRC 判废串口静默)已于 2026-11-07 按推荐方案修复并台架远程验收 F1 五条 F2 五条全过**(F1 = `wave_enter` 钩子开页作废钉表 + 空态键重探,A+B 同批;F2 = 五类判废汇成单条 `ui wave head idx= reject= stored= calc=` ERROR 级不去重留痕,reject=5 与 PC `wave_read` 同值互证;PR #94,证据 `docs/测试说明/测试数据/wave_fix_20261107/`,记录见设计说明 §10 修复记录);**没跑的只剩** 保护触发(P)对时刻(先要标定解锁决定)/ bench 定时自抓(T)与卷占用(需 bench 构建)/ `task_prof` 读路径耗时峰值,全部结果与清单见 `docs/子系统设计/故障录波设计说明.md` §10「板级远程半轮记录」。**板级判据、留痕名清单与执行顺序图的属主 = docs/子系统设计/故障录波设计说明.md §9 与 §10**(原卡片登记簿 2026-10-30 随销项并入后删除);**与 UI 道互斥**(菜单树与中文字库是整文件生成物,同刻只允许一条道写)——本波按此串行执行:UI 道在数据面与接线冻结之后才动生成物 | ### 2.1 关键依赖 diff --git a/docs/子系统设计/故障录波设计说明.md b/docs/子系统设计/故障录波设计说明.md index 8f29ebd0..3ae38bb1 100644 --- a/docs/子系统设计/故障录波设计说明.md +++ b/docs/子系统设计/故障录波设计说明.md @@ -541,6 +541,53 @@ bench 锁全程持有(任务 `exec-issue-84`,`_wt` 规范锁区手工获取 销项;手册 §1 第四幕行与 §6 状态已同步。本票唯一入库代码改动 = F0 有符号判定修复 (bench 闸内,产品行为零变化)。 +### 回放页开页作废重扫与判废留痕修复记录(2026-11-07,#93 → PR #94) + +11-06「回放页坏段/空态画面闭环记录」的两条现场发现由 #93 钉成工单后经用户裁定「按推荐方案实施」(A+B 同批 + F2 留痕,级别 +裁定 = ERROR + 手册补判读行,不扩 serial-boot-test 豁免面)。代码面: + +- **F1**:`ui_data_wave_ops_t` 扩第七件 `void (*wave_enter)(void)`(与 `manual_req` 同族动作位、 + 不产三态;`ui_data_wave_bind` NULL 链同步拒残表);`ui_task_wave_enter()` = 清 `s_wave_scanned` + + 清 `s_wave_cache_ok`(与 `manual_req` 同纪律——同名文件被顶掉后旧段头不能拿旧尺子量新段); + `ui_page_wave_play.c` 的 `pg_init` 与 IDLE 态按键(方案 B,兑现「新段可能已落」的再探承诺) + 各调一次;`simulator/main.c` 空壳桩保七件同形状。**重扫仍懒在首帧,开页链零 I/O 不破**, + 页内 `UD/LR` 不新增重扫(11-02 钉表防抖原样)。**残余纪律(#93 §A+B 尾段口径)**: + 开页是唯一作废时机——**页开着投放的新段要再开一次页才可见**;空态按键即投即见。 +- **F2**:`ui_task_wave_load_head()` 五类 BAD 出口收敛为原因码 `UI_WAVE_REJ_{HEAD,LEN,WIN, + TAIL,CRC}=1..5`(宏值域按「接口只增不改」纪律钉死),判废时单点 + `DBG_ERROR("ui wave head idx=%u reject=%u stored=0x%04X calc=0x%04X")` **逐次一条不去重** + (频控天然 = 每次进入坏段一行,与按键、画面一一对应;判废是低频人工动作,逐次留痕正是 + 取证要的)。第 5 类附 stored/calc 两组值、与 PC 侧 `test/host/wave_read.py` 的 REJECT 行 + **同名同值互证**,其余四类该两字段打 `0x0000` 占位。级别 ERROR 与同函数 `open fail` 同面; + `/serial-boot-test` 的 `[ERR]` Forbidden 会命中**故意投坏段的轮次**——判读行已补进手册 + §4 与 §8(坏段轮 reject 行 = 预期内,其余 `[ERR]` 照旧停幕)。画面零改动:判废态仍 + 「该段不可读」逐比特不变(ui-golden `wave_play_bad` 零刷新实证)。 + +主机面:ui-golden 全绿(内容页 74 张 + 菜单行 + 水位;三态帧零刷新);主机套件 ui_data 295 / +ui_sink 17 / wave_ring 113 / wave_store 170 / wave_trig 110 全过;Keil 0 错误 0 警告 +(ER_IROM1 285,716→285,940 B:判废留痕单调用点含格式串常量共 +224 B,与 #93「每调用点约 +90 B」的账同量级)。 + +台架环境新事实(本轮到场盘点,与修复无关但记档):`/WAVE` 长期台架会话下每个段文件被 +跨开机**追加**成 2~27 段拼接(写者 `FA_OPEN_APPEND` + 长度等式只验本次写入量, +`default_task.c` 落盘道;11-06 的 STOR 全删全建掩盖了生长面)——拼接件对回放页单段读侧 +(`size == total`)逐件判长度废,1866 段逐段过 `wave_read` 校验**全部合法**(零损坏,纯口径 +相抵)。该面是否收口(写者截断 vs 读侧多段感知)是新的产品决定,本轮只如实记账,不并票。 + +板级验收(2026-11-07 台架远程轮,烧录经口头「烧」确认;证据 +`docs/测试说明/测试数据/wave_fix_20261107/`):**F1 五条 / F2 五条全过**——F1-1 页关投放 +重开即见新段(光标落数值最大段);F1-2 空态键重探「即投即见」,空态帧与 11-06 归档逐比特 +一致;F1-3 页内连踩 ×12 零新增扫描锚点(防抖纪律未破);F1-4 手动录波回归(ACK +`src=M`、FTP 侧 +5250 落盘,作废路径由主机 295 项套件回归);F1-5 同号覆盖切出切入即见新 +字节(单槽段头缓存切换中自然重读)。F2:坏段三进三行 `reject=5` 不去重且 +`stored=0xC204 calc=0x8A84` 与 PC `wave_read` REJECT 行同值互证、画面与 11-06 拒收帧逐比特 +一致;`reject=1/2` 面 CRC 字段 `0x0000` 占位;收工还原到场拼接盘态重开页,画面同旧固件、 +串口多出行判废留痕 = 修复前后直接对照面。F2-3 启动门禁:零录波类 `[ERR]`;唯一 `[ERR]` +为既有 `[I104] bind port 2404 FAIL, retry in loop`——第四幕已把「软复位首绑失败、重试成功静默」归入 #53 +既有面不新开(本轮经手的启动窗全部命中该行,STARTDT con 实测服务存活、链路可用),`listening` 标记 +缺失即其重试成功不打日志的一面;间歇边界(是否断电重连可消)未在本轮验证。详见证据目录 README 的 +Before/After 表与串口原文。 + --- ## 11. 与 `docs/任务规划/数据可信.md` 的口径变更(三处) diff --git a/docs/测试说明/专项验证/故障录波板级到场轮执行手册.md b/docs/测试说明/专项验证/故障录波板级到场轮执行手册.md index 981d791b..5c5d3f42 100644 --- a/docs/测试说明/专项验证/故障录波板级到场轮执行手册.md +++ b/docs/测试说明/专项验证/故障录波板级到场轮执行手册.md @@ -73,6 +73,13 @@ flowchart LR 5. **换点再来一遍**:发生器升到能钉住 UB/UC/IB/IC/IN 任一路的量级(削顶的老口径见 `docs/测试说明/专项验证/ADC前端注入验证流程.md` §8.5 削顶卡;片内 ADC 五路单极性、负半周钉 0 的机理在 `docs/硬件平台/ADC通道映射说明.md`)——**这一遍你只拧幅值键**,录波触发重复第 3~4 步,钉轨对表应见 ≥1 路实测钉轨且能由注入解释。 6. **[agent]** `meas:` 与 104 浮点遥测对表:参考主站 `test/host/iec104_master.py` 读 YC 浮点,和 `meas:` 行、和你注入的 1.000 V 三方对齐——**你只需报万用表读数**。 7. **坏段画面(这一幕的收尾,要第一幕修好)**:[agent] 造一份位翻转坏段上板(`RETR→翻一位→STOR 回同号`)→ 开回放页翻到该段——**判据:绝不许画成一条直线**,该显拒收态;agent 抓屏给你目检。 + - **2026-11-07 起(#93/#94)串口同步留痕**:每一次进入判废段,串口出一条 + `[ERR][UI_TASK] ui wave head idx=<段号> reject=<1..5> stored=0x%04X calc=0x%04X`—— + 原因码 1 头解析 / 2 长度等式 / 3 窗读 / 4 尾读 / **5 数据 CRC 不符**(第 5 类附两组 CRC, + 可与 PC 侧 `test/host/wave_read.py dump` 的 REJECT 行同名同值互证;1~4 类两字段打 `0x0000`)。 + 坏段轮这些 `[ERR]` 行 = **预期内**,不算停幕(见 §8);恢复原字节后再进该段应零 reject 行、放波正常。 + - **开页作废纪律(#93 F1)**:回放页**每次开页**重扫段表(页开着投放的新段要**再开一次页**才见; + 空态按 `LR` 即投即见)。页内 `UD/LR` 连按不产生重扫,也不新增 `ui wave scan` 锚点。 8. **到你拔线**。 **现场记录表**(agent 会打印这张表逐行填,你核对签字即可): @@ -142,7 +149,7 @@ flowchart LR - **页面看着"不动"**:九成是远程注键的帧流滞后(ACK 与推流同一条 TCP)——让 agent 按 `scripts/board_ui_nav.py` 文件头的三条纪律排空重取,不是板子死了。 - **FTP 报 425**:两条 LIST 之间隔 0.5 s 再发(lftpd 单连接语义,老坑)。 -- **串口见任何 `[ERR]` 开头行或装置自己复位了**:**停止当前幕**,原样贴给 agent——`[ERR]` 是门禁级信号,别重试掩盖现场。 +- **串口见任何 `[ERR]` 开头行或装置自己复位了**:**停止当前幕**,原样贴给 agent——`[ERR]` 是门禁级信号,别重试掩盖现场。**唯一例外(2026-11-07 #93/#94 起)**:故意投坏段的轮次里 `[ERR][UI_TASK] ui wave head idx=… reject=…` 判废留痕行 = 预期内、逐段逐次一条,不触发停幕(判读表见 §4 步 7;除此之外任何 `[ERR]` 照旧停幕)。 ## 9. 时间与顺序建议 diff --git a/docs/测试说明/测试数据/wave_fix_20261107/README.md b/docs/测试说明/测试数据/wave_fix_20261107/README.md new file mode 100644 index 00000000..9674ff9d --- /dev/null +++ b/docs/测试说明/测试数据/wave_fix_20261107/README.md @@ -0,0 +1,73 @@ +# 回放页开页作废重扫 + 判废留痕修复验收轮(2026-11-07,#93 → PR #94) + +台架远程轮(无人到场,bench 锁全程持有,烧录经口头「烧」确认)。修复 = 设计说明 §10 +「回放页开页作废重扫与判废留痕修复记录」;验收判据 = #93 正文 F1 五条 / F2 五条。 +帧均为 7003 `LCDMEM` 原帧(160×160 1bpp 3200 B,`.bin`),`_raw3200.bin` 为其归档命名, +PNG 为 4× 放大目检件(非判据)。 + +## 到场盘面事实(与修复无关,如实记档) + +- `/WAVE` 100 件 `WAVE00…99.BIN`,尺寸为 5250 B 的 **2~27 倍拼接**(共 1866 段,逐段过 + `test/host/wave_read.py` 校验**全部合法、零损坏**)——写者 `FA_OPEN_APPEND` 跨开机累积 + 属既有设计,回放页单段读侧(`size == total`)按口径逐件判「长度废」:全板无可放段。 + 全量原件 RETR 备份 + sha256 台账在轮末**逐字节还原**(见「收工」节)。 +- 串口唯一枚举 CH340 = **COM4**(仓库 `.serialtest/config.json` 钉 COM3 已过时,本仓文件 + 未动,用 `$env:DSH_SERIAL_CONFIG` 覆盖);板端 FTP `admin/admin`。 +- 到场固件 = 修复前构建(当日 01:00 已在跑,串口捕获窗口起点晚于该启动,构建戳不可证; + Before 侧各帧均取自烧录前时段、期间无新启动。新固件戳见下)。 + +## Before(旧固件,烧录前时段实测) + +| 帧 | 场景 | 串口 | +|---|---|---| +| `oldN_P0_first_open_face_raw3200.bin` | 开页即「该段不可读」(拼接件长度废的自然样本) | **零行**(F2 静默设计面) | +| `oldN_P1_stale_table_after_dele_raw3200.bin` | 页开过一次(钉表 100 名)→ 页关 → `DELE WAVE99` → 重开页 | `open fail fr=4`(钉住表列着已删名——F1 镜像面) | +| `oldN_P2_crc_reject_silent_raw3200.bin` | `STOR WAVE06.BIN`=翻位坏版(byte[130]^=1,与 11-06 同款)→ 开页走位踩入 | **零行**(CRC 判废黑盒面,#93 现象原文复现) | + +(sha 与逐帧判读见 `manifest_sha256.json`;`serial_excerpt_before.txt` / `serial_excerpt_after.txt` +为 serial-assistant 原文摘录,仅剔除 `wave:`/`ADC` 心跳行。) + +## After(新固件 `fw build: Nov 7 2026 19:10:36`,run_boot_test 内置烧录 + 回读 `No difference found`) + +| 帧 | 判据 | 串口锚点 | +|---|---|---| +| `newN_F11_reopen_seg99_max_raw3200.bin` | F1-1:页关时 FTP `STOR WAVE99.BIN`(单段合法件)→ 重开页 → 光标直接落数值最大段 99 并出波形(sha 与旧固件同段好段帧 `oldN_P3` 一致,渲染零漂移) | `UPLOAD` 留痕(`serial_excerpt_f1.txt`),判废零行 | +| `newN_F12_empty_state` + `newN_F12_idlekey_seg6` | F1-2:空盘开页 = 「无录波段」(空态帧 sha `a76c41cf…` 与 11-06 归档空态帧**逐比特一致**)→ 页开着 `STOR WAVE06` → 单次左键即出 SEG6 波形(「空态按键付①」兑现即投即见) | 同左 | +| `newN_F13_after_spam` | F1-3:有段页内连踩 UD/LR ×12,帧稳定,该窗口 `ui wave scan` 锚点新增 **0**(`serial_stats.json` `f13_spam_scans=0`;钉表防抖纪律零改动) | 窗口内零扫描/判废行 | +| `newN_F15_seg6` → `newN_F15_seg99_alt` | F1-5:页关同号覆盖 `WAVE99.BIN`←另一合法段 → 页内踩 6 再踩回 99,切入即见**新字节**(新波形帧 sha `12bd96f8…` ≠ 旧内容 `36a3271a…`;单槽段头缓存在切换中自然作废重读) | 无判废行(两件皆合法) | +| `newN_F14_manual_page/confirm/done` | F1-4 手动录波回归:修改密码页 →「确认手动录波?」→「已请求录波」;`manual_req` 作废路径与七件绑定由主机 ui_data 套件 295 项回归 | 23:03:22 `wave: seg=1 armed=0 src=M`(本次捕获 ACK);FTP 侧 `WAVE00.BIN` 141750→**147000**(+5250 落盘),轮末还原 | +| `newN_A_reject5_enter1/2/3` | F2-1+F2-4:三次开页进入坏段(`WAVE06_bitflip`),三帧均 sha `17291a00…` = 与 11-06 归档「该段不可读」帧**逐比特一致**(画面零改动)| 三行**不去重**:23:09:31/38/44 `ui wave head idx=6 reject=5 stored=0xC204 calc=0x8A84`,与 PC 侧 `wave_read.py dump` 同一坏段 REJECT 行逐值互证 | +| `newN_B_restored_normal6` | F2-2:换回合法件重开 = 正常波形(sha `c538a051…`) | 该开页窗口无新判废行 | +| `newN_C_reject1_head99` | 头废面(`WAVE99_headflip`)画面同为 `17291a00…` | `idx=99 reject=1 stored=0x0000 calc=0x0000`(非 CRC 类两字段占位纪律) | +| `newN_D_final_ok99` | 坏段轮收尾正常段回放 | 无判废行 | +| `newN_Z_final_open_100appended` | 收工还原到场拼接盘态后重开页:画面与 Before 侧 `oldN_P0` 逐比特一致(同一「该段不可读」自然面) | **这次有一行** `idx=99 reject=2 stored=0x0000 calc=0x0000`(旧固件同景零行 = F2 修复前后直接对照面) | + +F2-3(无坏段常规板况启动门禁):`boot_new2/` 与 `boot_new3/` 两份启动报告——required 锚点除 +`i104: listening on 2404` 外全过(App init / Network Init / net init OK / protect / 栈 / +`fw build` 本戳),**零新增** `UI_TASK`/录波类 `[ERR]`、零 `open fail`;唯一 `[ERR]` 为 +`[ERR][I104] i104: bind port 2404 FAIL, retry in loop`——修复前固件当晚(22:49:22,本改动 +烧入之前的启动,同串口历史)与本 PR 两次启动(22:56、23:19)逐字相同,runner 判 FAIL 属 +既有环境条件而非本 PR 回归。定性:CH395 软复位残留 socket 致首绑失败、重试循环成功但 +**静默**(成功路径无日志,门禁标记永缺),STARTDT act→con(`68-04-0B-00-00-00`)实测 2404 +服务存活,NET 面 `sock auto-relisten ok` 佐证自愈在跑;「零新增 [ERR]」按同板同电路 +修复前后对比成立。两条独立观察项(①软复位首绑必失败的环境账;②重试成功不打日志)已记入 +设计说明修复记录,建议各自开票、不并票、不在本 PR 修。`serial_excerpt_before.txt` / +`serial_excerpt_after.txt` 为 serial-assistant 原文摘录(剔除心跳行),逐行时间戳可复查。 + +## 收工 + +- `/WAVE` 还原到场拼接原件 100 件逐件 sha256 复验一致(`restore_verify.txt`)。 +- 盘上不留本环投放的任何测试件;`samples/` 三件 = 本环用到的 5250 测试件 + (`WAVE06_bitflip.BIN` / `WAVE99_headflip.BIN` / `WAVE99_altseg.BIN`,sha 见 manifest)。 +- 两锁释放、UI 回主菜单、串口 daemon 端口释放。 + +## 复现口令(本仓 worktree 根,需 bench 锁) + +``` +# 身份互证 + 开页取帧 +& .venv\Scripts\python.exe scripts\board_ui_nav.py --where --i-hold-bench-lock +# 测试件(5250 B 单段):任一合法段文件翻 byte[130](数据 CRC 废)或翻 byte[8](头废) +# FTP admin/admin → CWD /WAVE → STOR → 7003 开回放页 → 串口见 +# [ERR][UI_TASK] ui wave head idx= reject=<1|5> stored=0x…. calc=0x…. +# PC 互证:& .venv\Scripts\python.exe test\host\wave_read.py dump <同款测试件> +``` diff --git a/docs/测试说明/测试数据/wave_fix_20261107/battery_log.txt b/docs/测试说明/测试数据/wave_fix_20261107/battery_log.txt new file mode 100644 index 00000000..9f083789 --- /dev/null +++ b/docs/测试说明/测试数据/wave_fix_20261107/battery_log.txt @@ -0,0 +1,184 @@ +22:42:16 open_page -> True ({'ver': 1, 'kind': 'PAGE', 'depth': 1, 'path': [0, 32], 'sel': [6, 9], 'page': 'wave_play'}) +22:42:17 frame oldN_P0_first_open_face sha=17291a0068f2d4ab099f stable=True +22:42:20 closed -> {'ver': 1, 'kind': 'MENU', 'depth': 0, 'path': [0], 'sel': [6], 'page': None} +22:42:20 DELE WAVE99.BIN (archive: backup_pre_round, appended 141750B original) +22:42:23 open_page -> True ({'ver': 1, 'kind': 'PAGE', 'depth': 1, 'path': [0, 32], 'sel': [6, 9], 'page': 'wave_play'}) +22:42:24 frame oldN_P1_stale_table_after_dele sha=a76c41cfd7f38cecf109 stable=True +22:42:27 closed -> {'ver': 1, 'kind': 'MENU', 'depth': 0, 'path': [0], 'sel': [6], 'page': None} +22:42:28 STOR WAVE99.BIN <- WAVE99.BIN +22:42:29 WAVE99 restored byte-exact: True +22:42:29 == old_natural dele99 done +22:44:12 closed -> {'ver': 1, 'kind': 'STANDBY', 'depth': 0, 'path': [0], 'sel': [6], 'page': None} +22:44:12 STOR WAVE06.BIN <- WAVE06_bitflip.BIN +22:44:17 open_page -> True ({'ver': 1, 'kind': 'PAGE', 'depth': 1, 'path': [0, 32], 'sel': [6, 9], 'page': 'wave_play'}) +22:44:21 nav_to_seg(6) moved 93 l-steps from 99 +22:44:22 frame oldN_P2_crc_reject_silent sha=17291a0068f2d4ab099f stable=True +22:44:25 closed -> {'ver': 1, 'kind': 'MENU', 'depth': 0, 'path': [0], 'sel': [6], 'page': None} +22:44:25 STOR WAVE06.BIN <- WAVE06.BIN +22:44:26 WAVE06 appended original restored byte-exact: True +22:44:26 == old_natural crc06 done +22:49:10 STOR WAVE99.BIN <- WAVE99.BIN +22:49:15 open_page -> True ({'ver': 1, 'kind': 'PAGE', 'depth': 1, 'path': [0, 32], 'sel': [6, 9], 'page': 'wave_play'}) +22:49:16 frame oldN_P3_good_seg99 sha=36a3271a78dafe6afc0c stable=True +22:49:19 closed -> {'ver': 1, 'kind': 'MENU', 'depth': 0, 'path': [0], 'sel': [6], 'page': None} +22:49:19 STOR WAVE99.BIN <- WAVE99.BIN +23:02:51 boot status: {'ver': 1, 'kind': 'STANDBY', 'depth': 0, 'path': [0], 'sel': [0], 'page': None} +23:03:14 after go_page: {'ver': 1, 'kind': 'PAGE', 'depth': 1, 'path': [0, 23], 'sel': [4, 2], 'page': 'wave_manual'} +23:03:15 frame newN_F14_manual_page sha=bdf7e5d1427b74c5b566 stable=True +23:03:18 frame newN_F14_manual_confirm sha=ee14db44f2437dea6cc7 stable=True +23:03:18 after first e: {'ver': 1, 'kind': 'PAGE', 'depth': 1, 'path': [0, 23], 'sel': [4, 2], 'page': 'wave_manual'} +23:03:22 frame newN_F14_manual_done sha=0d677bf478c579391a1a stable=True +23:03:22 after second e: {'ver': 1, 'kind': 'PAGE', 'depth': 1, 'path': [0, 23], 'sel': [4, 2], 'page': 'wave_manual'} +23:03:22 waiting 14 s for ring->defaultTask capture + ACK +23:08:35 F1-2: DELE all 100 (arrived originals archived) +23:09:02 open_page -> True ({'ver': 1, 'kind': 'PAGE', 'depth': 1, 'path': [0, 32], 'sel': [6, 9], 'page': 'wave_play'}) +23:09:03 frame newN_F12_empty_state sha=a76c41cfd7f38cecf109 stable=True +23:09:03 STOR WAVE06.BIN <- WAVE06.BIN +23:09:07 frame newN_F12_idlekey_seg6 sha=c538a051b6bdcca7e871 stable=True +23:09:10 closed -> {'ver': 1, 'kind': 'MENU', 'depth': 0, 'path': [0], 'sel': [6], 'page': None} +23:09:10 STOR WAVE99.BIN <- WAVE99.BIN +23:09:14 open_page -> True ({'ver': 1, 'kind': 'PAGE', 'depth': 1, 'path': [0, 32], 'sel': [6, 9], 'page': 'wave_play'}) +23:09:15 frame newN_F11_reopen_seg99_max sha=36a3271a78dafe6afc0c stable=True +23:09:15 STOR WAVE99.BIN <- WAVE99_altseg.BIN +23:09:19 frame newN_F15_seg6 sha=c538a051b6bdcca7e871 stable=True +23:09:22 frame newN_F15_seg99_alt sha=12bd96f8f7405446c3f7 stable=True +23:09:26 frame newN_F13_after_spam sha=bfacdb1d922f4e7277d1 stable=True +23:09:29 closed -> {'ver': 1, 'kind': 'MENU', 'depth': 0, 'path': [0], 'sel': [6], 'page': None} +23:09:29 == battery2 n-f1 done +23:09:29 closed -> {'ver': 1, 'kind': 'MENU', 'depth': 0, 'path': [0], 'sel': [6], 'page': None} +23:09:29 STOR WAVE06.BIN <- WAVE06_bitflip.BIN +23:09:33 open_page -> True ({'ver': 1, 'kind': 'PAGE', 'depth': 1, 'path': [0, 32], 'sel': [6, 9], 'page': 'wave_play'}) +23:09:34 frame newN_A_reject5_enter1 sha=17291a0068f2d4ab099f stable=True +23:09:34 F2-1 pixel identity vs 11-06 archived bad frame: True +23:09:37 closed -> {'ver': 1, 'kind': 'MENU', 'depth': 0, 'path': [0], 'sel': [6], 'page': None} +23:09:39 open_page -> True ({'ver': 1, 'kind': 'PAGE', 'depth': 1, 'path': [0, 32], 'sel': [6, 9], 'page': 'wave_play'}) +23:09:41 frame newN_A_reject5_enter2 sha=17291a0068f2d4ab099f stable=True +23:09:43 closed -> {'ver': 1, 'kind': 'MENU', 'depth': 0, 'path': [0], 'sel': [6], 'page': None} +23:09:46 open_page -> True ({'ver': 1, 'kind': 'PAGE', 'depth': 1, 'path': [0, 32], 'sel': [6, 9], 'page': 'wave_play'}) +23:09:47 frame newN_A_reject5_enter3 sha=17291a0068f2d4ab099f stable=True +23:09:50 closed -> {'ver': 1, 'kind': 'MENU', 'depth': 0, 'path': [0], 'sel': [6], 'page': None} +23:09:50 STOR WAVE06.BIN <- WAVE06.BIN +23:09:54 open_page -> True ({'ver': 1, 'kind': 'PAGE', 'depth': 1, 'path': [0, 32], 'sel': [6, 9], 'page': 'wave_play'}) +23:09:55 frame newN_B_restored_normal6 sha=c538a051b6bdcca7e871 stable=True +23:09:57 closed -> {'ver': 1, 'kind': 'MENU', 'depth': 0, 'path': [0], 'sel': [6], 'page': None} +23:09:58 STOR WAVE99.BIN <- WAVE99_headflip.BIN +23:10:01 open_page -> True ({'ver': 1, 'kind': 'PAGE', 'depth': 1, 'path': [0, 32], 'sel': [6, 9], 'page': 'wave_play'}) +23:10:02 frame newN_C_reject1_head99 sha=17291a0068f2d4ab099f stable=True +23:10:05 closed -> {'ver': 1, 'kind': 'MENU', 'depth': 0, 'path': [0], 'sel': [6], 'page': None} +23:10:05 STOR WAVE99.BIN <- WAVE99.BIN +23:10:08 open_page -> True ({'ver': 1, 'kind': 'PAGE', 'depth': 1, 'path': [0, 32], 'sel': [6, 9], 'page': 'wave_play'}) +23:10:10 frame newN_D_final_ok99 sha=36a3271a78dafe6afc0c stable=True +23:10:12 closed -> {'ver': 1, 'kind': 'MENU', 'depth': 0, 'path': [0], 'sel': [6], 'page': None} +23:10:12 == battery2 n-f2 done +23:10:13 == battery2 n-manual done +23:10:36 == battery2 n-manual done +23:10:38 STOR WAVE00.BIN <- WAVE00.BIN +23:10:39 STOR WAVE01.BIN <- WAVE01.BIN +23:10:40 STOR WAVE02.BIN <- WAVE02.BIN +23:10:42 STOR WAVE03.BIN <- WAVE03.BIN +23:10:43 STOR WAVE04.BIN <- WAVE04.BIN +23:10:44 STOR WAVE05.BIN <- WAVE05.BIN +23:10:45 STOR WAVE06.BIN <- WAVE06.BIN +23:10:46 STOR WAVE07.BIN <- WAVE07.BIN +23:10:47 STOR WAVE08.BIN <- WAVE08.BIN +23:10:49 STOR WAVE09.BIN <- WAVE09.BIN +23:10:50 STOR WAVE10.BIN <- WAVE10.BIN +23:10:51 STOR WAVE11.BIN <- WAVE11.BIN +23:10:52 STOR WAVE12.BIN <- WAVE12.BIN +23:10:53 STOR WAVE13.BIN <- WAVE13.BIN +23:10:54 STOR WAVE14.BIN <- WAVE14.BIN +23:10:55 STOR WAVE15.BIN <- WAVE15.BIN +23:10:56 STOR WAVE16.BIN <- WAVE16.BIN +23:10:58 STOR WAVE17.BIN <- WAVE17.BIN +23:10:59 STOR WAVE18.BIN <- WAVE18.BIN +23:11:00 STOR WAVE19.BIN <- WAVE19.BIN +23:11:01 STOR WAVE20.BIN <- WAVE20.BIN +23:11:02 STOR WAVE21.BIN <- WAVE21.BIN +23:11:03 STOR WAVE22.BIN <- WAVE22.BIN +23:11:04 STOR WAVE23.BIN <- WAVE23.BIN +23:11:05 STOR WAVE24.BIN <- WAVE24.BIN +23:11:06 STOR WAVE25.BIN <- WAVE25.BIN +23:11:07 STOR WAVE26.BIN <- WAVE26.BIN +23:11:09 STOR WAVE27.BIN <- WAVE27.BIN +23:11:09 STOR WAVE28.BIN <- WAVE28.BIN +23:11:10 STOR WAVE29.BIN <- WAVE29.BIN +23:11:11 STOR WAVE30.BIN <- WAVE30.BIN +23:11:13 STOR WAVE31.BIN <- WAVE31.BIN +23:11:14 STOR WAVE32.BIN <- WAVE32.BIN +23:11:15 STOR WAVE33.BIN <- WAVE33.BIN +23:11:16 STOR WAVE34.BIN <- WAVE34.BIN +23:11:17 STOR WAVE35.BIN <- WAVE35.BIN +23:11:17 STOR WAVE36.BIN <- WAVE36.BIN +23:11:18 STOR WAVE37.BIN <- WAVE37.BIN +23:11:19 STOR WAVE38.BIN <- WAVE38.BIN +23:11:20 STOR WAVE39.BIN <- WAVE39.BIN +23:11:22 STOR WAVE40.BIN <- WAVE40.BIN +23:11:23 STOR WAVE41.BIN <- WAVE41.BIN +23:11:24 STOR WAVE42.BIN <- WAVE42.BIN +23:11:25 STOR WAVE43.BIN <- WAVE43.BIN +23:11:26 STOR WAVE44.BIN <- WAVE44.BIN +23:11:27 STOR WAVE45.BIN <- WAVE45.BIN +23:11:28 STOR WAVE46.BIN <- WAVE46.BIN +23:11:28 STOR WAVE47.BIN <- WAVE47.BIN +23:11:29 STOR WAVE48.BIN <- WAVE48.BIN +23:11:30 STOR WAVE49.BIN <- WAVE49.BIN +23:11:31 STOR WAVE50.BIN <- WAVE50.BIN +23:11:32 STOR WAVE51.BIN <- WAVE51.BIN +23:11:33 STOR WAVE52.BIN <- WAVE52.BIN +23:11:34 STOR WAVE53.BIN <- WAVE53.BIN +23:11:35 STOR WAVE54.BIN <- WAVE54.BIN +23:11:36 STOR WAVE55.BIN <- WAVE55.BIN +23:11:37 STOR WAVE56.BIN <- WAVE56.BIN +23:11:38 STOR WAVE57.BIN <- WAVE57.BIN +23:11:39 STOR WAVE58.BIN <- WAVE58.BIN +23:11:40 STOR WAVE59.BIN <- WAVE59.BIN +23:11:40 STOR WAVE60.BIN <- WAVE60.BIN +23:11:41 STOR WAVE61.BIN <- WAVE61.BIN +23:11:42 STOR WAVE62.BIN <- WAVE62.BIN +23:11:43 STOR WAVE63.BIN <- WAVE63.BIN +23:11:44 STOR WAVE64.BIN <- WAVE64.BIN +23:11:45 STOR WAVE65.BIN <- WAVE65.BIN +23:11:46 STOR WAVE66.BIN <- WAVE66.BIN +23:11:47 STOR WAVE67.BIN <- WAVE67.BIN +23:11:48 STOR WAVE68.BIN <- WAVE68.BIN +23:11:48 STOR WAVE69.BIN <- WAVE69.BIN +23:11:49 STOR WAVE70.BIN <- WAVE70.BIN +23:11:50 STOR WAVE71.BIN <- WAVE71.BIN +23:11:51 STOR WAVE72.BIN <- WAVE72.BIN +23:11:52 STOR WAVE73.BIN <- WAVE73.BIN +23:11:53 STOR WAVE74.BIN <- WAVE74.BIN +23:11:54 STOR WAVE75.BIN <- WAVE75.BIN +23:11:55 STOR WAVE76.BIN <- WAVE76.BIN +23:11:56 STOR WAVE77.BIN <- WAVE77.BIN +23:11:57 STOR WAVE78.BIN <- WAVE78.BIN +23:11:58 STOR WAVE79.BIN <- WAVE79.BIN +23:11:58 STOR WAVE80.BIN <- WAVE80.BIN +23:11:59 STOR WAVE81.BIN <- WAVE81.BIN +23:12:00 STOR WAVE82.BIN <- WAVE82.BIN +23:12:01 STOR WAVE83.BIN <- WAVE83.BIN +23:12:02 STOR WAVE84.BIN <- WAVE84.BIN +23:12:03 STOR WAVE85.BIN <- WAVE85.BIN +23:12:04 STOR WAVE86.BIN <- WAVE86.BIN +23:12:05 STOR WAVE87.BIN <- WAVE87.BIN +23:12:06 STOR WAVE88.BIN <- WAVE88.BIN +23:12:07 STOR WAVE89.BIN <- WAVE89.BIN +23:12:08 STOR WAVE90.BIN <- WAVE90.BIN +23:12:09 STOR WAVE91.BIN <- WAVE91.BIN +23:12:10 STOR WAVE92.BIN <- WAVE92.BIN +23:12:10 STOR WAVE93.BIN <- WAVE93.BIN +23:12:11 STOR WAVE94.BIN <- WAVE94.BIN +23:12:12 STOR WAVE95.BIN <- WAVE95.BIN +23:12:13 STOR WAVE96.BIN <- WAVE96.BIN +23:12:14 STOR WAVE97.BIN <- WAVE97.BIN +23:12:15 STOR WAVE98.BIN <- WAVE98.BIN +23:12:16 STOR WAVE99.BIN <- WAVE99.BIN +23:13:13 RESTORE verify mismatches: ['WAVE90.BIN', 'WAVE99.BIN'] +23:13:13 == battery2 restore done +23:13:54 STOR WAVE90.BIN <- WAVE90.BIN +23:13:55 STOR WAVE99.BIN <- WAVE99.BIN +23:13:55 attempt 0 re-put: ['WAVE90.BIN', 'WAVE99.BIN'] +23:13:57 WAVE90/99 already clean (attempt 1) +23:14:55 restore verify -> D:\Code\DTU Code\_wt\fix-wave-findings-b8c190da2e56\ci-artifacts\waveboard\restore_verify.txt mismatches: NONE +23:14:57 open_page -> True ({'ver': 1, 'kind': 'PAGE', 'depth': 1, 'path': [0, 32], 'sel': [6, 9], 'page': 'wave_play'}) +23:14:59 frame newN_Z_final_open_100appended sha=17291a0068f2d4ab099f stable=True +23:15:01 closed -> {'ver': 1, 'kind': 'MENU', 'depth': 0, 'path': [0], 'sel': [6], 'page': None} diff --git a/docs/测试说明/测试数据/wave_fix_20261107/boot_new/boot_log_20261107_225225.txt b/docs/测试说明/测试数据/wave_fix_20261107/boot_new/boot_log_20261107_225225.txt new file mode 100644 index 00000000..04322e65 --- /dev/null +++ b/docs/测试说明/测试数据/wave_fix_20261107/boot_new/boot_log_20261107_225225.txt @@ -0,0 +1,157 @@ +[+0ms] [----/--/-- --:--:--][APP] boot: syslog init OK +[+10ms] [----/--/-- --:--:--][APP] fw build: Nov 7 2026 19:10:36 suite=NONE dstr=off +[+21ms] [----/--/-- --:--:--][APP] reset cause: software (NVIC_SystemReset) (CSR=0x14000000) +[+21ms] PREVRUN seg=2 seq=2101829730 t=188054 +[+21ms] TICKRUN uw=188103 n=188103 duw=49 +[+31ms] [----/--/-- --:--:--][RTC] sd2506_init: OK +[+31ms] [----/--/-- --:--:--][APP] SD2506 init: OK (ret=0) +[+42ms] [2026-11-07 22:52:37][CLK] sys_clock_init: RTC initial time 2026-11-07 22:52:37 +[+52ms] [2026-11-07 22:52:37][CLK] sys_clock_init: wall clock base = unix 1794091957, base_tick=142 +[+62ms] [2026-11-07 22:52:37][APP] RS485 init: OK (UART4, DE=PA15) +[+62ms] [2026-11-07 22:52:37][APP] ScreenLink init: OK (ret=0, USART1 700000 baud, BRR=0x0078) +[+83ms] [2026-11-07 22:52:37][NAND] Resetting NAND... +[+104ms] [2026-11-07 22:52:37][NAND] Reading NAND ID... +[+104ms] [2026-11-07 22:52:37][NAND] NAND ID: MID=0xC8, DID=0x52 +[+104ms] [2026-11-07 22:52:37][NAND] Scanning bad blocks... +[+240ms] [2026-11-07 22:52:37][NAND] BBT scan: 0 bad blocks found +[+240ms] [2026-11-07 22:52:37][NAND] Enabling ECC... +[+250ms] [2026-11-07 22:52:37][NAND] Unlocking block protection... +[+261ms] [2026-11-07 22:52:37][NAND] Locating BBT pool... +[+261ms] [2026-11-07 22:52:37][NAND] Loading persisted BBT... +[+271ms] [2026-11-07 22:52:37][NAND] NAND init OK +[+271ms] [2026-11-07 22:52:37][APP] NAND init: OK +[+271ms] [2026-11-07 22:52:37][ADC] Init OK +[+281ms] [2026-11-07 22:52:37][APP] ADC init: OK +[+281ms] [2026-11-07 22:52:37][APP] ADC input layer init: OK +[+281ms] [2026-11-07 22:52:37][APP] phasor layer init: OK (inst=5) +[+292ms] [2026-11-07 22:52:37][APP] freq layer init: OK +[+303ms] [2026-11-07 22:52:37][CFG] register: section 'adc_cal' (9 keys) +[+303ms] [2026-11-07 22:52:37][CFG] register: section 'adc_cal_ofs' (8 keys) +[+313ms] [2026-11-07 22:52:37][APP] adc cal init: OK (k_q16 tpafe=10000000 stm32=52800000) +[+313ms] [2026-11-07 22:52:37][CFG] register: section 'run_par' (9 keys) +[+324ms] [2026-11-07 22:52:37][APP] run par init: OK (db9 k/b via adc_cal, evt=1<<8) +[+334ms] [2026-11-07 22:52:37][CFG] register: section 'comm' (2 keys) +[+334ms] [2026-11-07 22:52:37][APP] comm init: OK (ca=1 port=2404) +[+345ms] [2026-11-07 22:52:37][APP] protection init: OK (set=40 elm=9) +[+345ms] [2026-11-07 22:52:37][APP] SD2506 ID: 2512153425482405 +[+355ms] [2026-11-07 22:52:37][APP] SD2506 time: 2026-11-07 22:52:37 (week 6) +[+355ms] [2026-11-07 22:52:37][APP] SD2506 temp: 23 C +[+366ms] [2026-11-07 22:52:37][APP] SD2506 battery: 3.12 V +[+366ms] [2026-11-07 22:52:37][APP] App init OK +[+376ms] [2026-11-07 22:52:37][NAND_FTL] Initializing NAND FTL... +[+397ms] [2026-11-07 22:52:37][PROT] uncalibrated -> protection blocked (UA/UN/IA VALID not all set) +[+512ms] [2026-11-07 22:52:37][NAND_FTL] Map resumed: 46942/93232 sectors used +[+522ms] [2026-11-07 22:52:37][NAND_FTL] Map head=36880 tail=92105 epoch=8 +[+522ms] [2026-11-07 22:52:37][NAND_FTL] NAND FTL ready (capacity: 93232 pages = 182 MB) +[+605ms] [2026-11-07 22:52:37] [FS] FATFS mounted +[+667ms] [2026-11-07 22:52:37][SYSLOG] runlog boot entry: reboot +[+679ms] [2026-11-07 22:52:37][CFG] register: section 'network' (4 keys) +[+679ms] [2026-11-07 22:52:37][CFG] register: section 'ftp' (3 keys) +[+689ms] [2026-11-07 22:52:37][CFG] register: section 'sntp' (4 keys) +[+700ms] [2026-11-07 22:52:37][CFG] load: OK (1064B, heap free 16552B) +[+700ms] [2026-11-07 22:52:37][NET_CFG] load: OK ip=192.168.31.100 +[+710ms] [2026-11-07 22:52:37] [CFG] prot set loaded (/prot_set.bin) +[+731ms] [2026-11-07 22:52:37][ADC_TASK] first: UA=-18 UB=417 UC=521 UN=-16 IA=-18 IB=0 IC=771 IN=833 T=713 +[+741ms] [2026-11-07 22:52:37][ADC_TASK] phasor(first) C01-IA-F1: Re=0 Im=0 rms=0 (x0.1) +[+752ms] [2026-11-07 22:52:37][ADC_TASK] phasor(first) C02-UA-F1: Re=0 Im=0 rms=0 (x0.1) +[+752ms] [2026-11-07 22:52:37][ADC_TASK] phasor(first) C03-UN-F1: Re=0 Im=0 rms=0 (x0.1) +[+762ms] [2026-11-07 22:52:37][ADC_TASK] phasor(first) C04-IA-F2: Re=0 Im=0 rms=0 (x0.1) +[+772ms] [2026-11-07 22:52:37][ADC_TASK] phasor(first) C05-IA-F5: Re=0 Im=0 rms=0 (x0.1) +[+772ms] [2026-11-07 22:52:37][ADC_TASK] freq(first): f=0 valid=0 (x0.01) +[+782ms] [2026-11-07 22:52:37][NET_TASK] === Network Init === +[+782ms] [2026-11-07 22:52:37][PROT] protect task start: cycle=20ms elm=9 +[+793ms] [2026-11-07 22:52:37][NET] ch395f ver=0x4A fun_para=0x08 +[+793ms] MISS start snap=0x000001E7 req=0x000001F7 t=897 +[+803ms] [2026-11-07 22:52:37][WD] [WD] armed: timeout ~2498ms (worst ~1701ms), miss_tol=800ms +[+814ms] [2026-11-07 22:52:37][NET_TASK] net init: OK +[+814ms] [2026-11-07 22:52:37][NET_TASK] MAC: 3C:AB:72:53:2B:12 +[+856ms] [2026-11-07 22:52:37][NET_TASK] IP_INF: IP=192.168.31.100 GW=192.168.31.1 MASK=255.255.255.0 +[+866ms] [2026-11-07 22:52:37][UI_TASK] UI task: started, wait net ready +[+2783ms] [2026-11-07 22:52:39][NET_TASK] PHY: 100M FULL +[+2804ms] [2026-11-07 22:52:39][NET_TASK] netTask: started (single-socket mode) +[+2835ms] [2026-11-07 22:52:39][ERR][I104] i104: bind port 2404 FAIL, retry in loop +[+2866ms] [2026-11-07 22:52:39] [FTP] using factory default password +[+2876ms] [2026-11-07 22:52:39] [FTP] waiting for connection... +[+2876ms] [2026-11-07 22:52:39][UI_TASK] UI task: net ready, init port +[+2887ms] [2026-11-07 22:52:39][UI_TASK] UI task: ui_port_init enter +[+2898ms] [2026-11-07 22:52:39][UI_PORT] theme: mono dark_bg=true applied +[+2898ms] [2026-11-07 22:52:39][UI_TASK] UI port init: OK +[+2908ms] [2026-11-07 22:52:39][UI_TASK] UI task: ui_menu_init enter +[+2908ms] [2026-11-07 22:52:39][UI_MENU] menu build start: total=15136 free=12692 big=12692 +[+2918ms] [2026-11-07 22:52:39][UI_MENU_VIEW] view init: root frame w=66 h=107 +[+2929ms] [2026-11-07 22:52:39][UI_MENU] menu build done: total=15020 free=11828 big=11816 used=3192 +[+2939ms] [2026-11-07 22:52:39][UI_TASK] UI menu init: OK +[+2939ms] [2026-11-07 22:52:39][UI_STANDBY] standby: ready (idle=60000ms) +[+2950ms] [2026-11-07 22:52:39][UI_TASK] UI standby: ready (idle=60s) +[+2992ms] [2026-11-07 22:52:39][UI_TASK] UI net sink: started (port 7003) +[+3002ms] MISS start snap=0x000001E7 req=0x000001F7 t=3100 +[+3002ms] [PROF] t=3104 uic=0 uip=0 uipn=0 uil=0 uiw=0 uis=0 uisn=0 adc=2630 adcm=2001 adcn=0 gl=0 +[+3013ms] [PROF2] t=3104 defd=92184 defs=40929 netp=1026 netn=940 adcp=9 adcq=0 gl=0 +[+3034ms] [2026-11-07 22:52:39][SBLINK] first frame: size=6 cmd=1 key=0 +[+4942ms] [PROF] t=5038 uic=172 uip=29009 uipn=4851 uil=11004 uiw=19009 uis=1138 uisn=0 adc=4564 adcm=2001 adcn=0 gl=0 +[+4953ms] [PROF2] t=5038 defd=92184 defs=40929 netp=1026 netn=0 adcp=9 adcq=0 gl=0 +[+5377ms] [2026-11-07 22:52:42][SBLINK] rx=19 ok=19 keys=0 crc=0 len=0 fmt=0 err=1 bits=0x08 rearm=0 size=6 key=0 +[+5387ms] [2026-11-07 22:52:42] [STACK] default peak_used=2176/5120 free_min=2944 (57%) +[+5398ms] [2026-11-07 22:52:42] [STACK] net peak_used=1116/3840 free_min=2724 (70%) +[+5398ms] [2026-11-07 22:52:42] [STACK] ftp peak_used=740/4096 free_min=3356 (81%) +[+5408ms] [2026-11-07 22:52:42] [STACK] ui peak_used=4204/16384 free_min=12180 (74%) +[+5418ms] [2026-11-07 22:52:42] [STACK] timesync peak_used=476/2560 free_min=2084 (81%) +[+5418ms] [2026-11-07 22:52:42] [STACK] adc peak_used=1024/2560 free_min=1536 (60%) +[+5429ms] [2026-11-07 22:52:42] [STACK] iec104 peak_used=540/2560 free_min=2020 (78%) +[+5439ms] [2026-11-07 22:52:42] [STACK] protect peak_used=492/2048 free_min=1556 (75%) +[+5439ms] [2026-11-07 22:52:42] [STACK] heap free=15624 min_ever=8464 +[+5450ms] [2026-11-07 22:52:42][SBLINK] tx=9 done=8 drop=10 kerr=0 abor=0 fb=5 bad=0 us=512 max=673 kq=0 off=0 dfok=0 dfold=0 +[+6963ms] [PROF] t=7058 uic=347 uip=94958 uipn=856 uil=10998 uiw=85483 uis=1138 uisn=667 adc=6584 adcm=2001 adcn=0 gl=0 +[+6973ms] [PROF2] t=7058 defd=92184 defs=40929 netp=1987 netn=0 adcp=9 adcq=0 gl=0 +[+8974ms] [PROF] t=9076 uic=528 uip=94958 uipn=6856 uil=10999 uiw=85483 uis=17926 uisn=0 adc=8602 adcm=2001 adcn=0 gl=0 +[+8985ms] [PROF2] t=9076 defd=92184 defs=40929 netp=1987 netn=0 adcp=9 adcq=0 gl=0 +[+10382ms] [2026-11-07 22:52:47][ADC_TASK] frames=10000 idle=0 skip=1 seq=10006 frst_err=0 ring=9999 adc1_rc=0 adc1_err=0 adc1_seq=10005 adc1_gap=5 adc1_hw=0 tgap=1 +[+10392ms] [2026-11-07 22:52:47][ADC_TASK] phasor(hb) C01-IA-F1: Re=0 Im=0 rms=0 (x0.1) +[+10403ms] [2026-11-07 22:52:47][ADC_TASK] phasor(hb) C02-UA-F1: Re=0 Im=0 rms=0 (x0.1) +[+10403ms] [2026-11-07 22:52:47][ADC_TASK] phasor(hb) C03-UN-F1: Re=0 Im=0 rms=0 (x0.1) +[+10413ms] [2026-11-07 22:52:47][ADC_TASK] phasor(hb) C04-IA-F2: Re=0 Im=0 rms=0 (x0.1) +[+10413ms] [2026-11-07 22:52:47][ADC_TASK] phasor(hb) C05-IA-F5: Re=0 Im=0 rms=0 (x0.1) +[+10423ms] [2026-11-07 22:52:47][ADC_TASK] freq(hb): f=0 valid=0 (x0.01) +[+10434ms] [2026-11-07 22:52:47][ADC_TASK] adc: UA=-23 UB=408 UC=614 UN=-21 IA=-21 IB=0 IC=761 IN=875 T=731 +[+10444ms] [2026-11-07 22:52:47][ADC_TASK] cal: ua_mv=-3 un_mv=-3 ia_mv=-3 vl=0x00 cl=0xe6 rail=0x000 edge=0x000 +[+10444ms] [2026-11-07 22:52:47][ADC_TASK] meas: seq=50 v=1 ua_mv=0 un_mv=0 ia_mv=0 f=0 fv=0 +[+10455ms] [2026-11-07 22:52:47][ADC_TASK] wave: seg=0 armed=0 src=- pts=320 err=0 ovf=0 drop=0 +[+10465ms] [2026-11-07 22:52:47][SBLINK] rx=37 ok=37 keys=0 crc=0 len=0 fmt=0 err=1 bits=0x08 rearm=0 size=6 key=0 +[+10475ms] [2026-11-07 22:52:47][SBLINK] tx=27 done=27 drop=10 kerr=0 abor=0 fb=16 bad=0 us=676 max=676 kq=0 off=0 dfok=0 dfold=0 +[+10984ms] [PROF] t=11084 uic=700 uip=94958 uipn=4856 uil=10982 uiw=85483 uis=17926 uisn=0 adc=10608 adcm=3437 adcn=0 gl=0 +[+10995ms] [PROF2] t=11084 defd=92184 defs=40929 netp=4025 netn=0 adcp=9 adcq=0 gl=0 +[+13009ms] [PROF] t=13102 uic=882 uip=94958 uipn=5863 uil=10999 uiw=85483 uis=17926 uisn=0 adc=12626 adcm=3437 adcn=0 gl=0 +[+13009ms] [PROF2] t=13102 defd=92184 defs=40929 netp=4025 netn=0 adcp=9 adcq=0 gl=0 +[+15021ms] [PROF] t=15120 uic=1064 uip=94958 uipn=5856 uil=10916 uiw=85483 uis=17926 uisn=0 adc=14644 adcm=3437 adcn=0 gl=0 +[+15032ms] [PROF2] t=15120 defd=92184 defs=40929 netp=4025 netn=0 adcp=9 adcq=0 gl=0 +[+15467ms] [2026-11-07 22:52:52][SBLINK] rx=55 ok=55 keys=0 crc=0 len=0 fmt=0 err=1 bits=0x08 rearm=0 size=6 key=0 +[+15477ms] [2026-11-07 22:52:52][SBLINK] tx=45 done=45 drop=10 kerr=0 abor=0 fb=26 bad=0 us=513 max=676 kq=0 off=0 dfok=0 dfold=0 +[+17039ms] [PROF] t=17140 uic=1244 uip=94958 uipn=7855 uil=11000 uiw=85483 uis=17926 uisn=0 adc=16664 adcm=3437 adcn=0 gl=0 +[+17050ms] [PROF2] t=17140 defd=92184 defs=40929 netp=4025 netn=0 adcp=9 adcq=0 gl=0 +[+19069ms] [PROF] t=19158 uic=1426 uip=94958 uipn=5856 uil=10999 uiw=85483 uis=17926 uisn=0 adc=18682 adcm=3437 adcn=0 gl=0 +[+19069ms] [PROF2] t=19158 defd=92184 defs=40929 netp=4025 netn=0 adcp=9 adcq=0 gl=0 +[+20382ms] [2026-11-07 22:52:57][ADC_TASK] frames=19998 idle=0 skip=2 seq=20006 frst_err=0 ring=19996 adc1_rc=0 adc1_err=0 adc1_seq=20005 adc1_gap=8 adc1_hw=0 tgap=3 +[+20392ms] [2026-11-07 22:52:57][ADC_TASK] phasor(hb) C01-IA-F1: Re=0 Im=0 rms=0 (x0.1) +[+20402ms] [2026-11-07 22:52:57][ADC_TASK] phasor(hb) C02-UA-F1: Re=0 Im=0 rms=0 (x0.1) +[+20402ms] [2026-11-07 22:52:57][ADC_TASK] phasor(hb) C03-UN-F1: Re=0 Im=0 rms=0 (x0.1) +[+20412ms] [2026-11-07 22:52:57][ADC_TASK] phasor(hb) C04-IA-F2: Re=0 Im=0 rms=0 (x0.1) +[+20412ms] [2026-11-07 22:52:57][ADC_TASK] phasor(hb) C05-IA-F5: Re=0 Im=0 rms=0 (x0.1) +[+20423ms] [2026-11-07 22:52:57][ADC_TASK] freq(hb): f=0 valid=0 (x0.01) +[+20433ms] [2026-11-07 22:52:57][ADC_TASK] adc: UA=-22 UB=403 UC=619 UN=-21 IA=-21 IB=0 IC=764 IN=890 T=750 +[+20444ms] [2026-11-07 22:52:57][ADC_TASK] cal: ua_mv=-3 un_mv=-3 ia_mv=-3 vl=0x00 cl=0xe6 rail=0x000 edge=0x000 +[+20444ms] [2026-11-07 22:52:57][ADC_TASK] meas: seq=100 v=1 ua_mv=0 un_mv=0 ia_mv=0 f=0 fv=0 +[+20454ms] [2026-11-07 22:52:57][ADC_TASK] wave: seg=0 armed=0 src=- pts=320 err=0 ovf=0 drop=0 +[+20475ms] [2026-11-07 22:52:57][SBLINK] rx=73 ok=73 keys=0 crc=0 len=0 fmt=0 err=1 bits=0x08 rearm=0 size=6 key=0 +[+20485ms] [2026-11-07 22:52:57][SBLINK] tx=63 done=62 drop=10 kerr=0 abor=0 fb=35 bad=0 us=512 max=676 kq=0 off=0 dfok=0 dfold=0 +[+21097ms] [PROF] t=21194 uic=1600 uip=98423 uipn=4856 uil=10997 uiw=85483 uis=17926 uisn=0 adc=20716 adcm=3462 adcn=0 gl=0 +[+21107ms] [PROF2] t=21194 defd=92184 defs=40929 netp=4025 netn=0 adcp=9 adcq=0 gl=0 +[+23114ms] [PROF] t=23212 uic=1782 uip=98423 uipn=5855 uil=11000 uiw=85483 uis=17926 uisn=0 adc=22734 adcm=3462 adcn=0 gl=0 +[+23125ms] [PROF2] t=23212 defd=92184 defs=40929 netp=4025 netn=0 adcp=9 adcq=0 gl=0 +[+25134ms] [PROF] t=25230 uic=1964 uip=98423 uipn=5856 uil=10998 uiw=85483 uis=17926 uisn=0 adc=24752 adcm=3462 adcn=0 gl=0 +[+25144ms] [PROF2] t=25230 defd=92184 defs=40929 netp=4025 netn=0 adcp=9 adcq=0 gl=0 +[+25477ms] [2026-11-07 22:53:02][SBLINK] rx=90 ok=90 keys=0 crc=0 len=0 fmt=0 err=1 bits=0x08 rearm=0 size=6 key=0 +[+25487ms] [2026-11-07 22:53:02][SBLINK] tx=80 done=80 drop=10 kerr=0 abor=0 fb=46 bad=0 us=513 max=676 kq=0 off=0 dfok=0 dfold=0 +[+27152ms] [PROF] t=27250 uic=2144 uip=98423 uipn=9856 uil=11000 uiw=85483 uis=17926 uisn=0 adc=26772 adcm=3462 adcn=0 gl=0 +[+27162ms] [PROF2] t=27250 defd=92184 defs=40929 netp=4025 netn=0 adcp=9 adcq=0 gl=0 +[+29170ms] [PROF] t=29268 uic=2326 uip=98423 uipn=5857 uil=10998 uiw=85483 uis=17926 uisn=0 adc=28790 adcm=3462 adcn=0 gl=0 +[+29180ms] [PROF2] t=29268 defd=92184 defs=40929 netp=4025 netn=0 adcp=9 adcq=0 gl=0 diff --git a/docs/测试说明/测试数据/wave_fix_20261107/boot_new2/boot_log_20261107_225601.txt b/docs/测试说明/测试数据/wave_fix_20261107/boot_new2/boot_log_20261107_225601.txt new file mode 100644 index 00000000..fcb603b6 --- /dev/null +++ b/docs/测试说明/测试数据/wave_fix_20261107/boot_new2/boot_log_20261107_225601.txt @@ -0,0 +1,157 @@ +[+0ms] [----/--/-- --:--:--][APP] boot: syslog init OK +[+0ms] [----/--/-- --:--:--][APP] fw build: Nov 7 2026 19:10:36 suite=NONE dstr=off +[+10ms] [----/--/-- --:--:--][APP] reset cause: software (NVIC_SystemReset) (CSR=0x14000000) +[+10ms] PREVRUN seg=2 seq=2101858748 t=171841 +[+21ms] TICKRUN uw=171873 n=171873 duw=32 +[+21ms] [----/--/-- --:--:--][RTC] sd2506_init: OK +[+31ms] [----/--/-- --:--:--][APP] SD2506 init: OK (ret=0) +[+42ms] [2026-11-07 22:56:09][CLK] sys_clock_init: RTC initial time 2026-11-07 22:56:09 +[+42ms] [2026-11-07 22:56:09][CLK] sys_clock_init: wall clock base = unix 1794092169, base_tick=142 +[+52ms] [2026-11-07 22:56:09][APP] RS485 init: OK (UART4, DE=PA15) +[+62ms] [2026-11-07 22:56:09][APP] ScreenLink init: OK (ret=0, USART1 700000 baud, BRR=0x0078) +[+73ms] [2026-11-07 22:56:09][NAND] Resetting NAND... +[+94ms] [2026-11-07 22:56:09][NAND] Reading NAND ID... +[+94ms] [2026-11-07 22:56:09][NAND] NAND ID: MID=0xC8, DID=0x52 +[+104ms] [2026-11-07 22:56:09][NAND] Scanning bad blocks... +[+238ms] [2026-11-07 22:56:09][NAND] BBT scan: 0 bad blocks found +[+238ms] [2026-11-07 22:56:09][NAND] Enabling ECC... +[+238ms] [2026-11-07 22:56:09][NAND] Unlocking block protection... +[+249ms] [2026-11-07 22:56:09][NAND] Locating BBT pool... +[+249ms] [2026-11-07 22:56:09][NAND] Loading persisted BBT... +[+259ms] [2026-11-07 22:56:09][NAND] NAND init OK +[+259ms] [2026-11-07 22:56:09][APP] NAND init: OK +[+270ms] [2026-11-07 22:56:09][ADC] Init OK +[+270ms] [2026-11-07 22:56:09][APP] ADC init: OK +[+270ms] [2026-11-07 22:56:09][APP] ADC input layer init: OK +[+281ms] [2026-11-07 22:56:09][APP] phasor layer init: OK (inst=5) +[+281ms] [2026-11-07 22:56:09][APP] freq layer init: OK +[+291ms] [2026-11-07 22:56:09][CFG] register: section 'adc_cal' (9 keys) +[+291ms] [2026-11-07 22:56:09][CFG] register: section 'adc_cal_ofs' (8 keys) +[+301ms] [2026-11-07 22:56:09][APP] adc cal init: OK (k_q16 tpafe=10000000 stm32=52800000) +[+312ms] [2026-11-07 22:56:09][CFG] register: section 'run_par' (9 keys) +[+312ms] [2026-11-07 22:56:09][APP] run par init: OK (db9 k/b via adc_cal, evt=1<<8) +[+322ms] [2026-11-07 22:56:09][CFG] register: section 'comm' (2 keys) +[+332ms] [2026-11-07 22:56:09][APP] comm init: OK (ca=1 port=2404) +[+332ms] [2026-11-07 22:56:09][APP] protection init: OK (set=40 elm=9) +[+343ms] [2026-11-07 22:56:09][APP] SD2506 ID: 2512153425482405 +[+343ms] [2026-11-07 22:56:09][APP] SD2506 time: 2026-11-07 22:56:10 (week 6) +[+353ms] [2026-11-07 22:56:09][APP] SD2506 temp: 24 C +[+353ms] [2026-11-07 22:56:09][APP] SD2506 battery: 3.12 V +[+364ms] [2026-11-07 22:56:09][APP] App init OK +[+364ms] [2026-11-07 22:56:09][NAND_FTL] Initializing NAND FTL... +[+498ms] [2026-11-07 22:56:09][NAND_FTL] Map resumed: 46942/93232 sectors used +[+509ms] [2026-11-07 22:56:09][NAND_FTL] Map head=37008 tail=92232 epoch=8 +[+509ms] [2026-11-07 22:56:09][NAND_FTL] NAND FTL ready (capacity: 93232 pages = 182 MB) +[+592ms] [2026-11-07 22:56:09] [FS] FATFS mounted +[+655ms] [2026-11-07 22:56:09][SYSLOG] runlog boot entry: reboot +[+655ms] [2026-11-07 22:56:09][CFG] register: section 'network' (4 keys) +[+665ms] [2026-11-07 22:56:09][CFG] register: section 'ftp' (3 keys) +[+665ms] [2026-11-07 22:56:09][CFG] register: section 'sntp' (4 keys) +[+686ms] [2026-11-07 22:56:09][CFG] load: OK (1064B, heap free 16552B) +[+686ms] [2026-11-07 22:56:09][NET_CFG] load: OK ip=192.168.31.100 +[+697ms] [2026-11-07 22:56:09] [CFG] prot set loaded (/prot_set.bin) +[+759ms] [2026-11-07 22:56:09][PROT] uncalibrated -> protection blocked (UA/UN/IA VALID not all set) +[+759ms] [2026-11-07 22:56:09][ADC_TASK] first: UA=-17 UB=414 UC=521 UN=-17 IA=-17 IB=0 IC=765 IN=900 T=711 +[+770ms] [2026-11-07 22:56:09][ADC_TASK] phasor(first) C01-IA-F1: Re=0 Im=0 rms=0 (x0.1) +[+780ms] [2026-11-07 22:56:09][ADC_TASK] phasor(first) C02-UA-F1: Re=0 Im=0 rms=0 (x0.1) +[+791ms] [2026-11-07 22:56:09][ADC_TASK] phasor(first) C03-UN-F1: Re=0 Im=0 rms=0 (x0.1) +[+791ms] [2026-11-07 22:56:09][ADC_TASK] phasor(first) C04-IA-F2: Re=0 Im=0 rms=0 (x0.1) +[+801ms] [2026-11-07 22:56:09][ADC_TASK] phasor(first) C05-IA-F5: Re=0 Im=0 rms=0 (x0.1) +[+812ms] [2026-11-07 22:56:09][ADC_TASK] freq(first): f=0 valid=0 (x0.01) +[+812ms] [2026-11-07 22:56:09][NET_TASK] === Network Init === +[+822ms] [2026-11-07 22:56:09][PROT] protect task start: cycle=20ms elm=9 +[+822ms] [2026-11-07 22:56:09][NET] ch395f ver=0x4A fun_para=0x08 +[+833ms] [2026-11-07 22:56:09][NET_TASK] net init: OK +[+833ms] [2026-11-07 22:56:09][NET_TASK] MAC: 3C:AB:72:53:2B:12 +[+843ms] [2026-11-07 22:56:09][NET_TASK] IP_INF: IP=192.168.31.100 GW=192.168.31.1 MASK=255.255.255.0 +[+843ms] MISS start snap=0x000001E7 req=0x000001F7 t=952 +[+854ms] [2026-11-07 22:56:09][WD] [WD] armed: timeout ~2498ms (worst ~1701ms), miss_tol=800ms +[+895ms] [2026-11-07 22:56:09][UI_TASK] UI task: started, wait net ready +[+2749ms] [2026-11-07 22:56:11][NET_TASK] PHY: 100M FULL +[+2769ms] [2026-11-07 22:56:11][NET_TASK] netTask: started (single-socket mode) +[+2800ms] [2026-11-07 22:56:11][ERR][I104] i104: bind port 2404 FAIL, retry in loop +[+2832ms] [2026-11-07 22:56:11] [FTP] using factory default password +[+2832ms] [2026-11-07 22:56:11] [FTP] waiting for connection... +[+2842ms] [2026-11-07 22:56:11][UI_TASK] UI task: net ready, init port +[+2853ms] [2026-11-07 22:56:11][UI_TASK] UI task: ui_port_init enter +[+2863ms] [2026-11-07 22:56:11][UI_PORT] theme: mono dark_bg=true applied +[+2863ms] [2026-11-07 22:56:11][UI_TASK] UI port init: OK +[+2863ms] [2026-11-07 22:56:11][UI_TASK] UI task: ui_menu_init enter +[+2873ms] [2026-11-07 22:56:11][UI_MENU] menu build start: total=15136 free=12692 big=12692 +[+2884ms] [2026-11-07 22:56:11][UI_MENU_VIEW] view init: root frame w=66 h=107 +[+2894ms] [2026-11-07 22:56:11][UI_MENU] menu build done: total=15020 free=11828 big=11816 used=3192 +[+2905ms] [2026-11-07 22:56:11][UI_TASK] UI menu init: OK +[+2905ms] [2026-11-07 22:56:11][UI_STANDBY] standby: ready (idle=60000ms) +[+2915ms] [2026-11-07 22:56:11][UI_TASK] UI standby: ready (idle=60s) +[+2967ms] [2026-11-07 22:56:11][UI_TASK] UI net sink: started (port 7003) +[+2967ms] MISS start snap=0x000001E7 req=0x000001F7 t=3073 +[+2967ms] [PROF] t=3077 uic=0 uip=0 uipn=0 uil=0 uiw=0 uis=0 uisn=0 adc=2606 adcm=1917 adcn=0 gl=0 +[+2978ms] [PROF2] t=3077 defd=96634 defs=38441 netp=1008 netn=0 adcp=9 adcq=0 gl=0 +[+2999ms] [2026-11-07 22:56:11][SBLINK] first frame: size=6 cmd=1 key=0 +[+4902ms] [PROF] t=5011 uic=172 uip=28812 uipn=4855 uil=10999 uiw=18696 uis=1136 uisn=0 adc=4539 adcm=1917 adcn=0 gl=0 +[+4912ms] [PROF2] t=5011 defd=96634 defs=38441 netp=1008 netn=0 adcp=9 adcq=0 gl=0 +[+5378ms] [2026-11-07 22:56:14] [STACK] default peak_used=2176/5120 free_min=2944 (57%) +[+5378ms] [2026-11-07 22:56:14] [STACK] net peak_used=1048/3840 free_min=2792 (72%) +[+5388ms] [2026-11-07 22:56:14] [STACK] ftp peak_used=740/4096 free_min=3356 (81%) +[+5398ms] [2026-11-07 22:56:14] [STACK] ui peak_used=4204/16384 free_min=12180 (74%) +[+5398ms] [2026-11-07 22:56:14] [STACK] timesync peak_used=476/2560 free_min=2084 (81%) +[+5409ms] [2026-11-07 22:56:14] [STACK] adc peak_used=1024/2560 free_min=1536 (60%) +[+5419ms] [2026-11-07 22:56:14] [STACK] iec104 peak_used=540/2560 free_min=2020 (78%) +[+5419ms] [2026-11-07 22:56:14] [STACK] protect peak_used=492/2048 free_min=1556 (75%) +[+5430ms] [2026-11-07 22:56:14] [STACK] heap free=15624 min_ever=8464 +[+5440ms] [2026-11-07 22:56:14][SBLINK] rx=19 ok=19 keys=0 crc=0 len=0 fmt=0 err=1 bits=0x08 rearm=0 size=6 key=0 +[+5451ms] [2026-11-07 22:56:14][SBLINK] tx=9 done=9 drop=10 kerr=0 abor=0 fb=6 bad=0 us=513 max=672 kq=0 off=0 dfok=0 dfold=0 +[+6908ms] [PROF] t=7013 uic=345 uip=72735 uipn=6855 uil=10999 uiw=22654 uis=1136 uisn=0 adc=6541 adcm=1917 adcn=0 gl=0 +[+6918ms] [PROF2] t=7013 defd=96634 defs=38441 netp=1009 netn=0 adcp=9 adcq=0 gl=0 +[+8927ms] [PROF] t=9030 uic=527 uip=72735 uipn=4856 uil=10999 uiw=22654 uis=1157 uisn=0 adc=8558 adcm=1917 adcn=0 gl=0 +[+8937ms] [PROF2] t=9030 defd=96634 defs=38441 netp=1009 netn=0 adcp=9 adcq=0 gl=0 +[+10366ms] [2026-11-07 22:56:19][ADC_TASK] frames=10001 idle=0 skip=2 seq=10006 frst_err=0 ring=9999 adc1_rc=0 adc1_err=0 adc1_seq=10005 adc1_gap=5 adc1_hw=0 tgap=0 +[+10387ms] [2026-11-07 22:56:19][ADC_TASK] phasor(hb) C01-IA-F1: Re=0 Im=0 rms=0 (x0.1) +[+10387ms] [2026-11-07 22:56:19][ADC_TASK] phasor(hb) C02-UA-F1: Re=0 Im=0 rms=0 (x0.1) +[+10397ms] [2026-11-07 22:56:19][ADC_TASK] phasor(hb) C03-UN-F1: Re=0 Im=0 rms=0 (x0.1) +[+10407ms] [2026-11-07 22:56:19][ADC_TASK] phasor(hb) C04-IA-F2: Re=0 Im=0 rms=0 (x0.1) +[+10407ms] [2026-11-07 22:56:19][ADC_TASK] phasor(hb) C05-IA-F5: Re=0 Im=0 rms=0 (x0.1) +[+10418ms] [2026-11-07 22:56:19][ADC_TASK] freq(hb): f=0 valid=0 (x0.01) +[+10428ms] [2026-11-07 22:56:19][ADC_TASK] adc: UA=-22 UB=405 UC=620 UN=-21 IA=-21 IB=0 IC=758 IN=894 T=729 +[+10428ms] [2026-11-07 22:56:19][ADC_TASK] cal: ua_mv=-3 un_mv=-3 ia_mv=-3 vl=0x00 cl=0xe6 rail=0x000 edge=0x000 +[+10439ms] [2026-11-07 22:56:19][ADC_TASK] meas: seq=50 v=1 ua_mv=0 un_mv=0 ia_mv=0 f=0 fv=0 +[+10449ms] [2026-11-07 22:56:19][ADC_TASK] wave: seg=0 armed=0 src=- pts=320 err=0 ovf=0 drop=0 +[+10459ms] [2026-11-07 22:56:19][SBLINK] rx=37 ok=37 keys=0 crc=0 len=0 fmt=0 err=1 bits=0x08 rearm=0 size=6 key=0 +[+10470ms] [2026-11-07 22:56:19][SBLINK] tx=27 done=27 drop=10 kerr=0 abor=0 fb=16 bad=0 us=511 max=672 kq=0 off=0 dfok=0 dfold=0 +[+10924ms] [PROF] t=11033 uic=698 uip=93581 uipn=10861 uil=10998 uiw=23057 uis=1157 uisn=0 adc=10559 adcm=3418 adcn=0 gl=0 +[+10935ms] [PROF2] t=11033 defd=96634 defs=38441 netp=4008 netn=0 adcp=9 adcq=0 gl=0 +[+12943ms] [PROF] t=13051 uic=880 uip=93581 uipn=5855 uil=11000 uiw=23057 uis=1157 uisn=0 adc=12577 adcm=3418 adcn=0 gl=0 +[+12953ms] [PROF2] t=13051 defd=96634 defs=38441 netp=4008 netn=0 adcp=9 adcq=0 gl=0 +[+14969ms] [PROF] t=15069 uic=1062 uip=93581 uipn=5856 uil=10998 uiw=23057 uis=1157 uisn=0 adc=14595 adcm=3418 adcn=0 gl=0 +[+14969ms] [PROF2] t=15069 defd=96634 defs=38441 netp=4008 netn=0 adcp=9 adcq=0 gl=0 +[+15466ms] [2026-11-07 22:56:24][SBLINK] rx=55 ok=55 keys=0 crc=0 len=0 fmt=0 err=1 bits=0x08 rearm=0 size=6 key=0 +[+15476ms] [2026-11-07 22:56:24][SBLINK] tx=45 done=45 drop=10 kerr=0 abor=0 fb=26 bad=0 us=511 max=672 kq=0 off=0 dfok=0 dfold=0 +[+16985ms] [PROF] t=17092 uic=1243 uip=93581 uipn=1855 uil=10982 uiw=23057 uis=1157 uisn=0 adc=16618 adcm=3418 adcn=0 gl=0 +[+16995ms] [PROF2] t=17092 defd=96634 defs=38441 netp=4008 netn=0 adcp=9 adcq=0 gl=0 +[+19001ms] [PROF] t=19110 uic=1425 uip=93581 uipn=5856 uil=10998 uiw=23057 uis=1157 uisn=0 adc=18636 adcm=3418 adcn=0 gl=0 +[+19011ms] [PROF2] t=19110 defd=96634 defs=38441 netp=4008 netn=0 adcp=9 adcq=0 gl=0 +[+20371ms] [2026-11-07 22:56:29][ADC_TASK] frames=19999 idle=0 skip=3 seq=20006 frst_err=0 ring=19996 adc1_rc=0 adc1_err=0 adc1_seq=20005 adc1_gap=8 adc1_hw=0 tgap=2 +[+20381ms] [2026-11-07 22:56:29][ADC_TASK] phasor(hb) C01-IA-F1: Re=0 Im=0 rms=0 (x0.1) +[+20392ms] [2026-11-07 22:56:29][ADC_TASK] phasor(hb) C02-UA-F1: Re=0 Im=0 rms=0 (x0.1) +[+20392ms] [2026-11-07 22:56:29][ADC_TASK] phasor(hb) C03-UN-F1: Re=0 Im=0 rms=0 (x0.1) +[+20402ms] [2026-11-07 22:56:29][ADC_TASK] phasor(hb) C04-IA-F2: Re=0 Im=0 rms=0 (x0.1) +[+20412ms] [2026-11-07 22:56:29][ADC_TASK] phasor(hb) C05-IA-F5: Re=0 Im=0 rms=0 (x0.1) +[+20423ms] [2026-11-07 22:56:29][ADC_TASK] freq(hb): f=0 valid=0 (x0.01) +[+20423ms] [2026-11-07 22:56:29][ADC_TASK] adc: UA=-20 UB=401 UC=613 UN=-20 IA=-20 IB=0 IC=765 IN=897 T=750 +[+20433ms] [2026-11-07 22:56:29][ADC_TASK] cal: ua_mv=-3 un_mv=-3 ia_mv=-3 vl=0x00 cl=0xe6 rail=0x000 edge=0x000 +[+20444ms] [2026-11-07 22:56:29][ADC_TASK] meas: seq=100 v=1 ua_mv=0 un_mv=0 ia_mv=0 f=0 fv=0 +[+20444ms] [2026-11-07 22:56:29][ADC_TASK] wave: seg=0 armed=0 src=- pts=320 err=0 ovf=0 drop=0 +[+20464ms] [2026-11-07 22:56:29][SBLINK] rx=73 ok=73 keys=0 crc=0 len=0 fmt=0 err=1 bits=0x08 rearm=0 size=6 key=0 +[+20475ms] [2026-11-07 22:56:29][SBLINK] tx=63 done=63 drop=10 kerr=0 abor=0 fb=36 bad=0 us=511 max=672 kq=0 off=0 dfok=0 dfold=0 +[+21035ms] [PROF] t=21142 uic=1598 uip=98999 uipn=10855 uil=11000 uiw=89760 uis=89573 uisn=0 adc=20666 adcm=3450 adcn=0 gl=0 +[+21045ms] [PROF2] t=21142 defd=96634 defs=38441 netp=4008 netn=0 adcp=9 adcq=0 gl=0 +[+23054ms] [PROF] t=23160 uic=1780 uip=98999 uipn=5856 uil=10999 uiw=89760 uis=89573 uisn=0 adc=22684 adcm=3450 adcn=0 gl=0 +[+23064ms] [PROF2] t=23160 defd=96634 defs=38441 netp=4008 netn=0 adcp=9 adcq=0 gl=0 +[+25074ms] [PROF] t=25178 uic=1962 uip=98999 uipn=5855 uil=10999 uiw=89760 uis=89573 uisn=0 adc=24702 adcm=3450 adcn=0 gl=0 +[+25085ms] [PROF2] t=25178 defd=96634 defs=38441 netp=4008 netn=0 adcp=9 adcq=0 gl=0 +[+25480ms] [2026-11-07 22:56:34][SBLINK] rx=91 ok=91 keys=0 crc=0 len=0 fmt=0 err=1 bits=0x08 rearm=0 size=6 key=0 +[+25490ms] [2026-11-07 22:56:34][SBLINK] tx=81 done=81 drop=10 kerr=0 abor=0 fb=46 bad=0 us=511 max=672 kq=0 off=0 dfok=0 dfold=0 +[+27101ms] [PROF] t=27203 uic=2143 uip=98999 uipn=3843 uil=11016 uiw=89760 uis=89573 uisn=0 adc=26727 adcm=3450 adcn=0 gl=0 +[+27112ms] [PROF2] t=27203 defd=96634 defs=38441 netp=4008 netn=0 adcp=9 adcq=0 gl=0 +[+29117ms] [PROF] t=29221 uic=2325 uip=98999 uipn=5855 uil=11000 uiw=89760 uis=89573 uisn=0 adc=28745 adcm=3450 adcn=0 gl=0 +[+29127ms] [PROF2] t=29221 defd=96634 defs=38441 netp=4008 netn=0 adcp=9 adcq=0 gl=0 diff --git a/docs/测试说明/测试数据/wave_fix_20261107/boot_new3/boot_log_20261107_231856.txt b/docs/测试说明/测试数据/wave_fix_20261107/boot_new3/boot_log_20261107_231856.txt new file mode 100644 index 00000000..fa155375 --- /dev/null +++ b/docs/测试说明/测试数据/wave_fix_20261107/boot_new3/boot_log_20261107_231856.txt @@ -0,0 +1,157 @@ +[+0ms] [----/--/-- --:--:--][APP] boot: syslog init OK +[+11ms] [----/--/-- --:--:--][APP] fw build: Nov 7 2026 19:10:36 suite=NONE dstr=off +[+11ms] [----/--/-- --:--:--][APP] reset cause: software (NVIC_SystemReset) (CSR=0x14000000) +[+21ms] PREVRUN seg=2 seq=2102063490 t=1334204 +[+21ms] TICKRUN uw=1334216 n=1334216 duw=12 +[+31ms] [----/--/-- --:--:--][RTC] sd2506_init: OK +[+31ms] [----/--/-- --:--:--][APP] SD2506 init: OK (ret=0) +[+42ms] [2026-11-07 23:19:04][CLK] sys_clock_init: RTC initial time 2026-11-07 23:19:04 +[+53ms] [2026-11-07 23:19:04][CLK] sys_clock_init: wall clock base = unix 1794093544, base_tick=143 +[+63ms] [2026-11-07 23:19:04][APP] RS485 init: OK (UART4, DE=PA15) +[+63ms] [2026-11-07 23:19:04][APP] ScreenLink init: OK (ret=0, USART1 700000 baud, BRR=0x0078) +[+84ms] [2026-11-07 23:19:04][NAND] Resetting NAND... +[+105ms] [2026-11-07 23:19:04][NAND] Reading NAND ID... +[+105ms] [2026-11-07 23:19:04][NAND] NAND ID: MID=0xC8, DID=0x52 +[+105ms] [2026-11-07 23:19:04][NAND] Scanning bad blocks... +[+240ms] [2026-11-07 23:19:04][NAND] BBT scan: 0 bad blocks found +[+251ms] [2026-11-07 23:19:04][NAND] Enabling ECC... +[+251ms] [2026-11-07 23:19:04][NAND] Unlocking block protection... +[+261ms] [2026-11-07 23:19:04][NAND] Locating BBT pool... +[+261ms] [2026-11-07 23:19:04][NAND] Loading persisted BBT... +[+272ms] [2026-11-07 23:19:04][NAND] NAND init OK +[+272ms] [2026-11-07 23:19:04][APP] NAND init: OK +[+272ms] [2026-11-07 23:19:04][ADC] Init OK +[+282ms] [2026-11-07 23:19:04][APP] ADC init: OK +[+282ms] [2026-11-07 23:19:04][APP] ADC input layer init: OK +[+282ms] [2026-11-07 23:19:04][APP] phasor layer init: OK (inst=5) +[+292ms] [2026-11-07 23:19:04][APP] freq layer init: OK +[+303ms] [2026-11-07 23:19:04][CFG] register: section 'adc_cal' (9 keys) +[+303ms] [2026-11-07 23:19:04][CFG] register: section 'adc_cal_ofs' (8 keys) +[+313ms] [2026-11-07 23:19:04][APP] adc cal init: OK (k_q16 tpafe=10000000 stm32=52800000) +[+313ms] [2026-11-07 23:19:04][CFG] register: section 'run_par' (9 keys) +[+324ms] [2026-11-07 23:19:04][APP] run par init: OK (db9 k/b via adc_cal, evt=1<<8) +[+334ms] [2026-11-07 23:19:04][CFG] register: section 'comm' (2 keys) +[+334ms] [2026-11-07 23:19:04][APP] comm init: OK (ca=1 port=2404) +[+345ms] [2026-11-07 23:19:04][APP] protection init: OK (set=40 elm=9) +[+345ms] [2026-11-07 23:19:04][APP] SD2506 ID: 2512153425482405 +[+355ms] [2026-11-07 23:19:04][APP] SD2506 time: 2026-11-07 23:19:05 (week 6) +[+366ms] [2026-11-07 23:19:04][APP] SD2506 temp: 24 C +[+366ms] [2026-11-07 23:19:04][APP] SD2506 battery: 3.12 V +[+366ms] [2026-11-07 23:19:04][APP] App init OK +[+376ms] [2026-11-07 23:19:04][NAND_FTL] Initializing NAND FTL... +[+376ms] [2026-11-07 23:19:04][PROT] uncalibrated -> protection blocked (UA/UN/IA VALID not all set) +[+480ms] [2026-11-07 23:19:04][NAND_FTL] Map resumed: 46942/93232 sectors used +[+480ms] [2026-11-07 23:19:04][NAND_FTL] Map head=46768 tail=94934 epoch=8 +[+491ms] [2026-11-07 23:19:04][NAND_FTL] NAND FTL ready (capacity: 93232 pages = 182 MB) +[+573ms] [2026-11-07 23:19:04] [FS] FATFS mounted +[+646ms] [2026-11-07 23:19:04][SYSLOG] runlog boot entry: power on +[+646ms] [2026-11-07 23:19:04][CFG] register: section 'network' (4 keys) +[+656ms] [2026-11-07 23:19:04][CFG] register: section 'ftp' (3 keys) +[+667ms] [2026-11-07 23:19:04][CFG] register: section 'sntp' (4 keys) +[+677ms] [2026-11-07 23:19:04][CFG] load: OK (1064B, heap free 16552B) +[+677ms] [2026-11-07 23:19:04][NET_CFG] load: OK ip=192.168.31.100 +[+688ms] [2026-11-07 23:19:04] [CFG] prot set loaded (/prot_set.bin) +[+709ms] [2026-11-07 23:19:04][ADC_TASK] first: UA=-18 UB=415 UC=521 UN=-17 IA=-18 IB=0 IC=762 IN=903 T=716 +[+720ms] [2026-11-07 23:19:04][ADC_TASK] phasor(first) C01-IA-F1: Re=0 Im=0 rms=0 (x0.1) +[+730ms] [2026-11-07 23:19:04][ADC_TASK] phasor(first) C02-UA-F1: Re=0 Im=0 rms=0 (x0.1) +[+730ms] [2026-11-07 23:19:04][ADC_TASK] phasor(first) C03-UN-F1: Re=0 Im=0 rms=0 (x0.1) +[+740ms] [2026-11-07 23:19:04][ADC_TASK] phasor(first) C04-IA-F2: Re=0 Im=0 rms=0 (x0.1) +[+751ms] [2026-11-07 23:19:04][ADC_TASK] phasor(first) C05-IA-F5: Re=0 Im=0 rms=0 (x0.1) +[+751ms] [2026-11-07 23:19:04][ADC_TASK] freq(first): f=0 valid=0 (x0.01) +[+761ms] [2026-11-07 23:19:04][NET_TASK] === Network Init === +[+761ms] [2026-11-07 23:19:04][PROT] protect task start: cycle=20ms elm=9 +[+772ms] [2026-11-07 23:19:04][NET] ch395f ver=0x4A fun_para=0x08 +[+772ms] [2026-11-07 23:19:04][NET_TASK] net init: OK +[+782ms] [2026-11-07 23:19:04][NET_TASK] MAC: 3C:AB:72:53:2B:12 +[+782ms] MISS start snap=0x000001E7 req=0x000001F7 t=885 +[+793ms] [2026-11-07 23:19:04][WD] [WD] armed: timeout ~2498ms (worst ~1701ms), miss_tol=800ms +[+793ms] [2026-11-07 23:19:04][NET_TASK] IP_INF: IP=192.168.31.100 GW=192.168.31.1 MASK=255.255.255.0 +[+845ms] [2026-11-07 23:19:04][UI_TASK] UI task: started, wait net ready +[+2752ms] [2026-11-07 23:19:06][NET_TASK] PHY: 100M FULL +[+2762ms] [2026-11-07 23:19:06][NET_TASK] netTask: started (single-socket mode) +[+2794ms] [2026-11-07 23:19:06][ERR][I104] i104: bind port 2404 FAIL, retry in loop +[+2835ms] [2026-11-07 23:19:06] [FTP] using factory default password +[+2835ms] [2026-11-07 23:19:06] [FTP] waiting for connection... +[+2846ms] MISS start snap=0x000001E7 req=0x000001F7 t=2941 +[+2846ms] [PROF] t=2946 uic=0 uip=0 uipn=0 uil=0 uiw=0 uis=0 uisn=0 adc=2472 adcm=1922 adcn=0 gl=0 +[+2856ms] [PROF2] t=2946 defd=96546 defs=36903 netp=996 netn=0 adcp=8 adcq=0 gl=0 +[+2856ms] [2026-11-07 23:19:06][UI_TASK] UI task: net ready, init port +[+2867ms] [2026-11-07 23:19:06][UI_TASK] UI task: ui_port_init enter +[+2877ms] [2026-11-07 23:19:06][UI_PORT] theme: mono dark_bg=true applied +[+2877ms] [2026-11-07 23:19:06][UI_TASK] UI port init: OK +[+2887ms] [2026-11-07 23:19:06][UI_TASK] UI task: ui_menu_init enter +[+2887ms] [2026-11-07 23:19:06][UI_MENU] menu build start: total=15136 free=12692 big=12692 +[+2897ms] [2026-11-07 23:19:06][UI_MENU_VIEW] view init: root frame w=66 h=107 +[+2908ms] [2026-11-07 23:19:06][UI_MENU] menu build done: total=15020 free=11828 big=11816 used=3192 +[+2919ms] [2026-11-07 23:19:06][UI_TASK] UI menu init: OK +[+2919ms] [2026-11-07 23:19:06][UI_STANDBY] standby: ready (idle=60000ms) +[+2929ms] [2026-11-07 23:19:06][UI_TASK] UI standby: ready (idle=60s) +[+2982ms] [2026-11-07 23:19:06][UI_TASK] UI net sink: started (port 7003) +[+2992ms] [2026-11-07 23:19:06][SBLINK] first frame: size=6 cmd=1 key=0 +[+4899ms] [PROF] t=5000 uic=172 uip=29195 uipn=5856 uil=10999 uiw=19168 uis=1135 uisn=0 adc=4526 adcm=1922 adcn=0 gl=0 +[+4909ms] [PROF2] t=5000 defd=96546 defs=36903 netp=1016 netn=0 adcp=8 adcq=0 gl=0 +[+5386ms] [2026-11-07 23:19:09][SBLINK] rx=19 ok=19 keys=0 crc=0 len=0 fmt=0 err=0 bits=0x00 rearm=0 size=6 key=0 +[+5396ms] [2026-11-07 23:19:09] [STACK] default peak_used=2188/5120 free_min=2932 (57%) +[+5407ms] [2026-11-07 23:19:09] [STACK] net peak_used=1116/3840 free_min=2724 (70%) +[+5407ms] [2026-11-07 23:19:09] [STACK] ftp peak_used=740/4096 free_min=3356 (81%) +[+5417ms] [2026-11-07 23:19:09] [STACK] ui peak_used=4204/16384 free_min=12180 (74%) +[+5427ms] [2026-11-07 23:19:09] [STACK] timesync peak_used=476/2560 free_min=2084 (81%) +[+5427ms] [2026-11-07 23:19:09] [STACK] adc peak_used=1024/2560 free_min=1536 (60%) +[+5438ms] [2026-11-07 23:19:09] [STACK] iec104 peak_used=540/2560 free_min=2020 (78%) +[+5448ms] [2026-11-07 23:19:09] [STACK] protect peak_used=492/2048 free_min=1556 (75%) +[+5448ms] [2026-11-07 23:19:09] [STACK] heap free=15624 min_ever=8464 +[+5459ms] [2026-11-07 23:19:09][SBLINK] tx=8 done=8 drop=11 kerr=0 abor=0 fb=6 bad=0 us=513 max=675 kq=0 off=0 dfok=0 dfold=0 +[+6919ms] [PROF] t=7016 uic=346 uip=95998 uipn=6855 uil=11000 uiw=86551 uis=1139 uisn=0 adc=6542 adcm=1922 adcn=0 gl=0 +[+6929ms] [PROF2] t=7016 defd=96546 defs=36903 netp=1017 netn=0 adcp=8 adcq=0 gl=0 +[+8939ms] [PROF] t=9033 uic=528 uip=95998 uipn=4856 uil=10999 uiw=86551 uis=1197 uisn=0 adc=8559 adcm=1922 adcn=0 gl=0 +[+8939ms] [PROF2] t=9033 defd=96546 defs=36903 netp=1017 netn=0 adcp=8 adcq=0 gl=0 +[+10379ms] [2026-11-07 23:19:14][ADC_TASK] frames=10001 idle=0 skip=2 seq=10006 frst_err=0 ring=9999 adc1_rc=0 adc1_err=0 adc1_seq=10005 adc1_gap=5 adc1_hw=0 tgap=0 +[+10390ms] [2026-11-07 23:19:14][ADC_TASK] phasor(hb) C01-IA-F1: Re=0 Im=0 rms=0 (x0.1) +[+10401ms] [2026-11-07 23:19:14][ADC_TASK] phasor(hb) C02-UA-F1: Re=0 Im=0 rms=0 (x0.1) +[+10401ms] [2026-11-07 23:19:14][ADC_TASK] phasor(hb) C03-UN-F1: Re=0 Im=0 rms=0 (x0.1) +[+10412ms] [2026-11-07 23:19:14][ADC_TASK] phasor(hb) C04-IA-F2: Re=0 Im=0 rms=0 (x0.1) +[+10422ms] [2026-11-07 23:19:14][ADC_TASK] phasor(hb) C05-IA-F5: Re=0 Im=0 rms=0 (x0.1) +[+10422ms] [2026-11-07 23:19:14][ADC_TASK] freq(hb): f=0 valid=0 (x0.01) +[+10433ms] [2026-11-07 23:19:14][ADC_TASK] adc: UA=-23 UB=405 UC=617 UN=-21 IA=-21 IB=0 IC=758 IN=894 T=731 +[+10443ms] [2026-11-07 23:19:14][ADC_TASK] cal: ua_mv=-3 un_mv=-3 ia_mv=-3 vl=0x00 cl=0xe6 rail=0x000 edge=0x000 +[+10453ms] [2026-11-07 23:19:14][ADC_TASK] meas: seq=50 v=1 ua_mv=0 un_mv=0 ia_mv=0 f=0 fv=0 +[+10453ms] [2026-11-07 23:19:14][ADC_TASK] wave: seg=0 armed=0 src=- pts=320 err=0 ovf=0 drop=0 +[+10464ms] [2026-11-07 23:19:14][SBLINK] rx=38 ok=38 keys=0 crc=0 len=0 fmt=0 err=0 bits=0x00 rearm=0 size=6 key=0 +[+10474ms] [2026-11-07 23:19:14][SBLINK] tx=27 done=26 drop=11 kerr=0 abor=0 fb=15 bad=0 us=512 max=675 kq=0 off=0 dfok=0 dfold=0 +[+10939ms] [PROF] t=11034 uic=699 uip=95998 uipn=8856 uil=10998 uiw=86551 uis=1197 uisn=0 adc=10558 adcm=3427 adcn=0 gl=0 +[+10939ms] [PROF2] t=11034 defd=96546 defs=36903 netp=4017 netn=0 adcp=8 adcq=0 gl=0 +[+12959ms] [PROF] t=13052 uic=881 uip=95998 uipn=5855 uil=10999 uiw=86551 uis=1197 uisn=0 adc=12576 adcm=3427 adcn=0 gl=0 +[+12959ms] [PROF2] t=13052 defd=96546 defs=36903 netp=4017 netn=0 adcp=8 adcq=0 gl=0 +[+14968ms] [PROF] t=15070 uic=1063 uip=95998 uipn=5856 uil=10998 uiw=86551 uis=1197 uisn=0 adc=14594 adcm=3427 adcn=0 gl=0 +[+14979ms] [PROF2] t=15070 defd=96546 defs=36903 netp=4017 netn=0 adcp=8 adcq=0 gl=0 +[+15474ms] [2026-11-07 23:19:19][SBLINK] rx=55 ok=55 keys=0 crc=0 len=0 fmt=0 err=0 bits=0x00 rearm=0 size=6 key=0 +[+15485ms] [2026-11-07 23:19:19][SBLINK] tx=44 done=44 drop=11 kerr=0 abor=0 fb=26 bad=0 us=511 max=675 kq=0 off=0 dfok=0 dfold=0 +[+16996ms] [PROF] t=17095 uic=1244 uip=95998 uipn=1859 uil=11000 uiw=86551 uis=1197 uisn=0 adc=16619 adcm=3427 adcn=0 gl=0 +[+17006ms] [PROF2] t=17095 defd=96546 defs=36903 netp=4017 netn=0 adcp=8 adcq=0 gl=0 +[+19013ms] [PROF] t=19113 uic=1426 uip=95998 uipn=5839 uil=11015 uiw=86551 uis=1197 uisn=0 adc=18637 adcm=3427 adcn=0 gl=0 +[+19023ms] [PROF2] t=19113 defd=96546 defs=36903 netp=4017 netn=0 adcp=8 adcq=0 gl=0 +[+20380ms] [2026-11-07 23:19:24][ADC_TASK] frames=19999 idle=0 skip=3 seq=20006 frst_err=0 ring=19996 adc1_rc=0 adc1_err=0 adc1_seq=20005 adc1_gap=8 adc1_hw=0 tgap=2 +[+20391ms] [2026-11-07 23:19:24][ADC_TASK] phasor(hb) C01-IA-F1: Re=0 Im=0 rms=0 (x0.1) +[+20401ms] [2026-11-07 23:19:24][ADC_TASK] phasor(hb) C02-UA-F1: Re=0 Im=0 rms=0 (x0.1) +[+20401ms] [2026-11-07 23:19:24][ADC_TASK] phasor(hb) C03-UN-F1: Re=0 Im=0 rms=0 (x0.1) +[+20411ms] [2026-11-07 23:19:24][ADC_TASK] phasor(hb) C04-IA-F2: Re=0 Im=0 rms=0 (x0.1) +[+20422ms] [2026-11-07 23:19:24][ADC_TASK] phasor(hb) C05-IA-F5: Re=0 Im=0 rms=0 (x0.1) +[+20422ms] [2026-11-07 23:19:24][ADC_TASK] freq(hb): f=0 valid=0 (x0.01) +[+20432ms] [2026-11-07 23:19:24][ADC_TASK] adc: UA=-21 UB=401 UC=617 UN=-21 IA=-21 IB=0 IC=763 IN=896 T=751 +[+20443ms] [2026-11-07 23:19:24][ADC_TASK] cal: ua_mv=-3 un_mv=-3 ia_mv=-3 vl=0x00 cl=0xe6 rail=0x000 edge=0x000 +[+20453ms] [2026-11-07 23:19:24][ADC_TASK] meas: seq=100 v=1 ua_mv=0 un_mv=0 ia_mv=0 f=0 fv=0 +[+20453ms] [2026-11-07 23:19:24][ADC_TASK] wave: seg=0 armed=0 src=- pts=320 err=0 ovf=0 drop=0 +[+20474ms] [2026-11-07 23:19:24][SBLINK] rx=73 ok=73 keys=0 crc=0 len=0 fmt=0 err=0 bits=0x00 rearm=0 size=6 key=0 +[+20485ms] [2026-11-07 23:19:24][SBLINK] tx=62 done=62 drop=11 kerr=0 abor=0 fb=36 bad=0 us=511 max=675 kq=0 off=0 dfok=0 dfold=0 +[+21053ms] [PROF] t=21146 uic=1599 uip=99822 uipn=10855 uil=11000 uiw=86551 uis=1197 uisn=0 adc=20668 adcm=3458 adcn=0 gl=0 +[+21053ms] [PROF2] t=21146 defd=96546 defs=36903 netp=4017 netn=0 adcp=8 adcq=0 gl=0 +[+23062ms] [PROF] t=23164 uic=1781 uip=99822 uipn=5856 uil=10982 uiw=86551 uis=1197 uisn=0 adc=22686 adcm=3458 adcn=0 gl=0 +[+23073ms] [PROF2] t=23164 defd=96546 defs=36903 netp=4017 netn=0 adcp=8 adcq=0 gl=0 +[+25088ms] [PROF] t=25182 uic=1963 uip=99822 uipn=5855 uil=10999 uiw=86551 uis=1197 uisn=0 adc=24704 adcm=3458 adcn=0 gl=0 +[+25088ms] [PROF2] t=25182 defd=96546 defs=36903 netp=4017 netn=0 adcp=8 adcq=0 gl=0 +[+25490ms] [2026-11-07 23:19:29][SBLINK] rx=91 ok=91 keys=0 crc=0 len=0 fmt=0 err=0 bits=0x00 rearm=0 size=6 key=0 +[+25501ms] [2026-11-07 23:19:29][SBLINK] tx=80 done=80 drop=11 kerr=0 abor=0 fb=46 bad=0 us=513 max=675 kq=0 off=0 dfok=0 dfold=0 +[+27107ms] [PROF] t=27207 uic=2144 uip=99822 uipn=3865 uil=11000 uiw=86551 uis=1197 uisn=0 adc=26729 adcm=3458 adcn=0 gl=0 +[+27117ms] [PROF2] t=27207 defd=96546 defs=36903 netp=4017 netn=0 adcp=8 adcq=0 gl=0 +[+29123ms] [PROF] t=29225 uic=2326 uip=99822 uipn=5855 uil=10917 uiw=86551 uis=1197 uisn=0 adc=28747 adcm=3458 adcn=0 gl=0 +[+29133ms] [PROF2] t=29225 defd=96546 defs=36903 netp=4017 netn=0 adcp=8 adcq=0 gl=0 diff --git a/docs/测试说明/测试数据/wave_fix_20261107/boot_new3_stdout.txt b/docs/测试说明/测试数据/wave_fix_20261107/boot_new3_stdout.txt new file mode 100644 index 0000000000000000000000000000000000000000..4458553d810845ebe718173c4176764d9579162a GIT binary patch literal 7351 zcmd^^T~Av_5Qg_UQvbubgDS-`w(&auTZHG^~eO$cug)3R<@j%G!OZRcoRQ z#jB^C$D)k1=be5!qV`0&5T&E{QD|xQN?bYfEabxPqVoPjcoORNB;mOzS6Z9g?MifB zUO#0?u&z->dJuW0oTsO%VRO8B)aE&W-c4CsDfDW2%>ddxe z!y@R4r9gZgdW(4Qy{umO0jnp4kE~yV5Kc z>1hnN%{eQ<+C3dz{Deb!nIj0c9m9Vh?O4$=o$#%a{BHf8_ps|A{AyJEsG->1*LzF; zv?b5W-&^nWub;JH9*Z73;jPZtwOrsD4kQ=x>9%lvKr{&}@{~{ddm^;(!?tO)FKj-F znkeSdD8ynl%@d2y6d`5JUE4l5*QEuy=!K|w_ej>Pi%(b2ifF6)iy!qhM(;gwC`i_l zxK-rs+v0)GIB*aGK?XLKM z>!tjI%+%E!anlz5j_Ij5yHCbU-O!pd%~Cbcn#l6Z`W4i|i^=zgrdozCzJ!c;75t)SEQ^9y38D*cAiol;NS@|TKVwh29O(h=uOUrNd98J+Um|bM za!|=+Cq6gC;et zDA?Yna%e$sHDOQR$GOeBY`rFa>#9`LE4-_yJzf#>s)g^h@`Y;np^bJmg9YJ`^;V?! z?q^`y5Gm156IDa1UBj{!kwFcm17i=GP+MkM@9W6W2c1YGQ1h5~Sq~)dv^Olm@1;(l z8tmxrjb!zns;PdN`uz|Kra1neY#2KS>J%L^d74^tD^CK4$qKZhIeG%m<#e_;_V!G@ zmUjS6;m*zQz_6da+GB!@N>|mD&FE=Z%ZdBpjd*OSmpPIbdXDYOU*fs5&Os9HJ~v}7 z*A}53nNJlFe$V3OkXWqMq#bqG=|rq|II+9)+Ci`CbvSlI*=U~BG{rIUh`s)bVLGe! ztyuI|EDuoY{l-UJq&*MSjJ-&BKdVr2x<>WRDD6c&qmT(U##(-BP9ZChQ|RKb0XNPg zb#m;Fou^x_qi&2IjTj$FdXVz>YrWIIt!d70q}*)jKDieR_4qov{qA_o9g!>(yS`L| z$^)}v)Zj>6XuRbhJ$-szSQjSh|f1aLn@tjnUByDL*M5pf&Wok+??kuA{$ko)k zsPTzLe%~TDMC%gqb;;@+;+KoEki|pK)xr9Hzk~U>ZJiXDgO9&)>*L+)02PqhHR-Rf z6!!d4mgg-gVQ$X;B`Rm=&q4(TdZua(BhMQeU065?{;8I?oYwD^Ich*L!=8tJ3zRFbfOv{=^5*|*JWNm~u;WHjJ z^CHP@G#N+OD2>9!N~*u8m3-qp6MJ_nG+}e?dE_&a-P9T}`ZQ zKK?J%HgYL>=X>bswT-Xm+1eK0A6nZyYtF81M8Ws0Z51Iv{zy@n&YIi@{gy}kd0nB} z#XLGcYw|^js+G-}oX4|l)}*rIcZ)?NdQ)?z_0C3Qs`+C^Br(JNdRo>rYu2=)aEG+p zh~73d2WAVkaW>pB2ITy20_BMp3P5ocX`>w2wQq3R7M)Zkq>|4jS-49<+ ae0O2?Q2&+Lw>!%V`*s%px8eT_dGZh9j66pG literal 0 HcmV?d00001 diff --git a/docs/测试说明/测试数据/wave_fix_20261107/manifest_sha256.json b/docs/测试说明/测试数据/wave_fix_20261107/manifest_sha256.json new file mode 100644 index 00000000..cc0d8a10 --- /dev/null +++ b/docs/测试说明/测试数据/wave_fix_20261107/manifest_sha256.json @@ -0,0 +1,58 @@ +{ + "battery_log.txt": "ff26bfcac72426b64e1f2eb0197b6c57718a04baefa7ed8e5ab5b509b16146d8", + "boot_new3_stdout.txt": "8d4ffa53239dc760eb0fefe58e12583a6576c1d6850c80f3e77f695a2696a2cd", + "newN_A_reject5_enter1.png": "342b3aa67a775817a40159cca61987251217ce32a252a5841642ffe14ca1d463", + "newN_A_reject5_enter1_raw3200.bin": "17291a0068f2d4ab099f636888e809941ad9bba52cad942ff6341a8677b72889", + "newN_A_reject5_enter2.png": "342b3aa67a775817a40159cca61987251217ce32a252a5841642ffe14ca1d463", + "newN_A_reject5_enter2_raw3200.bin": "17291a0068f2d4ab099f636888e809941ad9bba52cad942ff6341a8677b72889", + "newN_A_reject5_enter3.png": "342b3aa67a775817a40159cca61987251217ce32a252a5841642ffe14ca1d463", + "newN_A_reject5_enter3_raw3200.bin": "17291a0068f2d4ab099f636888e809941ad9bba52cad942ff6341a8677b72889", + "newN_B_restored_normal6.png": "f520feb7a59bf1fe1997dd45d27159d9caa11130833d96b8b3e6cdd344de2818", + "newN_B_restored_normal6_raw3200.bin": "c538a051b6bdcca7e871710eb8f0dae2ba54cc6a62725765ce6ce116645f3fef", + "newN_C_reject1_head99.png": "342b3aa67a775817a40159cca61987251217ce32a252a5841642ffe14ca1d463", + "newN_C_reject1_head99_raw3200.bin": "17291a0068f2d4ab099f636888e809941ad9bba52cad942ff6341a8677b72889", + "newN_D_final_ok99.png": "d3fc9b4f41c4d34ee6953d7fdf444d43dae20003dafe13fa69d4aa606fc9c94f", + "newN_D_final_ok99_raw3200.bin": "36a3271a78dafe6afc0c93282ab6e0c993af22395ed8b030be821a98c1bb80ba", + "newN_F11_reopen_seg99_max.png": "d3fc9b4f41c4d34ee6953d7fdf444d43dae20003dafe13fa69d4aa606fc9c94f", + "newN_F11_reopen_seg99_max_raw3200.bin": "36a3271a78dafe6afc0c93282ab6e0c993af22395ed8b030be821a98c1bb80ba", + "newN_F12_empty_state.png": "4056c7b6ea2d711161f2eb52e90bb3342e1a085c8d564de893cb555a9554afd7", + "newN_F12_empty_state_raw3200.bin": "a76c41cfd7f38cecf1092777371869a0a28a4c0ca09eb6963e17afc94d713f66", + "newN_F12_idlekey_seg6.png": "f520feb7a59bf1fe1997dd45d27159d9caa11130833d96b8b3e6cdd344de2818", + "newN_F12_idlekey_seg6_raw3200.bin": "c538a051b6bdcca7e871710eb8f0dae2ba54cc6a62725765ce6ce116645f3fef", + "newN_F13_after_spam.png": "e004e0e15173e1dc715e0b29bd8b1cdbf31f9f809db60013562bcafd11d70a3c", + "newN_F13_after_spam_raw3200.bin": "bfacdb1d922f4e7277d10a3a9a5c469e0257106f3e7dded5940884e853b30221", + "newN_F14_manual_confirm.png": "2495d41b9b2a761ea5c1a898ae77bb0ef5aafbd21c263616635e87dfcf824061", + "newN_F14_manual_confirm_raw3200.bin": "ee14db44f2437dea6cc7dab10b3d49b1aa636fdddd30d2e9396fee107a4a92fd", + "newN_F14_manual_done.png": "6a96fa3ed9993933b9b86467ffd7da60ab51f287aa3e81c30131c8d3ce329350", + "newN_F14_manual_done_raw3200.bin": "0d677bf478c579391a1ac935d18928cfbbffe278047e72d329049f4b4b2d7162", + "newN_F14_manual_page.png": "0a44c86fcbfd36056badb99572f5b0b82f90f3aa1635b7ba1599fa7841bfd5cf", + "newN_F14_manual_page_raw3200.bin": "bdf7e5d1427b74c5b566a7732d9abb2ec342717f002c1002c817736618a18169", + "newN_F15_seg6.png": "f520feb7a59bf1fe1997dd45d27159d9caa11130833d96b8b3e6cdd344de2818", + "newN_F15_seg6_raw3200.bin": "c538a051b6bdcca7e871710eb8f0dae2ba54cc6a62725765ce6ce116645f3fef", + "newN_F15_seg99_alt.png": "8f7eae0d5bdaeb2d7bcc5357fbed844cea01762afa342ff4ba0851f1d3609a04", + "newN_F15_seg99_alt_raw3200.bin": "12bd96f8f7405446c3f789e622868a638ffbddfeaefc1a7db737089c40d6255a", + "newN_Z_final_open_100appended.png": "342b3aa67a775817a40159cca61987251217ce32a252a5841642ffe14ca1d463", + "newN_Z_final_open_100appended_raw3200.bin": "17291a0068f2d4ab099f636888e809941ad9bba52cad942ff6341a8677b72889", + "oldN_P0_first_open_face.png": "342b3aa67a775817a40159cca61987251217ce32a252a5841642ffe14ca1d463", + "oldN_P0_first_open_face_raw3200.bin": "17291a0068f2d4ab099f636888e809941ad9bba52cad942ff6341a8677b72889", + "oldN_P1_stale_table_after_dele.png": "4056c7b6ea2d711161f2eb52e90bb3342e1a085c8d564de893cb555a9554afd7", + "oldN_P1_stale_table_after_dele_raw3200.bin": "a76c41cfd7f38cecf1092777371869a0a28a4c0ca09eb6963e17afc94d713f66", + "oldN_P2_crc_reject_silent.png": "342b3aa67a775817a40159cca61987251217ce32a252a5841642ffe14ca1d463", + "oldN_P2_crc_reject_silent_raw3200.bin": "17291a0068f2d4ab099f636888e809941ad9bba52cad942ff6341a8677b72889", + "oldN_P3_good_seg99.png": "d3fc9b4f41c4d34ee6953d7fdf444d43dae20003dafe13fa69d4aa606fc9c94f", + "oldN_P3_good_seg99_raw3200.bin": "36a3271a78dafe6afc0c93282ab6e0c993af22395ed8b030be821a98c1bb80ba", + "restore_verify.txt": "6c966009d3fadd5c21300add57df4b69e694869117a1272202ac224da6c92f17", + "serial_excerpt_after.txt": "5879feb5bd6e26aed2a4c58fed3ffe18714e1696ee853288f61483a7fe7a9e4d", + "serial_excerpt_before.txt": "51795ef9620a9f21c8133bcf498448d43910fa8fabe319e613bcd530d143c4ac", + "serial_excerpt_f1.txt": "aea8da4064e5419530ac26312930c1e8e0a41fc6d896f28ef8acf8c1acafc7c4", + "serial_excerpt_f2.txt": "d687dfbfb00937bb72a1bb249c3d4ba3045ddaf0af85a4295d86ebdadf1e10d4", + "serial_excerpt_man_post.txt": "19e7ce63f9cf4b198500b7295838ba9988ecdedfead6cd054fd26790c1a8f6ed", + "serial_excerpt_restore.txt": "746a728bdc5c87e949f7dec1fa0d1a0f234a0c1838c376c102676e91e9390dca", + "serial_stats.json": "d3712a2b2212cafa73895f79804f0feeba17b8fa4d562fd02b4396cc40d1ae0f", + "boot_new/boot_log_20261107_225225.txt": "3701a33b33302ded79a2f8b4d8559d1a3616a6d803583083d27d240a351037a5", + "boot_new2/boot_log_20261107_225601.txt": "ce26fc2e5d910b0dd50f65ae51aa2de1fcaf34df85c2fbdd569c33c106d91abe", + "boot_new3/boot_log_20261107_231856.txt": "07ed87bf6deeea1a9f00233ae7da2750337b66514af116fdf2a30abf0f867c75", + "samples/WAVE06_bitflip.BIN": "8ea7abed8ae95a701d3ff583b9ae19b229c194e92e53588151ac67db6f7735c3", + "samples/WAVE99_altseg.BIN": "2ea86400be3be01a7afae85358315939efcffe6423c8fe8dae0ec1d1c3a4b2ac", + "samples/WAVE99_headflip.BIN": "e97bb57afb8142725bcc5cb9f0485e2830a1e3be7a972d1356122bf6daed5105" +} diff --git a/docs/测试说明/测试数据/wave_fix_20261107/newN_A_reject5_enter1.png b/docs/测试说明/测试数据/wave_fix_20261107/newN_A_reject5_enter1.png new file mode 100644 index 0000000000000000000000000000000000000000..1d407417f2d8fa5391e2c926d7c2e1bbafd65d32 GIT binary patch literal 1212 zcmeAS@N?(olHy`uVBq!ia0y~yU}^wi4xj*o=CW!385mfaJzX3_D(1Ysdphs70RxM} zt`qrXi;o#AnxaslQl{3BP%&0Pn72x(N@?r$(V_--y-TsAh&*8rh{$7kfRGai> z=HES8|K~sP|HZPyj8Vmlq4Ss5`~%i+zOLFOKksFtyXzCinUSIutXK7r&O#J`f$KjI8n7>(tuYUe@*WI$Wd0T?d$*sR`7@o=oGFQl9 z(X{ss%CT<^)0P$YmYu4Kd2dy4SAYG5|6Yd7LTU{zoC<-b%MaX4*MIdr>O1$hZ_)C_ zC2I?+-~QCP`~D!z2HpFN-j?seZhwERckNYL`g-Q;$7^;(y}xb5400UMi0LmH);_oS zcJ1E0w<*f9A8-EV3QvUDuXmBr`{zyO^mTjBt{@(X5e)cTh zxW43QHPcy`#3$JgFC_b-O`pBUuXwZf{~B#O=_HtO>w--8_15wE)c#L+J#)g$^F^6o zckg{yIaMwLssa+?^dx^UfMWO3-amiXx7Kajes^!x``G;p?p5~9`LF(avK`|(Ur0o( z7B{y2aPfQI+>OxRmAGzsmIQzT^C6I`|Y27qvQk) zcmm0nd|P;X>w(SJC&jOQw|?d8%kL9ldZ)c?xIOR6>-x2J<*)bT)!w&y=COZ`Z0vNq z&FB3QDdAY=*Wb=qTP3?;`~7=m{nz&vt}Q)!Z^yM?@q6udUXn`COmjHI0?%r_iluLJMea2*!#vb zheZ(mH~Av!-<{6+pMBRm!YcXnv%UAqjH9k^>|d8zuVt(d$OKB-TT|F&UMBAKyB>XB z`fY6b_S^HqUt4`!HD53pZpE7hgTe~DWM4fDblJ0 literal 0 HcmV?d00001 diff --git a/docs/测试说明/测试数据/wave_fix_20261107/newN_A_reject5_enter1_raw3200.bin b/docs/测试说明/测试数据/wave_fix_20261107/newN_A_reject5_enter1_raw3200.bin new file mode 100644 index 0000000000000000000000000000000000000000..8e072389a03e0958746d430ea24d8a3f3ba5cd19 GIT binary patch literal 3200 zcmZQzpcvFQ2r#e+pc&I4Q2z)`%)a%Xg94fuL!*#`{ybE@{~rqYtEixgv2gzJR0%;9 zb8&U?RG)$>rq}4=uYx8f%BbOhE~e5d;Goihs`p5yM*R~sy*y0E95ff9svG5vhQMeD z47v~yXz&NRNudGRVH}Q~_P_s6{(vmT{F9TRfsp}49Yf>Ah6YCVAIRz~1sNC_e;RNg zi*Y}^&+N!4=zuK7;mOIW$SHCFMQoxcry!>giaKt^ErXi;o#AnxaslQl{3BP%&0Pn72x(N@?r$(V_--y-TsAh&*8rh{$7kfRGai> z=HES8|K~sP|HZPyj8Vmlq4Ss5`~%i+zOLFOKksFtyXzCinUSIutXK7r&O#J`f$KjI8n7>(tuYUe@*WI$Wd0T?d$*sR`7@o=oGFQl9 z(X{ss%CT<^)0P$YmYu4Kd2dy4SAYG5|6Yd7LTU{zoC<-b%MaX4*MIdr>O1$hZ_)C_ zC2I?+-~QCP`~D!z2HpFN-j?seZhwERckNYL`g-Q;$7^;(y}xb5400UMi0LmH);_oS zcJ1E0w<*f9A8-EV3QvUDuXmBr`{zyO^mTjBt{@(X5e)cTh zxW43QHPcy`#3$JgFC_b-O`pBUuXwZf{~B#O=_HtO>w--8_15wE)c#L+J#)g$^F^6o zckg{yIaMwLssa+?^dx^UfMWO3-amiXx7Kajes^!x``G;p?p5~9`LF(avK`|(Ur0o( z7B{y2aPfQI+>OxRmAGzsmIQzT^C6I`|Y27qvQk) zcmm0nd|P;X>w(SJC&jOQw|?d8%kL9ldZ)c?xIOR6>-x2J<*)bT)!w&y=COZ`Z0vNq z&FB3QDdAY=*Wb=qTP3?;`~7=m{nz&vt}Q)!Z^yM?@q6udUXn`COmjHI0?%r_iluLJMea2*!#vb zheZ(mH~Av!-<{6+pMBRm!YcXnv%UAqjH9k^>|d8zuVt(d$OKB-TT|F&UMBAKyB>XB z`fY6b_S^HqUt4`!HD53pZpE7hgTe~DWM4fDblJ0 literal 0 HcmV?d00001 diff --git a/docs/测试说明/测试数据/wave_fix_20261107/newN_A_reject5_enter2_raw3200.bin b/docs/测试说明/测试数据/wave_fix_20261107/newN_A_reject5_enter2_raw3200.bin new file mode 100644 index 0000000000000000000000000000000000000000..8e072389a03e0958746d430ea24d8a3f3ba5cd19 GIT binary patch literal 3200 zcmZQzpcvFQ2r#e+pc&I4Q2z)`%)a%Xg94fuL!*#`{ybE@{~rqYtEixgv2gzJR0%;9 zb8&U?RG)$>rq}4=uYx8f%BbOhE~e5d;Goihs`p5yM*R~sy*y0E95ff9svG5vhQMeD z47v~yXz&NRNudGRVH}Q~_P_s6{(vmT{F9TRfsp}49Yf>Ah6YCVAIRz~1sNC_e;RNg zi*Y}^&+N!4=zuK7;mOIW$SHCFMQoxcry!>giaKt^ErXi;o#AnxaslQl{3BP%&0Pn72x(N@?r$(V_--y-TsAh&*8rh{$7kfRGai> z=HES8|K~sP|HZPyj8Vmlq4Ss5`~%i+zOLFOKksFtyXzCinUSIutXK7r&O#J`f$KjI8n7>(tuYUe@*WI$Wd0T?d$*sR`7@o=oGFQl9 z(X{ss%CT<^)0P$YmYu4Kd2dy4SAYG5|6Yd7LTU{zoC<-b%MaX4*MIdr>O1$hZ_)C_ zC2I?+-~QCP`~D!z2HpFN-j?seZhwERckNYL`g-Q;$7^;(y}xb5400UMi0LmH);_oS zcJ1E0w<*f9A8-EV3QvUDuXmBr`{zyO^mTjBt{@(X5e)cTh zxW43QHPcy`#3$JgFC_b-O`pBUuXwZf{~B#O=_HtO>w--8_15wE)c#L+J#)g$^F^6o zckg{yIaMwLssa+?^dx^UfMWO3-amiXx7Kajes^!x``G;p?p5~9`LF(avK`|(Ur0o( z7B{y2aPfQI+>OxRmAGzsmIQzT^C6I`|Y27qvQk) zcmm0nd|P;X>w(SJC&jOQw|?d8%kL9ldZ)c?xIOR6>-x2J<*)bT)!w&y=COZ`Z0vNq z&FB3QDdAY=*Wb=qTP3?;`~7=m{nz&vt}Q)!Z^yM?@q6udUXn`COmjHI0?%r_iluLJMea2*!#vb zheZ(mH~Av!-<{6+pMBRm!YcXnv%UAqjH9k^>|d8zuVt(d$OKB-TT|F&UMBAKyB>XB z`fY6b_S^HqUt4`!HD53pZpE7hgTe~DWM4fDblJ0 literal 0 HcmV?d00001 diff --git a/docs/测试说明/测试数据/wave_fix_20261107/newN_A_reject5_enter3_raw3200.bin b/docs/测试说明/测试数据/wave_fix_20261107/newN_A_reject5_enter3_raw3200.bin new file mode 100644 index 0000000000000000000000000000000000000000..8e072389a03e0958746d430ea24d8a3f3ba5cd19 GIT binary patch literal 3200 zcmZQzpcvFQ2r#e+pc&I4Q2z)`%)a%Xg94fuL!*#`{ybE@{~rqYtEixgv2gzJR0%;9 zb8&U?RG)$>rq}4=uYx8f%BbOhE~e5d;Goihs`p5yM*R~sy*y0E95ff9svG5vhQMeD z47v~yXz&NRNudGRVH}Q~_P_s6{(vmT{F9TRfsp}49Yf>Ah6YCVAIRz~1sNC_e;RNg zi*Y}^&+N!4=zuK7;mOIW$SHCFMQoxcry!>giaKt^Eu0hHGz2v{Jb9T?+p3D2Y&-*;@@A*B? zb8`+J2*oXRS&G46aAErhhcOu2Z1Zo4X#unOw*n&u&biyW2MxFS+hCozc17$FJ7+S(Tug{J^=x)@+EuwEWrFz4(no$YQ==)|nYl8&t*N z>Wn|X%MZrLH)azY)*oV-aexsO;|`WR$)!BkZacmyM3HmV0^08DS&1L4oa{{u;c@^& zI_;fQ`&QY^T4R&5{L5my>kkqsEfAX&sbV`0QeyN|!Zm|t;=!`Ajt zG_(u~4`x^P)2VKC6+WjP7z>^**;j~Jz9E|s)MWo!s4LEdV4u1gnbwaaTE$ai2iB`jsHb_#4qS}8JW1W z6kIF!FZqa@8^F(Fk4v1aM&V`Se3)^fefF^g?-4|;?@>MyN|Fl#I_DkE@xI{R!dmOS zQy`#|H7@5>jN8cA9TMqEk}Bvkl~%3he9Db?HnCtz#1q6J5yB#rHV6^Jkz-Jx2*J zWX;CRQC)s%lzj|x=4z4CT;OxEF`vQCj1NW=U)hf?UK_vhhq+W+WVg^hx^}1DrnS() zirKTq}K=>@IJ zyW<#n!iy<=8?(7BeygpyU70*Y_GG8(ui<6>zUYdjoy>s(@EH+d=ZnO_b*27LX=swF zN|&Lh82Y;_XQXG{))|Wsa6lyW73-4mXis4nV$UQEbXI01Xi$^b54#<=JwuzD<-Bu!j?8pXwKE$)W_7`oAtSHqX%tmSPTwJ`=6Iq9 zS8D4ArOXB{Jn*PQ^X3*W08Hu=IipdOx}WJ3^xkZ?mbhNBJmDK}ZRAAZRloU@nrjBV zI)~qMzdDEe2N~k@CI^XS1sZCMC|#3Qs{`c6+7%Q-ph4KY=j{xIWsoxXfN=nBe&m%q zSH&(w_lJUnIwj~r+DmDh8iEjbjI4E~WoaZsk3K?&OE`SlTeOTWoE@D=AhjL|%$2go z{XuM_WEJBfn%suTU=LaJ>U;N&(z9j~UuMcGXOoJ;<3g<2iaX1%5F=P-nunY_js5NsqwXb~f zHFPTWBtKTEbLF2?`&fO5aF-}`i%RXsazwdggyGWUMkANiCXwhN!JfUyZ34~2oSwK*u~H2 zS%-3|{|R_nI$5zStJ?edD@J?*Z^3ZgZ<-oY;x3^QrrPmXO?;7)|M#x>vTLtE$Ib%23pC(t83KF&;HM~V6_%`_CJY<|@(gikmMs1OT?0DB!7Wdsg*FvA zf`gPG#X*wIK?I#dMYpEAixr{ZWOa!})cetfK2JVSN}>1+A!WrJ<;IS>DU>!Ez3tM*&+wzs`+U?soR=U%2F4(v78#5I zq81rQA)yu-i~*t+8Au_a78#5Iq81rQA)yu-i~*t+8Au_a78#5Iq81rQA)yu-i~*t+ z8Au_a78#5Iq81rQA)yu-i~*t+8Au_a78#5W;#|B@+Pzl*WCv5yUKOHap>47kYtd#i z9uLiD$!@gs70VrB?Ecj0^|f26cekH?s=u6C498hAXF6>`GPr>>8G?efZ*+)dQg0XM z?uE~zS;|l%OoL^Jq|~2Lv5~S8lv4I5vRRd9d~==+A4XTpauS?6!tzaSxbe?t_9H8= z`{spR(~0KHK6?|)IZiN_NblKmR_llM-JGXkY*}x&8d%tRqk183U8DLqZe4QovGK&W zz(n3R`^MO)>Qh5b`&phC_TssVp`GAjj2TkB9@{CE43&uN;-IX}k?nc_Wx$%Lw501M>`+c?)fXaZJl#W-Nq+5=9ho2vz5RA literal 0 HcmV?d00001 diff --git a/docs/测试说明/测试数据/wave_fix_20261107/newN_C_reject1_head99.png b/docs/测试说明/测试数据/wave_fix_20261107/newN_C_reject1_head99.png new file mode 100644 index 0000000000000000000000000000000000000000..1d407417f2d8fa5391e2c926d7c2e1bbafd65d32 GIT binary patch literal 1212 zcmeAS@N?(olHy`uVBq!ia0y~yU}^wi4xj*o=CW!385mfaJzX3_D(1Ysdphs70RxM} zt`qrXi;o#AnxaslQl{3BP%&0Pn72x(N@?r$(V_--y-TsAh&*8rh{$7kfRGai> z=HES8|K~sP|HZPyj8Vmlq4Ss5`~%i+zOLFOKksFtyXzCinUSIutXK7r&O#J`f$KjI8n7>(tuYUe@*WI$Wd0T?d$*sR`7@o=oGFQl9 z(X{ss%CT<^)0P$YmYu4Kd2dy4SAYG5|6Yd7LTU{zoC<-b%MaX4*MIdr>O1$hZ_)C_ zC2I?+-~QCP`~D!z2HpFN-j?seZhwERckNYL`g-Q;$7^;(y}xb5400UMi0LmH);_oS zcJ1E0w<*f9A8-EV3QvUDuXmBr`{zyO^mTjBt{@(X5e)cTh zxW43QHPcy`#3$JgFC_b-O`pBUuXwZf{~B#O=_HtO>w--8_15wE)c#L+J#)g$^F^6o zckg{yIaMwLssa+?^dx^UfMWO3-amiXx7Kajes^!x``G;p?p5~9`LF(avK`|(Ur0o( z7B{y2aPfQI+>OxRmAGzsmIQzT^C6I`|Y27qvQk) zcmm0nd|P;X>w(SJC&jOQw|?d8%kL9ldZ)c?xIOR6>-x2J<*)bT)!w&y=COZ`Z0vNq z&FB3QDdAY=*Wb=qTP3?;`~7=m{nz&vt}Q)!Z^yM?@q6udUXn`COmjHI0?%r_iluLJMea2*!#vb zheZ(mH~Av!-<{6+pMBRm!YcXnv%UAqjH9k^>|d8zuVt(d$OKB-TT|F&UMBAKyB>XB z`fY6b_S^HqUt4`!HD53pZpE7hgTe~DWM4fDblJ0 literal 0 HcmV?d00001 diff --git a/docs/测试说明/测试数据/wave_fix_20261107/newN_C_reject1_head99_raw3200.bin b/docs/测试说明/测试数据/wave_fix_20261107/newN_C_reject1_head99_raw3200.bin new file mode 100644 index 0000000000000000000000000000000000000000..8e072389a03e0958746d430ea24d8a3f3ba5cd19 GIT binary patch literal 3200 zcmZQzpcvFQ2r#e+pc&I4Q2z)`%)a%Xg94fuL!*#`{ybE@{~rqYtEixgv2gzJR0%;9 zb8&U?RG)$>rq}4=uYx8f%BbOhE~e5d;Goihs`p5yM*R~sy*y0E95ff9svG5vhQMeD z47v~yXz&NRNudGRVH}Q~_P_s6{(vmT{F9TRfsp}49Yf>Ah6YCVAIRz~1sNC_e;RNg zi*Y}^&+N!4=zuK7;mOIW$SHCFMQoxcry!>giaKt^EculPxkSD4r}QA;dCd6^B_+hT1*-1$*{~nRDiQzxRIc{e15C zbLYg`@DT5zgrPVb&O3Bv@Om81EyMA6*%xp#ZU|5uZU`YXc7&o&N+Fxrj{tVKOPa3K5bU5O0$}-ONh!(%J5zQuKa^LX1yj_$i zBf6kxCf}`e4erF~CD&}>LM7>5iRe*pXPDo?joStAyM>(G_#GZoR`uHjMffsyX}Glk zu`(%VYrvp~Q7BUDwekXP^w$}|{u|t7Oi6SeRATIgI=HMyb*%vNar{oqyQ<3bZE=0R zCQ}uw2-sOcV-d?sXGayGvL{|EbNVCj`Q8h;rWHMOG2RdIL+zCP~EIri;L4@q7}=CzjZ?2dIn(U0JMiS9f%!CL7tZsfOZFan_;LM@Kna z?IlEC^VG^H2Ict*=sZ|@XpL$3Y;@kD8}5O}GWgeAkwUf)Vl7?c-~9{}Dms`@~2eTtL`M(US1!@3Os|H&IoEca*< zB^#*FO^vjmPtU0UfWM-JfsHaamP>hHE1>Al_;r}LjeHS9aZ#jue!E6q07-!e z{?Y2=uJuxUE$iUCM2P}=OFZ2wlTo;NAjZBEgO>Fdn-;C(Ni;Gg3!v9TEUG5az!=4edXXlmc6BEu{8u<^Sonohdbi>s4 z!MWR~9vLA0V-UQA9cy3UCdMQ(rWT=wDdSkAk1n)=Y-;= z@Hl)w8m^wP_h3=2)Ljt71%+{vi{@?w*_%!*`*E+&VHIE&F?a`hlXie_hR>a7JF`SC{Z!WT&0SF_4Bv|y@yX4>cz(h zQKRMPhy1Q=ojB5m;AFa}5I$_t_&wRCmZ5h|yrbt$o79>(8_|_j7NPSoib_kaKJ9>G zSmh~!yxIFJ@-UnimEsxVK?@txQ|f*7A|zLF##}P7^A?R~tG+L1?)WUyRYw><)MKVcb0S9&h4>{xJz&&f+DjLXcN^T~G2 z{ARg@`E9w(Sn$5FSr56p5PTodvZbS4am*E^%5#>q)=zA{jdJeV61_WJGn?5?NNB5S zLE^aj@_LqH48|6aS4~`_+5vBg%KyZHZ$FV$&Vpp)10JCCj!R{u{;W? zm=&w}L9^oW4`FLYt+cqf9&LZ_T2;=Y7N7lI<~O2Nx?U>h9!Bj#t5oHhonVg8jW1h* zuSDBdHK+MeYZJz6;ciCf{*R|s${g%vVmsqsvnsPKXOrZ(wWaNu6E@$Ow8R(P*5pj* z_PTbSFg)9f+C7o=&cvg3OI-W*CKI*s@0xm_D{MEqdxh<%)dl|MA zE>Dn8WC$8t>S@AaL|a7adNgZI9{0^fHn<;4O{o1mJ3_Qs5}Z=hn#F^JoZVM$ogi__-$12 zsUb6dlE((!aPIujj&L!?3>keN+brUAI k75A#vQfjV0@mERZpSQL1DCL~Jq}%RE+tf`z|8Jjv0edQ<7ytkO literal 0 HcmV?d00001 diff --git a/docs/测试说明/测试数据/wave_fix_20261107/newN_F11_reopen_seg99_max.png b/docs/测试说明/测试数据/wave_fix_20261107/newN_F11_reopen_seg99_max.png new file mode 100644 index 0000000000000000000000000000000000000000..92297e35681932dd7da3bd0491b324d400646d20 GIT binary patch literal 2387 zcmeHJ`&SZq6bCi4hgqH79;CFL+8$eOZLO7&(8Dmxw3k^bP^X6lk(QbQp`NzKR`zm} ztW-{!t%^Xe!3UwV?b>culPxkSD4r}QA;dCd6^B_+hT1*-1$*{~nRDiQzxRIc{e15C zbLYg`@DT5zgrPVb&O3Bv@Om81EyMA6*%xp#ZU|5uZU`YXc7&o&N+Fxrj{tVKOPa3K5bU5O0$}-ONh!(%J5zQuKa^LX1yj_$i zBf6kxCf}`e4erF~CD&}>LM7>5iRe*pXPDo?joStAyM>(G_#GZoR`uHjMffsyX}Glk zu`(%VYrvp~Q7BUDwekXP^w$}|{u|t7Oi6SeRATIgI=HMyb*%vNar{oqyQ<3bZE=0R zCQ}uw2-sOcV-d?sXGayGvL{|EbNVCj`Q8h;rWHMOG2RdIL+zCP~EIri;L4@q7}=CzjZ?2dIn(U0JMiS9f%!CL7tZsfOZFan_;LM@Kna z?IlEC^VG^H2Ict*=sZ|@XpL$3Y;@kD8}5O}GWgeAkwUf)Vl7?c-~9{}Dms`@~2eTtL`M(US1!@3Os|H&IoEca*< zB^#*FO^vjmPtU0UfWM-JfsHaamP>hHE1>Al_;r}LjeHS9aZ#jue!E6q07-!e z{?Y2=uJuxUE$iUCM2P}=OFZ2wlTo;NAjZBEgO>Fdn-;C(Ni;Gg3!v9TEUG5az!=4edXXlmc6BEu{8u<^Sonohdbi>s4 z!MWR~9vLA0V-UQA9cy3UCdMQ(rWT=wDdSkAk1n)=Y-;= z@Hl)w8m^wP_h3=2)Ljt71%+{vi{@?w*_%!*`*E+&VHIE&F?a`hlXie_hR>a7JF`SC{Z!WT&0SF_4Bv|y@yX4>cz(h zQKRMPhy1Q=ojB5m;AFa}5I$_t_&wRCmZ5h|yrbt$o79>(8_|_j7NPSoib_kaKJ9>G zSmh~!yxIFJ@-UnimEsxVK?@txQ|f*7A|zLF##}P7^A?R~tG+L1?)WUyRYw><)MKVcb0S9&h4>{xJz&&f+DjLXcN^T~G2 z{ARg@`E9w(Sn$5FSr56p5PTodvZbS4am*E^%5#>q)=zA{jdJeV61_WJGn?5?NNB5S zLE^aj@_LqH48|6aS4~`_+5vBg%KyZHZ$FV$&Vpp)10JCCj!R{u{;W? zm=&w}L9^oW4`FLYt+cqf9&LZ_T2;=Y7N7lI<~O2Nx?U>h9!Bj#t5oHhonVg8jW1h* zuSDBdHK+MeYZJz6;ciCf{*R|s${g%vVmsqsvnsPKXOrZ(wWaNu6E@$Ow8R(P*5pj* z_PTbSFg)9f+C7o=&cvg3OI-W*CKI*s@0xm_D{MEqdxh<%)dl|MA zE>Dn8WC$8t>S@AaL|a7adNgZI9{0^fHn<;4O{o1mJ3_Qs5}Z=hn#F^JoZVM$ogi__-$12 zsUb6dlE((!aPIujj&L!?3>keN+brUAI k75A#vQfjV0@mERZpSQL1DCL~Jq}%RE+tf`z|8Jjv0edQ<7ytkO literal 0 HcmV?d00001 diff --git a/docs/测试说明/测试数据/wave_fix_20261107/newN_F12_empty_state.png b/docs/测试说明/测试数据/wave_fix_20261107/newN_F12_empty_state.png new file mode 100644 index 0000000000000000000000000000000000000000..c221c5ec397858621f5f398ebad379880e2b4a52 GIT binary patch literal 1169 zcmeAS@N?(olHy`uVBq!ia0y~yU}^wi4xj*o=CW!385me1JY5_^D(1Ysdok~}0t0Kn z@>l==7kx8G{Ujk#uFN;YZ>!4tMIkYx9+-I`95z;@VR;GuNsD@ zvV!D*+NZs5P>y|Tn!c>Kx9n6=+-tjnoBHK1>W?R~s`$VZY(5`1C3)+4?rnY1^NLH> zf2et1IsM)DBqSq_Uwj|-{NtwXtGjOA{e9r6WqjG|+Vn7xgJ26KKD55{oA{K zW|su-|BZR5wFc}jCXXv(vL7t|y=^r99+!S^^XGZ@WZ}AI^WC`h{ybUt_C-GNq#;4ECThpD=_MKjO z?ftr4&-H9CKvh5joSx(dW}8dmAMC5jj=9%oo~)z`UC&u^}MTiWxfcCFnGBW;C1CXm;*y0Yu+zUGlH{Wh`x^2eo&1}`^H!OUUu)ayHyL}Qp=dn z-MOE8c7A2s_pEn;m9@)~*TG{j_abBZuF&^0@4Fi=-#$OQFTS?_K_5K&Ty*2jtIpTW z*}5wxdrjHATYo-nz4ci>{4?Ca^o&`0+LiHxb=R56zq46ysDrHaboFyt=akR{09n11 AX8-^I literal 0 HcmV?d00001 diff --git a/docs/测试说明/测试数据/wave_fix_20261107/newN_F12_empty_state_raw3200.bin b/docs/测试说明/测试数据/wave_fix_20261107/newN_F12_empty_state_raw3200.bin new file mode 100644 index 0000000000000000000000000000000000000000..f467cae32af1b52a4fff2ef522cba182321c85cf GIT binary patch literal 3200 zcmZQzpcvFQ2r#e+pc&I4Q2z)`%)a%Xg94fuL!*#`{ybE@{~rqYtEixgv2gzJR0%;9 zb8&U?RG)$>rq}4=uYx8f%BbOhE~e5d;Goihs`p5yM*R~sy*y0E95ff9svG5vhQMeD z48jm#|G~&;gX*sO100QP=w%7>kN79(VhkLD>TaldS@{16vY-kv{D0su|9B0mAQy{E zhzpu|Tud)ST+zgY7z2dbG*I;_DR~6)pp}VEI&PC%(9|_PIG~eq3{~$aZ!`o(Ltr!n NMnhmU1cqz~005*oENcJ& literal 0 HcmV?d00001 diff --git a/docs/测试说明/测试数据/wave_fix_20261107/newN_F12_idlekey_seg6.png b/docs/测试说明/测试数据/wave_fix_20261107/newN_F12_idlekey_seg6.png new file mode 100644 index 0000000000000000000000000000000000000000..222fad3ff108429f6b28226c255d0152957fa194 GIT binary patch literal 2418 zcmeHJjaO1<7)LS78dLi?H7(8Ks%4wbu0hHGz2v{Jb9T?+p3D2Y&-*;@@A*B? zb8`+J2*oXRS&G46aAErhhcOu2Z1Zo4X#unOw*n&u&biyW2MxFS+hCozc17$FJ7+S(Tug{J^=x)@+EuwEWrFz4(no$YQ==)|nYl8&t*N z>Wn|X%MZrLH)azY)*oV-aexsO;|`WR$)!BkZacmyM3HmV0^08DS&1L4oa{{u;c@^& zI_;fQ`&QY^T4R&5{L5my>kkqsEfAX&sbV`0QeyN|!Zm|t;=!`Ajt zG_(u~4`x^P)2VKC6+WjP7z>^**;j~Jz9E|s)MWo!s4LEdV4u1gnbwaaTE$ai2iB`jsHb_#4qS}8JW1W z6kIF!FZqa@8^F(Fk4v1aM&V`Se3)^fefF^g?-4|;?@>MyN|Fl#I_DkE@xI{R!dmOS zQy`#|H7@5>jN8cA9TMqEk}Bvkl~%3he9Db?HnCtz#1q6J5yB#rHV6^Jkz-Jx2*J zWX;CRQC)s%lzj|x=4z4CT;OxEF`vQCj1NW=U)hf?UK_vhhq+W+WVg^hx^}1DrnS() zirKTq}K=>@IJ zyW<#n!iy<=8?(7BeygpyU70*Y_GG8(ui<6>zUYdjoy>s(@EH+d=ZnO_b*27LX=swF zN|&Lh82Y;_XQXG{))|Wsa6lyW73-4mXis4nV$UQEbXI01Xi$^b54#<=JwuzD<-Bu!j?8pXwKE$)W_7`oAtSHqX%tmSPTwJ`=6Iq9 zS8D4ArOXB{Jn*PQ^X3*W08Hu=IipdOx}WJ3^xkZ?mbhNBJmDK}ZRAAZRloU@nrjBV zI)~qMzdDEe2N~k@CI^XS1sZCMC|#3Qs{`c6+7%Q-ph4KY=j{xIWsoxXfN=nBe&m%q zSH&(w_lJUnIwj~r+DmDh8iEjbjI4E~WoaZsk3K?&OE`SlTeOTWoE@D=AhjL|%$2go z{XuM_WEJBfn%suTU=LaJ>U;N&(z9j~UuMcGXOoJ;<3g<2iaX1%5F=P-nunY_js5NsqwXb~f zHFPTWBtKTEbLF2?`&fO5aF-}`i%RXsazwdggyGWUMkANiCXwhN!JfUyZ34~2oSwK*u~H2 zS%-3|{|R_nI$5zStJ?edD@J?*Z^3ZgZ<-oY;x3^QrrPmXO?;7)|M#x>vTLtE$Ib%23pC(t83KF&;HM~V6_%`_CJY<|@(gikmMs1OT?0DB!7Wdsg*FvA zf`gPG#X*wIK?I#dMYpEAixr{ZWOa!})cetfK2JVSN}>1+A!WrJ<;IS>DU>!Ez3tM*&+wzs`+U?soR=U%2F4(v78#5I zq81rQA)yu-i~*t+8Au_a78#5Iq81rQA)yu-i~*t+8Au_a78#5Iq81rQA)yu-i~*t+ z8Au_a78#5Iq81rQA)yu-i~*t+8Au_a78#5W;#|B@+Pzl*WCv5yUKOHap>47kYtd#i z9uLiD$!@gs70VrB?Ecj0^|f26cekH?s=u6C498hAXF6>`GPr>>8G?efZ*+)dQg0XM z?uE~zS;|l%OoL^Jq|~2Lv5~S8lv4I5vRRd9d~==+A4XTpauS?6!tzaSxbe?t_9H8= z`{spR(~0KHK6?|)IZiN_NblKmR_llM-JGXkY*}x&8d%tRqk183U8DLqZe4QovGK&W zz(n3R`^MO)>Qh5b`&phC_TssVp`GAjj2TkB9@{CE43&uN;-IX}k?nc_Wx$%Lw501M>`+c?)fXaZJl#W-Nq+5=9ho2vz5RA literal 0 HcmV?d00001 diff --git a/docs/测试说明/测试数据/wave_fix_20261107/newN_F13_after_spam.png b/docs/测试说明/测试数据/wave_fix_20261107/newN_F13_after_spam.png new file mode 100644 index 0000000000000000000000000000000000000000..c9eb1f0e0ff57b4d169d47e9eb0a5f9ca3c65bcd GIT binary patch literal 2321 zcmeHIYg1EK6b+98Vi^^6P~>H+MMQ|22`ZL{ihw90&;cPPpcK<4ysAc!JX`H_Pzg9H zSd=h@R^)LL3x)ua1X0TfN($xyi3wCB84@6xK!89d)~e{5kAiCS@8tqltgt+XxPVzmi#*)=CguY52l z;Nlgt12e571_9Z)-P(CGC2W~j>`Oic0Z#;aB(>whv$+5~T|Jj6xD}IbyD17%;2c`% zkz&)t$1u|JF?3;B!`E3@_vU&i`kt}msYB!~h&f3R$8L=zE^4oo?sV{L?VZU1fj2H;sT=1DK7 zqxyY?@q9|R#u#`XJUT7>G?~as#P`J6FYR8rICt<%LBcXZ z_P5Jq0V>7V)zHOq;p3~=GGp`km_k62+!HTBv^2R43b9mb=Il0radNPCK@10*udT5g zYpE8Ou!D*b@+&0YB7m!wrnR8SXtA5Y9mB+i1TH{o_XE#V0$S6|Qh3J!&z!o1EsE<+ zbj7j5@~H)ZW+^$aZC}w?U`Y?O2c3QkV)b>5b8y{x1Wes^E=;&n>$yPulD( zVjE7qCkq79j!0VWaZbea?`|L#alGGgQx|Ef)MzT}QwUPyl-QdW_Z)>;O(NMLKr6>A3`G&uFG*!@?O!+(M%ep#EL%<%;>E>7A||8(BJ z2;qk$7NlQA`AWPDl(hOwE0@wPF>{%hCC=*W3Wy9DTIaj*)A65%zoec2hkDt#ft~XF z=t-8w&I8|*mZ(`Gysd>+OP^LZlrm}J$9et2*i_|+s!LT+)WgI*|CM+4oO{MNAveVv ze^aBlXP{!q63qxroP{)H6Y2`51t|M|?_IvQv|&GZE9@;yZ#bR-ITIu_zS8C+yd8`MRHj#V+zO z&JLJ}+->rbBNlVKOSi&KKMo39z&+OwR&;6q5Dy2<`3B!yWj09 zx&Z~sB%cpYRTKU5sZhnTioBw0zUx3auQ7@8s9GvPET_BA#b3zC)Xj#1_5de3<&|Lb z86Vt_Vby)1rHYLbrc4XTa)^-!PCOcELp|ZrMv6Y{z6%eqOisPzvZnP~!9`{oDS*SG zWq@7qDc+e#drjPgfwjOn54^2^U+5$}RYmh-!x0zgIKTde>d9?OA&cf(2H0NAwdx>e V9k50m+-hDpbns{xeShjt{{km1xZ3~# literal 0 HcmV?d00001 diff --git a/docs/测试说明/测试数据/wave_fix_20261107/newN_F13_after_spam_raw3200.bin b/docs/测试说明/测试数据/wave_fix_20261107/newN_F13_after_spam_raw3200.bin new file mode 100644 index 0000000000000000000000000000000000000000..cd5904fd85df35df3c7c9a4ac2f4c12396b04ad3 GIT binary patch literal 3200 zcmd7M!E4h{9Ki9Hq>QvoO^bquf?13-Nrw|bSXF3{dYG48_6K;~L2&Hgv1wp1Do7YR zcql`5T5p~NJ?$WhL+r(ymrjITou^GiOI2b%A7ZvQ$sV%STbi?;Y=Z8@!ZPp&EwbAj2W%;v(g3H+jJWj zftU&=8>gOqxHtYiO%``2{;PWc8)PtsL@gP{fYg#fibO3L#(>n4L5f5z8ODIrl0k|@ zEg8mu)RIApL@gP{fYg#fibO3L#(>n4L5f5z8ODIrl0k|@Eg8mu)RIApL@gP{fYg#f zibO3L#(>n4L5f5zSvIaU-mUfy(!XJL?=P+&2B#x^UKu<}-l4szuI$>P>l=}7t4<{` z)ib+(Y|ST;e(9@jPRxwWG~+p~IJVi@(%epBpY?e$7@4+rwc^E=wC>SzZPb=5%X>U- z9pP9bD_XY_^Q}nVQBw==L}E3lMrUko&>PS7j`yNu^{*~PQPd#+GUc$*Q1c{2x!!L| zbE53J@?6~3Ur4Q@)cc;)DvIl#u*2)_4XG7nudki3`tz=Io+vvPugSK5-qdB2&-&fx Ep8@8R#Q*>R literal 0 HcmV?d00001 diff --git a/docs/测试说明/测试数据/wave_fix_20261107/newN_F14_manual_confirm.png b/docs/测试说明/测试数据/wave_fix_20261107/newN_F14_manual_confirm.png new file mode 100644 index 0000000000000000000000000000000000000000..7b29fbc53f5266e6dd4bafaf2990bc6ed726360f GIT binary patch literal 2056 zcmcJPdsLEV9LGUVxy)>t!n8!w)(q@&YMG|uwG45hVi!VCz_V_rl{m6A z^1@Cx+nH!b5>k4D)-lZ9q%xrppE3Dwe$X^xC4fSsJ9oaSf4V@yG9ippSAl~wxhnaEQSa()w;vcq# zh?i3z=|1<~?ELcu*~_VK_Y?63k}$`@+YpRXF)g_v^$M4$;|}xJp=Z!;t=P5fkkM>Z zIot|2tbmCTSFnL28y8NBy6>k#>mMf!C6{pmH5-Dnja?ZaQ22H+SQNQv)#>5%lGdWe zuugMW+G3H=u$Ls|)r!UZ1hw?K`=f@F=qX!9*Y(Z_dbhN}Es3%vL$1^4ThjwA3R#=| z{3A4Zf=J+|rN~%Uk~aBL>mm5}@u0CEbMZtCzTLSb<5~{4tM@Z?Uoyn#1wV`%S?qZQ zjY1bSvl@#4_Yi;k?IHx|lFX{Pm~J?^5!=0?E0sKXq~dd^!^hB5MVM?DgwJGlScJUL zXRGWbSM}T&fH~Qg6J!Q*b$Z@_cBjzFgO4@&yk9Zu*O>VK^H1AzQpY)4hcoA%n;aOEnbYC6E^r^oJ4)9!xB@{O?d@@m&*jwAI)7eyw2<)|u5*D=22 zls~mmN&$AFkWF&+R}3CRwjIQbxIfItD=a3D+D!$L>#BeTH?3x0E=j!0)>JkHskXh) zJnd}IPx#1px$J9Gt`&lvx3c^ifk#{GvLG3k3#jQ|!z#1b(}K?!Wo8)3^*iJ$cRh&f z(&UXR0{RBGxJai&?9??)FB3kk7e6V&>+4C?ae_&lm?-w6t zE4xdR1C^$>6bNkI&UZ|Oy0YjCCKiz78cZ=jlM{293U(gc#AIa|SdA94rakGpWT{;d zA4joiKVq)j=@DpZ{~_$B-~!ps?H-@%B1f5NChmwYI|t;7V|uBL`q?!>s@5QgboH)C z`t-RIg}mB-(ChNH_kf{4h6Y>P$;o;>k110YoK=EUwG}5j9y#_9jmueReMa!1l}EZ7 z^#guzD#!6{E~Ea&IP0_{v!b6}I)#-sHfW;+L>q6pncH+{B1)4#ObR-tXEyaky^}7s z^X!Lx6bjb%pBT&otnnJlbvkL{5rh&c`2g*j;u)1cySxpO298T{v&iF&;BjJC_+q3a z0|*Mx<-iZdPg>v@eBZ>T4Az3|r&g8KY=;k<))K1f!K=}*xHk?vk?MesQKC!9feIWD z6`Eo=LhqU$JRY?cPOf~okL7F88?e%Et{{bU`x~9{ox4fZlfj0CVKWQ&RHp9uH*G(r z`9IGWT^{YA>n$x3PlIuAjUXT3Z1nVMe&0OFF6LS-@<3~QaH+uM65K5--`uv;vsmHT zB2$79LUpI~JfL8vBbs_vo2@jZf^ILo>KMA5B@1k+xZf65ey(82?VtT zZ!W`RN(n1P${|;RTAP8$$HQLIV6u-yiS6Ud z2IW+GF!XjcTu@Y;GfM!>NVXfq3 z1?wY4{)j*h5z$7mk~DHBh@EI6Tob(9+~Mu+YZC~_Zn4b#_`aFpgYNk#eyn|z$r&g~Z~grV4cY&?zYFkQ^9 z(L2D|ohP~syzOLrac{Cq68QHC7)%&tkt>PF(H|;exXp*W$b`_Af`RDSsW~AtRh{*K zT7Mm~-m1u59Jp6L3)xUXFeAnAwlic4*IkUI9H$t$_*tRL{ki@`McMP~cMK;xydbo~ zP@%~9u|4X?ybc5F{XkTQuSOn1{{v$#;=NBx#gNPr5bDI}K)PzLhkjLa)wQ_~J*I5l(jmE?-jl+a!Vim_Vy+M&l9u z$8r^P+4x~5U7C~{Vz-5!E*n}BzxAm*_Fb0^&9R%H>BTK8>*=!Lw&KA?S?lZCR`WTcUHTv92MOMyj~QP9;WH<6~2#U2V{)lvxUNUPNNE zHg5A#JF1<6jW?!n^&R~jQ<_lb$0 zc9t5EKABkJQ)AKw-L%&Je(JH9Lyibm8&A3Sxth>8h^}7D!|J(5svfc7o=hojG0!O| z`RP?Y_*%@5KGn_oWiRecY8=s$seyANjq^PXRW`$tuFk9c=nkG`xRn8p7(1jgHM^fl zvSpGswf+3qm)|<)9X}Li@OnBmusJ4I5l6{{zzQO}U&Q<5OaJP3y@JR<`NOm5dB^<$ z2ftCbLQxbb>Sy!y^mK#6`oOn?PK$Z$<6bv+BFz+zHonn51Z@v-S}(x=_r1AOd*^tzN2% zxT3-4`MRIuBE*_XxZ~W`6j8u%+c4s#o8XK=+X7q7TFV|MJA&xI_tYI0(iI(!LWyE@z{hm&hZ6{K+?=1FwJ?0Lo7f+o>a%oa z`RpZ5Ad?j~Nmd17Zu=cz1nm@>j+_iNljFuE2&GG>`0Eutm4OUG4B3(zqWK0T?vVT^ zOWi8It!0Y^AYqh_gE|Q5S*H5W_BC+Bb!$A;IZi;!nk>p*2;FTP_E-X9sYL~gx?Xxn zPKG|Dlm#94xD}4PAX56ame2#b4TD4k9QKEb8cm{6ly=Y0srUU(Gb^Z!MEx-DqgMTL z-vp?58a}vT{q8How|>`=N1j*K7qkDJ`B_x+d|L%+QZt1Rogv(R6P@BP4SaE#bVh}f zLm_e!$XmG{pv+)!Z6)CGttL;fT*2>#$fSJYR6kGGOTp;pR-&X)3ySym1$Rls31GDg zSUqG*v1p&gRHNUBWDx$|Of@DKOc$#J)YD9Bhqotk5>$_cGMh%|n!BW7_QI>iXu@b* z@P4#}6f`%3aSU!!s&X8g)}p9I0jn?Hb9SfS>X0S95#(hc(#7?>{zRv!dmFjrQJ$^- zp^%2LpRip2&w`DIuWBWgS)$L9|FElXQ!tw2HFyU-ctmMNBW&Z$f5?bK^ literal 0 HcmV?d00001 diff --git a/docs/测试说明/测试数据/wave_fix_20261107/newN_F14_manual_done_raw3200.bin b/docs/测试说明/测试数据/wave_fix_20261107/newN_F14_manual_done_raw3200.bin new file mode 100644 index 0000000000000000000000000000000000000000..4ceb9a3dfdbe94c46e907d3856da797f60c7ff20 GIT binary patch literal 3200 zcmeH{F-yZh7>2(~u9#4vU#=}Wh)Gq@N%Rkx2$4E;%umq4{~)9V3%W__=n#tqe}gzU zh;$R2T^!u)WQCB}INf)n;v#ob^6?w>}Nt10*kJpB4eRT$`JRB+B5_IN`N1D}tx`DrF zz_3^=hd|!ioy0vfJi-7if0{2$Wp8$~7#MtCW>~kJL2*K|=)`9!uD{EkJ87A_PLo^) zWPT;MtthNzdl66NEZY7yCJj2nzG7A9ns~L(RTH+Vi*ijrcKx`CfGz|1a*xrZMw zaOaXY5f4HE9$K# z5A2Iv<+{!l0)edBvpf7C1mc)&TkkI&KsMbhu|gou+&$r69nPo#dsRgPpSwAA2l!d7 za)5I&I0JQ)$>0d@+b*wi%g0^al~ z!$Du}xIW6^!x?{u1M7hNdufe`5?a&|(T1TKwvNpF?vQ&hJA6~vwN!ZIh2dL?EdVA- zOY|DS8Gk_&oNbObAh~z$f7urp^czb)NsTD)IL~A1@)}ClWc>^;{LE?hWykd|+~K!M zI2e{oO0xJ&FF(b<=!tqK(nw2>gC@8meU7@?>>lH;wT4ERa>$fUSP$0hk(olU&Z5ig z?+aH4kWEuLbWl=IYRnx1MT-1h!>qb{tZAnc)D;E|(@uHMlZC`VOWPy{*xY6md1qcw3DvsDG+@k+ z0Y&=6t{84W^j#rVF$VQ9L%W^hTv!ig zusoiK)pb>Ur1dc3Y_-?KH4X#h<|qsHjdV63l8h3<+RT1a%lYi{8Z20c*l4O#gd~2~83%+V4<@=?@ z(95XPW2tjGUkmJAsN?Npz%s6H_Ze!a!~b9uCbIC;xf=7xv%mj{UheIA zdh1nXC!?Tiu^^_gEzAro(&0Be2UQtku?tLsg(T$zeqgZLqfx^I4_RVp6rjUSXq0n8 zNkdb&+?#jOgoqa4w4Bn82Z*BDh}-cLJ*Fkm9WYf78IV)A?1Q2XHcLVp@vKgN!Hc05 z?MyR8tdlpfQ43zLDU0P0Wr!BfUZNLn!ebOmxC(weqX?M_^u(Pi?}f55E$RSM&Kzn* z=Op-v9p^l~I14HL&jSj&lxfP-)%p;5JJAu}k-!$POFFRT$3(k~D=nEabnQ3finOlO z9mdNbQ6mRL>3VvWdPE!87!)`Th{p06&h|DMrQhW#2fK#zq?93pkEz|6-L?JoI!45`jIg;zfNzM+6c9v+Iv>N5SCx3*p zN#a6Ia?w)SoBXQ1XxBTlm>)NB(!7WFecn&s@AK66^1cASUUdZ_qYK_PtGob)k0A)j z&5BotFalZ0%QBa{)jPkJNEmwe>JTMuLi4ifgVdY#F{Hb#T$fjek$im9KLeDLMV~GT z(_wPz^#->ffxl0HBa|!BWP!R`uiVj*Is-Hsb)Y0u0<`0}syIwg8S4Obd%$6_GEJ7w zGfxI_*l>;#E<~^rcG%K$3n3vz$-4%3=UOr^+ij|w^*qlIOf~AJV};>dp72-FnBnm% z1jPA4w+{P9o1n9STX1=UGDsjuAV}cn2@w2zxH;R)->jA4^;iJ@A{r^AWD8=uhpV@{XRrkc{Obfh0E&-YhX4Qo literal 0 HcmV?d00001 diff --git a/docs/测试说明/测试数据/wave_fix_20261107/newN_F15_seg6.png b/docs/测试说明/测试数据/wave_fix_20261107/newN_F15_seg6.png new file mode 100644 index 0000000000000000000000000000000000000000..222fad3ff108429f6b28226c255d0152957fa194 GIT binary patch literal 2418 zcmeHJjaO1<7)LS78dLi?H7(8Ks%4wbu0hHGz2v{Jb9T?+p3D2Y&-*;@@A*B? zb8`+J2*oXRS&G46aAErhhcOu2Z1Zo4X#unOw*n&u&biyW2MxFS+hCozc17$FJ7+S(Tug{J^=x)@+EuwEWrFz4(no$YQ==)|nYl8&t*N z>Wn|X%MZrLH)azY)*oV-aexsO;|`WR$)!BkZacmyM3HmV0^08DS&1L4oa{{u;c@^& zI_;fQ`&QY^T4R&5{L5my>kkqsEfAX&sbV`0QeyN|!Zm|t;=!`Ajt zG_(u~4`x^P)2VKC6+WjP7z>^**;j~Jz9E|s)MWo!s4LEdV4u1gnbwaaTE$ai2iB`jsHb_#4qS}8JW1W z6kIF!FZqa@8^F(Fk4v1aM&V`Se3)^fefF^g?-4|;?@>MyN|Fl#I_DkE@xI{R!dmOS zQy`#|H7@5>jN8cA9TMqEk}Bvkl~%3he9Db?HnCtz#1q6J5yB#rHV6^Jkz-Jx2*J zWX;CRQC)s%lzj|x=4z4CT;OxEF`vQCj1NW=U)hf?UK_vhhq+W+WVg^hx^}1DrnS() zirKTq}K=>@IJ zyW<#n!iy<=8?(7BeygpyU70*Y_GG8(ui<6>zUYdjoy>s(@EH+d=ZnO_b*27LX=swF zN|&Lh82Y;_XQXG{))|Wsa6lyW73-4mXis4nV$UQEbXI01Xi$^b54#<=JwuzD<-Bu!j?8pXwKE$)W_7`oAtSHqX%tmSPTwJ`=6Iq9 zS8D4ArOXB{Jn*PQ^X3*W08Hu=IipdOx}WJ3^xkZ?mbhNBJmDK}ZRAAZRloU@nrjBV zI)~qMzdDEe2N~k@CI^XS1sZCMC|#3Qs{`c6+7%Q-ph4KY=j{xIWsoxXfN=nBe&m%q zSH&(w_lJUnIwj~r+DmDh8iEjbjI4E~WoaZsk3K?&OE`SlTeOTWoE@D=AhjL|%$2go z{XuM_WEJBfn%suTU=LaJ>U;N&(z9j~UuMcGXOoJ;<3g<2iaX1%5F=P-nunY_js5NsqwXb~f zHFPTWBtKTEbLF2?`&fO5aF-}`i%RXsazwdggyGWUMkANiCXwhN!JfUyZ34~2oSwK*u~H2 zS%-3|{|R_nI$5zStJ?edD@J?*Z^3ZgZ<-oY;x3^QrrPmXO?;7)|M#x>vTLtE$Ib%23pC(t83KF&;HM~V6_%`_CJY<|@(gikmMs1OT?0DB!7Wdsg*FvA zf`gPG#X*wIK?I#dMYpEAixr{ZWOa!})cetfK2JVSN}>1+A!WrJ<;IS>DU>!Ez3tM*&+wzs`+U?soR=U%2F4(v78#5I zq81rQA)yu-i~*t+8Au_a78#5Iq81rQA)yu-i~*t+8Au_a78#5Iq81rQA)yu-i~*t+ z8Au_a78#5Iq81rQA)yu-i~*t+8Au_a78#5W;#|B@+Pzl*WCv5yUKOHap>47kYtd#i z9uLiD$!@gs70VrB?Ecj0^|f26cekH?s=u6C498hAXF6>`GPr>>8G?efZ*+)dQg0XM z?uE~zS;|l%OoL^Jq|~2Lv5~S8lv4I5vRRd9d~==+A4XTpauS?6!tzaSxbe?t_9H8= z`{spR(~0KHK6?|)IZiN_NblKmR_llM-JGXkY*}x&8d%tRqk183U8DLqZe4QovGK&W zz(n3R`^MO)>Qh5b`&phC_TssVp`GAjj2TkB9@{CE43&uN;-IX}k?nc_Wx$%Lw501M>`+c?)fXaZJl#W-Nq+5=9ho2vz5RA literal 0 HcmV?d00001 diff --git a/docs/测试说明/测试数据/wave_fix_20261107/newN_F15_seg99_alt.png b/docs/测试说明/测试数据/wave_fix_20261107/newN_F15_seg99_alt.png new file mode 100644 index 0000000000000000000000000000000000000000..8f046523362f38d2593a59c5cdf0e38d66973a7f GIT binary patch literal 2356 zcmeHI`&ZIu7)LQ@d7QK6w#aOox$2bNm{uy%%89x%bD1TAZQAAV&2&>@fgtnP*<9Yb z+42HsnKo0v8#2=`nw7P@kWIk^#AS$=5DkS1A_MWuJZJwx-*evY56}BN@B6%;&+~kq z%ikiajF{7|Hnim#0MytgboSZ++a z@Fp+s`}b!*<)PL*i{6H$?>N=9wRmfV7uww%X!=qMPwQZ`2ZF9~jL`uN7c*W6BK5}g zX}6u}4a+}1Y#ZFe9EJbmge68|*D=Z;Xb2se-HZ)r#hTSNnJf3+vdjB@6QSjCTxFR4 z_?)C)kSy1FFgf%3LYKUaHtR!SnFVF`F%=DD;y`o)&!0r9D|0h6aS>{)HJrn-$?YL< z5`qZq67Q3Z(tiIWY;0G!5#=7Vx7E&k%Gfy2(hY3u7m*F=fIb1O9%*QmOVnGqvP;k{ zIvrwis*l6U=kU14I6i)U&Jx;i`&pvw3gl66%lkGVppfu=g6b2 ziKRI84PfGWy7dG%DMJu%XC}c!6m5ofpQ4ZyT`kOoAklFVRis=AM(w8FVQa?0^yE^+ z9o06j4SXDd0NFiuH+m-|YwbpJKc6-$%|H6Re26XVgL-wDOuA+#W=6w5x-dBKICV%9`}A z>bz;dR~trXK}?xgb61w@c8JJ~vUb%%+b^=Us8^;dd113&l&3joYc+bQICnxZq6Ya* zjnb*(B==^hziaA3y8CBVCOC~aOHV^OQ0aW^c727lpF@8woEx4~Z9pzI>k>_ZZI9R1 z^qx;>6b&&SC3}eY^{O>EOd^2dcMpw%iaWJ9y#a$(6xYc(THZRGAZc2bFxy!1@@LCf zc&?+Dct4N=o>7E9Q&Ou?dIEtw#WE4zs8pW<9{2d=bQesm64>CC zzxeh+_~OXSJW|D_uCC4Ns0MM-EI+}J7QdA`Yjpr0fiKwwQEMA^Vf^ki3f0ET`D-M2??TF_qg4gb%uy}1t?K5Nd z2YdwA9}i#6re|3C2Qhh@JH8j+&o$=fQba2RPp$s3aCcno$+}a3mRq?jw{jE8@qg%r azxmL?CFV?D%^2N`Xvmjgf$V)J(*FgnPsQi} literal 0 HcmV?d00001 diff --git a/docs/测试说明/测试数据/wave_fix_20261107/newN_F15_seg99_alt_raw3200.bin b/docs/测试说明/测试数据/wave_fix_20261107/newN_F15_seg99_alt_raw3200.bin new file mode 100644 index 0000000000000000000000000000000000000000..4198927e3533af0f5ad294c676389bc462a52d86 GIT binary patch literal 3200 zcmd7Qv1=1y7{~GFy@Yas#M~7GhYV+YHFphY2bD&Jyh8+=C5wN6qXD-Fj(KxXX;YCS zIEaKI9VFR02|9_0Zp|N%r4^yzWOb=U)Vo}3^S=3kM4|MC%lm%r`M!5Ui2nO(N{f<~ zcFeNX{HR%Z>8Efsqt>jrw5GPdwyhfHswGoD7Wr+}DmN>Og(s?AY*lJpv(wBKy747T z@MX1qS9hDAv^H(L7v8!$cQSS>l-t|MCAP-DW<};(?mEeFYfHyBCv3hmY3Z-Jt;(6s zgEj3uVfc=(+9Q$o&n8v7FK&GQkW+2^yQW?jN}G-DPHFR7bZd0CramAHB#4lKF-WLI z24jGzMFvtxs6_^2fT%?VQb?#p24jGzMFvtxs6_^2fT%?VQb?#p24jGzMFvtxs6_^2 zfT%?VQb?#p24jGzMFvtxs6_^2fT%?VQb?#p24jGzMFvtxG86J;^^r`4d#)P&#WGjr z-5JSVJWIVC)*lWT>qfyoVbc4TI6Waa09d4At?4vf7C=Nu=TOQa5LgVlPGeK8kk z5L?#UuZ9-2-d?>Bx2{or8n-UF`Pg{kb7&$Tm_6fDj6yf*~NZYnreb)?Bc7ob{^U8 RxhuMDpK(mx^z;99{~J=Ym*oHe literal 0 HcmV?d00001 diff --git a/docs/测试说明/测试数据/wave_fix_20261107/newN_Z_final_open_100appended.png b/docs/测试说明/测试数据/wave_fix_20261107/newN_Z_final_open_100appended.png new file mode 100644 index 0000000000000000000000000000000000000000..1d407417f2d8fa5391e2c926d7c2e1bbafd65d32 GIT binary patch literal 1212 zcmeAS@N?(olHy`uVBq!ia0y~yU}^wi4xj*o=CW!385mfaJzX3_D(1Ysdphs70RxM} zt`qrXi;o#AnxaslQl{3BP%&0Pn72x(N@?r$(V_--y-TsAh&*8rh{$7kfRGai> z=HES8|K~sP|HZPyj8Vmlq4Ss5`~%i+zOLFOKksFtyXzCinUSIutXK7r&O#J`f$KjI8n7>(tuYUe@*WI$Wd0T?d$*sR`7@o=oGFQl9 z(X{ss%CT<^)0P$YmYu4Kd2dy4SAYG5|6Yd7LTU{zoC<-b%MaX4*MIdr>O1$hZ_)C_ zC2I?+-~QCP`~D!z2HpFN-j?seZhwERckNYL`g-Q;$7^;(y}xb5400UMi0LmH);_oS zcJ1E0w<*f9A8-EV3QvUDuXmBr`{zyO^mTjBt{@(X5e)cTh zxW43QHPcy`#3$JgFC_b-O`pBUuXwZf{~B#O=_HtO>w--8_15wE)c#L+J#)g$^F^6o zckg{yIaMwLssa+?^dx^UfMWO3-amiXx7Kajes^!x``G;p?p5~9`LF(avK`|(Ur0o( z7B{y2aPfQI+>OxRmAGzsmIQzT^C6I`|Y27qvQk) zcmm0nd|P;X>w(SJC&jOQw|?d8%kL9ldZ)c?xIOR6>-x2J<*)bT)!w&y=COZ`Z0vNq z&FB3QDdAY=*Wb=qTP3?;`~7=m{nz&vt}Q)!Z^yM?@q6udUXn`COmjHI0?%r_iluLJMea2*!#vb zheZ(mH~Av!-<{6+pMBRm!YcXnv%UAqjH9k^>|d8zuVt(d$OKB-TT|F&UMBAKyB>XB z`fY6b_S^HqUt4`!HD53pZpE7hgTe~DWM4fDblJ0 literal 0 HcmV?d00001 diff --git a/docs/测试说明/测试数据/wave_fix_20261107/newN_Z_final_open_100appended_raw3200.bin b/docs/测试说明/测试数据/wave_fix_20261107/newN_Z_final_open_100appended_raw3200.bin new file mode 100644 index 0000000000000000000000000000000000000000..8e072389a03e0958746d430ea24d8a3f3ba5cd19 GIT binary patch literal 3200 zcmZQzpcvFQ2r#e+pc&I4Q2z)`%)a%Xg94fuL!*#`{ybE@{~rqYtEixgv2gzJR0%;9 zb8&U?RG)$>rq}4=uYx8f%BbOhE~e5d;Goihs`p5yM*R~sy*y0E95ff9svG5vhQMeD z47v~yXz&NRNudGRVH}Q~_P_s6{(vmT{F9TRfsp}49Yf>Ah6YCVAIRz~1sNC_e;RNg zi*Y}^&+N!4=zuK7;mOIW$SHCFMQoxcry!>giaKt^ErXi;o#AnxaslQl{3BP%&0Pn72x(N@?r$(V_--y-TsAh&*8rh{$7kfRGai> z=HES8|K~sP|HZPyj8Vmlq4Ss5`~%i+zOLFOKksFtyXzCinUSIutXK7r&O#J`f$KjI8n7>(tuYUe@*WI$Wd0T?d$*sR`7@o=oGFQl9 z(X{ss%CT<^)0P$YmYu4Kd2dy4SAYG5|6Yd7LTU{zoC<-b%MaX4*MIdr>O1$hZ_)C_ zC2I?+-~QCP`~D!z2HpFN-j?seZhwERckNYL`g-Q;$7^;(y}xb5400UMi0LmH);_oS zcJ1E0w<*f9A8-EV3QvUDuXmBr`{zyO^mTjBt{@(X5e)cTh zxW43QHPcy`#3$JgFC_b-O`pBUuXwZf{~B#O=_HtO>w--8_15wE)c#L+J#)g$^F^6o zckg{yIaMwLssa+?^dx^UfMWO3-amiXx7Kajes^!x``G;p?p5~9`LF(avK`|(Ur0o( z7B{y2aPfQI+>OxRmAGzsmIQzT^C6I`|Y27qvQk) zcmm0nd|P;X>w(SJC&jOQw|?d8%kL9ldZ)c?xIOR6>-x2J<*)bT)!w&y=COZ`Z0vNq z&FB3QDdAY=*Wb=qTP3?;`~7=m{nz&vt}Q)!Z^yM?@q6udUXn`COmjHI0?%r_iluLJMea2*!#vb zheZ(mH~Av!-<{6+pMBRm!YcXnv%UAqjH9k^>|d8zuVt(d$OKB-TT|F&UMBAKyB>XB z`fY6b_S^HqUt4`!HD53pZpE7hgTe~DWM4fDblJ0 literal 0 HcmV?d00001 diff --git a/docs/测试说明/测试数据/wave_fix_20261107/oldN_P0_first_open_face_raw3200.bin b/docs/测试说明/测试数据/wave_fix_20261107/oldN_P0_first_open_face_raw3200.bin new file mode 100644 index 0000000000000000000000000000000000000000..8e072389a03e0958746d430ea24d8a3f3ba5cd19 GIT binary patch literal 3200 zcmZQzpcvFQ2r#e+pc&I4Q2z)`%)a%Xg94fuL!*#`{ybE@{~rqYtEixgv2gzJR0%;9 zb8&U?RG)$>rq}4=uYx8f%BbOhE~e5d;Goihs`p5yM*R~sy*y0E95ff9svG5vhQMeD z47v~yXz&NRNudGRVH}Q~_P_s6{(vmT{F9TRfsp}49Yf>Ah6YCVAIRz~1sNC_e;RNg zi*Y}^&+N!4=zuK7;mOIW$SHCFMQoxcry!>giaKt^El==7kx8G{Ujk#uFN;YZ>!4tMIkYx9+-I`95z;@VR;GuNsD@ zvV!D*+NZs5P>y|Tn!c>Kx9n6=+-tjnoBHK1>W?R~s`$VZY(5`1C3)+4?rnY1^NLH> zf2et1IsM)DBqSq_Uwj|-{NtwXtGjOA{e9r6WqjG|+Vn7xgJ26KKD55{oA{K zW|su-|BZR5wFc}jCXXv(vL7t|y=^r99+!S^^XGZ@WZ}AI^WC`h{ybUt_C-GNq#;4ECThpD=_MKjO z?ftr4&-H9CKvh5joSx(dW}8dmAMC5jj=9%oo~)z`UC&u^}MTiWxfcCFnGBW;C1CXm;*y0Yu+zUGlH{Wh`x^2eo&1}`^H!OUUu)ayHyL}Qp=dn z-MOE8c7A2s_pEn;m9@)~*TG{j_abBZuF&^0@4Fi=-#$OQFTS?_K_5K&Ty*2jtIpTW z*}5wxdrjHATYo-nz4ci>{4?Ca^o&`0+LiHxb=R56zq46ysDrHaboFyt=akR{09n11 AX8-^I literal 0 HcmV?d00001 diff --git a/docs/测试说明/测试数据/wave_fix_20261107/oldN_P1_stale_table_after_dele_raw3200.bin b/docs/测试说明/测试数据/wave_fix_20261107/oldN_P1_stale_table_after_dele_raw3200.bin new file mode 100644 index 0000000000000000000000000000000000000000..f467cae32af1b52a4fff2ef522cba182321c85cf GIT binary patch literal 3200 zcmZQzpcvFQ2r#e+pc&I4Q2z)`%)a%Xg94fuL!*#`{ybE@{~rqYtEixgv2gzJR0%;9 zb8&U?RG)$>rq}4=uYx8f%BbOhE~e5d;Goihs`p5yM*R~sy*y0E95ff9svG5vhQMeD z48jm#|G~&;gX*sO100QP=w%7>kN79(VhkLD>TaldS@{16vY-kv{D0su|9B0mAQy{E zhzpu|Tud)ST+zgY7z2dbG*I;_DR~6)pp}VEI&PC%(9|_PIG~eq3{~$aZ!`o(Ltr!n NMnhmU1cqz~005*oENcJ& literal 0 HcmV?d00001 diff --git a/docs/测试说明/测试数据/wave_fix_20261107/oldN_P2_crc_reject_silent.png b/docs/测试说明/测试数据/wave_fix_20261107/oldN_P2_crc_reject_silent.png new file mode 100644 index 0000000000000000000000000000000000000000..1d407417f2d8fa5391e2c926d7c2e1bbafd65d32 GIT binary patch literal 1212 zcmeAS@N?(olHy`uVBq!ia0y~yU}^wi4xj*o=CW!385mfaJzX3_D(1Ysdphs70RxM} zt`qrXi;o#AnxaslQl{3BP%&0Pn72x(N@?r$(V_--y-TsAh&*8rh{$7kfRGai> z=HES8|K~sP|HZPyj8Vmlq4Ss5`~%i+zOLFOKksFtyXzCinUSIutXK7r&O#J`f$KjI8n7>(tuYUe@*WI$Wd0T?d$*sR`7@o=oGFQl9 z(X{ss%CT<^)0P$YmYu4Kd2dy4SAYG5|6Yd7LTU{zoC<-b%MaX4*MIdr>O1$hZ_)C_ zC2I?+-~QCP`~D!z2HpFN-j?seZhwERckNYL`g-Q;$7^;(y}xb5400UMi0LmH);_oS zcJ1E0w<*f9A8-EV3QvUDuXmBr`{zyO^mTjBt{@(X5e)cTh zxW43QHPcy`#3$JgFC_b-O`pBUuXwZf{~B#O=_HtO>w--8_15wE)c#L+J#)g$^F^6o zckg{yIaMwLssa+?^dx^UfMWO3-amiXx7Kajes^!x``G;p?p5~9`LF(avK`|(Ur0o( z7B{y2aPfQI+>OxRmAGzsmIQzT^C6I`|Y27qvQk) zcmm0nd|P;X>w(SJC&jOQw|?d8%kL9ldZ)c?xIOR6>-x2J<*)bT)!w&y=COZ`Z0vNq z&FB3QDdAY=*Wb=qTP3?;`~7=m{nz&vt}Q)!Z^yM?@q6udUXn`COmjHI0?%r_iluLJMea2*!#vb zheZ(mH~Av!-<{6+pMBRm!YcXnv%UAqjH9k^>|d8zuVt(d$OKB-TT|F&UMBAKyB>XB z`fY6b_S^HqUt4`!HD53pZpE7hgTe~DWM4fDblJ0 literal 0 HcmV?d00001 diff --git a/docs/测试说明/测试数据/wave_fix_20261107/oldN_P2_crc_reject_silent_raw3200.bin b/docs/测试说明/测试数据/wave_fix_20261107/oldN_P2_crc_reject_silent_raw3200.bin new file mode 100644 index 0000000000000000000000000000000000000000..8e072389a03e0958746d430ea24d8a3f3ba5cd19 GIT binary patch literal 3200 zcmZQzpcvFQ2r#e+pc&I4Q2z)`%)a%Xg94fuL!*#`{ybE@{~rqYtEixgv2gzJR0%;9 zb8&U?RG)$>rq}4=uYx8f%BbOhE~e5d;Goihs`p5yM*R~sy*y0E95ff9svG5vhQMeD z47v~yXz&NRNudGRVH}Q~_P_s6{(vmT{F9TRfsp}49Yf>Ah6YCVAIRz~1sNC_e;RNg zi*Y}^&+N!4=zuK7;mOIW$SHCFMQoxcry!>giaKt^EculPxkSD4r}QA;dCd6^B_+hT1*-1$*{~nRDiQzxRIc{e15C zbLYg`@DT5zgrPVb&O3Bv@Om81EyMA6*%xp#ZU|5uZU`YXc7&o&N+Fxrj{tVKOPa3K5bU5O0$}-ONh!(%J5zQuKa^LX1yj_$i zBf6kxCf}`e4erF~CD&}>LM7>5iRe*pXPDo?joStAyM>(G_#GZoR`uHjMffsyX}Glk zu`(%VYrvp~Q7BUDwekXP^w$}|{u|t7Oi6SeRATIgI=HMyb*%vNar{oqyQ<3bZE=0R zCQ}uw2-sOcV-d?sXGayGvL{|EbNVCj`Q8h;rWHMOG2RdIL+zCP~EIri;L4@q7}=CzjZ?2dIn(U0JMiS9f%!CL7tZsfOZFan_;LM@Kna z?IlEC^VG^H2Ict*=sZ|@XpL$3Y;@kD8}5O}GWgeAkwUf)Vl7?c-~9{}Dms`@~2eTtL`M(US1!@3Os|H&IoEca*< zB^#*FO^vjmPtU0UfWM-JfsHaamP>hHE1>Al_;r}LjeHS9aZ#jue!E6q07-!e z{?Y2=uJuxUE$iUCM2P}=OFZ2wlTo;NAjZBEgO>Fdn-;C(Ni;Gg3!v9TEUG5az!=4edXXlmc6BEu{8u<^Sonohdbi>s4 z!MWR~9vLA0V-UQA9cy3UCdMQ(rWT=wDdSkAk1n)=Y-;= z@Hl)w8m^wP_h3=2)Ljt71%+{vi{@?w*_%!*`*E+&VHIE&F?a`hlXie_hR>a7JF`SC{Z!WT&0SF_4Bv|y@yX4>cz(h zQKRMPhy1Q=ojB5m;AFa}5I$_t_&wRCmZ5h|yrbt$o79>(8_|_j7NPSoib_kaKJ9>G zSmh~!yxIFJ@-UnimEsxVK?@txQ|f*7A|zLF##}P7^A?R~tG+L1?)WUyRYw><)MKVcb0S9&h4>{xJz&&f+DjLXcN^T~G2 z{ARg@`E9w(Sn$5FSr56p5PTodvZbS4am*E^%5#>q)=zA{jdJeV61_WJGn?5?NNB5S zLE^aj@_LqH48|6aS4~`_+5vBg%KyZHZ$FV$&Vpp)10JCCj!R{u{;W? zm=&w}L9^oW4`FLYt+cqf9&LZ_T2;=Y7N7lI<~O2Nx?U>h9!Bj#t5oHhonVg8jW1h* zuSDBdHK+MeYZJz6;ciCf{*R|s${g%vVmsqsvnsPKXOrZ(wWaNu6E@$Ow8R(P*5pj* z_PTbSFg)9f+C7o=&cvg3OI-W*CKI*s@0xm_D{MEqdxh<%)dl|MA zE>Dn8WC$8t>S@AaL|a7adNgZI9{0^fHn<;4O{o1mJ3_Qs5}Z=hn#F^JoZVM$ogi__-$12 zsUb6dlE((!aPIujj&L!?3>keN+brUAI k75A#vQfjV0@mERZpSQL1DCL~Jq}%RE+tf`z|8Jjv0edQ<7ytkO literal 0 HcmV?d00001 diff --git a/docs/测试说明/测试数据/wave_fix_20261107/restore_verify.txt b/docs/测试说明/测试数据/wave_fix_20261107/restore_verify.txt new file mode 100644 index 00000000..b876fa79 --- /dev/null +++ b/docs/测试说明/测试数据/wave_fix_20261107/restore_verify.txt @@ -0,0 +1,101 @@ +WAVE00.BIN 141750 5dec259bcfe232714eabc73e524e3c137544c97dfd1011f5d562751cd08cd34a OK +WAVE01.BIN 141750 c1e52668f29c1e58495c628adb62ea64c7b28c40e1264e4b570392c7a34c5444 OK +WAVE02.BIN 141750 9fa2ac67153918e7ee01217f6877e61f3ecf20d36f2f73c17831b526749118e9 OK +WAVE03.BIN 141750 6f0d210f0833cd48127589e51eb01ec9e098d3c588c67e201dbd403d103eb927 OK +WAVE04.BIN 141750 d90a068be6128ce66d4f477c319b9b34a4fed111181b2bfd05631e2f1b4f6451 OK +WAVE05.BIN 141750 e219826f7fc58825af298481c62bbdf2551f23763f5a12854a5842e5949b5666 OK +WAVE06.BIN 141750 96ca64631420b0ac003d6d4406d82bf297407502d01337472341f9d78f3e9ccd OK +WAVE07.BIN 141750 cf84c28879d2481f80df33fb9c8554a7e5166ab48eee379aaa0cc60295119234 OK +WAVE08.BIN 141750 b5b74abcb846971fcccad70ab28e8e014791586d17e8f092ed32d48a6560ac96 OK +WAVE09.BIN 141750 d5a2607daec3a2c00a93adb2eef84fac82ed909198eb8aca264a58a99d76a272 OK +WAVE10.BIN 141750 82ae4e8f347c90446b6145a9820f350d91880f1a5e0f274d8efbbaf1717ff2bf OK +WAVE11.BIN 141750 38b83cac51c3ad7a5415cd592322cdc31b1158ab6e71b1ab1a2dffa2538bbd0b OK +WAVE12.BIN 141750 a66ef3a9670db89d41b5b072aecf79a99ecefb9a9d372468269161081c981f13 OK +WAVE13.BIN 141750 b1619f61e0724b0f3666e2c0d3e6e8e3f2e310b673930d6192f571c8b56b8134 OK +WAVE14.BIN 141750 b3b0ae35f823e118ef5d2e45d7b6783e7bb74d7f1b439473298cdec7bb523b92 OK +WAVE15.BIN 141750 2feb5db36e44f2b833283f265513f92a684bd6849ace37d0baa9e23860173e36 OK +WAVE16.BIN 141750 af141ae8f389ceaaeaf32d94fefe63029dc2901f6b2bfbf736c68fbc58101b97 OK +WAVE17.BIN 136500 f3663128227b4a46cbd5ed782eac3a8c8088492dd8e87b20ce4fd839c04b0e02 OK +WAVE18.BIN 136500 241e803e7cd8f94208d927be9365070176961bfc956a36111e13d58a52fbc2ee OK +WAVE19.BIN 136500 175c47df57a4c2d1d2e222555224b1c2f1b8664bd973bfd20cf66ca9cfe503a9 OK +WAVE20.BIN 136500 ec54dc5da39738caa6fb14236cf3b0a90b1eae721f0770fb308ee85f7be0d89b OK +WAVE21.BIN 136500 996b0f51d391c47cf29e49277948d07ede2dc786a118a881e4ef1fcc078ab891 OK +WAVE22.BIN 131250 c7d4479c9d1d7e319054c3842822a7b3233a77ce729c7d538190ad5c718db1fb OK +WAVE23.BIN 131250 468b29efb464df5ecbbd1bc6b08a09734a8cc9a3e532b12a70d91a0e80517ea5 OK +WAVE24.BIN 126000 0f2761280135c990e36cd76230e0d027fdada9611b76473f90f4bea030b1a511 OK +WAVE25.BIN 126000 384b7d026fc865c57fded2cb93b3b061caa1afac42be181da30f6077f8717850 OK +WAVE26.BIN 126000 cb49f5d5316972d0d4811c9f1b84a5603a5d7a08b0b7a88112dab6ee5d6d43de OK +WAVE27.BIN 126000 96d87592b72495162c976a7fa964b36d653531d645e33f63b3c80b1a461cc290 OK +WAVE28.BIN 31500 709a6527988442578d47205941dc6fdb4d899cbe50df23530c4ae07008fc2c79 OK +WAVE29.BIN 126000 60803c9f5d480d03fc2f283eedf60241d0fddc44705dcd76ce5098d27d9e057e OK +WAVE30.BIN 120750 dfdb4ec581fdecaa7bdd3904f2119d32e9ee574aae30eb60b5029deaf5047f9c OK +WAVE31.BIN 120750 05eeda0adba85048c57e84000e9280c3b045d540122542891b51e6cce699cb8b OK +WAVE32.BIN 120750 5551e9945f2916b6a2250d80b4839567d69926bbedec07b9a39a2640dbe32db6 OK +WAVE33.BIN 120750 d21222ae671d0d22d1112235a06f28cd354a7bea835e39a0b045d832fe036864 OK +WAVE34.BIN 115500 653bb85f700ea3208657da04f8d1464f911d9a91b45deabbe039e118efa6116b OK +WAVE35.BIN 115500 a174ad39395b5f1e0c146623d78050a3cf8e571a6aa2a45c494a4099b5b55ffa OK +WAVE36.BIN 10500 1a5597514a88d92581b1177a0c50072e911053f021df31645108601756ee50d6 OK +WAVE37.BIN 110250 4aa918983ccac6a7258aaafb8b48b7ee4be5f14a110cdc44b0eda56e51063c98 OK +WAVE38.BIN 110250 8e0e8f77c3cd1a5c9ec9db202ee576e29e4470943e77f946dd168bcdb62b69d5 OK +WAVE39.BIN 110250 158da90c622460a3ec49a528fba1cc74f98589c8619ed3b56523d48360df7e97 OK +WAVE40.BIN 110250 c2efa796ed38c340311deedf44440704e1baadd806f07621f451d0609c2a0778 OK +WAVE41.BIN 110250 dcb694c82eb0ed3da1b344af72e268a5208c9fc0415daed4721713a71a6a9305 OK +WAVE42.BIN 110250 ca5fa525190714123422b03865915c10a7653d404640cbcd51a98f00055b0c00 OK +WAVE43.BIN 110250 10cb317e12a24f61e89c8a419e1eee52d1a6ab99fb0a2a86609811d5c4d65c6f OK +WAVE44.BIN 68250 a48c14290d1b5328ba9c680692e25334435571fb0ef9cc34a1e4e420d28500d8 OK +WAVE45.BIN 105000 a92ef951d5f2feef917197e905347236fd884ff63724b85fa52969599df30876 OK +WAVE46.BIN 99750 50710c832d7424c7fb8f1552056a3219126da12889e11ab8743e7729ad493501 OK +WAVE47.BIN 99750 18e85c5d935d9bf35b1f0bdead9884d42ddb4540b1fd872c132d6fbc780c4f44 OK +WAVE48.BIN 94500 d50d3845ac7a80ad61b359df200122e33f60b12eb06d2a9f0f0a107a1aa3cbb9 OK +WAVE49.BIN 89250 c4b44bd0febe6103b55cdc33ea88e8da80a59306d5f1f9247ce4e556dbcbc415 OK +WAVE50.BIN 78750 f8445ff0e4558c8b47d28c8b2db9a337e318f7a63cdc2ea81343672d6d1c92e9 OK +WAVE51.BIN 78750 92af2f2ff736975de6c8fce5b59a4454f8147c1d7488e70d076d68143285b196 OK +WAVE52.BIN 78750 5a6520c92b2477d2e4cc24010e5215384a363b1099635bb4fed646d27ec995a6 OK +WAVE53.BIN 78750 bf4db176433ff9397a2bb544217a8529d1a454b32c4a1c8f65deb3f1b4d6adc2 OK +WAVE54.BIN 78750 b7d0df9ea2bffb3269b447f20fcf0428a21408b15c6cc369e8a0ec66fb6af3cd OK +WAVE55.BIN 78750 390de8e3c5021eda079c0ed2b2832a870456a44d581e5ec4b7fe1cbb833911e5 OK +WAVE56.BIN 78750 29d00e15b3f5b5b8a87fc0b1c6afc967b83e5265b25c3c549969819c94b4b2d0 OK +WAVE57.BIN 78750 46818313cc77cef539886c2e3722babc722f9d6cfdf920d1374b9d6b03dde2ca OK +WAVE58.BIN 78750 05da71d8027d96337ff9185a6bed8e4f992d4a424808ecbcc84788400f0a4f4f OK +WAVE59.BIN 78750 f5fb2d45498efc0e7e05f5745817378c73607c9312657ecac39c7161f030c301 OK +WAVE60.BIN 73500 eae4e35ba09b1dc040f621f2c1c12c4217e128f1679ba6eba348acdf8a7aa8ed OK +WAVE61.BIN 73500 db611720cdbacb93a88190dc30e8a749a35f62eda1d6d8cefd9b7c22961e1886 OK +WAVE62.BIN 73500 656d94772ccab059dea601f89cfb55696bda05d413751b8db6cc145947d0a889 OK +WAVE63.BIN 73500 46a830cd2430b824ec7f034062e6b6151b66d021c90d275020fe7e550a9bfc5b OK +WAVE64.BIN 73500 9e300fa68a8f0028af4a38e3a7c61f82db3e5c72939dcd8e83a2ce0a28bec7dc OK +WAVE65.BIN 73500 3031d3859775b91cb9a047508a0a7ce6bcc5dad6caa3c25c2b8b98048842ba2a OK +WAVE66.BIN 73500 23063dbe44695c76c55f15e2450f3c62d60a8a09f6ac32dc3aba97c4166b0752 OK +WAVE67.BIN 73500 d18795aaf23d511fe2d618c713dfa495c541938e1e32a3fd9307a0ea9a468c5a OK +WAVE68.BIN 73500 5d1babb82f7b641bb70120b807e77fae6c9ce9e5c9b43afb9326877346da66bf OK +WAVE69.BIN 73500 cc20d1dc5a22b0f99a050cefbd694ea319cb1ce120d2d35b6f40f6629d9803d2 OK +WAVE70.BIN 73500 09cd5935b33a98841d43e0c4f62364a8735b5a2272f38730913312e91d3807dd OK +WAVE71.BIN 73500 977cd0fd9c4f54334ccb60121deb18fc34cf98b7cc3bbb10912a131048a67508 OK +WAVE72.BIN 73500 a432a8672ccbe50b49bb86359e461ec5eacd4648ffec4649fcb58774ed40c936 OK +WAVE73.BIN 73500 d5c78555381a768cd37ed3d4e249525b1302145a92165ee7e7477d8ddfe192d1 OK +WAVE74.BIN 73500 72708d2bfc43786bbd199a564f386a92717d2cfc5da937ac90c9282a7830414f OK +WAVE75.BIN 73500 1c61c89097b6519fabb100ca64c69445f3eb6cd39b7ff4591a7d52396ae638f9 OK +WAVE76.BIN 73500 02ee53ac4ea9de6eb0d0e8524ab61453b932089eb9967742a1369440a2990c90 OK +WAVE77.BIN 73500 5593f588e5eaa1caa5f1cac9243b4bf8b13ed854a9249a3e50af74ca4bba1889 OK +WAVE78.BIN 73500 715827a9df0d7393e5014a2bb3e800d2e91c4163a20ae934b2919d35b9e7ca0b OK +WAVE79.BIN 73500 e7d865123415f11d79e4ec6bd929f347097dbac58194e4f4fec2f7317a30908c OK +WAVE80.BIN 73500 ea11c812b800ddd43a3695467cb4c511052a637a328d64ef3f528e69843662a6 OK +WAVE81.BIN 73500 7d6776fee8521204cf27d641fe9dac70cc52ba12341c8ea09dd6673442e0daa9 OK +WAVE82.BIN 73500 aa2a432b1c564f8559c3be36899db58e2830035ccd83d775159399b1dae3bd7c OK +WAVE83.BIN 73500 aeba71ec8c768186bded317df0493e482c5cf0c65c14446aacc709268a49f014 OK +WAVE84.BIN 73500 a1619dbda34aed7e0677b821bbbba99c41c6089d082326a195bf1b82cce9681d OK +WAVE85.BIN 73500 fa9889c9c5deff8830d9f70618da9f24abcd219621f22f04393701ec4c130465 OK +WAVE86.BIN 73500 711db013aef51272f99167db9e06cb8a808b23d904bdf0c634c4c26188a0b705 OK +WAVE87.BIN 73500 3a13a49b8f755bc595d722445fab873918f579008361ad0b8f7835e46bbb3b16 OK +WAVE88.BIN 73500 37bc3425556c76f764bf7c3e253d0b5cdfed69f9edf1bd6e153ba53e9d1bcd97 OK +WAVE89.BIN 73500 d43969601bd41068d2dbe8c2d6bf80e5f84852fad455f37a3218886fb3c31605 OK +WAVE90.BIN 73500 c35f5a357c93841ad70b5acd426406f3f2b8faccb1b90ab2eeda58f676616060 OK +WAVE91.BIN 73500 e1a83648238949fc6881b9b3b0df5d013b48bd9e1a74359c0b05c8a93c684c6d OK +WAVE92.BIN 73500 f89ac2acdd2e0ee169b5c17024c970e6f797359595458d45d3fa45a49a5cda8b OK +WAVE93.BIN 73500 e11ca6198f8d5ca8399ea22a92e1149e9bfaab6168bded1374b4416670f3b94e OK +WAVE94.BIN 73500 7a4375e6e5586da74c743306ae90a9f082456ec9f2a07e7be74b17f341fe7bc3 OK +WAVE95.BIN 73500 e7769e41724d3a030f7a2b7a568be2bd23f171a4dd5829c894bfc51024e9bee7 OK +WAVE96.BIN 73500 8665629333a18688659c3515487d1fd5cde565f8f120cb4186dff9ea4080af1a OK +WAVE97.BIN 73500 eef8d3d949d03e3ad33945cf0cca2141b501bd87376ab09375a5f2d4e076d45c OK +WAVE98.BIN 73500 702c7be0ad8b500918ecd5b8833926576738229c293c4e9c2d8cd79d44f9198d OK +WAVE99.BIN 73500 a692f1e5923e15cf53910ae89dfe8122a1141f2eb43fce1fdb1c75438a3128f0 OK +SUMMARY: 100 files, mismatches: NONE diff --git a/docs/测试说明/测试数据/wave_fix_20261107/samples/WAVE06_bitflip.BIN b/docs/测试说明/测试数据/wave_fix_20261107/samples/WAVE06_bitflip.BIN new file mode 100644 index 0000000000000000000000000000000000000000..fa9128fd291348c280d151517426f13c2cdfb390 GIT binary patch literal 5250 zcmeH~y>cBz5QX>dil2ahfQ*>e0G@$_(6(fit9S~mAD2myWeACR3^Pm3uZkqm_{`hil znx;>u?_d7h&S_e$KAERqzgV#6!CnT;-e7+)U_Kn|j|Thqzppm6E;g6_cG=F0X0fro zi3@_8_SNQkn^jEaaW{5-kA*F{mpy8Q@~fh1lIt?>Vw)vBTIj1^eDY*T z=6F*Hk@^Pg@)g>AtLWwF*Ul=$s<%{5{hNla1umYj-E2L?=%5&4^OdhYb~#j*c&5SI zkY8nFQzsMBvYI$NBUh;)o^HbLSrzhq4{lej)#=V&&6C4vV8fAo)u#Wj`8T8*GJFro zEDfVxa?@uz)U(@H{(8WqLh9=oBY0GR6<*HqFC#p5S8UNEM|hZo6R3L3!MdQhd0IuA zn)UA^m03CbR!(lRf-x#~d;@sKzfG$bI+kZxJ!Nw;*uiE}s`QQLm%~gHsMIH!nW^)w z3dL5rFlUNY*SPn1b6P>g!EwgV|INJr@BIY+uL-Q@+j%{|ZHwpa{JL${dcNx(;&1u} zA$HxYHyw>-Cg)w-_>G&lo>zwb(kSMsSK|M9x_Uh68 zwy{hL+32FC`P5>eNS(yB#SoL9__S2dw~cev?iG)&P4h7?>o7&R;l-C)_6`m|8O4=4 zOg(Yu2;aQm1MhpG2lSdByqNT{>2Wy3X<@Tpw1+Tz+AR+MpG?ZW`frxiNLa`kul!;9!scGqX90axlE%?g$ z&Ns_@=Eoh1L;*+Vw)fg=uf1n7zxni&ar|}j{<|NJKMb4U^y7QOx3B*AY8ZYQero4o zxIcXJ-S=%DhH-pv8h-p>!+BbqHw(9HF?6z zdl4<}dZ>+2nmtvn^kZo^=gG~{nDKITIv!v45${pEIgiE{IJL^2 zn>JXFXKp-ZSz|zIc{%&TSDr+=!(z6(_~3Fb>)k%XZFKEmh+W#N`Y?pMaucDK(~Frw zo^Ykc>`{3%zUoB!bxV5XCoA(#D*!UBR(o&xIc->{mDkjVzwzcF5t9^Ic zop$E=sO=fC?M@H69~3r+Ht!E^t@s|d`T1b}=i|nPA7Am}Q+YIh*%=?Ub!Yml*IfK->~^gBiw%bA zG4{1SEa@jcD~S&AFwl2)X2wqITHV+6U{6OlQ+M(th9^Zo8F%+XBtB2%kTqP!R($Hi z4|l$uej~m4MSVSg-Tlh?{q}3mcQjvIzVrD)=L`IL_TTkQKD&V_(Z$2bxUk5YUxobA zfJuIAL7{BPw)|Bv8;G^C;8VM7g${c$7c#$DTDbk*^H+@O)JNthCxRSRtr=q}+)2YE zxA}}+S5bVNDu4PEzx;*qi7uaBklE8i`xGr^*k)f_!CHsqmqA9lY3IG+vx?|czctBgw|VOenVhxjE6w3cg_W=L)M@SAzAdX$y^-RUHHML_ zc1a!B6PY@=$Ckf|yt9fj&OGtuU!EO-qge2TD;h)6(U*@(~REw1; zCsAs;ZVG%>R4Yex42_fi6GIo!3-)~atM78=StLj5rdKlZyv>JC9G<)*<`_2i;m;lw z-_$jv2lgLc#$|su%;)<9`~GHs^Q6t%_xkyut(>0qRX=yV`~h0(*l*zqyS(6{Vtop}yyzp}5=TvP$d@Q| zXs;M_+CMm~Ks@!J{cvU{3k-6G-^|u&2aE%yF8GVlO3BEiPfidjvEzsBu3zM{+stLR pv&N%GeS7VhTgmgzVZ5r$R%(1EPi8H4K$}%&P1Wvdv*w?_{u`~QRZ{=} literal 0 HcmV?d00001 diff --git a/docs/测试说明/测试数据/wave_fix_20261107/samples/WAVE99_headflip.BIN b/docs/测试说明/测试数据/wave_fix_20261107/samples/WAVE99_headflip.BIN new file mode 100644 index 0000000000000000000000000000000000000000..e4def00b4e2c1d9aafaf3c21867a85ddb14492ef GIT binary patch literal 5250 zcmeH~OL84W5JmfAg9jckU<(9GVC*e0fFY8M!vySr5$I#^)RI5Jh+xRV2=s9;k2G8?uZ10HRxmYIl zY2D#FtJC=D!jo0bQ~;w*K9)={yskScSciypli^+s;)rZl5|eJ=jq=7~O}SGcdHvdV zCX?z_##8Hbqm-`VrJgl8si3#lXtJmCat2n2HsUa*TURy4XZ7%2yn~HD9OmNfdr4N9 z;qE)uA8lk`ES*M0<0TK>a**R)ryel}o|Expd{!poc>JY4wU5i*C~M})_sLDqcO~ICPRL9snnRo8S8P) zPM&x6F*4>Fes&QVaDUY-)8goXCbm_Z7A!cr)UYj;qbJ4 zDpE5;96l}1uf-D;z3uNS?AF_nAv=7@G@F{9CRY1PFxiMP% zu#Cnen|Q0sWChXIi$7S=p0H2))f-IM!{CkNuUFZlFn68G=KPbX)#z)DVa3qn5ir*oAxeLW^fbHTiO_w4oYe>4C8_un{y>0j8!YPy-;lzCmAt1=m^ z?62z}c3b^;R@1sn@p!MwYBxwt`~lA==WT17roZzG}Hka9C0kUjFBw|TrHL} zSr;8JtxGmGO2>I!?RmZ|dvy|{-EjF3HdbKUU7!-o&bwzK_Z|9#zcG1 relisten +[RX] 2026-11-07T23:13:56.979+08:00 [2026-11-07 23:13:56] [FTP] CMD RETR WAVE90.BIN +[RX] 2026-11-07T23:13:57.425+08:00 [2026-11-07 23:13:56] [FTP] CMD RETR WAVE99.BIN +[RX] 2026-11-07T23:13:57.986+08:00 [2026-11-07 23:13:57][NET] sock1 reconcile: chip not listening (0x00/0xFF, was state=3) -> relisten +[RX] 2026-11-07T23:13:58.404+08:00 [2026-11-07 23:13:57] [FTP] CMD RETR WAVE00.BIN +[RX] 2026-11-07T23:13:59.058+08:00 [2026-11-07 23:13:58] [FTP] CMD RETR WAVE01.BIN +[RX] 2026-11-07T23:13:59.720+08:00 [2026-11-07 23:13:59] [FTP] CMD RETR WAVE02.BIN +[RX] 2026-11-07T23:14:00.413+08:00 [2026-11-07 23:13:59] [FTP] CMD RETR WAVE03.BIN +[RX] 2026-11-07T23:14:01.107+08:00 [2026-11-07 23:14:00] [FTP] CMD RETR WAVE04.BIN +[RX] 2026-11-07T23:14:01.833+08:00 [2026-11-07 23:14:01] [FTP] CMD RETR WAVE05.BIN +[RX] 2026-11-07T23:14:02.529+08:00 [2026-11-07 23:14:01] [FTP] CMD RETR WAVE06.BIN +[RX] 2026-11-07T23:14:02.995+08:00 [2026-11-07 23:14:02][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000 +[RX] 2026-11-07T23:14:03.269+08:00 [2026-11-07 23:14:02] [FTP] CMD RETR WAVE07.BIN +[RX] 2026-11-07T23:14:04.026+08:00 [2026-11-07 23:14:03] [FTP] CMD RETR WAVE08.BIN +[RX] 2026-11-07T23:14:04.683+08:00 [2026-11-07 23:14:04] [FTP] CMD RETR WAVE09.BIN +[RX] 2026-11-07T23:14:05.445+08:00 [2026-11-07 23:14:04] [FTP] CMD RETR WAVE10.BIN +[RX] 2026-11-07T23:14:06.223+08:00 [2026-11-07 23:14:05] [FTP] CMD RETR WAVE11.BIN +[RX] 2026-11-07T23:14:06.929+08:00 [2026-11-07 23:14:06] [FTP] CMD RETR WAVE12.BIN +[RX] 2026-11-07T23:14:07.632+08:00 [2026-11-07 23:14:07] [FTP] CMD RETR WAVE13.BIN +[RX] 2026-11-07T23:14:08.429+08:00 [2026-11-07 23:14:07] [FTP] CMD RETR WAVE14.BIN +[RX] 2026-11-07T23:14:09.123+08:00 [2026-11-07 23:14:08] [FTP] CMD RETR WAVE15.BIN +[RX] 2026-11-07T23:14:09.839+08:00 [2026-11-07 23:14:09] [FTP] CMD RETR WAVE16.BIN +[RX] 2026-11-07T23:14:10.480+08:00 [2026-11-07 23:14:09] [FTP] CMD RETR WAVE17.BIN +[RX] 2026-11-07T23:14:11.225+08:00 [2026-11-07 23:14:10] [FTP] CMD RETR WAVE18.BIN +[RX] 2026-11-07T23:14:11.886+08:00 [2026-11-07 23:14:11] [FTP] CMD RETR WAVE19.BIN +[RX] 2026-11-07T23:14:12.632+08:00 [2026-11-07 23:14:12] [FTP] CMD RETR WAVE20.BIN +[RX] 2026-11-07T23:14:12.996+08:00 [2026-11-07 23:14:12][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000 +[RX] 2026-11-07T23:14:13.420+08:00 [2026-11-07 23:14:12] [FTP] CMD RETR WAVE21.BIN +[RX] 2026-11-07T23:14:14.092+08:00 [2026-11-07 23:14:13] [FTP] CMD RETR WAVE22.BIN +[RX] 2026-11-07T23:14:14.704+08:00 [2026-11-07 23:14:14] [FTP] CMD RETR WAVE23.BIN +[RX] 2026-11-07T23:14:15.324+08:00 [2026-11-07 23:14:14] [FTP] CMD RETR WAVE24.BIN +[RX] 2026-11-07T23:14:16.026+08:00 [2026-11-07 23:14:15] [FTP] CMD RETR WAVE25.BIN +[RX] 2026-11-07T23:14:16.676+08:00 [2026-11-07 23:14:16] [FTP] CMD RETR WAVE26.BIN +[RX] 2026-11-07T23:14:17.430+08:00 [2026-11-07 23:14:16] [FTP] CMD RETR WAVE27.BIN +[RX] 2026-11-07T23:14:18.106+08:00 [2026-11-07 23:14:17] [FTP] CMD RETR WAVE28.BIN +[RX] 2026-11-07T23:14:18.427+08:00 [2026-11-07 23:14:17] [FTP] CMD RETR WAVE29.BIN +[RX] 2026-11-07T23:14:19.070+08:00 [2026-11-07 23:14:18] [FTP] CMD RETR WAVE30.BIN +[RX] 2026-11-07T23:14:19.704+08:00 [2026-11-07 23:14:19] [FTP] CMD RETR WAVE31.BIN +[RX] 2026-11-07T23:14:20.426+08:00 [2026-11-07 23:14:19] [FTP] CMD RETR WAVE32.BIN +[RX] 2026-11-07T23:14:21.025+08:00 [2026-11-07 23:14:20] [FTP] CMD RETR WAVE33.BIN +[RX] 2026-11-07T23:14:21.613+08:00 [2026-11-07 23:14:21] [FTP] CMD RETR WAVE34.BIN +[RX] 2026-11-07T23:14:22.263+08:00 [2026-11-07 23:14:21] [FTP] CMD RETR WAVE35.BIN +[RX] 2026-11-07T23:14:22.865+08:00 [2026-11-07 23:14:22] [FTP] CMD RETR WAVE36.BIN +[RX] 2026-11-07T23:14:23.002+08:00 [2026-11-07 23:14:22][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000 +[RX] 2026-11-07T23:14:23.220+08:00 [2026-11-07 23:14:22] [FTP] CMD RETR WAVE37.BIN +[RX] 2026-11-07T23:14:23.832+08:00 [2026-11-07 23:14:23] [FTP] CMD RETR WAVE38.BIN +[RX] 2026-11-07T23:14:24.411+08:00 [2026-11-07 23:14:23] [FTP] CMD RETR WAVE39.BIN +[RX] 2026-11-07T23:14:25.033+08:00 [2026-11-07 23:14:24] [FTP] CMD RETR WAVE40.BIN +[RX] 2026-11-07T23:14:25.647+08:00 [2026-11-07 23:14:25] [FTP] CMD RETR WAVE41.BIN +[RX] 2026-11-07T23:14:26.212+08:00 [2026-11-07 23:14:25] [FTP] CMD RETR WAVE42.BIN +[RX] 2026-11-07T23:14:26.831+08:00 [2026-11-07 23:14:26] [FTP] CMD RETR WAVE43.BIN +[RX] 2026-11-07T23:14:27.421+08:00 [2026-11-07 23:14:26] [FTP] CMD RETR WAVE44.BIN +[RX] 2026-11-07T23:14:27.877+08:00 [2026-11-07 23:14:27] [FTP] CMD RETR WAVE45.BIN +[RX] 2026-11-07T23:14:28.482+08:00 [2026-11-07 23:14:27] [FTP] CMD RETR WAVE46.BIN +[RX] 2026-11-07T23:14:29.023+08:00 [2026-11-07 23:14:28] [FTP] CMD RETR WAVE47.BIN +[RX] 2026-11-07T23:14:29.635+08:00 [2026-11-07 23:14:29] [FTP] CMD RETR WAVE48.BIN +[RX] 2026-11-07T23:14:30.236+08:00 [2026-11-07 23:14:29] [FTP] CMD RETR WAVE49.BIN +[RX] 2026-11-07T23:14:30.826+08:00 [2026-11-07 23:14:30] [FTP] CMD RETR WAVE50.BIN +[RX] 2026-11-07T23:14:31.305+08:00 [2026-11-07 23:14:30] [FTP] CMD RETR WAVE51.BIN +[RX] 2026-11-07T23:14:31.812+08:00 [2026-11-07 23:14:31] [FTP] CMD RETR WAVE52.BIN +[RX] 2026-11-07T23:14:32.423+08:00 [2026-11-07 23:14:31] [FTP] CMD RETR WAVE53.BIN +[RX] 2026-11-07T23:14:32.887+08:00 [2026-11-07 23:14:32] [FTP] CMD RETR WAVE54.BIN +[RX] 2026-11-07T23:14:33.002+08:00 [2026-11-07 23:14:32][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000 +[RX] 2026-11-07T23:14:33.436+08:00 [2026-11-07 23:14:32] [FTP] CMD RETR WAVE55.BIN +[RX] 2026-11-07T23:14:33.893+08:00 [2026-11-07 23:14:33] [FTP] CMD RETR WAVE56.BIN +[RX] 2026-11-07T23:14:34.422+08:00 [2026-11-07 23:14:33] [FTP] CMD RETR WAVE57.BIN +[RX] 2026-11-07T23:14:34.898+08:00 [2026-11-07 23:14:34] [FTP] CMD RETR WAVE58.BIN +[RX] 2026-11-07T23:14:35.414+08:00 [2026-11-07 23:14:34] [FTP] CMD RETR WAVE59.BIN +[RX] 2026-11-07T23:14:35.880+08:00 [2026-11-07 23:14:35] [FTP] CMD RETR WAVE60.BIN +[RX] 2026-11-07T23:14:36.420+08:00 [2026-11-07 23:14:35] [FTP] CMD RETR WAVE61.BIN +[RX] 2026-11-07T23:14:36.865+08:00 [2026-11-07 23:14:36] [FTP] CMD RETR WAVE62.BIN +[RX] 2026-11-07T23:14:37.299+08:00 [2026-11-07 23:14:36] [FTP] CMD RETR WAVE63.BIN +[RX] 2026-11-07T23:14:37.827+08:00 [2026-11-07 23:14:37] [FTP] CMD RETR WAVE64.BIN +[RX] 2026-11-07T23:14:38.315+08:00 [2026-11-07 23:14:37] [FTP] CMD RETR WAVE65.BIN +[RX] 2026-11-07T23:14:38.822+08:00 [2026-11-07 23:14:38] [FTP] CMD RETR WAVE66.BIN +[RX] 2026-11-07T23:14:39.288+08:00 [2026-11-07 23:14:38] [FTP] CMD RETR WAVE67.BIN +[RX] 2026-11-07T23:14:39.828+08:00 [2026-11-07 23:14:39] [FTP] CMD RETR WAVE68.BIN +[RX] 2026-11-07T23:14:40.307+08:00 [2026-11-07 23:14:39] [FTP] CMD RETR WAVE69.BIN +[RX] 2026-11-07T23:14:40.803+08:00 [2026-11-07 23:14:40] [FTP] CMD RETR WAVE70.BIN +[RX] 2026-11-07T23:14:41.252+08:00 [2026-11-07 23:14:40] [FTP] CMD RETR WAVE71.BIN +[RX] 2026-11-07T23:14:41.820+08:00 [2026-11-07 23:14:41] [FTP] CMD RETR WAVE72.BIN +[RX] 2026-11-07T23:14:42.308+08:00 [2026-11-07 23:14:41] [FTP] CMD RETR WAVE73.BIN +[RX] 2026-11-07T23:14:42.837+08:00 [2026-11-07 23:14:42] [FTP] CMD RETR WAVE74.BIN +[RX] 2026-11-07T23:14:42.994+08:00 [2026-11-07 23:14:42][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000 +[RX] 2026-11-07T23:14:43.422+08:00 [2026-11-07 23:14:42] [FTP] CMD RETR WAVE75.BIN +[RX] 2026-11-07T23:14:43.871+08:00 [2026-11-07 23:14:43] [FTP] CMD RETR WAVE76.BIN +[RX] 2026-11-07T23:14:44.288+08:00 [2026-11-07 23:14:43] [FTP] CMD RETR WAVE77.BIN +[RX] 2026-11-07T23:14:44.830+08:00 [2026-11-07 23:14:44] [FTP] CMD RETR WAVE78.BIN +[RX] 2026-11-07T23:14:45.248+08:00 [2026-11-07 23:14:44] [FTP] CMD RETR WAVE79.BIN +[RX] 2026-11-07T23:14:45.698+08:00 [2026-11-07 23:14:45] [FTP] CMD RETR WAVE80.BIN +[RX] 2026-11-07T23:14:46.102+08:00 [2026-11-07 23:14:45] [FTP] CMD RETR WAVE81.BIN +[RX] 2026-11-07T23:14:46.642+08:00 [2026-11-07 23:14:46] [FTP] CMD RETR WAVE82.BIN +[RX] 2026-11-07T23:14:47.108+08:00 [2026-11-07 23:14:46] [FTP] CMD RETR WAVE83.BIN +[RX] 2026-11-07T23:14:47.616+08:00 [2026-11-07 23:14:47] [FTP] CMD RETR WAVE84.BIN +[RX] 2026-11-07T23:14:48.042+08:00 [2026-11-07 23:14:47] [FTP] CMD RETR WAVE85.BIN +[RX] 2026-11-07T23:14:48.517+08:00 [2026-11-07 23:14:47] [FTP] CMD RETR WAVE86.BIN +[RX] 2026-11-07T23:14:49.026+08:00 [2026-11-07 23:14:48] [FTP] CMD RETR WAVE87.BIN +[RX] 2026-11-07T23:14:49.440+08:00 [2026-11-07 23:14:48] [FTP] CMD RETR WAVE88.BIN +[RX] 2026-11-07T23:14:49.873+08:00 [2026-11-07 23:14:49] [FTP] CMD RETR WAVE89.BIN +[RX] 2026-11-07T23:14:50.309+08:00 [2026-11-07 23:14:49] [FTP] CMD RETR WAVE90.BIN +[RX] 2026-11-07T23:14:50.806+08:00 [2026-11-07 23:14:50] [FTP] CMD RETR WAVE91.BIN +[RX] 2026-11-07T23:14:51.240+08:00 [2026-11-07 23:14:50] [FTP] CMD RETR WAVE92.BIN +[RX] 2026-11-07T23:14:51.699+08:00 [2026-11-07 23:14:51] [FTP] CMD RETR WAVE93.BIN +[RX] 2026-11-07T23:14:52.241+08:00 [2026-11-07 23:14:51] [FTP] CMD RETR WAVE94.BIN +[RX] 2026-11-07T23:14:52.706+08:00 [2026-11-07 23:14:52] [FTP] CMD RETR WAVE95.BIN +[RX] 2026-11-07T23:14:52.996+08:00 [2026-11-07 23:14:52][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000 +[RX] 2026-11-07T23:14:53.226+08:00 [2026-11-07 23:14:52] [FTP] CMD RETR WAVE96.BIN +[RX] 2026-11-07T23:14:53.693+08:00 [2026-11-07 23:14:53] [FTP] CMD RETR WAVE97.BIN +[RX] 2026-11-07T23:14:54.230+08:00 [2026-11-07 23:14:53] [FTP] CMD RETR WAVE98.BIN +[RX] 2026-11-07T23:14:54.675+08:00 [2026-11-07 23:14:54] [FTP] CMD RETR WAVE99.BIN +[RX] 2026-11-07T23:14:55.225+08:00 [2026-11-07 23:14:54][NET] sock1 reconcile: chip not listening (0x00/0xFF, was state=3) -> relisten +[RX] 2026-11-07T23:14:56.852+08:00 [2026-11-07 23:14:56][UI_CONTENT_PAGE] page open: id=wave_play rows=0 +[RX] 2026-11-07T23:14:56.871+08:00 [2026-11-07 23:14:56][ERR][UI_TASK] ui wave head idx=99 reject=2 stored=0x0000 calc=0x0000 +[RX] 2026-11-07T23:14:59.166+08:00 [2026-11-07 23:14:58][UI_CONTENT_PAGE] page close: id=wave_play +[RX] 2026-11-07T23:15:02.180+08:00 [2026-11-07 23:15:01][NET] sock2 reconcile: chip not listening (0x00/0xFF, was state=3) -> relisten +[RX] 2026-11-07T23:15:02.987+08:00 [2026-11-07 23:15:02][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000 +[RX] 2026-11-07T23:15:12.993+08:00 [2026-11-07 23:15:12][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000 +[RX] 2026-11-07T23:15:22.987+08:00 [2026-11-07 23:15:22][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000 +[RX] 2026-11-07T23:15:32.993+08:00 [2026-11-07 23:15:32][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000 +[RX] 2026-11-07T23:15:42.991+08:00 [2026-11-07 23:15:42][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000 +[RX] 2026-11-07T23:15:52.994+08:00 [2026-11-07 23:15:52][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000 +[RX] 2026-11-07T23:16:02.993+08:00 [2026-11-07 23:16:02][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000 +[RX] 2026-11-07T23:16:12.984+08:00 [2026-11-07 23:16:12][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000 +[RX] 2026-11-07T23:16:22.986+08:00 [2026-11-07 23:16:22][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000 +[RX] 2026-11-07T23:16:32.992+08:00 [2026-11-07 23:16:32][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000 +[RX] 2026-11-07T23:16:42.992+08:00 [2026-11-07 23:16:42][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000 +[RX] 2026-11-07T23:16:52.988+08:00 [2026-11-07 23:16:52][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000 +[RX] 2026-11-07T23:17:02.992+08:00 [2026-11-07 23:17:02][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000 +[RX] 2026-11-07T23:17:12.987+08:00 [2026-11-07 23:17:12][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000 diff --git a/docs/测试说明/测试数据/wave_fix_20261107/serial_excerpt_before.txt b/docs/测试说明/测试数据/wave_fix_20261107/serial_excerpt_before.txt new file mode 100644 index 00000000..37331dc5 --- /dev/null +++ b/docs/测试说明/测试数据/wave_fix_20261107/serial_excerpt_before.txt @@ -0,0 +1,16 @@ +[RX] 2026-11-07T22:44:12.602+08:00 [2026-11-07 22:44:12] [FTP] UPLOAD '/WAVE/WAVE06.BIN' 5250 bytes OK +[RX] 2026-11-07T22:44:13.311+08:00 [2026-11-07 22:44:12][NET] sock1 reconcile: chip not listening (0x00/0xFF, was state=3) -> relisten +[RX] 2026-11-07T22:44:15.759+08:00 [2026-11-07 22:44:15][ADC_TASK] wave: seg=0 armed=0 src=- pts=320 err=0 ovf=0 drop=0 +[RX] 2026-11-07T22:44:16.475+08:00 [2026-11-07 22:44:16][UI_CONTENT_PAGE] page open: id=wave_play rows=0 +[RX] 2026-11-07T22:44:22.188+08:00 [2026-11-07 22:44:21][UI_CONTENT_PAGE] page close: id=wave_play +[RX] 2026-11-07T22:44:25.792+08:00 [2026-11-07 22:44:25][ADC_TASK] wave: seg=0 armed=0 src=- pts=320 err=0 ovf=0 drop=0 +[RX] 2026-11-07T22:44:25.802+08:00 [2026-11-07 22:44:25] [FTP] UPLOAD '/WAVE/WAVE06.BIN' 141750 bytes OK +[RX] 2026-11-07T22:44:26.312+08:00 [2026-11-07 22:44:25] [FTP] CMD RETR WAVE06.BIN +[RX] 2026-11-07T22:44:27.173+08:00 [2026-11-07 22:44:26][NET] sock1 reconcile: chip not listening (0x00/0xFF, was state=3) -> relisten +[RX] 2026-11-07T22:44:27.183+08:00 [2026-11-07 22:44:26][NET] sock2 reconcile: chip not listening (0x00/0xFF, was state=0) -> relisten +[RX] 2026-11-07T22:44:35.767+08:00 [2026-11-07 22:44:35][ADC_TASK] wave: seg=0 armed=0 src=- pts=320 err=0 ovf=0 drop=0 +[RX] 2026-11-07T22:44:45.764+08:00 [2026-11-07 22:44:45][ADC_TASK] wave: seg=0 armed=0 src=- pts=320 err=0 ovf=0 drop=0 +[RX] 2026-11-07T22:44:55.856+08:00 [2026-11-07 22:44:55][ADC_TASK] wave: seg=0 armed=0 src=- pts=320 err=0 ovf=0 drop=0 +[RX] 2026-11-07T22:45:05.762+08:00 [2026-11-07 22:45:05][ADC_TASK] wave: seg=0 armed=0 src=- pts=320 err=0 ovf=0 drop=0 +[RX] 2026-11-07T22:45:15.760+08:00 [2026-11-07 22:45:15][ADC_TASK] wave: seg=0 armed=0 src=- pts=320 err=0 ovf=0 drop=0 +[RX] 2026-11-07T22:45:25.758+08:00 [2026-11-07 22:45:25][ADC_TASK] wave: seg=0 armed=0 src=- pts=320 err=0 ovf=0 drop=0 diff --git a/docs/测试说明/测试数据/wave_fix_20261107/serial_excerpt_f1.txt b/docs/测试说明/测试数据/wave_fix_20261107/serial_excerpt_f1.txt new file mode 100644 index 00000000..b102a408 --- /dev/null +++ b/docs/测试说明/测试数据/wave_fix_20261107/serial_excerpt_f1.txt @@ -0,0 +1,150 @@ + "[RX] 2026-11-07T23:02:13.012+08:00 [2026-11-07 23:02:12][ADC_TASK] wave: seg=0 armed=0 src=- pts=320 err=0 ovf=0 drop=0", + "[RX] 2026-11-07T23:02:23.009+08:00 [2026-11-07 23:02:22][ADC_TASK] wave: seg=0 armed=0 src=- pts=320 err=0 ovf=0 drop=0", + "[RX] 2026-11-07T23:02:33.012+08:00 [2026-11-07 23:02:32][ADC_TASK] wave: seg=0 armed=0 src=- pts=320 err=0 ovf=0 drop=0", + "[RX] 2026-11-07T23:02:43.009+08:00 [2026-11-07 23:02:42][ADC_TASK] wave: seg=0 armed=0 src=- pts=320 err=0 ovf=0 drop=0", + "[RX] 2026-11-07T23:02:53.007+08:00 [2026-11-07 23:02:52][ADC_TASK] wave: seg=0 armed=0 src=- pts=320 err=0 ovf=0 drop=0", + "[RX] 2026-11-07T23:03:03.006+08:00 [2026-11-07 23:03:02][ADC_TASK] wave: seg=0 armed=0 src=- pts=320 err=0 ovf=0 drop=0", + "[RX] 2026-11-07T23:03:13.010+08:00 [2026-11-07 23:03:12][ADC_TASK] wave: seg=0 armed=0 src=- pts=320 err=0 ovf=0 drop=0", + "[RX] 2026-11-07T23:03:13.135+08:00 [2026-11-07 23:03:12][UI_CONTENT_PAGE] page open: id=wave_manual rows=0", + "[RX] 2026-11-07T23:03:23.005+08:00 [2026-11-07 23:03:22][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:03:33.009+08:00 [2026-11-07 23:03:32][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:03:36.209+08:00 [2026-11-07 23:03:35][UI_CONTENT_PAGE] page close: id=wave_manual", + "[RX] 2026-11-07T23:03:43.009+08:00 [2026-11-07 23:03:42][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:03:53.011+08:00 [2026-11-07 23:03:52][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:04:03.006+08:00 [2026-11-07 23:04:02][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:04:13.008+08:00 [2026-11-07 23:04:12][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:04:23.003+08:00 [2026-11-07 23:04:22][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:04:33.002+08:00 [2026-11-07 23:04:32][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:04:43.004+08:00 [2026-11-07 23:04:42][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:04:53.005+08:00 [2026-11-07 23:04:52][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:05:03.001+08:00 [2026-11-07 23:05:02][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:05:13.010+08:00 [2026-11-07 23:05:12][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:05:23.001+08:00 [2026-11-07 23:05:22][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:05:33.008+08:00 [2026-11-07 23:05:32][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:05:43.000+08:00 [2026-11-07 23:05:42][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:05:52.999+08:00 [2026-11-07 23:05:52][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:06:03.019+08:00 [2026-11-07 23:06:02][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:06:13.017+08:00 [2026-11-07 23:06:12][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:06:23.001+08:00 [2026-11-07 23:06:22][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:06:33.018+08:00 [2026-11-07 23:06:32][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:06:43.010+08:00 [2026-11-07 23:06:42][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:06:53.001+08:00 [2026-11-07 23:06:52][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:07:03.005+08:00 [2026-11-07 23:07:02][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:07:12.998+08:00 [2026-11-07 23:07:12][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:07:23.000+08:00 [2026-11-07 23:07:22][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:07:33.000+08:00 [2026-11-07 23:07:32][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:07:43.000+08:00 [2026-11-07 23:07:42][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:07:52.996+08:00 [2026-11-07 23:07:52][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:08:03.000+08:00 [2026-11-07 23:08:02][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:08:12.996+08:00 [2026-11-07 23:08:12][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:08:23.001+08:00 [2026-11-07 23:08:22][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:08:27.945+08:00 [2026-11-07 23:08:27] [FTP] CMD DELE WAVE00.BIN", + "[RX] 2026-11-07T23:08:28.018+08:00 [2026-11-07 23:08:27] [FTP] CMD DELE WAVE01.BIN", + "[RX] 2026-11-07T23:08:28.122+08:00 [2026-11-07 23:08:27] [FTP] CMD DELE WAVE02.BIN", + "[RX] 2026-11-07T23:08:28.174+08:00 [2026-11-07 23:08:27] [FTP] CMD DELE WAVE03.BIN", + "[RX] 2026-11-07T23:08:28.246+08:00 [2026-11-07 23:08:27] [FTP] CMD DELE WAVE04.BIN", + "[RX] 2026-11-07T23:08:28.309+08:00 [2026-11-07 23:08:27] [FTP] CMD DELE WAVE05.BIN", + "[RX] 2026-11-07T23:08:28.382+08:00 [2026-11-07 23:08:27] [FTP] CMD DELE WAVE06.BIN", + "[RX] 2026-11-07T23:08:28.423+08:00 [2026-11-07 23:08:27] [FTP] CMD DELE WAVE07.BIN", + "[RX] 2026-11-07T23:08:28.486+08:00 [2026-11-07 23:08:27] [FTP] CMD DELE WAVE08.BIN", + "[RX] 2026-11-07T23:08:28.558+08:00 [2026-11-07 23:08:27] [FTP] CMD DELE WAVE09.BIN", + "[RX] 2026-11-07T23:08:28.652+08:00 [2026-11-07 23:08:28] [FTP] CMD DELE WAVE10.BIN", + "[RX] 2026-11-07T23:08:28.715+08:00 [2026-11-07 23:08:28] [FTP] CMD DELE WAVE11.BIN", + "[RX] 2026-11-07T23:08:28.778+08:00 [2026-11-07 23:08:28] [FTP] CMD DELE WAVE12.BIN", + "[RX] 2026-11-07T23:08:28.850+08:00 [2026-11-07 23:08:28] [FTP] CMD DELE WAVE13.BIN", + "[RX] 2026-11-07T23:08:28.923+08:00 [2026-11-07 23:08:28] [FTP] CMD DELE WAVE14.BIN", + "[RX] 2026-11-07T23:08:28.985+08:00 [2026-11-07 23:08:28] [FTP] CMD DELE WAVE15.BIN", + "[RX] 2026-11-07T23:08:29.058+08:00 [2026-11-07 23:08:28] [FTP] CMD DELE WAVE16.BIN", + "[RX] 2026-11-07T23:08:29.131+08:00 [2026-11-07 23:08:28] [FTP] CMD DELE WAVE17.BIN", + "[RX] 2026-11-07T23:08:29.204+08:00 [2026-11-07 23:08:28] [FTP] CMD DELE WAVE18.BIN", + "[RX] 2026-11-07T23:08:29.276+08:00 [2026-11-07 23:08:28] [FTP] CMD DELE WAVE19.BIN", + "[RX] 2026-11-07T23:08:29.349+08:00 [2026-11-07 23:08:28] [FTP] CMD DELE WAVE20.BIN", + "[RX] 2026-11-07T23:08:29.411+08:00 [2026-11-07 23:08:28] [FTP] CMD DELE WAVE21.BIN", + "[RX] 2026-11-07T23:08:29.485+08:00 [2026-11-07 23:08:28] [FTP] CMD DELE WAVE22.BIN", + "[RX] 2026-11-07T23:08:29.547+08:00 [2026-11-07 23:08:28] [FTP] CMD DELE WAVE23.BIN", + "[RX] 2026-11-07T23:08:29.620+08:00 [2026-11-07 23:08:29] [FTP] CMD DELE WAVE24.BIN", + "[RX] 2026-11-07T23:08:29.777+08:00 [2026-11-07 23:08:29] [FTP] CMD DELE WAVE25.BIN", + "[RX] 2026-11-07T23:08:29.787+08:00 [2026-11-07 23:08:29] [FTP] CMD DELE WAVE26.BIN", + "[RX] 2026-11-07T23:08:29.870+08:00 [2026-11-07 23:08:29] [FTP] CMD DELE WAVE27.BIN", + "[RX] 2026-11-07T23:08:29.932+08:00 [2026-11-07 23:08:29] [FTP] CMD DELE WAVE28.BIN", + "[RX] 2026-11-07T23:08:29.973+08:00 [2026-11-07 23:08:29] [FTP] CMD DELE WAVE29.BIN", + "[RX] 2026-11-07T23:08:30.045+08:00 [2026-11-07 23:08:29] [FTP] CMD DELE WAVE30.BIN", + "[RX] 2026-11-07T23:08:30.117+08:00 [2026-11-07 23:08:29] [FTP] CMD DELE WAVE31.BIN", + "[RX] 2026-11-07T23:08:30.190+08:00 [2026-11-07 23:08:29] [FTP] CMD DELE WAVE32.BIN", + "[RX] 2026-11-07T23:08:30.263+08:00 [2026-11-07 23:08:29] [FTP] CMD DELE WAVE33.BIN", + "[RX] 2026-11-07T23:08:30.336+08:00 [2026-11-07 23:08:29] [FTP] CMD DELE WAVE34.BIN", + "[RX] 2026-11-07T23:08:30.409+08:00 [2026-11-07 23:08:29] [FTP] CMD DELE WAVE35.BIN", + "[RX] 2026-11-07T23:08:30.481+08:00 [2026-11-07 23:08:29] [FTP] CMD DELE WAVE36.BIN", + "[RX] 2026-11-07T23:08:30.523+08:00 [2026-11-07 23:08:29] [FTP] CMD DELE WAVE37.BIN", + "[RX] 2026-11-07T23:08:30.596+08:00 [2026-11-07 23:08:29] [FTP] CMD DELE WAVE38.BIN", + "[RX] 2026-11-07T23:08:30.638+08:00 STALL snap=0x000001E7 req=0x000001F7 h=000001E7,000001E7,000001E7,000001E7,000001E7,000001E7,000001E7,000001E7 mg=193 cf=0 seg=1", + "[RX] 2026-11-07T23:08:30.783+08:00 [2026-11-07 23:08:30] [FTP] CMD DELE WAVE39.BIN", + "[RX] 2026-11-07T23:08:30.845+08:00 [2026-11-07 23:08:30] [FTP] CMD DELE WAVE40.BIN", + "[RX] 2026-11-07T23:08:30.907+08:00 [2026-11-07 23:08:30] [FTP] CMD DELE WAVE41.BIN", + "[RX] 2026-11-07T23:08:30.990+08:00 [2026-11-07 23:08:30] [FTP] CMD DELE WAVE42.BIN", + "[RX] 2026-11-07T23:08:31.062+08:00 [2026-11-07 23:08:30] [FTP] CMD DELE WAVE43.BIN", + "[RX] 2026-11-07T23:08:31.145+08:00 [2026-11-07 23:08:30] [FTP] CMD DELE WAVE44.BIN", + "[RX] 2026-11-07T23:08:31.197+08:00 [2026-11-07 23:08:30] [FTP] CMD DELE WAVE45.BIN", + "[RX] 2026-11-07T23:08:31.281+08:00 [2026-11-07 23:08:30] [FTP] CMD DELE WAVE46.BIN", + "[RX] 2026-11-07T23:08:31.385+08:00 [2026-11-07 23:08:30] [FTP] CMD DELE WAVE47.BIN", + "[RX] 2026-11-07T23:08:31.447+08:00 [2026-11-07 23:08:30] [FTP] CMD DELE WAVE48.BIN", + "[RX] 2026-11-07T23:08:31.519+08:00 [2026-11-07 23:08:30] [FTP] CMD DELE WAVE49.BIN", + "[RX] 2026-11-07T23:08:31.561+08:00 [2026-11-07 23:08:30] [FTP] CMD DELE WAVE50.BIN", + "[RX] 2026-11-07T23:08:31.603+08:00 [2026-11-07 23:08:31] [FTP] CMD DELE WAVE51.BIN", + "[RX] 2026-11-07T23:08:31.644+08:00 [2026-11-07 23:08:31] [FTP] CMD DELE WAVE52.BIN", + "[RX] 2026-11-07T23:08:31.707+08:00 [2026-11-07 23:08:31] [FTP] CMD DELE WAVE53.BIN", + "[RX] 2026-11-07T23:08:31.738+08:00 [2026-11-07 23:08:31] [FTP] CMD DELE WAVE54.BIN", + "[RX] 2026-11-07T23:08:31.780+08:00 [2026-11-07 23:08:31] [FTP] CMD DELE WAVE55.BIN", + "[RX] 2026-11-07T23:08:31.821+08:00 [2026-11-07 23:08:31] [FTP] CMD DELE WAVE56.BIN", + "[RX] 2026-11-07T23:08:31.863+08:00 [2026-11-07 23:08:31] [FTP] CMD DELE WAVE57.BIN", + "[RX] 2026-11-07T23:08:31.904+08:00 [2026-11-07 23:08:31] [FTP] CMD DELE WAVE58.BIN", + "[RX] 2026-11-07T23:08:31.945+08:00 [2026-11-07 23:08:31] [FTP] CMD DELE WAVE59.BIN", + "[RX] 2026-11-07T23:08:31.987+08:00 [2026-11-07 23:08:31] [FTP] CMD DELE WAVE60.BIN", + "[RX] 2026-11-07T23:08:32.071+08:00 [2026-11-07 23:08:31] [FTP] CMD DELE WAVE61.BIN", + "[RX] 2026-11-07T23:08:32.092+08:00 [2026-11-07 23:08:31] [FTP] CMD DELE WAVE62.BIN", + "[RX] 2026-11-07T23:08:32.175+08:00 [2026-11-07 23:08:31] [FTP] CMD DELE WAVE63.BIN", + "[RX] 2026-11-07T23:08:32.248+08:00 [2026-11-07 23:08:31] [FTP] CMD DELE WAVE64.BIN", + "[RX] 2026-11-07T23:08:32.330+08:00 [2026-11-07 23:08:31] [FTP] CMD DELE WAVE65.BIN", + "[RX] 2026-11-07T23:08:32.446+08:00 [2026-11-07 23:08:31] [FTP] CMD DELE WAVE66.BIN", + "[RX] 2026-11-07T23:08:32.508+08:00 [2026-11-07 23:08:31] [FTP] CMD DELE WAVE67.BIN", + "[RX] 2026-11-07T23:08:32.581+08:00 [2026-11-07 23:08:31] [FTP] CMD DELE WAVE68.BIN", + "[RX] 2026-11-07T23:08:32.717+08:00 [2026-11-07 23:08:32] [FTP] CMD DELE WAVE69.BIN", + "[RX] 2026-11-07T23:08:32.758+08:00 [2026-11-07 23:08:32] [FTP] CMD DELE WAVE70.BIN", + "[RX] 2026-11-07T23:08:32.841+08:00 [2026-11-07 23:08:32] [FTP] CMD DELE WAVE71.BIN", + "[RX] 2026-11-07T23:08:32.914+08:00 [2026-11-07 23:08:32] [FTP] CMD DELE WAVE72.BIN", + "[RX] 2026-11-07T23:08:33.197+08:00 [2026-11-07 23:08:32][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:08:33.227+08:00 [2026-11-07 23:08:32] [FTP] CMD DELE WAVE73.BIN", + "[RX] 2026-11-07T23:08:33.258+08:00 [2026-11-07 23:08:32] [FTP] CMD DELE WAVE74.BIN", + "[RX] 2026-11-07T23:08:33.269+08:00 [2026-11-07 23:08:32] [FTP] CMD DELE WAVE75.BIN", + "[RX] 2026-11-07T23:08:33.373+08:00 [2026-11-07 23:08:32] [FTP] CMD DELE WAVE76.BIN", + "[RX] 2026-11-07T23:08:33.404+08:00 [2026-11-07 23:08:32] [FTP] CMD DELE WAVE77.BIN", + "[RX] 2026-11-07T23:08:33.487+08:00 [2026-11-07 23:08:32] [FTP] CMD DELE WAVE78.BIN", + "[RX] 2026-11-07T23:08:33.570+08:00 [2026-11-07 23:08:32] [FTP] CMD DELE WAVE79.BIN", + "[RX] 2026-11-07T23:08:33.643+08:00 [2026-11-07 23:08:33] [FTP] CMD DELE WAVE80.BIN", + "[RX] 2026-11-07T23:08:33.736+08:00 [2026-11-07 23:08:33] [FTP] CMD DELE WAVE81.BIN", + "[RX] 2026-11-07T23:08:33.850+08:00 [2026-11-07 23:08:33] [FTP] CMD DELE WAVE82.BIN", + "[RX] 2026-11-07T23:08:33.913+08:00 [2026-11-07 23:08:33] [FTP] CMD DELE WAVE83.BIN", + "[RX] 2026-11-07T23:08:33.995+08:00 [2026-11-07 23:08:33] [FTP] CMD DELE WAVE84.BIN", + "[RX] 2026-11-07T23:08:34.068+08:00 [2026-11-07 23:08:33] [FTP] CMD DELE WAVE85.BIN", + "[RX] 2026-11-07T23:08:34.150+08:00 [2026-11-07 23:08:33] [FTP] CMD DELE WAVE86.BIN", + "[RX] 2026-11-07T23:08:34.233+08:00 [2026-11-07 23:08:33] [FTP] CMD DELE WAVE87.BIN", + "[RX] 2026-11-07T23:08:34.316+08:00 [2026-11-07 23:08:33] [FTP] CMD DELE WAVE88.BIN", + "[RX] 2026-11-07T23:08:34.389+08:00 [2026-11-07 23:08:33] [FTP] CMD DELE WAVE89.BIN", + "[RX] 2026-11-07T23:08:34.473+08:00 [2026-11-07 23:08:33] [FTP] CMD DELE WAVE90.BIN", + "[RX] 2026-11-07T23:08:34.577+08:00 [2026-11-07 23:08:33] [FTP] CMD DELE WAVE91.BIN", + "[RX] 2026-11-07T23:08:34.639+08:00 [2026-11-07 23:08:34] [FTP] CMD DELE WAVE92.BIN", + "[RX] 2026-11-07T23:08:34.723+08:00 [2026-11-07 23:08:34] [FTP] CMD DELE WAVE93.BIN", + "[RX] 2026-11-07T23:08:34.805+08:00 [2026-11-07 23:08:34] [FTP] CMD DELE WAVE94.BIN", + "[RX] 2026-11-07T23:08:34.889+08:00 [2026-11-07 23:08:34] [FTP] CMD DELE WAVE95.BIN", + "[RX] 2026-11-07T23:08:34.973+08:00 [2026-11-07 23:08:34] [FTP] CMD DELE WAVE96.BIN", + "[RX] 2026-11-07T23:08:35.056+08:00 [2026-11-07 23:08:34] [FTP] CMD DELE WAVE97.BIN", + "[RX] 2026-11-07T23:08:35.139+08:00 [2026-11-07 23:08:34] [FTP] CMD DELE WAVE98.BIN", + "[RX] 2026-11-07T23:08:35.275+08:00 [2026-11-07 23:08:34] [FTP] CMD DELE WAVE99.BIN", + "[RX] 2026-11-07T23:08:42.995+08:00 [2026-11-07 23:08:42][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:08:53.004+08:00 [2026-11-07 23:08:52][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:09:02.997+08:00 [2026-11-07 23:09:02][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:09:03.638+08:00 [2026-11-07 23:09:03] [FTP] UPLOAD '/WAVE/WAVE06.BIN' 5250 bytes OK", + "[RX] 2026-11-07T23:09:10.839+08:00 [2026-11-07 23:09:10] [FTP] UPLOAD '/WAVE/WAVE99.BIN' 5250 bytes OK", + "[RX] 2026-11-07T23:09:13.001+08:00 [2026-11-07 23:09:12][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:09:15.641+08:00 [2026-11-07 23:09:15] [FTP] UPLOAD '/WAVE/WAVE99.BIN' 5250 bytes OK", + "[RX] 2026-11-07T23:09:22.998+08:00 [2026-11-07 23:09:22][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", diff --git a/docs/测试说明/测试数据/wave_fix_20261107/serial_excerpt_f2.txt b/docs/测试说明/测试数据/wave_fix_20261107/serial_excerpt_f2.txt new file mode 100644 index 00000000..a9c4b35c --- /dev/null +++ b/docs/测试说明/测试数据/wave_fix_20261107/serial_excerpt_f2.txt @@ -0,0 +1,166 @@ + "[RX] 2026-11-07T23:02:13.012+08:00 [2026-11-07 23:02:12][ADC_TASK] wave: seg=0 armed=0 src=- pts=320 err=0 ovf=0 drop=0", + "[RX] 2026-11-07T23:02:23.009+08:00 [2026-11-07 23:02:22][ADC_TASK] wave: seg=0 armed=0 src=- pts=320 err=0 ovf=0 drop=0", + "[RX] 2026-11-07T23:02:33.012+08:00 [2026-11-07 23:02:32][ADC_TASK] wave: seg=0 armed=0 src=- pts=320 err=0 ovf=0 drop=0", + "[RX] 2026-11-07T23:02:43.009+08:00 [2026-11-07 23:02:42][ADC_TASK] wave: seg=0 armed=0 src=- pts=320 err=0 ovf=0 drop=0", + "[RX] 2026-11-07T23:02:53.007+08:00 [2026-11-07 23:02:52][ADC_TASK] wave: seg=0 armed=0 src=- pts=320 err=0 ovf=0 drop=0", + "[RX] 2026-11-07T23:03:03.006+08:00 [2026-11-07 23:03:02][ADC_TASK] wave: seg=0 armed=0 src=- pts=320 err=0 ovf=0 drop=0", + "[RX] 2026-11-07T23:03:13.010+08:00 [2026-11-07 23:03:12][ADC_TASK] wave: seg=0 armed=0 src=- pts=320 err=0 ovf=0 drop=0", + "[RX] 2026-11-07T23:03:13.135+08:00 [2026-11-07 23:03:12][UI_CONTENT_PAGE] page open: id=wave_manual rows=0", + "[RX] 2026-11-07T23:03:23.005+08:00 [2026-11-07 23:03:22][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:03:33.009+08:00 [2026-11-07 23:03:32][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:03:36.209+08:00 [2026-11-07 23:03:35][UI_CONTENT_PAGE] page close: id=wave_manual", + "[RX] 2026-11-07T23:03:43.009+08:00 [2026-11-07 23:03:42][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:03:53.011+08:00 [2026-11-07 23:03:52][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:04:03.006+08:00 [2026-11-07 23:04:02][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:04:13.008+08:00 [2026-11-07 23:04:12][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:04:23.003+08:00 [2026-11-07 23:04:22][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:04:33.002+08:00 [2026-11-07 23:04:32][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:04:43.004+08:00 [2026-11-07 23:04:42][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:04:53.005+08:00 [2026-11-07 23:04:52][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:05:03.001+08:00 [2026-11-07 23:05:02][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:05:13.010+08:00 [2026-11-07 23:05:12][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:05:23.001+08:00 [2026-11-07 23:05:22][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:05:33.008+08:00 [2026-11-07 23:05:32][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:05:43.000+08:00 [2026-11-07 23:05:42][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:05:52.999+08:00 [2026-11-07 23:05:52][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:06:03.019+08:00 [2026-11-07 23:06:02][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:06:13.017+08:00 [2026-11-07 23:06:12][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:06:23.001+08:00 [2026-11-07 23:06:22][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:06:33.018+08:00 [2026-11-07 23:06:32][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:06:43.010+08:00 [2026-11-07 23:06:42][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:06:53.001+08:00 [2026-11-07 23:06:52][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:07:03.005+08:00 [2026-11-07 23:07:02][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:07:12.998+08:00 [2026-11-07 23:07:12][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:07:23.000+08:00 [2026-11-07 23:07:22][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:07:33.000+08:00 [2026-11-07 23:07:32][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:07:43.000+08:00 [2026-11-07 23:07:42][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:07:52.996+08:00 [2026-11-07 23:07:52][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:08:03.000+08:00 [2026-11-07 23:08:02][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:08:12.996+08:00 [2026-11-07 23:08:12][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:08:23.001+08:00 [2026-11-07 23:08:22][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:08:27.945+08:00 [2026-11-07 23:08:27] [FTP] CMD DELE WAVE00.BIN", + "[RX] 2026-11-07T23:08:28.018+08:00 [2026-11-07 23:08:27] [FTP] CMD DELE WAVE01.BIN", + "[RX] 2026-11-07T23:08:28.122+08:00 [2026-11-07 23:08:27] [FTP] CMD DELE WAVE02.BIN", + "[RX] 2026-11-07T23:08:28.174+08:00 [2026-11-07 23:08:27] [FTP] CMD DELE WAVE03.BIN", + "[RX] 2026-11-07T23:08:28.246+08:00 [2026-11-07 23:08:27] [FTP] CMD DELE WAVE04.BIN", + "[RX] 2026-11-07T23:08:28.309+08:00 [2026-11-07 23:08:27] [FTP] CMD DELE WAVE05.BIN", + "[RX] 2026-11-07T23:08:28.382+08:00 [2026-11-07 23:08:27] [FTP] CMD DELE WAVE06.BIN", + "[RX] 2026-11-07T23:08:28.423+08:00 [2026-11-07 23:08:27] [FTP] CMD DELE WAVE07.BIN", + "[RX] 2026-11-07T23:08:28.486+08:00 [2026-11-07 23:08:27] [FTP] CMD DELE WAVE08.BIN", + "[RX] 2026-11-07T23:08:28.558+08:00 [2026-11-07 23:08:27] [FTP] CMD DELE WAVE09.BIN", + "[RX] 2026-11-07T23:08:28.652+08:00 [2026-11-07 23:08:28] [FTP] CMD DELE WAVE10.BIN", + "[RX] 2026-11-07T23:08:28.715+08:00 [2026-11-07 23:08:28] [FTP] CMD DELE WAVE11.BIN", + "[RX] 2026-11-07T23:08:28.778+08:00 [2026-11-07 23:08:28] [FTP] CMD DELE WAVE12.BIN", + "[RX] 2026-11-07T23:08:28.850+08:00 [2026-11-07 23:08:28] [FTP] CMD DELE WAVE13.BIN", + "[RX] 2026-11-07T23:08:28.923+08:00 [2026-11-07 23:08:28] [FTP] CMD DELE WAVE14.BIN", + "[RX] 2026-11-07T23:08:28.985+08:00 [2026-11-07 23:08:28] [FTP] CMD DELE WAVE15.BIN", + "[RX] 2026-11-07T23:08:29.058+08:00 [2026-11-07 23:08:28] [FTP] CMD DELE WAVE16.BIN", + "[RX] 2026-11-07T23:08:29.131+08:00 [2026-11-07 23:08:28] [FTP] CMD DELE WAVE17.BIN", + "[RX] 2026-11-07T23:08:29.204+08:00 [2026-11-07 23:08:28] [FTP] CMD DELE WAVE18.BIN", + "[RX] 2026-11-07T23:08:29.276+08:00 [2026-11-07 23:08:28] [FTP] CMD DELE WAVE19.BIN", + "[RX] 2026-11-07T23:08:29.349+08:00 [2026-11-07 23:08:28] [FTP] CMD DELE WAVE20.BIN", + "[RX] 2026-11-07T23:08:29.411+08:00 [2026-11-07 23:08:28] [FTP] CMD DELE WAVE21.BIN", + "[RX] 2026-11-07T23:08:29.485+08:00 [2026-11-07 23:08:28] [FTP] CMD DELE WAVE22.BIN", + "[RX] 2026-11-07T23:08:29.547+08:00 [2026-11-07 23:08:28] [FTP] CMD DELE WAVE23.BIN", + "[RX] 2026-11-07T23:08:29.620+08:00 [2026-11-07 23:08:29] [FTP] CMD DELE WAVE24.BIN", + "[RX] 2026-11-07T23:08:29.777+08:00 [2026-11-07 23:08:29] [FTP] CMD DELE WAVE25.BIN", + "[RX] 2026-11-07T23:08:29.787+08:00 [2026-11-07 23:08:29] [FTP] CMD DELE WAVE26.BIN", + "[RX] 2026-11-07T23:08:29.870+08:00 [2026-11-07 23:08:29] [FTP] CMD DELE WAVE27.BIN", + "[RX] 2026-11-07T23:08:29.932+08:00 [2026-11-07 23:08:29] [FTP] CMD DELE WAVE28.BIN", + "[RX] 2026-11-07T23:08:29.973+08:00 [2026-11-07 23:08:29] [FTP] CMD DELE WAVE29.BIN", + "[RX] 2026-11-07T23:08:30.045+08:00 [2026-11-07 23:08:29] [FTP] CMD DELE WAVE30.BIN", + "[RX] 2026-11-07T23:08:30.117+08:00 [2026-11-07 23:08:29] [FTP] CMD DELE WAVE31.BIN", + "[RX] 2026-11-07T23:08:30.190+08:00 [2026-11-07 23:08:29] [FTP] CMD DELE WAVE32.BIN", + "[RX] 2026-11-07T23:08:30.263+08:00 [2026-11-07 23:08:29] [FTP] CMD DELE WAVE33.BIN", + "[RX] 2026-11-07T23:08:30.336+08:00 [2026-11-07 23:08:29] [FTP] CMD DELE WAVE34.BIN", + "[RX] 2026-11-07T23:08:30.409+08:00 [2026-11-07 23:08:29] [FTP] CMD DELE WAVE35.BIN", + "[RX] 2026-11-07T23:08:30.481+08:00 [2026-11-07 23:08:29] [FTP] CMD DELE WAVE36.BIN", + "[RX] 2026-11-07T23:08:30.523+08:00 [2026-11-07 23:08:29] [FTP] CMD DELE WAVE37.BIN", + "[RX] 2026-11-07T23:08:30.596+08:00 [2026-11-07 23:08:29] [FTP] CMD DELE WAVE38.BIN", + "[RX] 2026-11-07T23:08:30.638+08:00 STALL snap=0x000001E7 req=0x000001F7 h=000001E7,000001E7,000001E7,000001E7,000001E7,000001E7,000001E7,000001E7 mg=193 cf=0 seg=1", + "[RX] 2026-11-07T23:08:30.783+08:00 [2026-11-07 23:08:30] [FTP] CMD DELE WAVE39.BIN", + "[RX] 2026-11-07T23:08:30.845+08:00 [2026-11-07 23:08:30] [FTP] CMD DELE WAVE40.BIN", + "[RX] 2026-11-07T23:08:30.907+08:00 [2026-11-07 23:08:30] [FTP] CMD DELE WAVE41.BIN", + "[RX] 2026-11-07T23:08:30.990+08:00 [2026-11-07 23:08:30] [FTP] CMD DELE WAVE42.BIN", + "[RX] 2026-11-07T23:08:31.062+08:00 [2026-11-07 23:08:30] [FTP] CMD DELE WAVE43.BIN", + "[RX] 2026-11-07T23:08:31.145+08:00 [2026-11-07 23:08:30] [FTP] CMD DELE WAVE44.BIN", + "[RX] 2026-11-07T23:08:31.197+08:00 [2026-11-07 23:08:30] [FTP] CMD DELE WAVE45.BIN", + "[RX] 2026-11-07T23:08:31.281+08:00 [2026-11-07 23:08:30] [FTP] CMD DELE WAVE46.BIN", + "[RX] 2026-11-07T23:08:31.385+08:00 [2026-11-07 23:08:30] [FTP] CMD DELE WAVE47.BIN", + "[RX] 2026-11-07T23:08:31.447+08:00 [2026-11-07 23:08:30] [FTP] CMD DELE WAVE48.BIN", + "[RX] 2026-11-07T23:08:31.519+08:00 [2026-11-07 23:08:30] [FTP] CMD DELE WAVE49.BIN", + "[RX] 2026-11-07T23:08:31.561+08:00 [2026-11-07 23:08:30] [FTP] CMD DELE WAVE50.BIN", + "[RX] 2026-11-07T23:08:31.603+08:00 [2026-11-07 23:08:31] [FTP] CMD DELE WAVE51.BIN", + "[RX] 2026-11-07T23:08:31.644+08:00 [2026-11-07 23:08:31] [FTP] CMD DELE WAVE52.BIN", + "[RX] 2026-11-07T23:08:31.707+08:00 [2026-11-07 23:08:31] [FTP] CMD DELE WAVE53.BIN", + "[RX] 2026-11-07T23:08:31.738+08:00 [2026-11-07 23:08:31] [FTP] CMD DELE WAVE54.BIN", + "[RX] 2026-11-07T23:08:31.780+08:00 [2026-11-07 23:08:31] [FTP] CMD DELE WAVE55.BIN", + "[RX] 2026-11-07T23:08:31.821+08:00 [2026-11-07 23:08:31] [FTP] CMD DELE WAVE56.BIN", + "[RX] 2026-11-07T23:08:31.863+08:00 [2026-11-07 23:08:31] [FTP] CMD DELE WAVE57.BIN", + "[RX] 2026-11-07T23:08:31.904+08:00 [2026-11-07 23:08:31] [FTP] CMD DELE WAVE58.BIN", + "[RX] 2026-11-07T23:08:31.945+08:00 [2026-11-07 23:08:31] [FTP] CMD DELE WAVE59.BIN", + "[RX] 2026-11-07T23:08:31.987+08:00 [2026-11-07 23:08:31] [FTP] CMD DELE WAVE60.BIN", + "[RX] 2026-11-07T23:08:32.071+08:00 [2026-11-07 23:08:31] [FTP] CMD DELE WAVE61.BIN", + "[RX] 2026-11-07T23:08:32.092+08:00 [2026-11-07 23:08:31] [FTP] CMD DELE WAVE62.BIN", + "[RX] 2026-11-07T23:08:32.175+08:00 [2026-11-07 23:08:31] [FTP] CMD DELE WAVE63.BIN", + "[RX] 2026-11-07T23:08:32.248+08:00 [2026-11-07 23:08:31] [FTP] CMD DELE WAVE64.BIN", + "[RX] 2026-11-07T23:08:32.330+08:00 [2026-11-07 23:08:31] [FTP] CMD DELE WAVE65.BIN", + "[RX] 2026-11-07T23:08:32.446+08:00 [2026-11-07 23:08:31] [FTP] CMD DELE WAVE66.BIN", + "[RX] 2026-11-07T23:08:32.508+08:00 [2026-11-07 23:08:31] [FTP] CMD DELE WAVE67.BIN", + "[RX] 2026-11-07T23:08:32.581+08:00 [2026-11-07 23:08:31] [FTP] CMD DELE WAVE68.BIN", + "[RX] 2026-11-07T23:08:32.717+08:00 [2026-11-07 23:08:32] [FTP] CMD DELE WAVE69.BIN", + "[RX] 2026-11-07T23:08:32.758+08:00 [2026-11-07 23:08:32] [FTP] CMD DELE WAVE70.BIN", + "[RX] 2026-11-07T23:08:32.841+08:00 [2026-11-07 23:08:32] [FTP] CMD DELE WAVE71.BIN", + "[RX] 2026-11-07T23:08:32.914+08:00 [2026-11-07 23:08:32] [FTP] CMD DELE WAVE72.BIN", + "[RX] 2026-11-07T23:08:33.197+08:00 [2026-11-07 23:08:32][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:08:33.227+08:00 [2026-11-07 23:08:32] [FTP] CMD DELE WAVE73.BIN", + "[RX] 2026-11-07T23:08:33.258+08:00 [2026-11-07 23:08:32] [FTP] CMD DELE WAVE74.BIN", + "[RX] 2026-11-07T23:08:33.269+08:00 [2026-11-07 23:08:32] [FTP] CMD DELE WAVE75.BIN", + "[RX] 2026-11-07T23:08:33.373+08:00 [2026-11-07 23:08:32] [FTP] CMD DELE WAVE76.BIN", + "[RX] 2026-11-07T23:08:33.404+08:00 [2026-11-07 23:08:32] [FTP] CMD DELE WAVE77.BIN", + "[RX] 2026-11-07T23:08:33.487+08:00 [2026-11-07 23:08:32] [FTP] CMD DELE WAVE78.BIN", + "[RX] 2026-11-07T23:08:33.570+08:00 [2026-11-07 23:08:32] [FTP] CMD DELE WAVE79.BIN", + "[RX] 2026-11-07T23:08:33.643+08:00 [2026-11-07 23:08:33] [FTP] CMD DELE WAVE80.BIN", + "[RX] 2026-11-07T23:08:33.736+08:00 [2026-11-07 23:08:33] [FTP] CMD DELE WAVE81.BIN", + "[RX] 2026-11-07T23:08:33.850+08:00 [2026-11-07 23:08:33] [FTP] CMD DELE WAVE82.BIN", + "[RX] 2026-11-07T23:08:33.913+08:00 [2026-11-07 23:08:33] [FTP] CMD DELE WAVE83.BIN", + "[RX] 2026-11-07T23:08:33.995+08:00 [2026-11-07 23:08:33] [FTP] CMD DELE WAVE84.BIN", + "[RX] 2026-11-07T23:08:34.068+08:00 [2026-11-07 23:08:33] [FTP] CMD DELE WAVE85.BIN", + "[RX] 2026-11-07T23:08:34.150+08:00 [2026-11-07 23:08:33] [FTP] CMD DELE WAVE86.BIN", + "[RX] 2026-11-07T23:08:34.233+08:00 [2026-11-07 23:08:33] [FTP] CMD DELE WAVE87.BIN", + "[RX] 2026-11-07T23:08:34.316+08:00 [2026-11-07 23:08:33] [FTP] CMD DELE WAVE88.BIN", + "[RX] 2026-11-07T23:08:34.389+08:00 [2026-11-07 23:08:33] [FTP] CMD DELE WAVE89.BIN", + "[RX] 2026-11-07T23:08:34.473+08:00 [2026-11-07 23:08:33] [FTP] CMD DELE WAVE90.BIN", + "[RX] 2026-11-07T23:08:34.577+08:00 [2026-11-07 23:08:33] [FTP] CMD DELE WAVE91.BIN", + "[RX] 2026-11-07T23:08:34.639+08:00 [2026-11-07 23:08:34] [FTP] CMD DELE WAVE92.BIN", + "[RX] 2026-11-07T23:08:34.723+08:00 [2026-11-07 23:08:34] [FTP] CMD DELE WAVE93.BIN", + "[RX] 2026-11-07T23:08:34.805+08:00 [2026-11-07 23:08:34] [FTP] CMD DELE WAVE94.BIN", + "[RX] 2026-11-07T23:08:34.889+08:00 [2026-11-07 23:08:34] [FTP] CMD DELE WAVE95.BIN", + "[RX] 2026-11-07T23:08:34.973+08:00 [2026-11-07 23:08:34] [FTP] CMD DELE WAVE96.BIN", + "[RX] 2026-11-07T23:08:35.056+08:00 [2026-11-07 23:08:34] [FTP] CMD DELE WAVE97.BIN", + "[RX] 2026-11-07T23:08:35.139+08:00 [2026-11-07 23:08:34] [FTP] CMD DELE WAVE98.BIN", + "[RX] 2026-11-07T23:08:35.275+08:00 [2026-11-07 23:08:34] [FTP] CMD DELE WAVE99.BIN", + "[RX] 2026-11-07T23:08:42.995+08:00 [2026-11-07 23:08:42][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:08:53.004+08:00 [2026-11-07 23:08:52][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:09:02.997+08:00 [2026-11-07 23:09:02][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:09:03.638+08:00 [2026-11-07 23:09:03] [FTP] UPLOAD '/WAVE/WAVE06.BIN' 5250 bytes OK", + "[RX] 2026-11-07T23:09:10.839+08:00 [2026-11-07 23:09:10] [FTP] UPLOAD '/WAVE/WAVE99.BIN' 5250 bytes OK", + "[RX] 2026-11-07T23:09:13.001+08:00 [2026-11-07 23:09:12][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:09:15.641+08:00 [2026-11-07 23:09:15] [FTP] UPLOAD '/WAVE/WAVE99.BIN' 5250 bytes OK", + "[RX] 2026-11-07T23:09:22.998+08:00 [2026-11-07 23:09:22][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:09:29.646+08:00 [2026-11-07 23:09:29] [FTP] CMD DELE WAVE06.BIN", + "[RX] 2026-11-07T23:09:29.677+08:00 [2026-11-07 23:09:29] [FTP] CMD DELE WAVE99.BIN", + "[RX] 2026-11-07T23:09:29.865+08:00 [2026-11-07 23:09:29] [FTP] UPLOAD '/WAVE/WAVE06.BIN' 5250 bytes OK", + "[RX] 2026-11-07T23:09:32.120+08:00 [2026-11-07 23:09:31][ERR][UI_TASK] ui wave head idx=6 reject=5 stored=0xC204 calc=0x8A84", + "[RX] 2026-11-07T23:09:33.000+08:00 [2026-11-07 23:09:32][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:09:38.759+08:00 [2026-11-07 23:09:38][ERR][UI_TASK] ui wave head idx=6 reject=5 stored=0xC204 calc=0x8A84", + "[RX] 2026-11-07T23:09:42.995+08:00 [2026-11-07 23:09:42][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:09:45.374+08:00 [2026-11-07 23:09:44][ERR][UI_TASK] ui wave head idx=6 reject=5 stored=0xC204 calc=0x8A84", + "[RX] 2026-11-07T23:09:50.784+08:00 [2026-11-07 23:09:50] [FTP] UPLOAD '/WAVE/WAVE06.BIN' 5250 bytes OK", + "[RX] 2026-11-07T23:09:52.994+08:00 [2026-11-07 23:09:52][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:09:58.063+08:00 [2026-11-07 23:09:57] [FTP] CMD DELE WAVE06.BIN", + "[RX] 2026-11-07T23:09:58.239+08:00 [2026-11-07 23:09:57] [FTP] UPLOAD '/WAVE/WAVE99.BIN' 5250 bytes OK", + "[RX] 2026-11-07T23:10:00.363+08:00 [2026-11-07 23:09:59][ERR][UI_TASK] ui wave head idx=99 reject=1 stored=0x0000 calc=0x0000", + "[RX] 2026-11-07T23:10:02.996+08:00 [2026-11-07 23:10:02][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:10:05.772+08:00 [2026-11-07 23:10:05] [FTP] UPLOAD '/WAVE/WAVE99.BIN' 5250 bytes OK", + "[RX] 2026-11-07T23:10:12.998+08:00 [2026-11-07 23:10:12][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", diff --git a/docs/测试说明/测试数据/wave_fix_20261107/serial_excerpt_man_post.txt b/docs/测试说明/测试数据/wave_fix_20261107/serial_excerpt_man_post.txt new file mode 100644 index 00000000..b86f2eb8 --- /dev/null +++ b/docs/测试说明/测试数据/wave_fix_20261107/serial_excerpt_man_post.txt @@ -0,0 +1,168 @@ + "[RX] 2026-11-07T23:02:13.012+08:00 [2026-11-07 23:02:12][ADC_TASK] wave: seg=0 armed=0 src=- pts=320 err=0 ovf=0 drop=0", + "[RX] 2026-11-07T23:02:23.009+08:00 [2026-11-07 23:02:22][ADC_TASK] wave: seg=0 armed=0 src=- pts=320 err=0 ovf=0 drop=0", + "[RX] 2026-11-07T23:02:33.012+08:00 [2026-11-07 23:02:32][ADC_TASK] wave: seg=0 armed=0 src=- pts=320 err=0 ovf=0 drop=0", + "[RX] 2026-11-07T23:02:43.009+08:00 [2026-11-07 23:02:42][ADC_TASK] wave: seg=0 armed=0 src=- pts=320 err=0 ovf=0 drop=0", + "[RX] 2026-11-07T23:02:53.007+08:00 [2026-11-07 23:02:52][ADC_TASK] wave: seg=0 armed=0 src=- pts=320 err=0 ovf=0 drop=0", + "[RX] 2026-11-07T23:03:03.006+08:00 [2026-11-07 23:03:02][ADC_TASK] wave: seg=0 armed=0 src=- pts=320 err=0 ovf=0 drop=0", + "[RX] 2026-11-07T23:03:13.010+08:00 [2026-11-07 23:03:12][ADC_TASK] wave: seg=0 armed=0 src=- pts=320 err=0 ovf=0 drop=0", + "[RX] 2026-11-07T23:03:13.135+08:00 [2026-11-07 23:03:12][UI_CONTENT_PAGE] page open: id=wave_manual rows=0", + "[RX] 2026-11-07T23:03:23.005+08:00 [2026-11-07 23:03:22][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:03:33.009+08:00 [2026-11-07 23:03:32][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:03:36.209+08:00 [2026-11-07 23:03:35][UI_CONTENT_PAGE] page close: id=wave_manual", + "[RX] 2026-11-07T23:03:43.009+08:00 [2026-11-07 23:03:42][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:03:53.011+08:00 [2026-11-07 23:03:52][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:04:03.006+08:00 [2026-11-07 23:04:02][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:04:13.008+08:00 [2026-11-07 23:04:12][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:04:23.003+08:00 [2026-11-07 23:04:22][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:04:33.002+08:00 [2026-11-07 23:04:32][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:04:43.004+08:00 [2026-11-07 23:04:42][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:04:53.005+08:00 [2026-11-07 23:04:52][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:05:03.001+08:00 [2026-11-07 23:05:02][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:05:13.010+08:00 [2026-11-07 23:05:12][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:05:23.001+08:00 [2026-11-07 23:05:22][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:05:33.008+08:00 [2026-11-07 23:05:32][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:05:43.000+08:00 [2026-11-07 23:05:42][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:05:52.999+08:00 [2026-11-07 23:05:52][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:06:03.019+08:00 [2026-11-07 23:06:02][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:06:13.017+08:00 [2026-11-07 23:06:12][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:06:23.001+08:00 [2026-11-07 23:06:22][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:06:33.018+08:00 [2026-11-07 23:06:32][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:06:43.010+08:00 [2026-11-07 23:06:42][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:06:53.001+08:00 [2026-11-07 23:06:52][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:07:03.005+08:00 [2026-11-07 23:07:02][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:07:12.998+08:00 [2026-11-07 23:07:12][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:07:23.000+08:00 [2026-11-07 23:07:22][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:07:33.000+08:00 [2026-11-07 23:07:32][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:07:43.000+08:00 [2026-11-07 23:07:42][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:07:52.996+08:00 [2026-11-07 23:07:52][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:08:03.000+08:00 [2026-11-07 23:08:02][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:08:12.996+08:00 [2026-11-07 23:08:12][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:08:23.001+08:00 [2026-11-07 23:08:22][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:08:27.945+08:00 [2026-11-07 23:08:27] [FTP] CMD DELE WAVE00.BIN", + "[RX] 2026-11-07T23:08:28.018+08:00 [2026-11-07 23:08:27] [FTP] CMD DELE WAVE01.BIN", + "[RX] 2026-11-07T23:08:28.122+08:00 [2026-11-07 23:08:27] [FTP] CMD DELE WAVE02.BIN", + "[RX] 2026-11-07T23:08:28.174+08:00 [2026-11-07 23:08:27] [FTP] CMD DELE WAVE03.BIN", + "[RX] 2026-11-07T23:08:28.246+08:00 [2026-11-07 23:08:27] [FTP] CMD DELE WAVE04.BIN", + "[RX] 2026-11-07T23:08:28.309+08:00 [2026-11-07 23:08:27] [FTP] CMD DELE WAVE05.BIN", + "[RX] 2026-11-07T23:08:28.382+08:00 [2026-11-07 23:08:27] [FTP] CMD DELE WAVE06.BIN", + "[RX] 2026-11-07T23:08:28.423+08:00 [2026-11-07 23:08:27] [FTP] CMD DELE WAVE07.BIN", + "[RX] 2026-11-07T23:08:28.486+08:00 [2026-11-07 23:08:27] [FTP] CMD DELE WAVE08.BIN", + "[RX] 2026-11-07T23:08:28.558+08:00 [2026-11-07 23:08:27] [FTP] CMD DELE WAVE09.BIN", + "[RX] 2026-11-07T23:08:28.652+08:00 [2026-11-07 23:08:28] [FTP] CMD DELE WAVE10.BIN", + "[RX] 2026-11-07T23:08:28.715+08:00 [2026-11-07 23:08:28] [FTP] CMD DELE WAVE11.BIN", + "[RX] 2026-11-07T23:08:28.778+08:00 [2026-11-07 23:08:28] [FTP] CMD DELE WAVE12.BIN", + "[RX] 2026-11-07T23:08:28.850+08:00 [2026-11-07 23:08:28] [FTP] CMD DELE WAVE13.BIN", + "[RX] 2026-11-07T23:08:28.923+08:00 [2026-11-07 23:08:28] [FTP] CMD DELE WAVE14.BIN", + "[RX] 2026-11-07T23:08:28.985+08:00 [2026-11-07 23:08:28] [FTP] CMD DELE WAVE15.BIN", + "[RX] 2026-11-07T23:08:29.058+08:00 [2026-11-07 23:08:28] [FTP] CMD DELE WAVE16.BIN", + "[RX] 2026-11-07T23:08:29.131+08:00 [2026-11-07 23:08:28] [FTP] CMD DELE WAVE17.BIN", + "[RX] 2026-11-07T23:08:29.204+08:00 [2026-11-07 23:08:28] [FTP] CMD DELE WAVE18.BIN", + "[RX] 2026-11-07T23:08:29.276+08:00 [2026-11-07 23:08:28] [FTP] CMD DELE WAVE19.BIN", + "[RX] 2026-11-07T23:08:29.349+08:00 [2026-11-07 23:08:28] [FTP] CMD DELE WAVE20.BIN", + "[RX] 2026-11-07T23:08:29.411+08:00 [2026-11-07 23:08:28] [FTP] CMD DELE WAVE21.BIN", + "[RX] 2026-11-07T23:08:29.485+08:00 [2026-11-07 23:08:28] [FTP] CMD DELE WAVE22.BIN", + "[RX] 2026-11-07T23:08:29.547+08:00 [2026-11-07 23:08:28] [FTP] CMD DELE WAVE23.BIN", + "[RX] 2026-11-07T23:08:29.620+08:00 [2026-11-07 23:08:29] [FTP] CMD DELE WAVE24.BIN", + "[RX] 2026-11-07T23:08:29.777+08:00 [2026-11-07 23:08:29] [FTP] CMD DELE WAVE25.BIN", + "[RX] 2026-11-07T23:08:29.787+08:00 [2026-11-07 23:08:29] [FTP] CMD DELE WAVE26.BIN", + "[RX] 2026-11-07T23:08:29.870+08:00 [2026-11-07 23:08:29] [FTP] CMD DELE WAVE27.BIN", + "[RX] 2026-11-07T23:08:29.932+08:00 [2026-11-07 23:08:29] [FTP] CMD DELE WAVE28.BIN", + "[RX] 2026-11-07T23:08:29.973+08:00 [2026-11-07 23:08:29] [FTP] CMD DELE WAVE29.BIN", + "[RX] 2026-11-07T23:08:30.045+08:00 [2026-11-07 23:08:29] [FTP] CMD DELE WAVE30.BIN", + "[RX] 2026-11-07T23:08:30.117+08:00 [2026-11-07 23:08:29] [FTP] CMD DELE WAVE31.BIN", + "[RX] 2026-11-07T23:08:30.190+08:00 [2026-11-07 23:08:29] [FTP] CMD DELE WAVE32.BIN", + "[RX] 2026-11-07T23:08:30.263+08:00 [2026-11-07 23:08:29] [FTP] CMD DELE WAVE33.BIN", + "[RX] 2026-11-07T23:08:30.336+08:00 [2026-11-07 23:08:29] [FTP] CMD DELE WAVE34.BIN", + "[RX] 2026-11-07T23:08:30.409+08:00 [2026-11-07 23:08:29] [FTP] CMD DELE WAVE35.BIN", + "[RX] 2026-11-07T23:08:30.481+08:00 [2026-11-07 23:08:29] [FTP] CMD DELE WAVE36.BIN", + "[RX] 2026-11-07T23:08:30.523+08:00 [2026-11-07 23:08:29] [FTP] CMD DELE WAVE37.BIN", + "[RX] 2026-11-07T23:08:30.596+08:00 [2026-11-07 23:08:29] [FTP] CMD DELE WAVE38.BIN", + "[RX] 2026-11-07T23:08:30.638+08:00 STALL snap=0x000001E7 req=0x000001F7 h=000001E7,000001E7,000001E7,000001E7,000001E7,000001E7,000001E7,000001E7 mg=193 cf=0 seg=1", + "[RX] 2026-11-07T23:08:30.783+08:00 [2026-11-07 23:08:30] [FTP] CMD DELE WAVE39.BIN", + "[RX] 2026-11-07T23:08:30.845+08:00 [2026-11-07 23:08:30] [FTP] CMD DELE WAVE40.BIN", + "[RX] 2026-11-07T23:08:30.907+08:00 [2026-11-07 23:08:30] [FTP] CMD DELE WAVE41.BIN", + "[RX] 2026-11-07T23:08:30.990+08:00 [2026-11-07 23:08:30] [FTP] CMD DELE WAVE42.BIN", + "[RX] 2026-11-07T23:08:31.062+08:00 [2026-11-07 23:08:30] [FTP] CMD DELE WAVE43.BIN", + "[RX] 2026-11-07T23:08:31.145+08:00 [2026-11-07 23:08:30] [FTP] CMD DELE WAVE44.BIN", + "[RX] 2026-11-07T23:08:31.197+08:00 [2026-11-07 23:08:30] [FTP] CMD DELE WAVE45.BIN", + "[RX] 2026-11-07T23:08:31.281+08:00 [2026-11-07 23:08:30] [FTP] CMD DELE WAVE46.BIN", + "[RX] 2026-11-07T23:08:31.385+08:00 [2026-11-07 23:08:30] [FTP] CMD DELE WAVE47.BIN", + "[RX] 2026-11-07T23:08:31.447+08:00 [2026-11-07 23:08:30] [FTP] CMD DELE WAVE48.BIN", + "[RX] 2026-11-07T23:08:31.519+08:00 [2026-11-07 23:08:30] [FTP] CMD DELE WAVE49.BIN", + "[RX] 2026-11-07T23:08:31.561+08:00 [2026-11-07 23:08:30] [FTP] CMD DELE WAVE50.BIN", + "[RX] 2026-11-07T23:08:31.603+08:00 [2026-11-07 23:08:31] [FTP] CMD DELE WAVE51.BIN", + "[RX] 2026-11-07T23:08:31.644+08:00 [2026-11-07 23:08:31] [FTP] CMD DELE WAVE52.BIN", + "[RX] 2026-11-07T23:08:31.707+08:00 [2026-11-07 23:08:31] [FTP] CMD DELE WAVE53.BIN", + "[RX] 2026-11-07T23:08:31.738+08:00 [2026-11-07 23:08:31] [FTP] CMD DELE WAVE54.BIN", + "[RX] 2026-11-07T23:08:31.780+08:00 [2026-11-07 23:08:31] [FTP] CMD DELE WAVE55.BIN", + "[RX] 2026-11-07T23:08:31.821+08:00 [2026-11-07 23:08:31] [FTP] CMD DELE WAVE56.BIN", + "[RX] 2026-11-07T23:08:31.863+08:00 [2026-11-07 23:08:31] [FTP] CMD DELE WAVE57.BIN", + "[RX] 2026-11-07T23:08:31.904+08:00 [2026-11-07 23:08:31] [FTP] CMD DELE WAVE58.BIN", + "[RX] 2026-11-07T23:08:31.945+08:00 [2026-11-07 23:08:31] [FTP] CMD DELE WAVE59.BIN", + "[RX] 2026-11-07T23:08:31.987+08:00 [2026-11-07 23:08:31] [FTP] CMD DELE WAVE60.BIN", + "[RX] 2026-11-07T23:08:32.071+08:00 [2026-11-07 23:08:31] [FTP] CMD DELE WAVE61.BIN", + "[RX] 2026-11-07T23:08:32.092+08:00 [2026-11-07 23:08:31] [FTP] CMD DELE WAVE62.BIN", + "[RX] 2026-11-07T23:08:32.175+08:00 [2026-11-07 23:08:31] [FTP] CMD DELE WAVE63.BIN", + "[RX] 2026-11-07T23:08:32.248+08:00 [2026-11-07 23:08:31] [FTP] CMD DELE WAVE64.BIN", + "[RX] 2026-11-07T23:08:32.330+08:00 [2026-11-07 23:08:31] [FTP] CMD DELE WAVE65.BIN", + "[RX] 2026-11-07T23:08:32.446+08:00 [2026-11-07 23:08:31] [FTP] CMD DELE WAVE66.BIN", + "[RX] 2026-11-07T23:08:32.508+08:00 [2026-11-07 23:08:31] [FTP] CMD DELE WAVE67.BIN", + "[RX] 2026-11-07T23:08:32.581+08:00 [2026-11-07 23:08:31] [FTP] CMD DELE WAVE68.BIN", + "[RX] 2026-11-07T23:08:32.717+08:00 [2026-11-07 23:08:32] [FTP] CMD DELE WAVE69.BIN", + "[RX] 2026-11-07T23:08:32.758+08:00 [2026-11-07 23:08:32] [FTP] CMD DELE WAVE70.BIN", + "[RX] 2026-11-07T23:08:32.841+08:00 [2026-11-07 23:08:32] [FTP] CMD DELE WAVE71.BIN", + "[RX] 2026-11-07T23:08:32.914+08:00 [2026-11-07 23:08:32] [FTP] CMD DELE WAVE72.BIN", + "[RX] 2026-11-07T23:08:33.197+08:00 [2026-11-07 23:08:32][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:08:33.227+08:00 [2026-11-07 23:08:32] [FTP] CMD DELE WAVE73.BIN", + "[RX] 2026-11-07T23:08:33.258+08:00 [2026-11-07 23:08:32] [FTP] CMD DELE WAVE74.BIN", + "[RX] 2026-11-07T23:08:33.269+08:00 [2026-11-07 23:08:32] [FTP] CMD DELE WAVE75.BIN", + "[RX] 2026-11-07T23:08:33.373+08:00 [2026-11-07 23:08:32] [FTP] CMD DELE WAVE76.BIN", + "[RX] 2026-11-07T23:08:33.404+08:00 [2026-11-07 23:08:32] [FTP] CMD DELE WAVE77.BIN", + "[RX] 2026-11-07T23:08:33.487+08:00 [2026-11-07 23:08:32] [FTP] CMD DELE WAVE78.BIN", + "[RX] 2026-11-07T23:08:33.570+08:00 [2026-11-07 23:08:32] [FTP] CMD DELE WAVE79.BIN", + "[RX] 2026-11-07T23:08:33.643+08:00 [2026-11-07 23:08:33] [FTP] CMD DELE WAVE80.BIN", + "[RX] 2026-11-07T23:08:33.736+08:00 [2026-11-07 23:08:33] [FTP] CMD DELE WAVE81.BIN", + "[RX] 2026-11-07T23:08:33.850+08:00 [2026-11-07 23:08:33] [FTP] CMD DELE WAVE82.BIN", + "[RX] 2026-11-07T23:08:33.913+08:00 [2026-11-07 23:08:33] [FTP] CMD DELE WAVE83.BIN", + "[RX] 2026-11-07T23:08:33.995+08:00 [2026-11-07 23:08:33] [FTP] CMD DELE WAVE84.BIN", + "[RX] 2026-11-07T23:08:34.068+08:00 [2026-11-07 23:08:33] [FTP] CMD DELE WAVE85.BIN", + "[RX] 2026-11-07T23:08:34.150+08:00 [2026-11-07 23:08:33] [FTP] CMD DELE WAVE86.BIN", + "[RX] 2026-11-07T23:08:34.233+08:00 [2026-11-07 23:08:33] [FTP] CMD DELE WAVE87.BIN", + "[RX] 2026-11-07T23:08:34.316+08:00 [2026-11-07 23:08:33] [FTP] CMD DELE WAVE88.BIN", + "[RX] 2026-11-07T23:08:34.389+08:00 [2026-11-07 23:08:33] [FTP] CMD DELE WAVE89.BIN", + "[RX] 2026-11-07T23:08:34.473+08:00 [2026-11-07 23:08:33] [FTP] CMD DELE WAVE90.BIN", + "[RX] 2026-11-07T23:08:34.577+08:00 [2026-11-07 23:08:33] [FTP] CMD DELE WAVE91.BIN", + "[RX] 2026-11-07T23:08:34.639+08:00 [2026-11-07 23:08:34] [FTP] CMD DELE WAVE92.BIN", + "[RX] 2026-11-07T23:08:34.723+08:00 [2026-11-07 23:08:34] [FTP] CMD DELE WAVE93.BIN", + "[RX] 2026-11-07T23:08:34.805+08:00 [2026-11-07 23:08:34] [FTP] CMD DELE WAVE94.BIN", + "[RX] 2026-11-07T23:08:34.889+08:00 [2026-11-07 23:08:34] [FTP] CMD DELE WAVE95.BIN", + "[RX] 2026-11-07T23:08:34.973+08:00 [2026-11-07 23:08:34] [FTP] CMD DELE WAVE96.BIN", + "[RX] 2026-11-07T23:08:35.056+08:00 [2026-11-07 23:08:34] [FTP] CMD DELE WAVE97.BIN", + "[RX] 2026-11-07T23:08:35.139+08:00 [2026-11-07 23:08:34] [FTP] CMD DELE WAVE98.BIN", + "[RX] 2026-11-07T23:08:35.275+08:00 [2026-11-07 23:08:34] [FTP] CMD DELE WAVE99.BIN", + "[RX] 2026-11-07T23:08:42.995+08:00 [2026-11-07 23:08:42][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:08:53.004+08:00 [2026-11-07 23:08:52][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:09:02.997+08:00 [2026-11-07 23:09:02][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:09:03.638+08:00 [2026-11-07 23:09:03] [FTP] UPLOAD '/WAVE/WAVE06.BIN' 5250 bytes OK", + "[RX] 2026-11-07T23:09:10.839+08:00 [2026-11-07 23:09:10] [FTP] UPLOAD '/WAVE/WAVE99.BIN' 5250 bytes OK", + "[RX] 2026-11-07T23:09:13.001+08:00 [2026-11-07 23:09:12][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:09:15.641+08:00 [2026-11-07 23:09:15] [FTP] UPLOAD '/WAVE/WAVE99.BIN' 5250 bytes OK", + "[RX] 2026-11-07T23:09:22.998+08:00 [2026-11-07 23:09:22][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:09:29.646+08:00 [2026-11-07 23:09:29] [FTP] CMD DELE WAVE06.BIN", + "[RX] 2026-11-07T23:09:29.677+08:00 [2026-11-07 23:09:29] [FTP] CMD DELE WAVE99.BIN", + "[RX] 2026-11-07T23:09:29.865+08:00 [2026-11-07 23:09:29] [FTP] UPLOAD '/WAVE/WAVE06.BIN' 5250 bytes OK", + "[RX] 2026-11-07T23:09:32.120+08:00 [2026-11-07 23:09:31][ERR][UI_TASK] ui wave head idx=6 reject=5 stored=0xC204 calc=0x8A84", + "[RX] 2026-11-07T23:09:33.000+08:00 [2026-11-07 23:09:32][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:09:38.759+08:00 [2026-11-07 23:09:38][ERR][UI_TASK] ui wave head idx=6 reject=5 stored=0xC204 calc=0x8A84", + "[RX] 2026-11-07T23:09:42.995+08:00 [2026-11-07 23:09:42][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:09:45.374+08:00 [2026-11-07 23:09:44][ERR][UI_TASK] ui wave head idx=6 reject=5 stored=0xC204 calc=0x8A84", + "[RX] 2026-11-07T23:09:50.784+08:00 [2026-11-07 23:09:50] [FTP] UPLOAD '/WAVE/WAVE06.BIN' 5250 bytes OK", + "[RX] 2026-11-07T23:09:52.994+08:00 [2026-11-07 23:09:52][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:09:58.063+08:00 [2026-11-07 23:09:57] [FTP] CMD DELE WAVE06.BIN", + "[RX] 2026-11-07T23:09:58.239+08:00 [2026-11-07 23:09:57] [FTP] UPLOAD '/WAVE/WAVE99.BIN' 5250 bytes OK", + "[RX] 2026-11-07T23:10:00.363+08:00 [2026-11-07 23:09:59][ERR][UI_TASK] ui wave head idx=99 reject=1 stored=0x0000 calc=0x0000", + "[RX] 2026-11-07T23:10:02.996+08:00 [2026-11-07 23:10:02][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:10:05.772+08:00 [2026-11-07 23:10:05] [FTP] UPLOAD '/WAVE/WAVE99.BIN' 5250 bytes OK", + "[RX] 2026-11-07T23:10:12.998+08:00 [2026-11-07 23:10:12][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:10:22.995+08:00 [2026-11-07 23:10:22][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:10:32.996+08:00 [2026-11-07 23:10:32][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", diff --git a/docs/测试说明/测试数据/wave_fix_20261107/serial_excerpt_restore.txt b/docs/测试说明/测试数据/wave_fix_20261107/serial_excerpt_restore.txt new file mode 100644 index 00000000..ff00b95f --- /dev/null +++ b/docs/测试说明/测试数据/wave_fix_20261107/serial_excerpt_restore.txt @@ -0,0 +1,284 @@ + "[RX] 2026-11-07T23:02:13.012+08:00 [2026-11-07 23:02:12][ADC_TASK] wave: seg=0 armed=0 src=- pts=320 err=0 ovf=0 drop=0", + "[RX] 2026-11-07T23:02:23.009+08:00 [2026-11-07 23:02:22][ADC_TASK] wave: seg=0 armed=0 src=- pts=320 err=0 ovf=0 drop=0", + "[RX] 2026-11-07T23:02:33.012+08:00 [2026-11-07 23:02:32][ADC_TASK] wave: seg=0 armed=0 src=- pts=320 err=0 ovf=0 drop=0", + "[RX] 2026-11-07T23:02:43.009+08:00 [2026-11-07 23:02:42][ADC_TASK] wave: seg=0 armed=0 src=- pts=320 err=0 ovf=0 drop=0", + "[RX] 2026-11-07T23:02:53.007+08:00 [2026-11-07 23:02:52][ADC_TASK] wave: seg=0 armed=0 src=- pts=320 err=0 ovf=0 drop=0", + "[RX] 2026-11-07T23:03:03.006+08:00 [2026-11-07 23:03:02][ADC_TASK] wave: seg=0 armed=0 src=- pts=320 err=0 ovf=0 drop=0", + "[RX] 2026-11-07T23:03:13.010+08:00 [2026-11-07 23:03:12][ADC_TASK] wave: seg=0 armed=0 src=- pts=320 err=0 ovf=0 drop=0", + "[RX] 2026-11-07T23:03:13.135+08:00 [2026-11-07 23:03:12][UI_CONTENT_PAGE] page open: id=wave_manual rows=0", + "[RX] 2026-11-07T23:03:23.005+08:00 [2026-11-07 23:03:22][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:03:33.009+08:00 [2026-11-07 23:03:32][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:03:36.209+08:00 [2026-11-07 23:03:35][UI_CONTENT_PAGE] page close: id=wave_manual", + "[RX] 2026-11-07T23:03:43.009+08:00 [2026-11-07 23:03:42][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:03:53.011+08:00 [2026-11-07 23:03:52][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:04:03.006+08:00 [2026-11-07 23:04:02][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:04:13.008+08:00 [2026-11-07 23:04:12][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:04:23.003+08:00 [2026-11-07 23:04:22][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:04:33.002+08:00 [2026-11-07 23:04:32][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:04:43.004+08:00 [2026-11-07 23:04:42][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:04:53.005+08:00 [2026-11-07 23:04:52][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:05:03.001+08:00 [2026-11-07 23:05:02][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:05:13.010+08:00 [2026-11-07 23:05:12][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:05:23.001+08:00 [2026-11-07 23:05:22][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:05:33.008+08:00 [2026-11-07 23:05:32][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:05:43.000+08:00 [2026-11-07 23:05:42][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:05:52.999+08:00 [2026-11-07 23:05:52][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:06:03.019+08:00 [2026-11-07 23:06:02][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:06:13.017+08:00 [2026-11-07 23:06:12][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:06:23.001+08:00 [2026-11-07 23:06:22][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:06:33.018+08:00 [2026-11-07 23:06:32][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:06:43.010+08:00 [2026-11-07 23:06:42][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:06:53.001+08:00 [2026-11-07 23:06:52][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:07:03.005+08:00 [2026-11-07 23:07:02][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:07:12.998+08:00 [2026-11-07 23:07:12][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:07:23.000+08:00 [2026-11-07 23:07:22][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:07:33.000+08:00 [2026-11-07 23:07:32][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:07:43.000+08:00 [2026-11-07 23:07:42][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:07:52.996+08:00 [2026-11-07 23:07:52][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:08:03.000+08:00 [2026-11-07 23:08:02][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:08:12.996+08:00 [2026-11-07 23:08:12][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:08:23.001+08:00 [2026-11-07 23:08:22][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:08:27.945+08:00 [2026-11-07 23:08:27] [FTP] CMD DELE WAVE00.BIN", + "[RX] 2026-11-07T23:08:28.018+08:00 [2026-11-07 23:08:27] [FTP] CMD DELE WAVE01.BIN", + "[RX] 2026-11-07T23:08:28.122+08:00 [2026-11-07 23:08:27] [FTP] CMD DELE WAVE02.BIN", + "[RX] 2026-11-07T23:08:28.174+08:00 [2026-11-07 23:08:27] [FTP] CMD DELE WAVE03.BIN", + "[RX] 2026-11-07T23:08:28.246+08:00 [2026-11-07 23:08:27] [FTP] CMD DELE WAVE04.BIN", + "[RX] 2026-11-07T23:08:28.309+08:00 [2026-11-07 23:08:27] [FTP] CMD DELE WAVE05.BIN", + "[RX] 2026-11-07T23:08:28.382+08:00 [2026-11-07 23:08:27] [FTP] CMD DELE WAVE06.BIN", + "[RX] 2026-11-07T23:08:28.423+08:00 [2026-11-07 23:08:27] [FTP] CMD DELE WAVE07.BIN", + "[RX] 2026-11-07T23:08:28.486+08:00 [2026-11-07 23:08:27] [FTP] CMD DELE WAVE08.BIN", + "[RX] 2026-11-07T23:08:28.558+08:00 [2026-11-07 23:08:27] [FTP] CMD DELE WAVE09.BIN", + "[RX] 2026-11-07T23:08:28.652+08:00 [2026-11-07 23:08:28] [FTP] CMD DELE WAVE10.BIN", + "[RX] 2026-11-07T23:08:28.715+08:00 [2026-11-07 23:08:28] [FTP] CMD DELE WAVE11.BIN", + "[RX] 2026-11-07T23:08:28.778+08:00 [2026-11-07 23:08:28] [FTP] CMD DELE WAVE12.BIN", + "[RX] 2026-11-07T23:08:28.850+08:00 [2026-11-07 23:08:28] [FTP] CMD DELE WAVE13.BIN", + "[RX] 2026-11-07T23:08:28.923+08:00 [2026-11-07 23:08:28] [FTP] CMD DELE WAVE14.BIN", + "[RX] 2026-11-07T23:08:28.985+08:00 [2026-11-07 23:08:28] [FTP] CMD DELE WAVE15.BIN", + "[RX] 2026-11-07T23:08:29.058+08:00 [2026-11-07 23:08:28] [FTP] CMD DELE WAVE16.BIN", + "[RX] 2026-11-07T23:08:29.131+08:00 [2026-11-07 23:08:28] [FTP] CMD DELE WAVE17.BIN", + "[RX] 2026-11-07T23:08:29.204+08:00 [2026-11-07 23:08:28] [FTP] CMD DELE WAVE18.BIN", + "[RX] 2026-11-07T23:08:29.276+08:00 [2026-11-07 23:08:28] [FTP] CMD DELE WAVE19.BIN", + "[RX] 2026-11-07T23:08:29.349+08:00 [2026-11-07 23:08:28] [FTP] CMD DELE WAVE20.BIN", + "[RX] 2026-11-07T23:08:29.411+08:00 [2026-11-07 23:08:28] [FTP] CMD DELE WAVE21.BIN", + "[RX] 2026-11-07T23:08:29.485+08:00 [2026-11-07 23:08:28] [FTP] CMD DELE WAVE22.BIN", + "[RX] 2026-11-07T23:08:29.547+08:00 [2026-11-07 23:08:28] [FTP] CMD DELE WAVE23.BIN", + "[RX] 2026-11-07T23:08:29.620+08:00 [2026-11-07 23:08:29] [FTP] CMD DELE WAVE24.BIN", + "[RX] 2026-11-07T23:08:29.777+08:00 [2026-11-07 23:08:29] [FTP] CMD DELE WAVE25.BIN", + "[RX] 2026-11-07T23:08:29.787+08:00 [2026-11-07 23:08:29] [FTP] CMD DELE WAVE26.BIN", + "[RX] 2026-11-07T23:08:29.870+08:00 [2026-11-07 23:08:29] [FTP] CMD DELE WAVE27.BIN", + "[RX] 2026-11-07T23:08:29.932+08:00 [2026-11-07 23:08:29] [FTP] CMD DELE WAVE28.BIN", + "[RX] 2026-11-07T23:08:29.973+08:00 [2026-11-07 23:08:29] [FTP] CMD DELE WAVE29.BIN", + "[RX] 2026-11-07T23:08:30.045+08:00 [2026-11-07 23:08:29] [FTP] CMD DELE WAVE30.BIN", + "[RX] 2026-11-07T23:08:30.117+08:00 [2026-11-07 23:08:29] [FTP] CMD DELE WAVE31.BIN", + "[RX] 2026-11-07T23:08:30.190+08:00 [2026-11-07 23:08:29] [FTP] CMD DELE WAVE32.BIN", + "[RX] 2026-11-07T23:08:30.263+08:00 [2026-11-07 23:08:29] [FTP] CMD DELE WAVE33.BIN", + "[RX] 2026-11-07T23:08:30.336+08:00 [2026-11-07 23:08:29] [FTP] CMD DELE WAVE34.BIN", + "[RX] 2026-11-07T23:08:30.409+08:00 [2026-11-07 23:08:29] [FTP] CMD DELE WAVE35.BIN", + "[RX] 2026-11-07T23:08:30.481+08:00 [2026-11-07 23:08:29] [FTP] CMD DELE WAVE36.BIN", + "[RX] 2026-11-07T23:08:30.523+08:00 [2026-11-07 23:08:29] [FTP] CMD DELE WAVE37.BIN", + "[RX] 2026-11-07T23:08:30.596+08:00 [2026-11-07 23:08:29] [FTP] CMD DELE WAVE38.BIN", + "[RX] 2026-11-07T23:08:30.638+08:00 STALL snap=0x000001E7 req=0x000001F7 h=000001E7,000001E7,000001E7,000001E7,000001E7,000001E7,000001E7,000001E7 mg=193 cf=0 seg=1", + "[RX] 2026-11-07T23:08:30.783+08:00 [2026-11-07 23:08:30] [FTP] CMD DELE WAVE39.BIN", + "[RX] 2026-11-07T23:08:30.845+08:00 [2026-11-07 23:08:30] [FTP] CMD DELE WAVE40.BIN", + "[RX] 2026-11-07T23:08:30.907+08:00 [2026-11-07 23:08:30] [FTP] CMD DELE WAVE41.BIN", + "[RX] 2026-11-07T23:08:30.990+08:00 [2026-11-07 23:08:30] [FTP] CMD DELE WAVE42.BIN", + "[RX] 2026-11-07T23:08:31.062+08:00 [2026-11-07 23:08:30] [FTP] CMD DELE WAVE43.BIN", + "[RX] 2026-11-07T23:08:31.145+08:00 [2026-11-07 23:08:30] [FTP] CMD DELE WAVE44.BIN", + "[RX] 2026-11-07T23:08:31.197+08:00 [2026-11-07 23:08:30] [FTP] CMD DELE WAVE45.BIN", + "[RX] 2026-11-07T23:08:31.281+08:00 [2026-11-07 23:08:30] [FTP] CMD DELE WAVE46.BIN", + "[RX] 2026-11-07T23:08:31.385+08:00 [2026-11-07 23:08:30] [FTP] CMD DELE WAVE47.BIN", + "[RX] 2026-11-07T23:08:31.447+08:00 [2026-11-07 23:08:30] [FTP] CMD DELE WAVE48.BIN", + "[RX] 2026-11-07T23:08:31.519+08:00 [2026-11-07 23:08:30] [FTP] CMD DELE WAVE49.BIN", + "[RX] 2026-11-07T23:08:31.561+08:00 [2026-11-07 23:08:30] [FTP] CMD DELE WAVE50.BIN", + "[RX] 2026-11-07T23:08:31.603+08:00 [2026-11-07 23:08:31] [FTP] CMD DELE WAVE51.BIN", + "[RX] 2026-11-07T23:08:31.644+08:00 [2026-11-07 23:08:31] [FTP] CMD DELE WAVE52.BIN", + "[RX] 2026-11-07T23:08:31.707+08:00 [2026-11-07 23:08:31] [FTP] CMD DELE WAVE53.BIN", + "[RX] 2026-11-07T23:08:31.738+08:00 [2026-11-07 23:08:31] [FTP] CMD DELE WAVE54.BIN", + "[RX] 2026-11-07T23:08:31.780+08:00 [2026-11-07 23:08:31] [FTP] CMD DELE WAVE55.BIN", + "[RX] 2026-11-07T23:08:31.821+08:00 [2026-11-07 23:08:31] [FTP] CMD DELE WAVE56.BIN", + "[RX] 2026-11-07T23:08:31.863+08:00 [2026-11-07 23:08:31] [FTP] CMD DELE WAVE57.BIN", + "[RX] 2026-11-07T23:08:31.904+08:00 [2026-11-07 23:08:31] [FTP] CMD DELE WAVE58.BIN", + "[RX] 2026-11-07T23:08:31.945+08:00 [2026-11-07 23:08:31] [FTP] CMD DELE WAVE59.BIN", + "[RX] 2026-11-07T23:08:31.987+08:00 [2026-11-07 23:08:31] [FTP] CMD DELE WAVE60.BIN", + "[RX] 2026-11-07T23:08:32.071+08:00 [2026-11-07 23:08:31] [FTP] CMD DELE WAVE61.BIN", + "[RX] 2026-11-07T23:08:32.092+08:00 [2026-11-07 23:08:31] [FTP] CMD DELE WAVE62.BIN", + "[RX] 2026-11-07T23:08:32.175+08:00 [2026-11-07 23:08:31] [FTP] CMD DELE WAVE63.BIN", + "[RX] 2026-11-07T23:08:32.248+08:00 [2026-11-07 23:08:31] [FTP] CMD DELE WAVE64.BIN", + "[RX] 2026-11-07T23:08:32.330+08:00 [2026-11-07 23:08:31] [FTP] CMD DELE WAVE65.BIN", + "[RX] 2026-11-07T23:08:32.446+08:00 [2026-11-07 23:08:31] [FTP] CMD DELE WAVE66.BIN", + "[RX] 2026-11-07T23:08:32.508+08:00 [2026-11-07 23:08:31] [FTP] CMD DELE WAVE67.BIN", + "[RX] 2026-11-07T23:08:32.581+08:00 [2026-11-07 23:08:31] [FTP] CMD DELE WAVE68.BIN", + "[RX] 2026-11-07T23:08:32.717+08:00 [2026-11-07 23:08:32] [FTP] CMD DELE WAVE69.BIN", + "[RX] 2026-11-07T23:08:32.758+08:00 [2026-11-07 23:08:32] [FTP] CMD DELE WAVE70.BIN", + "[RX] 2026-11-07T23:08:32.841+08:00 [2026-11-07 23:08:32] [FTP] CMD DELE WAVE71.BIN", + "[RX] 2026-11-07T23:08:32.914+08:00 [2026-11-07 23:08:32] [FTP] CMD DELE WAVE72.BIN", + "[RX] 2026-11-07T23:08:33.197+08:00 [2026-11-07 23:08:32][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:08:33.227+08:00 [2026-11-07 23:08:32] [FTP] CMD DELE WAVE73.BIN", + "[RX] 2026-11-07T23:08:33.258+08:00 [2026-11-07 23:08:32] [FTP] CMD DELE WAVE74.BIN", + "[RX] 2026-11-07T23:08:33.269+08:00 [2026-11-07 23:08:32] [FTP] CMD DELE WAVE75.BIN", + "[RX] 2026-11-07T23:08:33.373+08:00 [2026-11-07 23:08:32] [FTP] CMD DELE WAVE76.BIN", + "[RX] 2026-11-07T23:08:33.404+08:00 [2026-11-07 23:08:32] [FTP] CMD DELE WAVE77.BIN", + "[RX] 2026-11-07T23:08:33.487+08:00 [2026-11-07 23:08:32] [FTP] CMD DELE WAVE78.BIN", + "[RX] 2026-11-07T23:08:33.570+08:00 [2026-11-07 23:08:32] [FTP] CMD DELE WAVE79.BIN", + "[RX] 2026-11-07T23:08:33.643+08:00 [2026-11-07 23:08:33] [FTP] CMD DELE WAVE80.BIN", + "[RX] 2026-11-07T23:08:33.736+08:00 [2026-11-07 23:08:33] [FTP] CMD DELE WAVE81.BIN", + "[RX] 2026-11-07T23:08:33.850+08:00 [2026-11-07 23:08:33] [FTP] CMD DELE WAVE82.BIN", + "[RX] 2026-11-07T23:08:33.913+08:00 [2026-11-07 23:08:33] [FTP] CMD DELE WAVE83.BIN", + "[RX] 2026-11-07T23:08:33.995+08:00 [2026-11-07 23:08:33] [FTP] CMD DELE WAVE84.BIN", + "[RX] 2026-11-07T23:08:34.068+08:00 [2026-11-07 23:08:33] [FTP] CMD DELE WAVE85.BIN", + "[RX] 2026-11-07T23:08:34.150+08:00 [2026-11-07 23:08:33] [FTP] CMD DELE WAVE86.BIN", + "[RX] 2026-11-07T23:08:34.233+08:00 [2026-11-07 23:08:33] [FTP] CMD DELE WAVE87.BIN", + "[RX] 2026-11-07T23:08:34.316+08:00 [2026-11-07 23:08:33] [FTP] CMD DELE WAVE88.BIN", + "[RX] 2026-11-07T23:08:34.389+08:00 [2026-11-07 23:08:33] [FTP] CMD DELE WAVE89.BIN", + "[RX] 2026-11-07T23:08:34.473+08:00 [2026-11-07 23:08:33] [FTP] CMD DELE WAVE90.BIN", + "[RX] 2026-11-07T23:08:34.577+08:00 [2026-11-07 23:08:33] [FTP] CMD DELE WAVE91.BIN", + "[RX] 2026-11-07T23:08:34.639+08:00 [2026-11-07 23:08:34] [FTP] CMD DELE WAVE92.BIN", + "[RX] 2026-11-07T23:08:34.723+08:00 [2026-11-07 23:08:34] [FTP] CMD DELE WAVE93.BIN", + "[RX] 2026-11-07T23:08:34.805+08:00 [2026-11-07 23:08:34] [FTP] CMD DELE WAVE94.BIN", + "[RX] 2026-11-07T23:08:34.889+08:00 [2026-11-07 23:08:34] [FTP] CMD DELE WAVE95.BIN", + "[RX] 2026-11-07T23:08:34.973+08:00 [2026-11-07 23:08:34] [FTP] CMD DELE WAVE96.BIN", + "[RX] 2026-11-07T23:08:35.056+08:00 [2026-11-07 23:08:34] [FTP] CMD DELE WAVE97.BIN", + "[RX] 2026-11-07T23:08:35.139+08:00 [2026-11-07 23:08:34] [FTP] CMD DELE WAVE98.BIN", + "[RX] 2026-11-07T23:08:35.275+08:00 [2026-11-07 23:08:34] [FTP] CMD DELE WAVE99.BIN", + "[RX] 2026-11-07T23:08:42.995+08:00 [2026-11-07 23:08:42][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:08:53.004+08:00 [2026-11-07 23:08:52][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:09:02.997+08:00 [2026-11-07 23:09:02][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:09:03.638+08:00 [2026-11-07 23:09:03] [FTP] UPLOAD '/WAVE/WAVE06.BIN' 5250 bytes OK", + "[RX] 2026-11-07T23:09:10.839+08:00 [2026-11-07 23:09:10] [FTP] UPLOAD '/WAVE/WAVE99.BIN' 5250 bytes OK", + "[RX] 2026-11-07T23:09:13.001+08:00 [2026-11-07 23:09:12][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:09:15.641+08:00 [2026-11-07 23:09:15] [FTP] UPLOAD '/WAVE/WAVE99.BIN' 5250 bytes OK", + "[RX] 2026-11-07T23:09:22.998+08:00 [2026-11-07 23:09:22][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:09:29.646+08:00 [2026-11-07 23:09:29] [FTP] CMD DELE WAVE06.BIN", + "[RX] 2026-11-07T23:09:29.677+08:00 [2026-11-07 23:09:29] [FTP] CMD DELE WAVE99.BIN", + "[RX] 2026-11-07T23:09:29.865+08:00 [2026-11-07 23:09:29] [FTP] UPLOAD '/WAVE/WAVE06.BIN' 5250 bytes OK", + "[RX] 2026-11-07T23:09:32.120+08:00 [2026-11-07 23:09:31][ERR][UI_TASK] ui wave head idx=6 reject=5 stored=0xC204 calc=0x8A84", + "[RX] 2026-11-07T23:09:33.000+08:00 [2026-11-07 23:09:32][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:09:38.759+08:00 [2026-11-07 23:09:38][ERR][UI_TASK] ui wave head idx=6 reject=5 stored=0xC204 calc=0x8A84", + "[RX] 2026-11-07T23:09:42.995+08:00 [2026-11-07 23:09:42][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:09:45.374+08:00 [2026-11-07 23:09:44][ERR][UI_TASK] ui wave head idx=6 reject=5 stored=0xC204 calc=0x8A84", + "[RX] 2026-11-07T23:09:50.784+08:00 [2026-11-07 23:09:50] [FTP] UPLOAD '/WAVE/WAVE06.BIN' 5250 bytes OK", + "[RX] 2026-11-07T23:09:52.994+08:00 [2026-11-07 23:09:52][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:09:58.063+08:00 [2026-11-07 23:09:57] [FTP] CMD DELE WAVE06.BIN", + "[RX] 2026-11-07T23:09:58.239+08:00 [2026-11-07 23:09:57] [FTP] UPLOAD '/WAVE/WAVE99.BIN' 5250 bytes OK", + "[RX] 2026-11-07T23:10:00.363+08:00 [2026-11-07 23:09:59][ERR][UI_TASK] ui wave head idx=99 reject=1 stored=0x0000 calc=0x0000", + "[RX] 2026-11-07T23:10:02.996+08:00 [2026-11-07 23:10:02][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:10:05.772+08:00 [2026-11-07 23:10:05] [FTP] UPLOAD '/WAVE/WAVE99.BIN' 5250 bytes OK", + "[RX] 2026-11-07T23:10:12.998+08:00 [2026-11-07 23:10:12][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:10:22.995+08:00 [2026-11-07 23:10:22][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:10:32.996+08:00 [2026-11-07 23:10:32][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:10:38.625+08:00 [2026-11-07 23:10:38] [FTP] UPLOAD '/WAVE/WAVE00.BIN' 141750 bytes OK", + "[RX] 2026-11-07T23:10:39.785+08:00 [2026-11-07 23:10:39] [FTP] UPLOAD '/WAVE/WAVE01.BIN' 141750 bytes OK", + "[RX] 2026-11-07T23:10:40.893+08:00 [2026-11-07 23:10:40] [FTP] UPLOAD '/WAVE/WAVE02.BIN' 141750 bytes OK", + "[RX] 2026-11-07T23:10:42.062+08:00 [2026-11-07 23:10:41] [FTP] UPLOAD '/WAVE/WAVE03.BIN' 141750 bytes OK", + "[RX] 2026-11-07T23:10:43.007+08:00 [2026-11-07 23:10:42][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:10:43.246+08:00 [2026-11-07 23:10:42] [FTP] UPLOAD '/WAVE/WAVE04.BIN' 141750 bytes OK", + "[RX] 2026-11-07T23:10:44.424+08:00 [2026-11-07 23:10:43] [FTP] UPLOAD '/WAVE/WAVE05.BIN' 141750 bytes OK", + "[RX] 2026-11-07T23:10:45.561+08:00 [2026-11-07 23:10:44] [FTP] UPLOAD '/WAVE/WAVE06.BIN' 141750 bytes OK", + "[RX] 2026-11-07T23:10:46.702+08:00 [2026-11-07 23:10:46] [FTP] UPLOAD '/WAVE/WAVE07.BIN' 141750 bytes OK", + "[RX] 2026-11-07T23:10:47.892+08:00 [2026-11-07 23:10:47] [FTP] UPLOAD '/WAVE/WAVE08.BIN' 141750 bytes OK", + "[RX] 2026-11-07T23:10:49.063+08:00 [2026-11-07 23:10:48] [FTP] UPLOAD '/WAVE/WAVE09.BIN' 141750 bytes OK", + "[RX] 2026-11-07T23:10:50.206+08:00 [2026-11-07 23:10:49] [FTP] UPLOAD '/WAVE/WAVE10.BIN' 141750 bytes OK", + "[RX] 2026-11-07T23:10:51.322+08:00 [2026-11-07 23:10:50] [FTP] UPLOAD '/WAVE/WAVE11.BIN' 141750 bytes OK", + "[RX] 2026-11-07T23:10:52.441+08:00 [2026-11-07 23:10:51] [FTP] UPLOAD '/WAVE/WAVE12.BIN' 141750 bytes OK", + "[RX] 2026-11-07T23:10:53.001+08:00 [2026-11-07 23:10:52][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:10:53.613+08:00 [2026-11-07 23:10:53] [FTP] UPLOAD '/WAVE/WAVE13.BIN' 141750 bytes OK", + "[RX] 2026-11-07T23:10:54.733+08:00 [2026-11-07 23:10:54] [FTP] UPLOAD '/WAVE/WAVE14.BIN' 141750 bytes OK", + "[RX] 2026-11-07T23:10:55.847+08:00 [2026-11-07 23:10:55] [FTP] UPLOAD '/WAVE/WAVE15.BIN' 141750 bytes OK", + "[RX] 2026-11-07T23:10:56.974+08:00 [2026-11-07 23:10:56] [FTP] UPLOAD '/WAVE/WAVE16.BIN' 141750 bytes OK", + "[RX] 2026-11-07T23:10:58.062+08:00 [2026-11-07 23:10:57] [FTP] UPLOAD '/WAVE/WAVE17.BIN' 136500 bytes OK", + "[RX] 2026-11-07T23:10:59.190+08:00 [2026-11-07 23:10:58] [FTP] UPLOAD '/WAVE/WAVE18.BIN' 136500 bytes OK", + "[RX] 2026-11-07T23:11:00.290+08:00 [2026-11-07 23:10:59] [FTP] UPLOAD '/WAVE/WAVE19.BIN' 136500 bytes OK", + "[RX] 2026-11-07T23:11:01.483+08:00 [2026-11-07 23:11:00] [FTP] UPLOAD '/WAVE/WAVE20.BIN' 136500 bytes OK", + "[RX] 2026-11-07T23:11:02.570+08:00 [2026-11-07 23:11:01] [FTP] UPLOAD '/WAVE/WAVE21.BIN' 136500 bytes OK", + "[RX] 2026-11-07T23:11:02.994+08:00 [2026-11-07 23:11:02][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:11:03.660+08:00 [2026-11-07 23:11:03] [FTP] UPLOAD '/WAVE/WAVE22.BIN' 131250 bytes OK", + "[RX] 2026-11-07T23:11:04.758+08:00 [2026-11-07 23:11:04] [FTP] UPLOAD '/WAVE/WAVE23.BIN' 131250 bytes OK", + "[RX] 2026-11-07T23:11:05.826+08:00 [2026-11-07 23:11:05] [FTP] UPLOAD '/WAVE/WAVE24.BIN' 126000 bytes OK", + "[RX] 2026-11-07T23:11:06.907+08:00 [2026-11-07 23:11:06] [FTP] UPLOAD '/WAVE/WAVE25.BIN' 126000 bytes OK", + "[RX] 2026-11-07T23:11:07.969+08:00 [2026-11-07 23:11:07] [FTP] UPLOAD '/WAVE/WAVE26.BIN' 126000 bytes OK", + "[RX] 2026-11-07T23:11:09.023+08:00 [2026-11-07 23:11:08] [FTP] UPLOAD '/WAVE/WAVE27.BIN' 126000 bytes OK", + "[RX] 2026-11-07T23:11:09.781+08:00 [2026-11-07 23:11:09] [FTP] UPLOAD '/WAVE/WAVE28.BIN' 31500 bytes OK", + "[RX] 2026-11-07T23:11:10.845+08:00 [2026-11-07 23:11:10] [FTP] UPLOAD '/WAVE/WAVE29.BIN' 126000 bytes OK", + "[RX] 2026-11-07T23:11:11.939+08:00 [2026-11-07 23:11:11] [FTP] UPLOAD '/WAVE/WAVE30.BIN' 120750 bytes OK", + "[RX] 2026-11-07T23:11:13.006+08:00 [2026-11-07 23:11:12][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:11:13.068+08:00 [2026-11-07 23:11:12] [FTP] UPLOAD '/WAVE/WAVE31.BIN' 120750 bytes OK", + "[RX] 2026-11-07T23:11:14.137+08:00 [2026-11-07 23:11:13] [FTP] UPLOAD '/WAVE/WAVE32.BIN' 120750 bytes OK", + "[RX] 2026-11-07T23:11:15.184+08:00 [2026-11-07 23:11:14] [FTP] UPLOAD '/WAVE/WAVE33.BIN' 120750 bytes OK", + "[RX] 2026-11-07T23:11:16.241+08:00 [2026-11-07 23:11:15] [FTP] UPLOAD '/WAVE/WAVE34.BIN' 115500 bytes OK", + "[RX] 2026-11-07T23:11:17.261+08:00 [2026-11-07 23:11:16] [FTP] UPLOAD '/WAVE/WAVE35.BIN' 115500 bytes OK", + "[RX] 2026-11-07T23:11:17.927+08:00 [2026-11-07 23:11:17] [FTP] UPLOAD '/WAVE/WAVE36.BIN' 10500 bytes OK", + "[RX] 2026-11-07T23:11:18.934+08:00 [2026-11-07 23:11:18] [FTP] UPLOAD '/WAVE/WAVE37.BIN' 110250 bytes OK", + "[RX] 2026-11-07T23:11:19.969+08:00 [2026-11-07 23:11:19] [FTP] UPLOAD '/WAVE/WAVE38.BIN' 110250 bytes OK", + "[RX] 2026-11-07T23:11:20.987+08:00 [2026-11-07 23:11:20] [FTP] UPLOAD '/WAVE/WAVE39.BIN' 110250 bytes OK", + "[RX] 2026-11-07T23:11:22.011+08:00 [2026-11-07 23:11:21] [FTP] UPLOAD '/WAVE/WAVE40.BIN' 110250 bytes OK", + "[RX] 2026-11-07T23:11:23.007+08:00 [2026-11-07 23:11:22][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:11:23.100+08:00 [2026-11-07 23:11:22] [FTP] UPLOAD '/WAVE/WAVE41.BIN' 110250 bytes OK", + "[RX] 2026-11-07T23:11:24.106+08:00 [2026-11-07 23:11:23] [FTP] UPLOAD '/WAVE/WAVE42.BIN' 110250 bytes OK", + "[RX] 2026-11-07T23:11:25.133+08:00 [2026-11-07 23:11:24] [FTP] UPLOAD '/WAVE/WAVE43.BIN' 110250 bytes OK", + "[RX] 2026-11-07T23:11:26.023+08:00 [2026-11-07 23:11:25] [FTP] UPLOAD '/WAVE/WAVE44.BIN' 68250 bytes OK", + "[RX] 2026-11-07T23:11:27.006+08:00 [2026-11-07 23:11:26] [FTP] UPLOAD '/WAVE/WAVE45.BIN' 105000 bytes OK", + "[RX] 2026-11-07T23:11:28.009+08:00 [2026-11-07 23:11:27] [FTP] UPLOAD '/WAVE/WAVE46.BIN' 99750 bytes OK", + "[RX] 2026-11-07T23:11:29.001+08:00 [2026-11-07 23:11:28] [FTP] UPLOAD '/WAVE/WAVE47.BIN' 99750 bytes OK", + "[RX] 2026-11-07T23:11:29.973+08:00 [2026-11-07 23:11:29] [FTP] UPLOAD '/WAVE/WAVE48.BIN' 94500 bytes OK", + "[RX] 2026-11-07T23:11:30.907+08:00 [2026-11-07 23:11:30] [FTP] UPLOAD '/WAVE/WAVE49.BIN' 89250 bytes OK", + "[RX] 2026-11-07T23:11:31.818+08:00 [2026-11-07 23:11:31] [FTP] UPLOAD '/WAVE/WAVE50.BIN' 78750 bytes OK", + "[RX] 2026-11-07T23:11:32.741+08:00 [2026-11-07 23:11:32] [FTP] UPLOAD '/WAVE/WAVE51.BIN' 78750 bytes OK", + "[RX] 2026-11-07T23:11:33.002+08:00 [2026-11-07 23:11:32][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:11:33.643+08:00 [2026-11-07 23:11:33] [FTP] UPLOAD '/WAVE/WAVE52.BIN' 78750 bytes OK", + "[RX] 2026-11-07T23:11:34.546+08:00 [2026-11-07 23:11:33] [FTP] UPLOAD '/WAVE/WAVE53.BIN' 78750 bytes OK", + "[RX] 2026-11-07T23:11:35.449+08:00 [2026-11-07 23:11:34] [FTP] UPLOAD '/WAVE/WAVE54.BIN' 78750 bytes OK", + "[RX] 2026-11-07T23:11:36.387+08:00 [2026-11-07 23:11:35] [FTP] UPLOAD '/WAVE/WAVE55.BIN' 78750 bytes OK", + "[RX] 2026-11-07T23:11:37.282+08:00 [2026-11-07 23:11:36] [FTP] UPLOAD '/WAVE/WAVE56.BIN' 78750 bytes OK", + "[RX] 2026-11-07T23:11:38.206+08:00 [2026-11-07 23:11:37] [FTP] UPLOAD '/WAVE/WAVE57.BIN' 78750 bytes OK", + "[RX] 2026-11-07T23:11:39.150+08:00 [2026-11-07 23:11:38] [FTP] UPLOAD '/WAVE/WAVE58.BIN' 78750 bytes OK", + "[RX] 2026-11-07T23:11:40.050+08:00 [2026-11-07 23:11:39] [FTP] UPLOAD '/WAVE/WAVE59.BIN' 78750 bytes OK", + "[RX] 2026-11-07T23:11:40.940+08:00 [2026-11-07 23:11:40] [FTP] UPLOAD '/WAVE/WAVE60.BIN' 73500 bytes OK", + "[RX] 2026-11-07T23:11:41.845+08:00 [2026-11-07 23:11:41] [FTP] UPLOAD '/WAVE/WAVE61.BIN' 73500 bytes OK", + "[RX] 2026-11-07T23:11:42.739+08:00 [2026-11-07 23:11:42] [FTP] UPLOAD '/WAVE/WAVE62.BIN' 73500 bytes OK", + "[RX] 2026-11-07T23:11:43.000+08:00 [2026-11-07 23:11:42][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:11:43.632+08:00 [2026-11-07 23:11:43] [FTP] UPLOAD '/WAVE/WAVE63.BIN' 73500 bytes OK", + "[RX] 2026-11-07T23:11:44.523+08:00 [2026-11-07 23:11:43] [FTP] UPLOAD '/WAVE/WAVE64.BIN' 73500 bytes OK", + "[RX] 2026-11-07T23:11:45.457+08:00 [2026-11-07 23:11:44] [FTP] UPLOAD '/WAVE/WAVE65.BIN' 73500 bytes OK", + "[RX] 2026-11-07T23:11:46.350+08:00 [2026-11-07 23:11:45] [FTP] UPLOAD '/WAVE/WAVE66.BIN' 73500 bytes OK", + "[RX] 2026-11-07T23:11:47.229+08:00 [2026-11-07 23:11:46] [FTP] UPLOAD '/WAVE/WAVE67.BIN' 73500 bytes OK", + "[RX] 2026-11-07T23:11:48.118+08:00 [2026-11-07 23:11:47] [FTP] UPLOAD '/WAVE/WAVE68.BIN' 73500 bytes OK", + "[RX] 2026-11-07T23:11:49.002+08:00 [2026-11-07 23:11:48] [FTP] UPLOAD '/WAVE/WAVE69.BIN' 73500 bytes OK", + "[RX] 2026-11-07T23:11:49.890+08:00 [2026-11-07 23:11:49] [FTP] UPLOAD '/WAVE/WAVE70.BIN' 73500 bytes OK", + "[RX] 2026-11-07T23:11:50.778+08:00 [2026-11-07 23:11:50] [FTP] UPLOAD '/WAVE/WAVE71.BIN' 73500 bytes OK", + "[RX] 2026-11-07T23:11:51.686+08:00 [2026-11-07 23:11:51] [FTP] UPLOAD '/WAVE/WAVE72.BIN' 73500 bytes OK", + "[RX] 2026-11-07T23:11:52.569+08:00 [2026-11-07 23:11:51] [FTP] UPLOAD '/WAVE/WAVE73.BIN' 73500 bytes OK", + "[RX] 2026-11-07T23:11:52.995+08:00 [2026-11-07 23:11:52][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:11:53.460+08:00 [2026-11-07 23:11:52] [FTP] UPLOAD '/WAVE/WAVE74.BIN' 73500 bytes OK", + "[RX] 2026-11-07T23:11:54.392+08:00 [2026-11-07 23:11:53] [FTP] UPLOAD '/WAVE/WAVE75.BIN' 73500 bytes OK", + "[RX] 2026-11-07T23:11:55.294+08:00 [2026-11-07 23:11:54] [FTP] UPLOAD '/WAVE/WAVE76.BIN' 73500 bytes OK", + "[RX] 2026-11-07T23:11:56.205+08:00 [2026-11-07 23:11:55] [FTP] UPLOAD '/WAVE/WAVE77.BIN' 73500 bytes OK", + "[RX] 2026-11-07T23:11:57.087+08:00 [2026-11-07 23:11:56] [FTP] UPLOAD '/WAVE/WAVE78.BIN' 73500 bytes OK", + "[RX] 2026-11-07T23:11:58.017+08:00 [2026-11-07 23:11:57] [FTP] UPLOAD '/WAVE/WAVE79.BIN' 73500 bytes OK", + "[RX] 2026-11-07T23:11:58.910+08:00 [2026-11-07 23:11:58] [FTP] UPLOAD '/WAVE/WAVE80.BIN' 73500 bytes OK", + "[RX] 2026-11-07T23:11:59.784+08:00 [2026-11-07 23:11:59] [FTP] UPLOAD '/WAVE/WAVE81.BIN' 73500 bytes OK", + "[RX] 2026-11-07T23:12:00.706+08:00 [2026-11-07 23:12:00] [FTP] UPLOAD '/WAVE/WAVE82.BIN' 73500 bytes OK", + "[RX] 2026-11-07T23:12:01.598+08:00 [2026-11-07 23:12:01] [FTP] UPLOAD '/WAVE/WAVE83.BIN' 73500 bytes OK", + "[RX] 2026-11-07T23:12:02.563+08:00 [2026-11-07 23:12:01] [FTP] UPLOAD '/WAVE/WAVE84.BIN' 73500 bytes OK", + "[RX] 2026-11-07T23:12:02.997+08:00 [2026-11-07 23:12:02][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:12:03.453+08:00 [2026-11-07 23:12:02] [FTP] UPLOAD '/WAVE/WAVE85.BIN' 73500 bytes OK", + "[RX] 2026-11-07T23:12:04.370+08:00 [2026-11-07 23:12:03] [FTP] UPLOAD '/WAVE/WAVE86.BIN' 73500 bytes OK", + "[RX] 2026-11-07T23:12:05.284+08:00 [2026-11-07 23:12:04] [FTP] UPLOAD '/WAVE/WAVE87.BIN' 73500 bytes OK", + "[RX] 2026-11-07T23:12:06.177+08:00 [2026-11-07 23:12:05] [FTP] UPLOAD '/WAVE/WAVE88.BIN' 73500 bytes OK", + "[RX] 2026-11-07T23:12:07.328+08:00 [2026-11-07 23:12:06] [FTP] UPLOAD '/WAVE/WAVE89.BIN' 73500 bytes OK", + "[RX] 2026-11-07T23:12:08.260+08:00 [2026-11-07 23:12:07] [FTP] UPLOAD '/WAVE/WAVE90.BIN' 71680 bytes OK", + "[RX] 2026-11-07T23:12:09.175+08:00 [2026-11-07 23:12:08] [FTP] UPLOAD '/WAVE/WAVE91.BIN' 73500 bytes OK", + "[RX] 2026-11-07T23:12:10.086+08:00 [2026-11-07 23:12:09] [FTP] UPLOAD '/WAVE/WAVE92.BIN' 73500 bytes OK", + "[RX] 2026-11-07T23:12:10.997+08:00 [2026-11-07 23:12:10] [FTP] UPLOAD '/WAVE/WAVE93.BIN' 73500 bytes OK", + "[RX] 2026-11-07T23:12:11.902+08:00 [2026-11-07 23:12:11] [FTP] UPLOAD '/WAVE/WAVE94.BIN' 73500 bytes OK", + "[RX] 2026-11-07T23:12:12.792+08:00 [2026-11-07 23:12:12] [FTP] UPLOAD '/WAVE/WAVE95.BIN' 73500 bytes OK", + "[RX] 2026-11-07T23:12:13.000+08:00 [2026-11-07 23:12:12][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:12:13.694+08:00 [2026-11-07 23:12:13] [FTP] UPLOAD '/WAVE/WAVE96.BIN' 73500 bytes OK", + "[RX] 2026-11-07T23:12:14.618+08:00 [2026-11-07 23:12:14] [FTP] UPLOAD '/WAVE/WAVE97.BIN' 73500 bytes OK", + "[RX] 2026-11-07T23:12:15.843+08:00 [2026-11-07 23:12:15] [FTP] UPLOAD '/WAVE/WAVE98.BIN' 73500 bytes OK", + "[RX] 2026-11-07T23:12:16.869+08:00 [2026-11-07 23:12:16] [FTP] UPLOAD '/WAVE/WAVE99.BIN' 71680 bytes OK", + "[RX] 2026-11-07T23:12:22.998+08:00 [2026-11-07 23:12:22][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:12:33.015+08:00 [2026-11-07 23:12:32][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:12:43.002+08:00 [2026-11-07 23:12:42][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:12:53.007+08:00 [2026-11-07 23:12:52][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:13:02.999+08:00 [2026-11-07 23:13:02][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", + "[RX] 2026-11-07T23:13:12.997+08:00 [2026-11-07 23:13:12][ADC_TASK] wave: seg=1 armed=0 src=M pts=320 err=0 ovf=0 drop=1000", diff --git a/docs/测试说明/测试数据/wave_fix_20261107/serial_stats.json b/docs/测试说明/测试数据/wave_fix_20261107/serial_stats.json new file mode 100644 index 00000000..411ad1b0 --- /dev/null +++ b/docs/测试说明/测试数据/wave_fix_20261107/serial_stats.json @@ -0,0 +1,25 @@ +{ + "counts": { + "before": { + "lines": 16, + "reject_lines": 0, + "scan_anchors": 0, + "open_fail": 0, + "err_total": 0, + "err_i104_bind": 0, + "err_ui": 0, + "manual_src": 0 + }, + "after": { + "lines": 187, + "reject_lines": 1, + "scan_anchors": 0, + "open_fail": 0, + "err_total": 2, + "err_i104_bind": 1, + "err_ui": 1, + "manual_src": 20 + } + }, + "f13_spam_scans": 0 +}