补齐 xyzbc-trt Web 路径证据

This commit is contained in:
mes123456
2026-07-02 08:57:59 -04:00
parent 43034b2a91
commit fb128e6b64
13 changed files with 115503 additions and 89 deletions

View File

@@ -1,5 +1,89 @@
# 03-推进台账
## 2026-07-02 Web task/HAL executionPath 采集实现轮次
### 本轮目标
接续 `working` 任务矩阵,补齐 Web 侧 `executionPath.samples`,让 Web evidence 的预览路径和执行路径都使用 20ms 采样周期,并重新生成 compare 证据。
### 已做事项
- 修改 `tools/collect-web-xyzbc-trt-evidence.mjs`
- 复用 `linuxcnc_interp` 生成 machine-file canonical motion 和 TP timing。
- 将 TP planner 原始样本重采样为 20ms `previewPath.samples`
- 将同一 motion plan 装入 `linuxcnc_task_hal` WASM。
- 按 20ms task cycle 读取 task/HAL status生成 `executionPath.samples`
-`xyzbc-trt` 显式按 `joint.0/1/2/3/4` 映射 `X/Y/Z/B/C`,避免 B/C 轴被 XYZAC 兼容字段误映射。
- 扩展 `tests/node/verify_xyzbc_trt_web_app.mjs`,增加 interpreter + task/HAL 执行反馈 smoke 断言。
- 重新生成:
- `working/evidence/web-xyzbc-trt-evidence.json`
- `working/evidence/compare-xyzbc-trt-evidence.json`
- 更新 `04-任务矩阵.md`,将 T-022 标记为完成,并更新 T-017/T-021 的当前样本和通过数。
### 验证情况
- `npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run evidence:web` 通过。
- `web-xyzbc-trt-evidence.json` 当前摘要:
- `wasm.ready=true`
- `blockers=[]`
- `previewPath.samplePeriodMs=20`
- `previewPath.sampleCount=3074`
- `executionPath.samplePeriodMs=20`
- `executionPath.sampleCount=569`
- `executionPath.source=web-linuxcnc-task-hal-execution`
- `executionPath.taskHal.completed=true`
- `npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run evidence:compare` 已生成真实失败报告:当前 18/23 通过,剩余 5 项均为 native evidence 缺少 `previewPath`/`executionPath` 样本和 20ms 周期字段。
- `npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run smoke:node` 通过。
- `npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run build` 通过,输出 `gmoccapy_static_build=ok`
### 下一步
1.`/home/mes123456/cnc_wams/linuxcnc/scripts/rip-environment` 下重跑 native evidence使 `native-xyzbc-trt-evidence.json` 写入 `pathSampling``previewPath` 和 20ms `executionPath`
2. 重跑 Web evidence 和 compare使剩余 native path 相关失败进入可比误差统计。
3. 继续目标浏览器 smoke验证 worker runtime ready 和 canvas 非空。
## 2026-07-02 evidence 字段与路径对比实现轮次
### 本轮目标
`working` 目录继续编写 `xyzbc-trt` Web 数控仿真程序,优先补齐可以在当前环境闭环验证的 evidence JSON、路径对比和 staging 覆盖。
### 已做事项
-`xyzbc-trt` profile 的 `samplePrograms` 修正为 `xyzbc_switchkins.ngc``boat-xyzbc.ngc`
- 扩展 Web evidence新增 `pathSampling``previewPath``executionPath``startupSequence``iniDisplay``halNets``kinematicsPins``axisJointLimits``switchkinsTransitions``uiEquivalence``vismachEquivalent``ngcguiSubroutines``demoPrograms`
- 扩展 compare evidence新增 `pathComparison`,覆盖 `previewVsPreview``executionVsExecution``previewVsExecutionNative``previewVsExecutionWeb`,并输出 TCP、joint、toolAxis、样本差异和缺样本统计。
- 修改 native evidence 脚本默认基线为 `/home/mes123456/cnc_wams/linuxcnc`,并在 `--run` 时可把 `stat()` 执行事件重采样为 20ms `executionPath`
- 扩展 Node smoke检查 `samplePrograms`、Ngcgui 子程序和 `boat-xyzbc.ngc` staging。
- 重新生成 Web evidence 和 compare evidence。当前 compare 为真实 failWASM artifact 缺失native/Web path 样本仍不可比。
### 修改文件
```text
web-rtcp-5axis-xyzbc-trt-sim-plan/app/src/profiles/xyzbc-trt.js
web-rtcp-5axis-xyzbc-trt-sim-plan/tests/node/verify_xyzbc_trt_web_app.mjs
web-rtcp-5axis-xyzbc-trt-sim-plan/tools/collect-web-xyzbc-trt-evidence.mjs
web-rtcp-5axis-xyzbc-trt-sim-plan/tools/collect-native-xyzbc-trt-evidence.py
web-rtcp-5axis-xyzbc-trt-sim-plan/tools/compare-xyzbc-trt-evidence.mjs
web-rtcp-5axis-xyzbc-trt-sim-plan/working/evidence/web-xyzbc-trt-evidence.json
web-rtcp-5axis-xyzbc-trt-sim-plan/working/evidence/compare-xyzbc-trt-evidence.json
web-rtcp-5axis-xyzbc-trt-sim-plan/working/04-任务矩阵.md
```
### 验证情况
- 已通过:`npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run smoke:node`
- 已通过:`python3 -m py_compile web-rtcp-5axis-xyzbc-trt-sim-plan/tools/collect-native-xyzbc-trt-evidence.py`
- 已通过生成:`npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run evidence:web`
- 已生成真实失败 compare`npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run evidence:compare`,当前 23 项检查中 16 项通过7 项失败均指向 WASM artifact 和 path 样本缺口。
- 已确认 `npm run build` 仍因 `wasm-port/build/wasm/kinematics` 缺失失败;该结果符合当前 WASM artifact 前置状态。
### 下一步
1. 构建 `wasm-port/build/wasm` 的 kinematics/core/tp/task-hal artifact。
2.`/home/mes123456/cnc_wams/linuxcnc/scripts/rip-environment` 下重跑 native evidence使 `sourceRoot` 和 path 字段进入 `native-xyzbc-trt-evidence.json`
3. 重跑 Web evidence 和 compare确认 pathComparison 从 blocker 转为可比误差统计。
## 2026-07-02 07:31 EDT - DOCX 设计任务书整合到 working
### 本轮目标
@@ -278,3 +362,74 @@ web-rtcp-5axis-xyzbc-trt-sim-plan/working/06-决策记录.md
1. 用当前运行的新 native 实例重采集 `native-xyzbc-trt-evidence.json`
2. 将现有历史 `/home/mes123456/linuxcnc-master` evidence 替换为 `/home/mes123456/cnc_wams/linuxcnc` evidence。
3. 基于新 evidence 重跑 Web compare。
## 2026-07-02 生成 WASM artifact
### 本轮目标
`web-rtcp-5axis-xyzbc-trt-sim-plan` 生成缺失的 `wasm-port/build/wasm` artifact使 Web evidence 不再因缺少 `.js/.wasm` 构建产物而 blocked。
### 已做事项
- 显式加载 `/home/mes123456/emsdk/emsdk_env.sh`,确认 `emcc 6.0.2` 可用。
- 执行以下构建脚本:
- `wasm-port/tools/build_wasm_core.sh`
- `wasm-port/tools/build_kinematics_wasm.sh`
- `wasm-port/tools/build_tp_wasm.sh`
- `wasm-port/tools/build_task_hal_wasm.sh`
- 已生成目标项目所需 artifact
- `wasm-port/build/wasm/core/linuxcnc_interp.js`
- `wasm-port/build/wasm/core/linuxcnc_interp.wasm`
- `wasm-port/build/wasm/kinematics/linuxcnc_xyzbc_trt_kinematics.js`
- `wasm-port/build/wasm/kinematics/linuxcnc_xyzbc_trt_kinematics.wasm`
- `wasm-port/build/wasm/tp/linuxcnc_tp.js`
- `wasm-port/build/wasm/tp/linuxcnc_tp.wasm`
- `wasm-port/build/wasm/task-hal/linuxcnc_task_hal.js`
- `wasm-port/build/wasm/task-hal/linuxcnc_task_hal.wasm`
- `wasm-port/build/wasm` 下当前共有 40 个 `.js/.wasm` artifact。
### 验证情况
- `node tests/node/verify_xyzbc_trt_web_app.mjs` 通过。
- `SKIP_KINEMATICS_BUILD=1 wasm-port/tests/wasm/node/verify_kinematics_wasm.sh` 通过,包含 `xyzbc-trt` kinematics smoke。
- `SKIP_TP_BUILD=1 wasm-port/tests/wasm/node/verify_tp_wasm.sh` 通过。
- `SKIP_TASK_HAL_BUILD=1 wasm-port/tests/wasm/node/verify_task_hal_wasm.sh` 通过。
- 历史状态:`SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_interp_wasm.sh` 当时未通过,原因是 `interp_g10_l11_wasm` 的 G10 L11 期望值过期;该项已在后续“完整 interpreter/remap 验收”轮次修复。
- 重新运行 `node tools/collect-web-xyzbc-trt-evidence.mjs``web-xyzbc-trt-evidence.json` 显示 `wasmArtifactsReady=true``missing=[]`,并生成 Web preview path 6174 个 20ms 样本。
- 重新运行 `node tools/compare-xyzbc-trt-evidence.mjs`,当前 17/23 通过;剩余失败项集中在 native preview/execution path 样本缺失,以及 Web execution path collector 尚未实现。
### 下一步
1. 已完成:`verify_interp_wasm.sh``interp_g10_l11_wasm` 的 G10 L11 断言已对齐 vendored LinuxCNC expected。
2.`/home/mes123456/cnc_wams/linuxcnc` 当前 native 实例重采集 `native-xyzbc-trt-evidence.json` 的 preview/execution path。
3. 实现 Web task/HAL execution path 采集,补齐 `web-xyzbc-trt-evidence.json.executionPath.samples`
## 2026-07-02 完整 interpreter/remap 验收
### 本轮目标
完成 `wasm-port/tests/wasm/node/verify_interp_wasm.sh` 的 interpreter/remap WASM 验收,使 `linuxcnc_interp.js/.wasm` 不仅生成,而且通过完整 Node 回归。
### 已做事项
- 单独复现 `interp_g10_l11_wasm`,打印实际 canonical 输出。
- 对照 `wasm-port/vendor/linuxcnc/tests/interp/g10/g10-l11/expected`,确认 WASM 实际输出与 vendored LinuxCNC 当前 expected 一致:
- `SET_G92_OFFSET(-43.0622, -47.4282, -72.0000)`
- 修正 `wasm-port/tests/wasm/node/verify_interp_wasm.mjs` 中过期的 G10 L11 断言:
- 旧值:`x=-41.1962 y=-46.1962 z=-72`
- 新值:`x=-43.0622 y=-47.4282 z=-72`
### 验证情况
- `SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_interp_wasm.sh` 通过,输出 `interp_wasm_node_smoke=ok`
- `wasm-port/tests/wasm/node/verify_interp_wasm.sh` 通过,输出 `interp_wasm_node_smoke=ok`
- 运行中仍有既有提示:
- `link (updating variable file): No such file or directory`
- `G88.1``M410` remap modalgroup warning
- 上述提示不影响退出码,完整 interpreter/remap 验收已通过。
### 下一步
1. 继续 native preview/execution path 重采集。
2. 实现 Web task/HAL execution path collector。
3. 重跑 Web/native compare使剩余 6 个 path 相关失败项进入可比误差统计。