Files
cnc_wams/web-rtcp-5axis-xyzbc-trt-sim-plan/working/03-推进台账.md
2026-07-02 08:57:59 -04:00

436 lines
25 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.
# 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
### 本轮目标
`doc/xyzbc-trt-web-cnc-simulation-design-task-and-technical-plan.docx` 的内容整合到 `working` 目录下,方便后续直接用 Markdown 工作文档继续开发和验收。
### 已做事项
- 读取 DOCX 包结构,确认正文包含 507 段文本,图片包含 `xyzbc-trt-axis-window.png``xyzbc-trt-desktop.png``xyzbc-trt-web-architecture.png``xyzbc-trt-json-compare-flow.png``xyzbc-trt-logic-map.png`
- 从 DOCX 的 `word/document.xml` 提取段落和表格,转换为 `working/09-设计任务书与技术方案整合.md`
- 在整合稿中保留 1-11 章项目目标、原型运行证据、完全对标范围、Web 界面设计任务书、技术方案、开发任务分解、验收标准、风险控制、对标文件清单、程序逻辑全量分析、开机/急停/回零/执行状态联锁。
- 将 DOCX 图片引用改为 `../doc/assets/...`,使 working 文档可直接查看原有图像证据。
- 更新 `working/README.md`,把 09 文档加入索引。
- 更新 `04-任务矩阵.md`,新增 `T-040 DOCX 任务书整合到 working`
### 修改文件
```text
web-rtcp-5axis-xyzbc-trt-sim-plan/working/09-设计任务书与技术方案整合.md
web-rtcp-5axis-xyzbc-trt-sim-plan/working/README.md
web-rtcp-5axis-xyzbc-trt-sim-plan/working/03-推进台账.md
web-rtcp-5axis-xyzbc-trt-sim-plan/working/04-任务矩阵.md
web-rtcp-5axis-xyzbc-trt-sim-plan/working/05-验收证据.md
web-rtcp-5axis-xyzbc-trt-sim-plan/working/06-决策记录.md
```
### 验证情况
- `working/09-设计任务书与技术方案整合.md` 已生成,共 364 行。
- `rg` 检查到核心章节:`项目目标``原型系统运行证据``完全对标范围``Web 界面设计任务书``技术方案``开发任务分解``验收标准``风险和控制措施``程序逻辑全量分析``开机、急停、回零与执行状态的联锁逻辑`
- `rg` 检查到 5 张图片引用,均指向 `../doc/assets/`
### 下一步
1. 后续开发需求优先引用 `working/09-设计任务书与技术方案整合.md`,不再需要反复打开 DOCX 才能检索任务书内容。
2. 若 DOCX 后续继续更新,需要同步重新生成或手工补充 09 文档,并在本台账记录差异。
## 2026-07-02 03:10 EDT
### 本轮目标
对标 `xyzbc-trt-runtime-files.md`,确认 `wasm-port` 是否满足,并创建 Web 方式的 `xyzbc-trt` 数控系统仿真界面与工作文档。
### 已做事项
- 读取 `web-rtcp-5axis-xyzbc-trt-sim-plan/doc/xyzbc-trt-runtime-files.md`
- 读取 `wasm-port/AGENTS.md``wasm-port/SKILL.md``wasm-port/README.md`
- 检查参考 app`web-rtcp-5axis-sim-plan/app`
- 检查 `wasm-port``xyzbc-trt` 的覆盖SDK、vendored config、kinematics probe、remap execute harness、文档覆盖。
- 复制参考 app 和 tests 到目标目录。
- 修改目标 app 默认 profile 为 `xyzbc-trt`
- 修改 OPFS/session/tool-db 命名空间为 `web-rtcp-5axis-xyzbc-trt-sim-plan`
-`xyzbc-trt` profile 增加 `machineFileStaging.defaultProgramFilename = xyzbc_switchkins.ngc`
- 新增 `tests/node/verify_xyzbc_trt_web_app.mjs`
- 创建 `README.md``working/` 六类工作文档。
- 发现 `xyzbc.var` 未进入 `wasm-port/vendor`/manifest本轮记录为参数文件基线导入缺口。
### 修改文件
```text
web-rtcp-5axis-xyzbc-trt-sim-plan/README.md
web-rtcp-5axis-xyzbc-trt-sim-plan/app/index.html
web-rtcp-5axis-xyzbc-trt-sim-plan/app/package.json
web-rtcp-5axis-xyzbc-trt-sim-plan/app/package-lock.json
web-rtcp-5axis-xyzbc-trt-sim-plan/app/src/main.js
web-rtcp-5axis-xyzbc-trt-sim-plan/app/src/state/store.js
web-rtcp-5axis-xyzbc-trt-sim-plan/app/src/profiles/index.js
web-rtcp-5axis-xyzbc-trt-sim-plan/app/src/profiles/xyzbc-trt.js
web-rtcp-5axis-xyzbc-trt-sim-plan/app/src/runtime/five-axis-session.js
web-rtcp-5axis-xyzbc-trt-sim-plan/app/src/runtime/linuxcnc-machine-file-staging.js
web-rtcp-5axis-xyzbc-trt-sim-plan/app/src/runtime/linuxcnc-kinematics-runtime.js
web-rtcp-5axis-xyzbc-trt-sim-plan/app/src/runtime/linuxcnc-kinematics-worker-client.js
web-rtcp-5axis-xyzbc-trt-sim-plan/app/src/runtime/tool-db-simulation.js
web-rtcp-5axis-xyzbc-trt-sim-plan/app/src/ui/gmoccapy-shell.js
web-rtcp-5axis-xyzbc-trt-sim-plan/tests/node/verify_xyzbc_trt_web_app.mjs
web-rtcp-5axis-xyzbc-trt-sim-plan/working/README.md
web-rtcp-5axis-xyzbc-trt-sim-plan/working/01-项目功能内容.md
web-rtcp-5axis-xyzbc-trt-sim-plan/working/02-项目程序开发详细步骤.md
web-rtcp-5axis-xyzbc-trt-sim-plan/working/03-推进台账.md
web-rtcp-5axis-xyzbc-trt-sim-plan/working/04-任务矩阵.md
web-rtcp-5axis-xyzbc-trt-sim-plan/working/05-验收证据.md
web-rtcp-5axis-xyzbc-trt-sim-plan/working/06-决策记录.md
```
### 验证情况
- 已通过:`npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run smoke:node`,输出 `xyzbc_trt_web_app_smoke=ok`
- 已通过:`git diff --check -- web-rtcp-5axis-xyzbc-trt-sim-plan`
- 已发现:当前工作区缺少 `wasm-port/build/wasm`,完整 WASM/browser 验收需要先构建 artifact。
### 下一步
1. 运行目标 Node smoke。
2. 如需完整 Web 执行,先构建 `wasm-port/build/wasm`
3. 根据 browser smoke 结果补齐目标项目专用浏览器断言。
## 2026-07-02 native/Web 对比验证轮次
### 本轮目标
执行真实 `xyzbc-trt` 和 Web 仿真采集,分别写入 JSON并通过比较 JSON 找出需要完善的差异。
### 已做事项
- 确认 native `xyzbc-trt` 进程正在运行:`linuxcncsvr``milltask``halui``xyzbc-trt-gui``axis`
- 历史轮次曾使用 `/home/mes123456/linuxcnc-master/scripts/rip-environment python3` 成功导入 LinuxCNC Python API 并读取 `stat()`;当前 native 新基线已切换到 `/home/mes123456/cnc_wams/linuxcnc`
- 新增 native 采集脚本:`tools/collect-native-xyzbc-trt-evidence.py`
- 新增 Web 采集脚本:`tools/collect-web-xyzbc-trt-evidence.mjs`
- 新增 JSON 对比脚本:`tools/compare-xyzbc-trt-evidence.mjs`
-`xyzbc.var` 从真实运行树导入 `wasm-port/vendor/linuxcnc/.../xyzbc.var`,并加入 `wasm-port/tools/source-manifest.txt`
- 更新目标 smoke使参数文件 staging 成为必须通过项。
-`package.json` 增加 `evidence:web``evidence:compare`
### 验证情况
- 已通过 native 真实执行采集:`native-xyzbc-trt-evidence.json``commandResult.status=completed`,事件数 `1462`
- 已通过 Web 采集:`web-xyzbc-trt-evidence.json`profile/INI/OPFS/PyVCP/remap/tool/parameter/default program 均覆盖。
- 已生成比较报告:`compare-xyzbc-trt-evidence.json`12 项检查中 11 项通过。
- 当前唯一失败项:缺少 `wasm-port/build/wasm` 下的 kinematics/core/tp/task-hal `.js/.wasm` artifact。
- 当前环境此前缺少 `emcc`;后续已安装 `emcc 6.0.2`,下一步应直接构建 WASM artifact。
### 下一步
1. 运行 `source /home/mes123456/emsdk/emsdk_env.sh`
2. 运行 `wasm-port/tools/build_kinematics_wasm.sh``build_wasm_core.sh``build_tp_wasm.sh``build_task_hal_wasm.sh`
3. 重跑 `npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run evidence:web``evidence:compare`,目标是比较报告 artifact 项通过。
4. 再补目标浏览器 smoke确认 worker runtime 和 canvas 非空。
## 2026-07-02 刀具预览/执行路径 JSON 对比需求补充
### 本轮目标
把“刀具预览路径”和“刀具执行路径”的采集过程纳入 native/Web evidence JSON并要求 compare JSON 使用一致曲线采样周期进行比对。
### 已做事项
-`01-项目功能内容.md` 增加 `pathSampling``previewPath``executionPath``pathComparison` 的 JSON 字段要求。
- 明确 native 和 Web 对比采样周期统一为 `samplePeriodMs = 20`
- 明确每个路径样本必须包含程序行号、运动类型、switchkins/kinematics 状态、刀具信息、XYZBC joint、TCP、toolAxis、feed、spindle。
-`02-项目程序开发详细步骤.md` 增加 native/Web 采集脚本和 compare 脚本的后续实现步骤。
- 在任务矩阵中增加预览路径采集、执行路径采集、统一采样周期、路径误差统计等任务。
### 当前状态
- 本轮只补充工作文档和验收要求。
- 现有 `working/evidence/*.json` 仍是上一轮真实采集结果,尚未伪造或手工改写。
- 后续需要修改采集脚本,让真实 native/Web 运行重新生成包含刀具路径的 JSON。
### 下一步
1.`collect-native-xyzbc-trt-evidence.py` 中增加 LinuxCNC 预览路径与执行反馈路径采集。
2.`collect-web-xyzbc-trt-evidence.mjs` 中增加 Web 预览 planner 与 WASM task/HAL 执行路径采集。
3.`compare-xyzbc-trt-evidence.mjs` 中增加 20ms 重采样和路径误差统计。
4. 重新生成 native/Web/compare 三份 JSON确认 `pathComparison.samplePeriodMs = 20` 且两侧样本可逐点对齐。
## 2026-07-02 全量对标 working 文档完善
### 本轮目标
根据 `doc/xyzbc-trt-runtime-files.md`,让 `working` 文档明确要求 Web 数控系统仿真界面完全对标 LinuxCNC `xyzbc-trt` 真实运行配置。
### 已做事项
- 重新读取 `doc/xyzbc-trt-runtime-files.md`,确认文档共 702 行覆盖进程、启动入口、INI、AXIS、PyVCP、POSTGUI HAL、basic_sim、Vismach、switchkins、G-code、tool table、kinematics、加载顺序和重要文件清单。
- 新增 `working/07-全量对标追踪矩阵.md`,把每个 LinuxCNC 功能点映射到 Web 对标目标、evidence 字段和当前缺口。
- 更新 `01-项目功能内容.md`,明确完全对标范围,并补充 AXIS 等效、POSTGUI HAL 等效、basic_sim、Vismach pin、Ngcgui、演示程序全集、速度/限制、kinematics HAL pins 等功能项。
- 更新 `02-项目程序开发详细步骤.md`,增加全量对标 JSON 字段和后续实现步骤。
- 更新 `04-任务矩阵.md`,新增 T-025 到 T-035。
- 更新 `05-验收证据.md`,新增全量对标 JSON 验收要求。
- 同步 `emcc` 状态:当前已安装 `emcc 6.0.2`,剩余前置是构建 WASM artifact。
### 当前状态
- 文档层面已把 `xyzbc-trt-runtime-files.md` 的完整运行语义转成 Web 对标清单。
- 代码层面仍需继续补齐全量 evidence JSON、UI 等效行为、Vismach pin 验收和 WASM artifact 验收。
### 下一步
1. 构建 `wasm-port/build/wasm` artifact。
2. 修改 native/Web evidence 采集脚本,补齐 `startupSequence``halNets``kinematicsPins``axisJointLimits``uiEquivalence``vismachEquivalent` 等字段。
3. 修改 compare 脚本,把 `07-全量对标追踪矩阵.md` 中的检查项转为自动化 check。
4. 根据新增任务矩阵补齐 Web UI 和 3D 模型行为。
## 2026-07-02 切换 native 对标基线到 `/home/mes123456/cnc_wams/linuxcnc`
### 本轮目标
根据用户要求,以编译成功并能够执行 `xyzbc-trt``/home/mes123456/cnc_wams/linuxcnc` 为真实 LinuxCNC 对标基线,设计 Web 数控仿真界面和逻辑。
### 已做事项
- 检查 `/home/mes123456/cnc_wams/linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini`,确认配置文件存在。
- 检查 `/home/mes123456/cnc_wams/linuxcnc/scripts/rip-environment``bin/axis``bin/xyzbc-trt-gui``rtlib/xyzbc-trt-kins.so`,当前自动检查未发现这些 RIP/构建产物。
- 更新 `01-项目功能内容.md`,声明后续 native evidence 采集和 Web 对标基线统一使用 `/home/mes123456/cnc_wams/linuxcnc`
- 更新 `02-项目程序开发详细步骤.md`,将 native 采集命令切换为 `/home/mes123456/cnc_wams/linuxcnc/scripts/rip-environment`
- 更新 `04-任务矩阵.md`,新增 T-036 到 T-038覆盖 native 基线切换、新基线 JSON 重采集、Web 界面按新 native 运行结果复核。
- 更新 `05-验收证据.md`,新增 native 基线切换验收,记录当前文件检查结果。
- 更新 `07-全量对标追踪矩阵.md``06-决策记录.md`,明确 `/home/mes123456/linuxcnc-master` 只作为历史运行参考。
### 当前状态
- 文档层面已切换对标基线。
- 代码和 evidence 层面还未重新采集;现有 `working/evidence/*.json` 仍来自历史 `/home/mes123456/linuxcnc-master` 运行树。
### 下一步
1. 确认 `/home/mes123456/cnc_wams/linuxcnc` 的 RIP 构建产物实际输出位置。
2. 用该路径执行 `xyzbc-trt.ini`,确认 `axis``xyzbc-trt-gui``xyzbc-trt-kins.so` 可运行。
3. 修改/运行 native evidence 采集脚本,让 `sourceRoot=/home/mes123456/cnc_wams/linuxcnc`
4. 依据新 native JSON 复核 Web UI、switchkins、Vismach 等效模型、刀具路径和 compare 规则。
## 2026-07-02 编译 `/home/mes123456/cnc_wams/linuxcnc`
### 本轮目标
按 run-in-place 方式编译 `/home/mes123456/cnc_wams/linuxcnc`,使其能够作为 `xyzbc-trt` native 真实执行基线。
### 已做事项
- 读取 `docs/INSTALL.adoc`,确认 RIP 构建流程为 `cd src``./autogen.sh``./configure --with-realtime=uspace``make``sudo make setuid`
- 执行 `./autogen.sh`,成功生成 configure/config.h.in。
- 执行 `./configure --with-realtime=uspace --disable-build-documentation`,配置成功,并生成 `scripts/linuxcnc``scripts/rip-environment``scripts/halrun` 等 RIP 脚本。
- 首次执行 `make -j"$(nproc)"` 失败,原因是 shell 环境变量 `DEBUG=release` 被 LinuxCNC Makefile 当作编译参数,导致 `gcc/c++``release: linker input file not found`
- 使用 `env -u DEBUG make -j"$(nproc)"` 重新编译,成功完成。
- 执行 `sudo -n make setuid`,成功设置 `bin/rtapi_app``bin/linuxcnc_module_helper` 的 root/setuid 权限。
### 验证情况
- 已生成 `scripts/rip-environment``scripts/linuxcnc`
- 已生成 `bin/axis``bin/xyzbc-trt-gui``bin/milltask``bin/linuxcncsvr``bin/halui`
- 已生成 `rtlib/xyzbc-trt-kins.so``rtlib/tpmod.so`
- `source scripts/rip-environment` 后,`command -v linuxcnc``axis``halcmd` 均指向 `/home/mes123456/cnc_wams/linuxcnc`
- `python3 -c "import linuxcnc"` 成功,模块路径为 `/home/mes123456/cnc_wams/linuxcnc/lib/python/linuxcnc.so`
- `git status --short` 无输出,说明没有 Git 跟踪文件改动;编译产物均在忽略/生成路径内。
### 下一步
1. 使用 `/home/mes123456/cnc_wams/linuxcnc/scripts/rip-environment` 重新采集 native `xyzbc-trt` evidence。
2.`native-xyzbc-trt-evidence.json.sourceRoot` 更新为 `/home/mes123456/cnc_wams/linuxcnc`
3. 用新 native JSON 重跑 Web evidence 和 compare。
## 2026-07-02 创建并执行 `xyzbc-trt` 快捷方式
### 本轮目标
`/home/mes123456/cnc_wams/linuxcnc` 中创建执行 `xyzbc-trt` 的桌面快捷方式,并实际启动该配置。
### 已做事项
- 检查显示环境,当前 `DISPLAY=:1``XDG_SESSION_TYPE=x11`
- 参考历史 `/home/mes123456/linuxcnc-master/linuxcnc-rtcp-5axis-shortcuts/table-rotary-tilting/xyzbc-trt.desktop`,创建新快捷方式:
```text
/home/mes123456/cnc_wams/linuxcnc/linuxcnc-rtcp-5axis-shortcuts/table-rotary-tilting/xyzbc-trt.desktop
```
- 快捷方式 `Exec` 指向:
```text
/home/mes123456/cnc_wams/linuxcnc/scripts/rip-environment linuxcnc /home/mes123456/cnc_wams/linuxcnc/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini
```
- 启动前发现历史 `/home/mes123456/linuxcnc-master``xyzbc-trt` 仍在运行。
- 尝试 `/home/mes123456/linuxcnc-master/scripts/linuxcnc -k` 后出现 pickconfig 窗口,未关闭旧实例;随后终止旧 LinuxCNC 相关进程。
- 使用 `setsid` 从新路径后台启动 `xyzbc-trt`
### 验证情况
- 新进程均来自 `/home/mes123456/cnc_wams/linuxcnc``scripts/linuxcnc``linuxcncsvr``rtapi_app``milltask``halui``hal_manualtoolchange``xyzbc-trt-gui``axis`
- `halcmd show pin motion.switchkins-type` 可读,值为 `0`
- LinuxCNC Python API 可读取状态:`file=./demos/xyzbc_switchkins.ngc``axis_mask=55``position=[0,0,0,0,0]`
- `desktop-file-validate` 无输出。
### 下一步
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 相关失败项进入可比误差统计。