完善 gmoccapy XYZAB 参考功能
This commit is contained in:
98
work/working4/01-function-content.md
Normal file
98
work/working4/01-function-content.md
Normal 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 diagnostics;source-derived RTCP 运行证据仍由既有 `xyzac-trt`、`xyzbc-trt` 验收链路承担。
|
||||
- `05-acceptance-evidence.md` 已追加实际 JSON、截图、PDF 和报告路径。
|
||||
Reference in New Issue
Block a user