提交当前项目改动

This commit is contained in:
mes123456
2026-07-02 08:01:34 -04:00
parent 83075c4b96
commit c4a721f6cf
274 changed files with 157294 additions and 1394 deletions

View File

@@ -0,0 +1,141 @@
# 06-决策记录
## D-012DOCX 任务书整合为 working Markdown
日期2026-07-02
决策:将 `doc/xyzbc-trt-web-cnc-simulation-design-task-and-technical-plan.docx` 的正文、表格和图片引用整合为 `working/09-设计任务书与技术方案整合.md`,并把它加入 `working` 索引和任务矩阵。
理由:
- DOCX 不便于命令行检索、diff、逐项验收和后续增量维护。
- `working` 目录是当前项目的开发和验收入口,任务书内容必须进入该目录才能和 01-08 工作文档形成闭环。
- Markdown 版本可以保留 DOCX 的完整任务书、技术方案、程序逻辑分析和状态联锁内容,同时继续引用 `doc/assets` 中的原始图片证据。
## D-001以 `wasm-port` 为 CNC 语义来源
日期2026-07-02
决策Web 项目不在 JavaScript 中重写 G-code、remap、tool table、parameter、kinematics 或 planner 语义,继续通过 `wasm-port` 的 LinuxCNC-derived SDK/WASM 获取语义。
理由:
- `wasm-port/AGENTS.md` 明确要求 LinuxCNC 源码是语义真源。
- `wasm-port` 已经包含 `xyzbc-trt` kinematics、remap、interp、task/HAL 的边界设计。
## D-002复制参考 app 后改为 `xyzbc-trt` 默认机型
日期2026-07-02
决策:复用 `web-rtcp-5axis-sim-plan/app` 的结构,创建目标目录独立 app并只做 `xyzbc-trt` 默认化和项目命名空间隔离。
理由:
- 参考 app 已包含 OPFS、WASM SDK、五轴可视化、profile、task/HAL、tool DB、session 等大部分产品外壳。
- 局部改造比重写界面风险低,且保留 LinuxCNC source-derived 边界。
## D-003目标项目 OPFS 根路径独立
日期2026-07-02
决策:目标项目使用 `web-rtcp-5axis-xyzbc-trt-sim-plan/machines``sessions``tool-db`,不复用旧项目 `web-rtcp-5axis-sim-plan` 路径。
理由:
- 防止两个项目在 OPFS 中互相覆盖机器文件、会话、tool DB。
- 便于后续按项目清理和验收。
## D-004默认程序使用 `xyzbc_switchkins.ngc`
日期2026-07-02
决策:为 `xyzbc-trt` profile 增加 `machineFileStaging.defaultProgramFilename = "xyzbc_switchkins.ngc"`
理由:
- LinuxCNC INI `[DISPLAY]OPEN_FILE` 指向 `./demos/xyzbc_switchkins.ngc`
- 参考 app 的自动选择逻辑按 `${profileId}_switchkins.ngc` 推导时会得到不存在的 `xyzbc-trt_switchkins.ngc`,必须显式覆盖。
## D-005完整浏览器验收等待 WASM artifact
日期2026-07-02
决策:本轮先完成代码、工作文档和不依赖 artifact 的 Node smoke完整 browser/WASM 验收记录为后续前置任务。
理由:
- 当前 `wasm-port/build/wasm` 不存在。
- 页面 runtime 代码已接入 worker/WASM但缺少 `.js/.wasm` 产物时无法完成真实浏览器执行。
## D-006受控导入 `xyzbc.var` staging
日期2026-07-02
决策:从当前真实运行树 `/home/mes123456/linuxcnc-master/.../xyzbc.var` 导入 `xyzbc.var``wasm-port/vendor/linuxcnc/.../xyzbc.var`,并加入 `wasm-port/tools/source-manifest.txt`
理由:
- `xyzbc-trt.ini` 明确声明 `PARAMETER_FILE = xyzbc.var`
- 若不导入OPFS machine-file staging 无法覆盖完整 runtime files。
- 直接在 Web wrapper 中引用运行树绝对路径不可复现;纳入 vendor/manifest 后Node/Web staging 可重复。
## D-007native/Web JSON 对比作为验收主线
日期2026-07-02
决策:新增 native、Web、compare 三个 JSON 证据脚本,作为后续完善项目的主验收链路。
理由:
- 用户要求真实 `xyzbc-trt` 与 Web 仿真分别写入 JSON再通过比对 JSON 完善项目。
- JSON 证据比单次截图或口头结论更容易复跑、归档和定位差异。
- 当前比较报告已把差异收敛到唯一环境前置:缺 WASM artifact。
## D-008WASM artifact 缺失不伪造通过
日期2026-07-02
决策:当前 `wasm-port/build/wasm` 为空Web evidence 和 compare evidence 保持 `blocked/fail`,不伪造 WASM 执行完成。`emcc 6.0.2` 已安装后,下一步是构建 artifact而不是改写证据为通过。
理由:
- `wasm-port` 规则要求 LinuxCNC 源码语义和 WASM 边界真实可验证。
- 没有 `.js/.wasm` artifact 时,浏览器 worker runtime 无法完成真实执行。
- 保留失败项可以明确下一步是激活已安装的 Emscripten 并构建 artifact而不是继续堆叠 Web UI 假状态。
## D-009刀具路径按统一 20ms 周期采样后比较
日期2026-07-02
决策native/Web 的刀具预览路径和刀具执行路径进入 evidence JSON 前,统一按 `samplePeriodMs = 20` 重采样compare 只对同一 `sampleIndex/timeMs` 的样本做逐点比较。
理由:
- LinuxCNC 真实系统和 Web 仿真系统的内部刷新、planner、HAL/task 采样频率可能不同,直接比较原始样本会产生时间错位。
- 固定 20ms 可以覆盖人眼可见刀路和 UI 动画判断,同时让 JSON 体积可控。
- 统一 `sampleIndex/timeMs`TCP、XYZBC joint、toolAxis、feed、spindle 的误差统计可以稳定复跑。
- 如果 Web 缺少 WASM task/HAL 执行反馈不允许用预览路径冒充执行路径compare 必须显式 fail/blocker。
## D-010以全量对标追踪矩阵作为开发和验收主索引
日期2026-07-02
决策:新增 `working/07-全量对标追踪矩阵.md`,作为 Web `xyzbc-trt` 仿真界面后续开发、JSON 采集和 compare 验收的主索引。
理由:
- `doc/xyzbc-trt-runtime-files.md` 覆盖的范围超过单个 INI/staging 检查,还包括 AXIS、PyVCP、POSTGUI HAL、basic_sim、Vismach、kinematics HAL pins、Ngcgui、演示程序和加载顺序。
- 若没有追踪矩阵,后续容易只完成页面可见部分,而漏掉 HAL/task/kinematics/tool-offset 等运行语义。
- 追踪矩阵把每个 LinuxCNC 功能点映射到 Web 对标目标和 evidence 字段,便于自动化 compare 脚本逐步落地。
## D-011native 真实执行基线切换到 `/home/mes123456/cnc_wams/linuxcnc`
日期2026-07-02
决策:后续 Web 界面和逻辑设计以 `/home/mes123456/cnc_wams/linuxcnc` 编译后执行 `xyzbc-trt` 的真实行为为 native 基线;`/home/mes123456/linuxcnc-master` 只保留为历史运行参考。
理由:
- 用户明确要求以已编译成功并能执行 `xyzbc-trt``/home/mes123456/cnc_wams/linuxcnc` 为对标依据。
- `/home/mes123456/cnc_wams/linuxcnc` 是干净 Git 源码仓库,便于把 native 行为、Web WASM 构建和后续代码追踪关联到同一源码树。
- 该路径已完成 run-in-place 编译,`scripts/rip-environment``bin/axis``bin/xyzbc-trt-gui``rtlib/xyzbc-trt-kins.so` 已生成;因此后续第一步是用该路径重新生成 native evidence。