Files
cnc_wams/work/working4/01-function-content.md

99 lines
6.4 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.
# 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 和报告路径。