# 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 diagnostics；source-derived RTCP 运行证据仍由既有 `xyzac-trt`、`xyzbc-trt` 验收链路承担。
- `05-acceptance-evidence.md` 已追加实际 JSON、截图、PDF 和报告路径。
