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

35 KiB
Raw Blame History

03-推进台账

2026-07-02 Web OPFS 强制与 AXIS 首屏等效实现轮次

本轮目标

接续用户要求“Web 的文件使用 OPFS 系统”,把浏览器端 machine files、session snapshot、tool table 保存链路从可 fallback 改为目标 app 默认强制 OPFS并完成 T-026 AXIS 首屏等效验收。

已做事项

  • 修改 app/src/runtime/linuxcnc-machine-file-staging.js
    • saveMachineFileStagingPlan() 的存储解析支持 requireOpfs
    • 当目标 app 要求 OPFS 但浏览器缺少 navigator.storage.getDirectory() 或非安全上下文时直接报错,不再静默落到 memory fallback。
  • 修改 app/src/runtime/five-axis-session.jsapp/src/runtime/tool-db-simulation.js
    • session snapshot 与 tool table 保存同样支持 requireOpfs
  • 修改 app/src/state/store.jsapp/src/main.js
    • 浏览器 UI 默认对 machine file staging、session save/restore、tool DB save 启用 requireOpfs=true
    • Node/测试显式传入 storage 时仍保留内存存储能力,用于非浏览器 smoke。
  • 修改 tests/browser/xyzbc_trt_browser_smoke.html
    • 断言启动 staging storageMode=opfs
    • 从 OPFS 读回 xyzbc_switchkins.ngc,确认包含 M428/M429
    • 保存并从 OPFS 读回 session snapshot确认包含 machineProfile=xyzbc-trt
    • 保存并从 OPFS 读回 tool table确认包含 T2/Z10
    • 断言 AXIS 首屏区域 dataset 和能力矩阵。
  • 修改 app/src/ui/gmoccapy-shell.jsapp/src/styles/gmoccapy.css
    • 增加 AXIS 首屏等效状态带,覆盖 program、coordinates、status、MDI、switchkins、override、tool、preview、execution、axis-buttons。
    • 各首屏区域输出 data-axis-ui-section/profile/coordinates,供浏览器验收。
  • 修改 tools/collect-web-xyzbc-trt-evidence.mjstools/compare-xyzbc-trt-evidence.mjs
    • 新增 axisMainUi evidence 和 compare 检查。
    • Web evidence 中 Node 采集仍使用 memory storage真实浏览器 OPFS 以 smoke:browser 为准。
  • 更新 04-任务矩阵.md
    • T-006/T-014/T-016 增加真实 OPFS 验收描述。
    • T-026 标记为完成。

验证情况

  • 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
  • npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run smoke:browser 通过,输出 xyzbc_trt_browser_smoke=ok,其中已验证 OPFS 写入和读回。
  • npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run evidence:web 通过。
  • npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run evidence:compare 已生成真实失败报告:当前 20/25 通过;新增 AXIS 首屏检查通过,剩余 5 项仍来自 native preview/execution path 样本缺失。

下一步

  1. 继续 T-019/T-037/home/mes123456/cnc_wams/linuxcnc/scripts/rip-environment 下重跑 native evidence使 native path 进入 20ms 可比状态。
  2. 继续 T-028/T-030补 basic_sim 等效 task/HAL 细节和 Ngcgui/remap 子程序执行验收。
  3. 继续 T-038基于真实 native 状态流复核 Web 按钮、HAL pin、路径和状态联锁。

2026-07-02 Tool table 到 tool-offset 闭环实现轮次

本轮目标

接续 working 任务矩阵,完成 T-034xyzbc-trt.tbl 的 T/P/Z/D 当前刀具偏置闭环接到 kinematics tool-offset、Web 模型刀长和 path JSON。

已做事项

  • 修改 app/src/runtime/tool-db-simulation.js
    • 新增 createToolRuntimeState()统一输出当前刀具、active G43 偏置、motion.tooloffset.z 等效值、path tool 和 Vismach tool-offset。
    • 运行时状态记录 xyzbc-trt-kins.tool-offsetxyzbc-trt-gui.tool-offset 下游 pin 边界。
  • 修改 app/src/runtime/vismach-model-state.js
    • toolRuntimeState.vismach.toolOffset 优先于旧的静态 toolPreview.length,使模型刀具长度来自 active tool offset。
  • 修改 tools/collect-web-xyzbc-trt-evidence.mjs
    • 从 staged xyzbc-trt.tbl 解析工具表。
    • 扫描选定程序 T/M6/G43默认程序无工具命令时使用工具表中第一个有 Z 偏置的 T2 生成默认激活证据。
    • 新增 toolRuntimetoolOffsetClosure,并把 previewPath.samples[].toolexecutionPath.samples[].tool 改为当前 active tool。
  • 扩展 tests/node/verify_xyzbc_trt_web_app.mjs
    • 断言 T2 P2 Z10 D8 进入 tool DB。
    • 断言 kinematics tool offset、path tool 和 Vismach pin 均为 T2/Z10/D8 闭环结果。
  • 重新生成:
    • working/evidence/web-xyzbc-trt-evidence.json
    • working/evidence/compare-xyzbc-trt-evidence.json
  • 更新 04-任务矩阵.md,将 T-034 标记为完成。

验证情况

  • npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run smoke:node 通过。
  • npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run evidence:web 通过。
  • npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run evidence:compare 已生成真实失败报告:当前 19/24 通过T-034 compare 检查已通过,剩余 5 项失败均来自 native evidence 尚缺 previewPath/executionPath 样本和采样周期字段。
  • npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run build 通过,输出 gmoccapy_static_build=ok
  • npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run smoke:browser 通过,输出 xyzbc_trt_browser_smoke=ok
  • web-xyzbc-trt-evidence.json 当前摘要:
    • toolRuntime.activeToolNumber=2
    • toolRuntime.activePocket=2
    • toolRuntime.kinematics.toolOffsetZ=10
    • toolRuntime.pathTool.length=10
    • toolRuntime.pathTool.diameter=8
    • toolRuntime.vismach.toolOffset=10
    • toolOffsetClosure.closed=true
    • coverage.toolTableToToolOffsetClosed=true

下一步

  1. 继续 T-019/T-037/home/mes123456/cnc_wams/linuxcnc/scripts/rip-environment 下重跑 native evidence使 native path 进入 20ms 可比状态。
  2. 继续 T-026/T-038基于新 browser smoke 扩展 AXIS 主界面与 native 状态流复核。
  3. 继续 T-028/T-030补 basic_sim 等效 task/HAL 细节和 Ngcgui/remap 子程序执行验收。

2026-07-02 Vismach 3D pin 驱动模型实现轮次

本轮目标

接续 working 任务矩阵,完成 T-029让 Web 3D 机床参考模型由 xyzbc-trt-gui.py 对应的 Vismach HAL pin 驱动,并把 pin 值、HAL net 和模型变换写入 Web evidence。

已做事项

  • 新增 app/src/runtime/vismach-model-state.js
    • 统一生成 table-x/saddle-y/spindle-z/tilt-b/rotate-c/tool-offset/x-offset/z-offset pin 状态。
    • 将 pin 映射到 Web 模型变换table X、saddle Y、spindle Z、tilt B、rotate C、tool offset。
    • 记录 9 条 native HAL net 对标关系和 web_threejs_vismach_equivalent_driven_by_xyzbc_trt_hal_pins 语义边界。
  • 修改 app/src/visualization/five-axis-scene.js
    • 将静态参考模型拆成 vismach-table-xvismach-saddle-yvismach-spindle-zvismach-tilt-bvismach-rotate-cvismach-tool-offset 层级。
    • 渲染时按 buildVismachModelState() 输出更新 Three.js group 的位移和旋转。
    • 在 canvas dataset 增加 threeVismachPinsthreeVismachTransformsthreeVismachPinDrivenModel,供后续浏览器 smoke 直接断言。
  • 修改 tools/collect-web-xyzbc-trt-evidence.mjs
    • vismachEquivalent 从静态 pin 清单升级为 pinspinValuestransformshalNetssemanticBoundary
  • 扩展 tests/node/verify_xyzbc_trt_web_app.mjs
    • 断言 profile 中 Vismach feedback/offset net。
    • 断言 pin 到模型变换的映射和 tool-offset/x-offset/z-offset 组合。
  • 新增目标浏览器 smoke
    • tests/browser/xyzbc_trt_browser_smoke.html
    • tests/browser/verify_xyzbc_trt_browser.sh
    • app/package.json 增加 smoke:browser
    • 浏览器断言默认 profile 为 xyzbc-trtkinematics/interpreter/task-HAL 均在 worker 中 readycanvas 非空,threeVismachPinDrivenModel 和 Vismach pin/transform dataset 可读。
  • 重新生成:
    • working/evidence/web-xyzbc-trt-evidence.json
    • working/evidence/compare-xyzbc-trt-evidence.json
  • 更新 04-任务矩阵.md,将 T-014、T-029 标记为完成,并补充 T-035 Web evidence 字段。

验证情况

  • npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run smoke:node 通过。
  • npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run evidence:web 通过。
  • web-xyzbc-trt-evidence.json 当前摘要:
    • status=ready-for-wasm-runtime
    • blockers=[]
    • vismachEquivalent.pinValues.table-x=43
    • vismachEquivalent.pinValues.saddle-y=-32.15
    • vismachEquivalent.pinValues.spindle-z=-11.306
    • vismachEquivalent.pinValues.tool-offset=84.019
    • vismachEquivalent.pinValues.x-offset=-20
    • vismachEquivalent.pinValues.z-offset=-15
    • vismachEquivalent.halNets.length=9
  • npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run evidence:compare 已生成真实失败报告:仍为 5 项失败,均来自 native evidence 尚缺 previewPath/executionPath 样本和采样周期字段。
  • npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run build 通过,输出 gmoccapy_static_build=ok
  • npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run smoke:browser 通过,输出 xyzbc_trt_browser_smoke=ok

下一步

  1. 继续 T-019/T-037/home/mes123456/cnc_wams/linuxcnc/scripts/rip-environment 下重跑 native evidence使 native path 进入 20ms 可比状态。
  2. 继续 T-034把 tool table 当前 T/P/Z/D 的 active tool offset 闭环接到 kinematics/tool model/path JSON。
  3. 继续 T-026/T-038基于新 browser smoke 扩展 AXIS 主界面与 native 状态流复核。

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 写入 pathSamplingpreviewPath 和 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.ngcboat-xyzbc.ngc
  • 扩展 Web evidence新增 pathSamplingpreviewPathexecutionPathstartupSequenceiniDisplayhalNetskinematicsPinsaxisJointLimitsswitchkinsTransitionsuiEquivalencevismachEquivalentngcguiSubroutinesdemoPrograms
  • 扩展 compare evidence新增 pathComparison,覆盖 previewVsPreviewexecutionVsExecutionpreviewVsExecutionNativepreviewVsExecutionWeb,并输出 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 样本仍不可比。

修改文件

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
  • 已生成真实失败 comparenpm --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.pngxyzbc-trt-desktop.pngxyzbc-trt-web-architecture.pngxyzbc-trt-json-compare-flow.pngxyzbc-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

修改文件

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.mdwasm-port/SKILL.mdwasm-port/README.md
  • 检查参考 appweb-rtcp-5axis-sim-plan/app
  • 检查 wasm-portxyzbc-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.mdworking/ 六类工作文档。
  • 发现 xyzbc.var 未进入 wasm-port/vendor/manifest本轮记录为参数文件基线导入缺口。

修改文件

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 进程正在运行:linuxcncsvrmilltaskhaluixyzbc-trt-guiaxis
  • 历史轮次曾使用 /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:webevidence:compare

验证情况

  • 已通过 native 真实执行采集:native-xyzbc-trt-evidence.jsoncommandResult.status=completed,事件数 1462
  • 已通过 Web 采集:web-xyzbc-trt-evidence.jsonprofile/INI/OPFS/PyVCP/remap/tool/parameter/default program 均覆盖。
  • 已生成比较报告:compare-xyzbc-trt-evidence.json12 项检查中 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.shbuild_wasm_core.shbuild_tp_wasm.shbuild_task_hal_wasm.sh
  3. 重跑 npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run evidence:webevidence:compare,目标是比较报告 artifact 项通过。
  4. 再补目标浏览器 smoke确认 worker runtime 和 canvas 非空。

2026-07-02 刀具预览/执行路径 JSON 对比需求补充

本轮目标

把“刀具预览路径”和“刀具执行路径”的采集过程纳入 native/Web evidence JSON并要求 compare JSON 使用一致曲线采样周期进行比对。

已做事项

  • 01-项目功能内容.md 增加 pathSamplingpreviewPathexecutionPathpathComparison 的 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 采集脚本,补齐 startupSequencehalNetskinematicsPinsaxisJointLimitsuiEquivalencevismachEquivalent 等字段。
  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-environmentbin/axisbin/xyzbc-trt-guirtlib/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-全量对标追踪矩阵.md06-决策记录.md,明确 /home/mes123456/linuxcnc-master 只作为历史运行参考。

当前状态

  • 文档层面已切换对标基线。
  • 代码和 evidence 层面还未重新采集;现有 working/evidence/*.json 仍来自历史 /home/mes123456/linuxcnc-master 运行树。

下一步

  1. 确认 /home/mes123456/cnc_wams/linuxcnc 的 RIP 构建产物实际输出位置。
  2. 用该路径执行 xyzbc-trt.ini,确认 axisxyzbc-trt-guixyzbc-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=uspacemakesudo make setuid
  • 执行 ./autogen.sh,成功生成 configure/config.h.in。
  • 执行 ./configure --with-realtime=uspace --disable-build-documentation,配置成功,并生成 scripts/linuxcncscripts/rip-environmentscripts/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_appbin/linuxcnc_module_helper 的 root/setuid 权限。

验证情况

  • 已生成 scripts/rip-environmentscripts/linuxcnc
  • 已生成 bin/axisbin/xyzbc-trt-guibin/milltaskbin/linuxcncsvrbin/halui
  • 已生成 rtlib/xyzbc-trt-kins.sortlib/tpmod.so
  • source scripts/rip-environment 后,command -v linuxcncaxishalcmd 均指向 /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=:1XDG_SESSION_TYPE=x11
  • 参考历史 /home/mes123456/linuxcnc-master/linuxcnc-rtcp-5axis-shortcuts/table-rotary-tilting/xyzbc-trt.desktop,创建新快捷方式:
/home/mes123456/cnc_wams/linuxcnc/linuxcnc-rtcp-5axis-shortcuts/table-rotary-tilting/xyzbc-trt.desktop
  • 快捷方式 Exec 指向:
/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-masterxyzbc-trt 仍在运行。
  • 尝试 /home/mes123456/linuxcnc-master/scripts/linuxcnc -k 后出现 pickconfig 窗口,未关闭旧实例;随后终止旧 LinuxCNC 相关进程。
  • 使用 setsid 从新路径后台启动 xyzbc-trt

验证情况

  • 新进程均来自 /home/mes123456/cnc_wams/linuxcncscripts/linuxcnclinuxcncsvrrtapi_appmilltaskhaluihal_manualtoolchangexyzbc-trt-guiaxis
  • halcmd show pin motion.switchkins-type 可读,值为 0
  • LinuxCNC Python API 可读取状态:file=./demos/xyzbc_switchkins.ngcaxis_mask=55position=[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.mjsweb-xyzbc-trt-evidence.json 显示 wasmArtifactsReady=truemissing=[],并生成 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.shinterp_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.1M410 remap modalgroup warning
  • 上述提示不影响退出码,完整 interpreter/remap 验收已通过。

下一步

  1. 继续 native preview/execution path 重采集。
  2. 实现 Web task/HAL execution path collector。
  3. 重跑 Web/native compare使剩余 6 个 path 相关失败项进入可比误差统计。