Files
cnc_wams/web-rtcp-5axis-sim-plan/docs/gmoccapy-xyzac-trt-rtcp-verification-evaluation.md

81 lines
6.3 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.
# gmoccapy XYZAC TRT RTCP 五轴对标验证评价
日期2026-07-01
## 1. 评价结论
`gmoccapy-xyzac-trt` 页面功能已在 Web 仿真边界内对标 LinuxCNC `gmoccapy` 非平凡五轴 TRT 示例。结论为:通过。
通过范围是浏览器/Web/WASM 仿真边界:页面 profile、INI/HAL/TBL/NGC 项目文件 staging、gmoccapy POSTGUI 工具与主轴 HAL 语义、固定 TRT 默认 TCP 运动学、LinuxCNC interpreter canonical motion、TP planner sample、RTCP frame、DRO/Three.js 页面状态和 source guard 均已验证。该结论不声明原生 GTK `gmoccapy.py` 已移植不声明真实硬件、host realtime kernel、host HAL shared memory、native LinuxCNC task 进程或 host tool DB process 已就绪。
## 2. LinuxCNC 基线
本轮对标的 LinuxCNC 来源位于 `/home/meswork/cnc_wams/linuxcnc`
| 类别 | 基线文件 | 对标要点 |
| --- | --- | --- |
| gmoccapy TRT INI | `configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/xyzac-trt.ini` | `DISPLAY=gmoccapy``OPEN_FILE=./examples/impeller-7bl-xyzac.ngc``JOG_AXES=XYZC``TRAJ=XYZAC``KINEMATICS=xyzac-trt-kins` |
| gmoccapy POSTGUI HAL | `configs/sim/gmoccapy/non_trivial_kinematics/table-rotary-tilting/postgui.hal` | `gmoccapy.spindle_feedback_bar``gmoccapy.spindle_at_speed_led``gmoccapy.toolchange-*``gmoccapy.tooloffset-z` |
| generated HAL / tool table / vars | `xyzac-trt_cmds.hal``xyzac-trt.tbl``xyzac.var` | gmoccapy 机床项目文件、刀具表和 task/HAL session 来源 |
| remap macros | `configs/sim/gmoccapy/macros/change_g43.ngc``settool_g43.ngc` | `M6``M61` gmoccapy 工具更换/设刀 remap |
| 实际五轴程序 | `examples/impeller-7bl-xyzac.ngc``boat-xyzac.ngc``boat-xyzbc.ngc``test-xyzac.ngc``test-xyzbc.ngc` | gmoccapy TRT 示例程序 staging、选择、解释、预览 |
| 运动学源码 | `src/emc/kinematics/xyzac-trt-kins.c``trtfuncs.c``switchkins.c` | TRT 正逆解、TCP/identity/userk 类型语义 |
关键差异已经显式建模axis/vismach TRT profile 使用 `sparm=identityfirst``switchkinsType=1` 为 TCPgmoccapy TRT INI 不带 `sparm=identityfirst`,因此默认 type 0 即固定 TRT/TCP。Web profile 将这一点映射为 `kinsType=tcp-xyzac``rtcpState=on` 的默认状态。
## 3. Web 对标实现
| 实现项 | 文件 | 评价 |
| --- | --- | --- |
| 新增 profile | `app/src/profiles/gmoccapy-xyzac-trt.js``app/src/profiles/index.js` | 已对齐 gmoccapy INI 路径、display、open file、jog axes、M6/M61 remap、POSTGUI HAL、tool table、fixed TRT 默认 TCP |
| source reference | `app/src/profiles/source-reference-map.js` | 已把 gmoccapy TRT INI、HAL、TBL、examples、macros、kinematics source 纳入可追溯来源 |
| vendored LinuxCNC 文件 | `../wasm-port/vendor/linuxcnc/configs/sim/gmoccapy/...``../wasm-port/tools/source-manifest.txt` | 已复制 LinuxCNC gmoccapy TRT 配置、examples 和 macrosmanifest 已纳入这些文件 |
| machine-file staging | `app/src/runtime/linuxcnc-machine-file-staging.js` | 已支持 profile-specific `machineRel``demoDirectory=examples`、gmoccapy examples source guard、OPFS/memory fallback |
| INI parser | `app/src/runtime/linuxcnc-ini-runtime.js` | 已区分 switchkins TRT 与 gmoccapy fixed TRTgmoccapy 不强制 HALUI M428/M429/M430 和 `HAL_PIN_VARS=1`,改为要求 M6/M61 与 gmoccapy HALCMD 关键项 |
| store/main | `app/src/state/store.js``app/src/main.js` | 已让 fixed TRT 默认进入 `tcp-xyzac`/RTCP on并按 profile 默认加载 `impeller-7bl-xyzac.ngc` |
| build/static | `app/scripts/build-static.mjs` | 已把 gmoccapy config assets 复制到 source/dist 两套浏览器路径 |
| 页面 smoke | `tests/browser/gmoccapy_shell_smoke.html` | 已通过真实页面 profile selector 切换到 `gmoccapy-xyzac-trt`,验证 gmoccapy display、examples staging、INI、kinematics runtime、RTCP frame |
## 4. 测试与验证
| 测试项 | 验证内容 | 结果 |
| --- | --- | --- |
| profile/source map | profile 字段、fixed TRT 默认 type、gmoccapy HAL pins、source reference kinds | 通过 |
| INI 解析 | `xyzac-trt.ini` 的 DISPLAY、TRAJ、KINS、M6/M61、POSTGUI、HALCMD、servo/task period | 通过 |
| 文件 staging | gmoccapy INI、TBL、macros、examples 进入 staged projectsource guard 接受 `/examples/` | 通过 |
| 实际程序解释 | `impeller-7bl-xyzac.ngc``boat-xyzac.ngc``boat-xyzbc.ngc` 由 LinuxCNC interpreter runtime 输出 canonical motion 与 planner samples | 通过 |
| 运动学/RTCP | `xyzac-trt` WASM 以 fixed TRT type 0 构造 source-derived RTCP frame页面默认 RTCP on | 通过 |
| store/run preconditions | 切换 profile、加载 INI/runtime、加载 gmoccapy example、programValidation source guard、tool DB readiness、run preconditions | 通过 |
| 浏览器页面 | source 与 dist 页面均完成 gmoccapy shell smoke并显式覆盖 `gmoccapy-xyzac-trt` profile 切换 | 通过 |
| 静态构建 | gmoccapy config assets 被复制到 dist 并通过浏览器 dist smoke | 通过 |
已执行命令及关键输出:
```text
node tests/node/verify_gmoccapy_xyzac_trt_parity.mjs
gmoccapy_xyzac_trt_parity_smoke=ok
npm --prefix app run smoke:node
xyzac_trt_kinematics_runtime=ok
xyzbc_trt_kinematics_runtime=ok
real_linuxcnc_5axis_program_cases_smoke=ok
machine_file_staging_smoke=ok
rtcp_store_smoke=ok
profile_boundary_smoke=ok
gmoccapy_xyzac_trt_parity_smoke=ok
gmoccapy_trt_project_sidebar_smoke=ok
linuxcnc_parity_matrix_smoke=ok
npm --prefix app run smoke
gmoccapy_shell_smoke=ok
gmoccapy_dist_smoke=ok
```
此前也已执行 `npm --prefix app run build`,输出 `gmoccapy_static_build=ok`
## 5. 评价
`gmoccapy-xyzac-trt` 已达到本项目页面功能对标要求页面选择、项目文件、默认程序、INI/HAL/TBL/macros、真实 gmoccapy TRT examples、fixed TCP 运动学和 RTCP 页面状态均来自 LinuxCNC 源文件或 source-derived runtime 证据,不再把 axis/vismach switchkins 配置误当作 gmoccapy fixed TRT 配置。
剩余边界不是本轮缺陷,而是明确的能力边界:浏览器不运行 native GTK gmoccapy不连接 host HAL shared memory不控制真实电机/IO不启动 host realtime kernel不执行任意 host user-M 或 native tool DB process。后续若要声明这些能力需要新增 host/native 级验证,而不能沿用当前 Web simulation 结论。