完善 gmoccapy XYZAB 参考功能

This commit is contained in:
2026-06-26 17:53:45 -04:00
parent 4e4f1462f5
commit a81b40447d
154 changed files with 17194 additions and 51 deletions

View File

@@ -0,0 +1,98 @@
# 01 功能内容
生成日期2026-06-26
## 1. 目标
使用 `working3` 中的 gmoccapy_XYZAB 执行链路分析和按钮图标资料,完善
`web-rtcp-5axis-sim-plan` 的 gmoccapy 风格 Web 五轴仿真功能。
本阶段目标不是把 LinuxCNC GTK/gmoccapy 原程序移植到浏览器,也不是让浏览器直接运行
LinuxCNC native NML/HAL 进程。目标是把 gmoccapy_XYZAB 的运行条件、按钮语义、NML/HAL
通信模型和图标资产转化为 Web 仿真项目可实施、可验证、可追溯的功能包。
## 2. 当前项目现状
`web-rtcp-5axis-sim-plan` 已具备这些基础能力:
- gmoccapy 风格 Web shell标题栏、预览区、DRO、G-code 面板、右侧模式栏、信息面板、override、主轴/冷却、底部控制栏。
- 五轴 profile当前已有 `xyzac-trt``xyzbc-trt`
- LinuxCNC source-derived runtime已有 kinematics、interpreter、task/HAL runtime 接入和 worker fallback。
- machine-file staging可加载 LinuxCNC vendored 源程序。
- RUN 主链路验证:已有 run preconditions、feedback loop、linear unit、browser evidence 等测试文档和证据。
- 已有追溯矩阵:`docs/traceability-matrix.md` 记录了 Web 实现和 LinuxCNC 来源的边界。
## 3. working3 新增价值
`working3` 提供了两类资料,本阶段已将其转化为项目内 profile、runtime model、UI 图标、
task gate、测试和 QA 证据:
### 3.1 gmoccapy_XYZAB 执行与通信链路
输入文件:
```text
/home/meswork/cnc_wams/work/working3/gmoccapy_XYZAB_execution_analysis.md
```
可转化为 Web 功能的关键点:
- `gmoccapy_XYZAB.ini` 是 LinuxCNC 运行配置,不是单独程序。
- 启动链路包括 `linuxcncsvr`、realtime/RTAPI/HAL、`milltask``halui`、HALFILE、`halcmd start``gmoccapy -ini`
- GUI 主要通过 `linuxcnc.command()``linuxcnc.stat()``linuxcnc.error_channel()``milltask` 通信。
- HAL 侧通过 `gmoccapy.*` pins、`POSTGUI_HALFILE``halui``iocontrol``motmod``spindle_sim` 等连接状态和外部控制。
- 当前 XYZAB 配置为 `trivkins coordinates=xyzab``JOINTS=5`,属于仿真回环机,不是 TCP/RTCP 运动学。
- `NO_FORCE_HOMING = 0`,自动运行和 MDI 必须经过急停复位、上电、回零、模式切换、解释器空闲等互锁。
### 3.2 gmoccapy 按钮图标和控制清单
输入文件:
```text
/home/meswork/cnc_wams/work/working3/gmoccapy_button_icons/button_icon_inventory.md
/home/meswork/cnc_wams/work/working3/gmoccapy_button_icons/button_icon_inventory.csv
/home/meswork/cnc_wams/work/working3/gmoccapy_button_icons/files/
```
清单规模:
- 清单行总数211。
- 有图标或图像的按钮/状态116。
- 纯文字或无图标按钮/状态95。
- 已复制图标文件112 个。
- 覆盖右侧主状态栏、底部主按钮栏、Auto 程序运行栏、MDI/宏、回零、Touch Off、Jog、主轴冷却、预览、编辑页、刀具页、文件选择页、内嵌 ToolEdit/OffsetPage、设置页控件。
## 4. 本阶段功能包状态
| 功能包 | 内容 | 当前状态 | 完成后效果 |
| --- | --- | --- | --- |
| F-XYZAB-01 gmoccapy_XYZAB 参考 profile | 把 `gmoccapy_XYZAB.ini` 的坐标、HALFILE、POSTGUI_HALFILE、`trivkins xyzab`、回零策略整理为 Web profile/source map。 | 已完成 | Web UI 可切换到 XYZAB 参考配置,并清楚标注其为 trivkins 仿真 profile。 |
| F-XYZAB-02 启动链路和通信诊断 | 在信息面板展示 LinuxCNC native 启动阶段、NML command/status/error、HAL/postgui 通信边界。 | 已完成 | 用户能看到 Web 仿真与 native gmoccapy 的通信差异,不把 UI 行为误认为真实 NML/HAL 进程。 |
| F-XYZAB-03 G-code 执行互锁强化 | 按 gmoccapy_XYZAB 的三层保护补齐 RUN/MDI/JOG/HOME/SPINDLE/COOLANT gate 说明和测试。 | 已完成 | RUN/MDI 等按钮 disabled 原因可解释Node/browser 测试覆盖典型非法状态。 |
| F-XYZAB-04 按钮语义和图标资产映射 | 从 CSV 生成 Web 可消费按钮 manifest并把核心 icon 接入右侧栏、底部栏、Auto 栏、预览栏、文件栏。 | 已完成 | UI 从文字按钮升级为 gmoccapy 风格图标按钮active/inactive 状态可验证。 |
| F-XYZAB-05 HAL pin 与 postgui 状态面板 | 展示 `gmoccapy.*` pins、spindle feedback、tool offset、program progress、HALUI 等诊断状态。 | 已完成 | 信息面板可解释哪些是 NML 状态,哪些是 HAL pin 状态,哪些是 Web 仿真状态。 |
| F-XYZAB-06 宏/MDI/Tool/Touch 工作流 | 参考 gmoccapy 宏和工具页按钮逻辑,补齐 Web 侧宏按钮、MDI 历史、Tool/Touch 操作互锁。 | 边界内完成 | W4 验收覆盖 MDI gate、home/tool/touch 图标和互锁;宏编辑和 MDI 历史扩展未作为本阶段新增验收项。 |
| F-XYZAB-07 验收证据自动化 | 为新增 profile、按钮、互锁、图标、HAL 诊断补 Node/browser/PDF/截图证据。 | 已完成 | 每个功能都有命令、页面、JSON、截图或 PDF 证据。 |
## 5. 不做事项
本阶段不做:
- 不移植 GTK、Glade、Python gmoccapy runtime。
- 不启动 native `linuxcncsvr``milltask``halui``motmod` 作为浏览器运行依赖。
- 不把 `gmoccapy_XYZAB``trivkins` profile 声称为 RTCP/TCP 运动学 proof。
- 不用 JavaScript 自行发明 G-code 解释器、刀补、REMAP 或运动规划语义。
- 不把 icon 清单复制到 UI 后就认定控制语义完成,按钮仍必须通过 task policy 和 runtime 证据验收。
## 6. 已满足的成功定义
本阶段收口时满足:
- 代码中有 `gmoccapy-xyzab` 或等价 reference profile并显示 `XYZAB``trivkins`、HALFILE、POSTGUI_HALFILE、`NO_FORCE_HOMING=0` 等来源信息。
- UI 核心按钮使用 `working3` 清单中的图标或 manifest且 active/inactive 状态可被浏览器测试识别。
- RUN、MDI、JOG、HOME、ESTOP、POWER、SPINDLE、COOLANT 的 gate 与 gmoccapy_XYZAB 文档一致。
- HAL/postgui 诊断能区分 NML 命令、NML 状态、HAL pin、Web task/HAL simulation status。
- `npm --prefix web-rtcp-5axis-sim-plan/app run build` 通过。
- `npm --prefix web-rtcp-5axis-sim-plan/app run smoke:node` 通过。
- 浏览器 smoke 覆盖 profile 切换、按钮 active 图标、canvas 非空、RUN blocked reason 和 HAL diagnosticssource-derived RTCP 运行证据仍由既有 `xyzac-trt``xyzbc-trt` 验收链路承担。
- `05-acceptance-evidence.md` 已追加实际 JSON、截图、PDF 和报告路径。