Files
cnc_wams/web-rtcp-5axis-sim-plan/working1/04-traceability-matrix.md

73 lines
5.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 04 修复溯源矩阵
生成时间2026-06-22
## 1. 总体追溯原则
```text
测试问题 -> 证据 -> 本地代码落点 -> LinuxCNC/项目参考 -> 修复项 -> 验收项
```
任何修复都不能只修改 UI 文案掩盖问题,必须让 runtime state、DOM diagnostics、截图和自动化断言一致。
## 2. 问题到修复追溯表
| 问题 ID | 测试证据 | 本地代码落点 | LinuxCNC/项目参考 | 修复项 | 验收项 |
| --- | --- | --- | --- | --- | --- |
| D1 | `sourceMode=fixture-ui-only``frameBoundary=fixture_frame_ui_plumbing_not_linuxcnc_kinematics_proof`,但 `kinematicsRuntimeReadiness.loaded=true` | `app/src/state/store.js` `ATTACH_KINEMATICS_RUNTIME``setState()``scheduleAsyncKinematicsRefresh()``refreshAsyncKinematicsFrame()``app/src/main.js` `attachDefaultKinematicsRuntime()` | `docs/traceability-matrix.md``Five-axis kinematics``RTCP/TCP frame`LinuxCNC `xyzac-trt-kins.c``xyzbc-trt-kins.c``trtfuncs.c` | 分离 `desiredFrameSourceMode` 与当前 `frameSourceMode`,异步 worker ready 后自动刷新 frame | 首屏 8 秒内 `sourceMode=source-derived-kinematics-wasm`DOM boundary 为 `linuxcnc_kinematics_wasm_c_abi` |
| D2 | 截图中 preview 黑屏,无可见机床/刀路canvas dataset 不稳定 | `app/src/visualization/five-axis-scene.js` `createScene()``updateToolpathPreview()``renderFallbackPreview()``exposePreviewDataset()``app/src/ui/gmoccapy-shell.js` `renderPreview()` | `docs/implementation-plan.md` 5.4 Visualization/PlaybackLinuxCNC `lib/python/vismach.py`、5-axis vismach GUI screenshots | 修复未定义变量加入常驻机床模型fallback 绘制明显对象,增加 pixel smoke | canvas 非空,`data-three-ready=true``sceneObjects>0`,截图可见机床/刀路/TCP |
| D3 | HOME 后 `X=43/Y=-32.15/Z=-11.306`JOG X+ 后跳到 `X=1/Y=0/Z=0` | `app/src/state/store.js` `JOG``HOME``applyTaskHalStatusPatch()``app/src/runtime/linuxcnc-task-hal-runtime.js` status `ui.axisPose` | LinuxCNC task/motion command model`EMC_JOG_INCR``EMC_JOINT_HOME`;项目 `linuxcnc-task-policy.js` | 为 task/HAL axis pose 增加坐标系元数据pending jog context防止局部坐标覆盖 work pose | HOME 后 JOG X+/Y- 基于当前 DRO 连续增减 |
## 3. 文件级追溯
| 文件 | 当前职责 | 本次修复关注点 | 需要新增测试 |
| --- | --- | --- | --- |
| `app/src/main.js` | app 启动、runtime attach、profile 变更订阅 | kinematics runtime attach 后可靠触发 frame refresh | browser smoke 检查首屏 kinematics ready |
| `app/src/state/store.js` | 全局状态机、RTCP frame、task policy、运行控制 | desired/current frame source 分离JOG 坐标连续性task/HAL status 坐标解析 | node store test + browser operator workflow |
| `app/src/runtime/rtcp-frame.js` | RTCP frame 构建和边界标识 | 确认 source-derived frame 输出 diagnostics 明确 | RTCP frame source smoke |
| `app/src/visualization/five-axis-scene.js` | Three.js/fallback 预览渲染 | 可见机床模型、fallback 非空、dataset 稳定 | canvas pixel smoke |
| `app/src/runtime/linuxcnc-task-hal-runtime.js` | task/HAL runtime adapter 和 status normalize | `axisPoseFrame` / `axisPoseDelta` 输出 | task/HAL JOG status test |
| `app/src/state/linuxcnc-task-policy.js` | LinuxCNC task mode/state gate | 一般不需要改;作为 JOG/HOME gate 参考 | 维持现有 gate tests |
## 4. 测试证据追溯
| 证据文件 | 用途 |
| --- | --- |
| `qa/web-rtcp-5axis-site-test/output/web-rtcp-5axis-site-test-report-2026-06-22.docx` | 人类可读测试报告和截图 |
| `qa/web-rtcp-5axis-site-test/output/site-test-report.json` | 自动化原始 findings、state、console、request 数据 |
| `qa/web-rtcp-5axis-site-test/screenshots/01-home.png` | 首屏预览黑屏和初始界面证据 |
| `qa/web-rtcp-5axis-site-test/screenshots/04-run-state.png` | Run 后预览仍不可见证据 |
| `qa/web-rtcp-5axis-site-test/screenshots/05-local-program-opened.png` | 本地程序导入后预览仍不可见证据 |
| `qa/web-rtcp-5axis-site-test/screenshots/06-after-audit.png` | Audit 后预览仍不可见证据 |
## 5. LinuxCNC 参考追溯
| 能力 | LinuxCNC 参考 | Web 边界 |
| --- | --- | --- |
| TRT kinematics | `src/emc/kinematics/trtfuncs.c``xyzac-trt-kins.c``xyzbc-trt-kins.c` | 只能通过 source-derived WASM frame 使用 |
| switchkins | `src/emc/kinematics/switchkins.c``switchkins.h` | `M428/M429/M430` 和 kins type UI |
| task/JOG/HOME | `src/emc/task/emctaskmain.cc``src/emc/nml_intf/emc.hh` | Web task policy + task/HAL WASM simulation |
| vismach visual model | `lib/python/vismach.py`、5-axis vismach configs/xml | Three.js scene graph reference不移植 Python runtime |
## 6. 后续修复批次记录要求
每一批修复完成后,在 `06-work-log-template.md` 模板基础上追加一份记录,例如:
```text
working1-log-2026-06-22-d1.md
working1-log-2026-06-22-d2.md
working1-log-2026-06-22-d3.md
```
每份记录必须包含:
```text
问题 ID
修改文件
关键代码变更
运行测试
截图/日志证据
剩余风险
```