完善 working6 gmoccapy 页面诊断边界

This commit is contained in:
2026-06-27 00:01:01 -04:00
parent f964cedf66
commit 0e1e9d61a8
22 changed files with 2336 additions and 18 deletions

View File

@@ -205,3 +205,67 @@
下一步是什么:
- 可继续核对 `gmoccapy.unlock-settings`、tool measurement/blockheight/probeheight、INI user messages 等更低频 HAL pins本轮 W5-190 已完成。
## 2026-06-27 R7细化 gmoccapy 设置解锁、测刀输出和 INI user message 边界
做了什么:
- 对照 `gmoccapy.py``_on_unlock_settings_changed()``_check_toolmeasurement()``on_chk_use_tool_measurement_toggled()``on_btn_block_height_clicked()``_init_user_messages()``_show_user_message()`,确认 `unlock-settings` 只在设置页选择 HAL unlock 时控制 `tbtn_setup` 敏感性tool measurement 相关 pin 是 HAL_OUTINI user messages 只在配置 `MESSAGE_*` 后动态创建 `messages.*` pins。
- 对照 `gmoccapy_XYZAB.ini``gmoccapy_XYZAB.pref`,确认本配置没有 `[TOOLSENSOR]`、没有 `[DISPLAY] MESSAGE_*`,且默认 `unlock_way=use``use_toolmeasurement=False``blockheight=0.0`
-`gmoccapy-xyzab` profile 中补齐 `gmoccapy.unlock-settings``gmoccapy.probeheight``gmoccapy.blockheight``gmoccapy.toolmeasurement``gmoccapy.searchvel``gmoccapy.probevel``gmoccapy.toolchange-number``gmoccapy.toolchange-confirm`,并记录 toolsensor/user messages 默认未配置原因。
- 扩展 HAL model 和 communication model记录 settings pin、tool measurement HAL_OUT pins、动态 user message pins、XYZAB no `[TOOLSENSOR]` 和 no `MESSAGE_*` 边界。
- 扩展 `GMOCAPY_HAL_PIN`:模拟 `unlock-settings` 在默认 `unlock_way=use` 下忽略、在 HAL unlock 模式下按 level 控制 setuptool measurement pins 作为诊断输出记录;`messages.*` 在当前 XYZAB 无配置时返回明确 operator message。
- 在 gmoccapy UI 诊断中新增 `HAL settings``HAL tool/user` 行,并补充 Node/浏览器断言。
改了哪些文件:
- `/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app/src/profiles/gmoccapy-xyzab.js`
- `/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app/src/runtime/gmoccapy-communication-model.js`
- `/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app/src/runtime/gmoccapy-hal-model.js`
- `/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app/src/state/store.js`
- `/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app/src/ui/gmoccapy-shell.js`
- `/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/tests/browser/gmoccapy_shell_smoke.html`
- `/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/tests/node/verify_gmoccapy_communication_model.mjs`
- `/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/tests/node/verify_gmoccapy_hal_model.mjs`
- `/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/tests/node/verify_gmoccapy_xyzab_gates.mjs`
- `/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/tests/node/verify_gmoccapy_xyzab_profile.mjs`
- `/home/meswork/cnc_wams/work/working5/03-推进台账.md`
- `/home/meswork/cnc_wams/work/working5/04-任务矩阵.md`
- `/home/meswork/cnc_wams/work/working5/05-验收证据.md`
- `/home/meswork/cnc_wams/work/working5/06-决策记录.md`
验证了什么:
- `node ../tests/node/verify_gmoccapy_hal_model.mjs && node ../tests/node/verify_gmoccapy_communication_model.mjs && node ../tests/node/verify_gmoccapy_xyzab_profile.mjs && node ../tests/node/verify_gmoccapy_xyzab_gates.mjs` 通过。
- `bash ../tests/browser/verify_gmoccapy_shell_browser.sh` 通过。
- `npm run smoke:node` 通过。
- `npm run build && npm run smoke` 通过。
- `git diff --check -- web-rtcp-5axis-sim-plan work/working5` 通过,无输出。
下一步是什么:
- W5-200 已完成。后续如继续深化,可转向 gmoccapy 文件/宏页面、tool editor 页面或 native GTK 未实现页面的诊断边界,但当前任务矩阵内 HAL 输入细化项已闭环。
## 2026-06-27 R8working5 最终复核与验收收口
做了什么:
- 重新读取 `working5` README、功能内容、开发步骤、推进台账、任务矩阵、验收证据和决策记录确认 W5-001 到 W5-900 均已闭环。
- 核对当前工作区改动范围,确认源码和测试改动仍集中在 gmoccapy XYZAB profile、HAL/communication model、store、UI shell 和对应 Node/browser 验收。
- 在当前工作区重新执行完整 Node 冒烟、静态构建和浏览器冒烟,确认历史记录对应的实现仍可通过。
改了哪些文件:
- `/home/meswork/cnc_wams/work/working5/03-推进台账.md`
- `/home/meswork/cnc_wams/work/working5/05-验收证据.md`
- `/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/gptlog-process/gpdlog.md`
验证了什么:
- `npm run smoke:node` 通过,关键输出包含 `gmoccapy_xyzab_profile_smoke=ok``gmoccapy_communication_model_smoke=ok``gmoccapy_hal_model_smoke=ok``gmoccapy_xyzab_gates_smoke=ok``linear_unit_conversion_smoke=ok`
- `npm run build` 通过,输出 `gmoccapy_static_build=ok`
- `npm run smoke` 通过,输出 `gmoccapy_shell_smoke=ok``gmoccapy_dist_smoke=ok`
下一步是什么:
- `working5` 已按当前任务矩阵完成并复核通过;本轮不新增后续实现任务。

View File

@@ -17,4 +17,5 @@
| W5-170 | 细化外部 HAL hard-button pin 与 UI action 映射 | 完成 | profile/panel schema、HAL model、communication model、store 和浏览器 DOM 均明确 `gmoccapy.v-button.button-0..6``gmoccapy.h-button.button-0` 等硬件按钮 pin 的 rising-edge、可见敏感按钮映射和 Web gate 行为;相关 Node、构建、浏览器 smoke 通过 |
| W5-180 | 细化 ignore-limits、optional-stop、blockdelete 与 override HAL input pin 语义 | 完成 | profile、HAL model、communication model、store 和浏览器 UI 均明确 `gmoccapy.ignore-limits``gmoccapy.optional-stop``gmoccapy.blockdelete`、override counts/direct-value/reset pins 的 Web 映射Node、构建、浏览器 smoke 通过 |
| W5-190 | 细化 jog、jog-increment、delete-message、warning-confirm HAL input pin 语义 | 完成 | profile、HAL model、communication model、store 和浏览器 UI 均明确 `gmoccapy.jog.axis.*``gmoccapy.jog.jog-inc-*``gmoccapy.jog.turtle-jog``gmoccapy.delete-message``gmoccapy.warning-confirm` 的 Web 映射Node、构建、浏览器 smoke 通过 |
| W5-200 | 细化 unlock-settings、tool measurement 和 INI user messages 低频 HAL pin 边界 | 完成 | profile、HAL model、communication model、store 和浏览器 UI 均明确 `gmoccapy.unlock-settings``gmoccapy.probeheight/blockheight/toolmeasurement/searchvel/probevel`、动态 `gmoccapy.messages.*` pins 的源码边界和 XYZAB 默认未启用原因Node、构建、浏览器 smoke 通过 |
| W5-900 | 更新验收证据和决策记录 | 完成 | 命令、结果、修改原因和后续项已记录 |

View File

@@ -17,6 +17,9 @@
| EV-W5-181 | W5-020/W5-030/W5-040/W5-180 | 命令 | `npm run smoke:node``npm run build && npm run smoke` | 通过,完整 Node、静态构建、浏览器 gmoccapy shell/dist smoke 均覆盖新增 HAL input/override 诊断和 Web 控件 |
| EV-W5-190 | W5-150/W5-190 | 命令 | `node ../tests/node/verify_gmoccapy_hal_model.mjs && node ../tests/node/verify_gmoccapy_communication_model.mjs``node ../tests/node/verify_gmoccapy_xyzab_profile.mjs && node ../tests/node/verify_gmoccapy_xyzab_gates.mjs``bash ../tests/browser/verify_gmoccapy_shell_browser.sh` | 通过,验证 `GMOCAPY_HAL_PIN` 对 jog axis press/release、jog increment rising-edge、turtle jog、delete-message、warning-confirm pins 的映射和 UI 诊断 |
| EV-W5-191 | W5-020/W5-030/W5-040/W5-190 | 命令 | `npm run smoke:node``npm run build && npm run smoke` | 通过,完整 Node、静态构建、浏览器 gmoccapy shell/dist smoke 均覆盖新增 jog/message HAL pin 诊断和 Web 行为 |
| EV-W5-200 | W5-150/W5-200 | 命令 | `node ../tests/node/verify_gmoccapy_hal_model.mjs && node ../tests/node/verify_gmoccapy_communication_model.mjs && node ../tests/node/verify_gmoccapy_xyzab_profile.mjs && node ../tests/node/verify_gmoccapy_xyzab_gates.mjs``bash ../tests/browser/verify_gmoccapy_shell_browser.sh` | 通过,验证 `gmoccapy.unlock-settings`、tool measurement HAL_OUT pins、动态 `messages.*` pin 边界和 UI 诊断 |
| EV-W5-201 | W5-020/W5-030/W5-040/W5-200 | 命令 | `npm run smoke:node``npm run build && npm run smoke` | 通过,完整 Node、静态构建、浏览器 gmoccapy shell/dist smoke 均覆盖新增 settings/tool/user-message 低频 HAL pin 诊断和 Web 行为 |
| EV-W5-900 | W5-900 | 命令 | `npm run smoke:node``npm run build``npm run smoke` | 通过,最终复核确认 working5 当前任务矩阵闭环Node、静态构建、浏览器冒烟均在当前工作区通过 |
## 命令记录
@@ -297,6 +300,119 @@ npm run build && npm run smoke
- `data-gmoccapy-hal="message-inputs"` 必须包含 `3 message pins``delete-message rising-edge-only``warning-confirm level-polled`
- 通过 `window.webRtcp5AxisSimulation.dispatch({ type: "GMOCAPY_HAL_PIN", ... })` 验证浏览器内 jog increment、axis jog press/release、turtle jog、delete-message 和 warning-confirm 状态。
### 2026-06-27 R7
```bash
cd /home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app
node ../tests/node/verify_gmoccapy_hal_model.mjs && node ../tests/node/verify_gmoccapy_communication_model.mjs && node ../tests/node/verify_gmoccapy_xyzab_profile.mjs && node ../tests/node/verify_gmoccapy_xyzab_gates.mjs
```
结果:通过,输出:
- `gmoccapy_hal_model_smoke=ok`
- `gmoccapy_communication_model_smoke=ok`
- `gmoccapy_xyzab_profile_smoke=ok`
- `gmoccapy_xyzab_gates_smoke=ok`
```bash
cd /home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app
bash ../tests/browser/verify_gmoccapy_shell_browser.sh
```
结果:通过,输出:
- `gmoccapy_shell_smoke=ok`
```bash
cd /home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app
npm run smoke:node
```
结果:通过。
关键输出摘要:
- `gmoccapy_xyzab_profile_smoke=ok`
- `gmoccapy_communication_model_smoke=ok`
- `gmoccapy_hal_model_smoke=ok`
- `gmoccapy_xyzab_gates_smoke=ok`
- `linear_unit_conversion_smoke=ok`
```bash
cd /home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app
npm run build && npm run smoke
```
结果:通过,输出:
- `gmoccapy_static_build=ok`
- `gmoccapy_shell_smoke=ok`
- `gmoccapy_dist_smoke=ok`
```bash
cd /home/meswork/cnc_wams
git diff --check -- web-rtcp-5axis-sim-plan work/working5
```
结果:通过,无输出。
本轮新增 Node 断言:
- `gmoccapy.unlock-settings` 是 settings pin默认 `unlock_way=use` 时只记录 pin level不锁定 setup显式 HAL unlock 模式下按 level 控制 setup sensitive。
- `gmoccapy.probeheight``gmoccapy.blockheight``gmoccapy.toolmeasurement``gmoccapy.searchvel``gmoccapy.probevel` 记录为 HAL_OUT tool measurement pins。
- `gmoccapy_XYZAB.ini``[TOOLSENSOR]`,所以 auto tool measurement 默认禁用;`gmoccapy_XYZAB.pref` 默认 `use_toolmeasurement=False``blockheight=0.0`
- `gmoccapy_XYZAB.ini``[DISPLAY] MESSAGE_*`,所以动态 `gmoccapy.messages.*` pins 不创建Web 对 `messages.*` dispatch 返回明确 operator message。
本轮新增浏览器断言:
- `data-gmoccapy-hal="settings-inputs"` 必须包含 `1 settings pins``unlock-settings level-driven``unlock-way use``setup sensitive`
- `data-gmoccapy-hal="tool-user-inputs"` 必须包含 `5 tool measurement HAL_OUT pins``XYZAB no TOOLSENSOR``0 user message pins``no MESSAGE_*`
- 通过 `window.webRtcp5AxisSimulation.dispatch({ type: "GMOCAPY_HAL_PIN", ... })` 验证浏览器内 `unlock-settings` 默认忽略和 HAL unlock level 行为、`blockheight` 诊断记录、`messages.*` 无配置提示。
### 2026-06-27 R8
```bash
cd /home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app
npm run smoke:node
```
结果:通过。
关键输出摘要:
- `linuxcnc_kinematics_runtime_smoke=ok`
- `linuxcnc_interpreter_runtime_smoke=ok`
- `linuxcnc_ini_runtime_smoke=ok`
- `linuxcnc_task_hal_runtime_smoke=ok`
- `real_linuxcnc_5axis_program_cases_smoke=ok`
- `gmoccapy_xyzab_profile_smoke=ok`
- `gmoccapy_communication_model_smoke=ok`
- `gmoccapy_hal_model_smoke=ok`
- `gmoccapy_xyzab_gates_smoke=ok`
- `linear_unit_conversion_smoke=ok`
```bash
cd /home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app
npm run build
```
结果:通过,输出 `gmoccapy_static_build=ok`
```bash
cd /home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app
npm run smoke
```
结果:通过,输出:
- `gmoccapy_shell_smoke=ok`
- `gmoccapy_dist_smoke=ok`
本轮复核结论:
- `04-任务矩阵.md` 中 W5-001 到 W5-900 均为完成。
- 当前源码、测试和文档状态可通过完整 Node、构建和浏览器冒烟验收。
## 页面/截图/report/job 记录
本轮未生成截图、PDF、job_id 或 report_id。浏览器验收由 headless Chromium smoke 脚本完成。

View File

@@ -136,3 +136,28 @@
- `GMOCAPY_HAL_PIN` 现在覆盖 jog axis press/release、jog increment selection、turtle jog、delete-message 和 warning-confirm。
- HAL model 和 communication model 现在能分别呈现 hard-button、operator/override input、jog input、message input 的不同语义。
- UI 诊断增加 `HAL jog``HAL messages`,浏览器 smoke 通过 DOM 和公开 dispatch 验证这些语义。
## DR-W5-007低频 settings/tool/user-message HAL pins 按配置启用边界建模
日期2026-06-27
决策:
- `gmoccapy.unlock-settings` 作为 level-driven settings input pin 记录;默认 `gmoccapy_XYZAB.pref``unlock_way=use`,所以 Web 中默认只记录 pin level不把 setup 锁定或解锁。
- 当测试显式模拟 HAL unlock 模式时,`unlock-settings` 才按 pin level 控制 `setupSensitive`,对应源码 `_on_unlock_settings_changed()``rbt_hal_unlock` 的条件判断。
- `gmoccapy.probeheight``gmoccapy.blockheight``gmoccapy.toolmeasurement``gmoccapy.searchvel``gmoccapy.probevel` 作为 tool measurement HAL_OUT pins 记录,不伪装成外部 HAL 输入。
- 当前 `gmoccapy_XYZAB.ini` 没有 `[TOOLSENSOR]`,所以 profile、HAL model 和 UI 诊断明确自动测刀默认禁用,而不是暴露为可操作流程。
- 动态 `gmoccapy.messages.*` pins 只在 INI 存在 `MESSAGE_*` 配置时创建;当前 XYZAB 没有这些配置,所以 Web 对 `messages.*` dispatch 返回“未配置”的明确 operator message。
原因:
- `gmoccapy.py``_on_unlock_settings_changed()` 会先检查初始化状态,再检查 `rbt_hal_unlock` 或 user mode未选择 HAL unlock 时 pin 变化不应改变 setup 页面可用性。
- `_check_toolmeasurement()` 需要有效 `[TOOLSENSOR]` 数据;缺少探针配置时会显示禁用提示、关闭 `chk_use_tool_measurement` 并使其不敏感。
- `on_chk_use_tool_measurement_toggled()``on_spbtn_probe_height_value_changed()``on_btn_block_height_clicked()` 都是 GUI/prefs 侧写 HAL_OUT pins不是外部 HAL 驱动 GUI 的输入边界。
- `_init_user_messages()` 只有从 INI 读到 user messages 才创建 `messages.<pinname>``messages.<pinname>-waiting``messages.<pinname>-response`;当前 `gmoccapy_XYZAB.ini` 没有 `MESSAGE_*` 项。
影响:
- `gmoccapy-xyzab` profile 补齐 settings/tool measurement/toolchange confirm 相关 pins并记录 no `[TOOLSENSOR]` 与 no `MESSAGE_*` 原因。
- HAL model 和 communication model 能展示 settings input、tool measurement HAL_OUT、dynamic user message 三类不同边界。
- Store 和浏览器 smoke 覆盖 `unlock-settings` 默认忽略、HAL unlock level 控制、`blockheight` 诊断记录和 `messages.*` 未配置提示。

View File

@@ -0,0 +1,64 @@
# 01-项目功能内容
## 目标
`/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan` 中补齐 gmoccapy 文件/宏页面、tool editor 页面、native GTK 未实现页面的诊断边界,让 Web 仿真能够明确表达哪些 gmoccapy 原生页面已经实现、哪些只做诊断映射、哪些因 XYZAB 配置或 Web 仿真边界暂不执行。
本轮不重复 working5 已完成的 HAL 输入、hard-button、模式门控、换刀回环和低频 HAL pin 工作;本轮聚焦页面级功能边界和可验收诊断。
## 对标范围
### gmoccapy 文件页面
- 对照 `gmoccapy.py``gmoccapy.glade` 中程序文件加载、最近文件、文件选择器、程序预览和自动运行入口。
- 对照 `[DISPLAY] PROGRAM_PREFIX`、默认 NC 文件路径、文件过滤规则和最近文件行为。
- Web 侧需要明确:
- 当前可加载的演示/机床程序来源。
- 文件选择、打开、关闭、最近文件、预览、运行之间的状态边界。
- 与 Auto 模式、全轴回零、解释器 idle、运行中禁止切换文件等互锁关系。
- 未实现的 native GTK file chooser 行为需要诊断说明,不伪装成完整桌面文件管理器。
### gmoccapy 宏页面
- 对照 gmoccapy 原生宏按钮、INI 中 macro 配置、MDI 命令发送路径和敏感状态。
- Web 侧需要明确:
- 当前 XYZAB 配置是否存在可用宏。
- 宏按钮如何映射到 MDI 命令或诊断行。
- 未回零、未上电、运行中、解释器非 idle 时宏执行的门控原因。
- 未配置宏时应显示明确边界,而不是空白或误导性成功状态。
### tool editor 页面
- 对照 gmoccapy tool editor、LinuxCNC tool table、`M6`/`M61`、刀具号、刀补、手动换刀回环的状态显示。
- Web 侧需要明确:
- 当前 tool table 来源、读取状态、活动刀具、准备刀具、刀补显示。
- 可编辑字段与只读诊断字段的边界。
- Web 仿真是否允许直接写 tool table若暂不写文件需要显示只读/诊断原因。
- 与 working5 中 `iocontrol-loopback` 换刀语义保持一致,不重新引入 gmoccapy 手动换刀弹窗。
### native GTK 未实现页面诊断边界
- 对照 `gmoccapy.glade` 中原生 notebooks、side buttons、bottom buttons 和 setup/user tabs/tool/touch 等页面。
- Web 侧需要明确:
- 已实现页面、部分实现页面、诊断-only 页面和未实现页面清单。
- hard-button pin 对未实现 native 页面按钮的行为:只能诊断、不能伪装成真实页面动作。
- 每个未实现页面的原因、风险和未来补齐入口。
- 浏览器 UI 中提供可测试的 `data-*` 诊断节点,便于 smoke 脚本验收。
## 当前项目入口
- Web 应用:`/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app`
- gmoccapy profile`app/src/profiles/gmoccapy-xyzab.js`
- gmoccapy HAL model`app/src/runtime/gmoccapy-hal-model.js`
- gmoccapy communication model`app/src/runtime/gmoccapy-communication-model.js`
- 状态存储:`app/src/state/store.js`
- gmoccapy UI shell`app/src/ui/gmoccapy-shell.js`
- Node 验证:`tests/node`
- 浏览器验证:`tests/browser`
## 非目标
- 不在本轮实现完整桌面 GTK 文件选择器。
- 不在本轮引入真实 LinuxCNC 外部进程、真实 HAL pin 写入或真实 tool table 持久化,除非后续任务矩阵明确升级。
- 不回退 working5 已完成的 `GMOCAPY_HAL_PIN``GMOCAPY_HARDWARE_BUTTON` 和 gmoccapy XYZAB profile 行为。
- 不把未实现 native 页面包装成可操作成功路径;必须明确诊断边界。

View File

@@ -0,0 +1,87 @@
# 02-项目程序开发详细步骤
## 步骤 1建立工作控制文件
- 创建 README、功能内容、开发步骤、推进台账、任务矩阵、验收证据、决策记录。
- 将 working5 后续深化方向拆分为文件/宏页面、tool editor 页面、native GTK 未实现页面诊断边界三条主线。
## 步骤 2读取基准与现有实现
- 读取 `work/working5` 的任务矩阵、决策记录和验收证据,确认不可回退的既有行为。
- 读取 `work/working3/gmoccapy_XYZAB_execution_analysis.md`
- 读取 LinuxCNC gmoccapy 源码和 Glade 文件:
- `linuxcnc/src/emc/usr_intf/gmoccapy/gmoccapy.py`
- `linuxcnc/src/emc/usr_intf/gmoccapy/gmoccapy.glade`
- `linuxcnc/src/emc/usr_intf/gmoccapy/dialogs.py`
- 读取 Web 项目 profile、runtime、state、UI shell 和 tests。
## 步骤 3建立页面/按钮/状态映射
- 梳理 native gmoccapy notebook 页面和 Web gmoccapy shell 当前页面。
- 建立文件页面映射:
- native file chooser、program preview、recent files、program run action。
- Web program source、preview、load/run/reset 状态。
- 建立宏页面映射:
- INI macro 配置、宏按钮、MDI command、执行 gate。
- XYZAB 未配置宏时的诊断边界。
- 建立 tool editor 映射:
- tool table、active/prepared tool、offset、M6/M61 状态。
- 只读诊断与可编辑字段边界。
- 建立未实现 native 页面清单:
- setup/user tabs/tool/touch 等按钮和页面。
- hard-button pin 与诊断-only action 的映射。
## 步骤 4执行现有测试
-`app` 下运行 `npm run smoke:node`
- 运行构建:`npm run build`
- 运行浏览器冒烟:`npm run smoke`
- 如测试失败,先判断是环境问题、既有改动问题还是本轮新增行为问题。
## 步骤 5补充模型和状态
- 在 profile 或 runtime model 中补充 gmoccapy 页面级 schema
- file page capability。
- macro page capability。
- tool editor capability。
- native GTK page implementation matrix。
- 在 store 中补充必要 action 或诊断状态:
- 文件页面的 load/recent/preview gate。
- 宏执行的 MDI gate 或未配置提示。
- tool editor 的只读诊断状态。
- native 未实现页面的 operator message。
- 保持 action 命名和 existing gate 风格一致,避免绕过 LinuxCNC task policy。
## 步骤 6补充 UI 诊断
- 在 gmoccapy shell 中增加可测试的诊断行或页面区块。
- 所有新增诊断必须带稳定 `data-*` 属性。
- 未实现页面必须显示“诊断-only/未实现/配置未启用”的明确状态。
- 文件/宏/tool editor 控件不得在不满足 gate 时显示为可执行。
## 步骤 7补充测试
- Node 测试:
- profile 页面 schema 测试。
- communication model 页面路径测试。
- store gate 和 operator message 测试。
- Browser 测试:
- DOM 诊断行存在。
- `data-*` 内容包含关键边界词。
- 公开 dispatch 或按钮点击能触发预期状态和 gate。
- 如改动 UI运行 `npm run build && npm run smoke`
## 步骤 8回归验收
- 运行本轮相关最小测试。
- 运行完整 `npm run smoke:node`
- 运行 `npm run build`
- 运行 `npm run smoke`
- 运行 `git diff --check -- web-rtcp-5axis-sim-plan work/working6`
## 步骤 9更新台账和证据
- 更新 `03-推进台账.md`
- 更新 `04-任务矩阵.md` 中任务状态。
- 更新 `05-验收证据.md` 中命令、页面、截图、报告或输出摘要。
- 如涉及架构、对标边界或兼容性取舍,更新 `06-决策记录.md`

View File

@@ -0,0 +1,94 @@
# 03-推进台账
## 2026-06-27 R1创建 working6 控制文件
做了什么:
- 创建 `working6` 工作目录。
- 建立 README、功能内容、开发步骤、推进台账、任务矩阵、验收证据和决策记录。
- 将 working5 的可选深化方向拆分为 gmoccapy 文件/宏页面、tool editor 页面、native GTK 未实现页面诊断边界三条主线。
改了哪些文件:
- `/home/meswork/cnc_wams/work/working6/README.md`
- `/home/meswork/cnc_wams/work/working6/01-项目功能内容.md`
- `/home/meswork/cnc_wams/work/working6/02-项目程序开发详细步骤.md`
- `/home/meswork/cnc_wams/work/working6/03-推进台账.md`
- `/home/meswork/cnc_wams/work/working6/04-任务矩阵.md`
- `/home/meswork/cnc_wams/work/working6/05-验收证据.md`
- `/home/meswork/cnc_wams/work/working6/06-决策记录.md`
验证了什么:
- 待执行现有 Node、构建和浏览器冒烟测试。
- 待读取 gmoccapy 源码、Glade、INI 和当前 Web 实现后开始 W6-010。
下一步是什么:
-`04-任务矩阵.md` 从 W6-010 开始,先建立 native gmoccapy 页面到 Web 模块的映射,再执行基线测试。
## 2026-06-27 R2实现 gmoccapy 页面级诊断边界
做了什么:
- 对照 LinuxCNC `gmoccapy.py``gmoccapy.glade``gmoccapy_XYZAB.ini`,确认文件页使用 `IconFileSelection1`,宏页来自 `[MACROS]` 的 5 个 O-word MDI 宏tool editor 读取 `tool.tbl` 并可在原生 GTK 中 add/delete/reload/save/change tool。
- 在 Web profile、HAL model 和 communication model 中增加页面级 schemafile page、macro page、tool editor page、native GTK implementation matrix。
- 在 store 中增加 `GMOCAPY_NATIVE_PAGE``GMOCAPY_PAGE_ACTION``GMOCAPY_RUN_MACRO``GMOCAPY_TOOL_EDITOR_ACTION`,用于表达 native 页面诊断、文件页边界、宏 MDI gate 和 tool editor 只读/写回阻塞。
- 在 gmoccapy UI 诊断中新增 `data-gmoccapy-page="file"``macros``tool-editor``matrix` 四类稳定 DOM 证据。
- 修正 hard-button 对 `tbtn_user_tabs``tbtn_setup``btn_touch``btn_tool``tbtn_switch_mode` 的 Web 行为:进入结构化 diagnostic-only 页面诊断,不再伪装为普通 Web Jog 或已实现工具页。
改了哪些文件:
- `/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app/src/profiles/gmoccapy-xyzab.js`
- `/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app/src/runtime/gmoccapy-communication-model.js`
- `/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app/src/runtime/gmoccapy-hal-model.js`
- `/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app/src/state/store.js`
- `/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app/src/ui/gmoccapy-shell.js`
- `/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/tests/browser/gmoccapy_shell_smoke.html`
- `/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/tests/node/verify_gmoccapy_communication_model.mjs`
- `/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/tests/node/verify_gmoccapy_hal_model.mjs`
- `/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/tests/node/verify_gmoccapy_xyzab_gates.mjs`
- `/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/tests/node/verify_gmoccapy_xyzab_profile.mjs`
- `/home/meswork/cnc_wams/work/working6/03-推进台账.md`
- `/home/meswork/cnc_wams/work/working6/04-任务矩阵.md`
- `/home/meswork/cnc_wams/work/working6/05-验收证据.md`
- `/home/meswork/cnc_wams/work/working6/06-决策记录.md`
验证了什么:
- 基线和回归 `npm run smoke:node` 均通过。
- 基线和回归 `npm run build` 均通过。
- 基线和回归 `npm run smoke` 均通过。
- 新增最小测试 `node ../tests/node/verify_gmoccapy_hal_model.mjs && node ../tests/node/verify_gmoccapy_communication_model.mjs` 通过。
- 新增最小测试 `node ../tests/node/verify_gmoccapy_xyzab_profile.mjs && node ../tests/node/verify_gmoccapy_xyzab_gates.mjs` 通过。
- `bash ../tests/browser/verify_gmoccapy_shell_browser.sh` 通过。
下一步是什么:
- 当前 W6-010 到 W6-160、W6-900 已完成。后续如继续深化,可新增 working7 或扩展 W6 任务,转向真实文件浏览器交互、宏参数输入 UI、tool table 安全写回等可执行能力。
## 2026-06-27 R3接续复核 working6 完成状态
做了什么:
- 接续上一轮后,重新读取 `work/working6` 的 README、任务矩阵、推进台账、验收证据、功能内容、开发步骤和决策记录。
- 复核实际代码差异,确认 profile、HAL model、communication model、store、gmoccapy UI shell 和 Node/browser tests 已覆盖 W6 文件页、宏页、tool editor 页和 native GTK 页面诊断边界。
- 复核 hard-button 对 `setup``user-tabs``touch-off``tool-editor``switchkins-mode` 的行为已进入 `GMOCAPY_NATIVE_PAGE` 结构化诊断,不再伪装为已实现页面。
- 执行最终完整回归和空白检查。
改了哪些文件:
- `/home/meswork/cnc_wams/work/working6/03-推进台账.md`
- `/home/meswork/cnc_wams/work/working6/05-验收证据.md`
- `/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/gptlog-process/gpdlog.md`
验证了什么:
- `npm run smoke:node` 通过,包含 `gmoccapy_xyzab_profile_smoke=ok``gmoccapy_communication_model_smoke=ok``gmoccapy_hal_model_smoke=ok``gmoccapy_xyzab_gates_smoke=ok`
- `npm run build` 通过,输出 `gmoccapy_static_build=ok`
- `npm run smoke` 通过,输出 `gmoccapy_shell_smoke=ok``gmoccapy_dist_smoke=ok`
- `git diff --check -- web-rtcp-5axis-sim-plan work/working6` 通过,无输出。
下一步是什么:
- `working6` 当前任务闭环。后续若继续深化,建议新建 `working7`,聚焦真实文件浏览交互、宏参数输入 UI 或 tool table 安全写回的设计与实现。

View File

@@ -0,0 +1,17 @@
# 04-任务矩阵
| 任务编号 | 任务 | 状态 | 验收标准 |
| --- | --- | --- | --- |
| W6-001 | 创建 working6 工作控制文件 | 完成 | README 和 01-06 文件存在,内容可指导后续推进 |
| W6-010 | 建立 gmoccapy native 页面到 Web 模块映射 | 完成 | 文件/宏/tool editor/native 未实现页面已映射到 profile、communication model、store、UI shell 和 tests |
| W6-020 | 执行当前 Node 冒烟基线 | 完成 | `npm run smoke:node` 通过 |
| W6-030 | 执行当前构建基线 | 完成 | `npm run build` 通过 |
| W6-040 | 执行当前浏览器冒烟基线 | 完成 | `npm run smoke` 通过 |
| W6-100 | 细化 gmoccapy 文件页面诊断边界 | 完成 | profile/model/store/UI 明确文件选择、最近文件、预览、加载、运行 gate 和 native file chooser 边界Node/browser 测试通过 |
| W6-110 | 细化 gmoccapy 宏页面诊断边界 | 完成 | 明确 XYZAB 5 个宏配置、宏按钮到 MDI 的 gate、运行中/未上电拦截Node/browser 测试通过 |
| W6-120 | 细化 tool editor 页面诊断边界 | 完成 | 明确 tool table 来源、active/prepared tool、offset、只读/可编辑边界、与 iocontrol-loopback 换刀语义一致Node/browser 测试通过 |
| W6-130 | 建立 native GTK 未实现页面 implementation matrix | 完成 | 已实现、部分实现、diagnostic-only、native-only 页面清单可在 model/UI 中稳定读取;浏览器 DOM 有 `data-*` 诊断 |
| W6-140 | 细化 hard-button 对未实现 native 页面按钮的行为 | 完成 | `tbtn_setup`、user tabs、tool/touch 等未实现按钮只触发 `GMOCAPY_NATIVE_PAGE` 诊断不伪装成已实现页面store/browser 测试通过 |
| W6-150 | 汇总 gmoccapy 页面级通信模型 | 完成 | communication model 展示 file/macro/tool/native page 的命令、状态、错误/诊断路径Node 测试通过 |
| W6-160 | 增加浏览器 UI 诊断验收 | 完成 | gmoccapy shell smoke 验证 file/macro/tool/native diagnostic rows、关键 `data-*` 属性和 gate 文案 |
| W6-900 | 更新验收证据和决策记录 | 完成 | 命令、结果、修改原因、边界判断和后续项已记录 |

View File

@@ -0,0 +1,186 @@
# 05-验收证据
## 证据索引
| 证据编号 | 任务编号 | 类型 | 命令/页面/文件 | 结果 |
| --- | --- | --- | --- | --- |
| EV-W6-001 | W6-001 | 文件 | `/home/meswork/cnc_wams/work/working6` | 已创建 README 和 01-06 工作控制文件 |
| EV-W6-020 | W6-020/W6-030/W6-040 | 命令 | `npm run smoke:node``npm run build``npm run smoke` | 基线通过,确认实现前项目当前态可运行 |
| EV-W6-100 | W6-010/W6-100/W6-110/W6-120/W6-130/W6-140/W6-150 | 命令 | `node ../tests/node/verify_gmoccapy_hal_model.mjs && node ../tests/node/verify_gmoccapy_communication_model.mjs``node ../tests/node/verify_gmoccapy_xyzab_profile.mjs && node ../tests/node/verify_gmoccapy_xyzab_gates.mjs` | 通过验证页面级模型、profile、communication model、store gate 和 diagnostic-only hard-button 行为 |
| EV-W6-160 | W6-160 | 页面/命令 | `bash ../tests/browser/verify_gmoccapy_shell_browser.sh` | 通过,验证 `data-gmoccapy-page="file/macros/tool-editor/matrix"` 诊断行和公开 dispatch 页面行为 |
| EV-W6-900 | W6-020/W6-030/W6-040/W6-900 | 命令 | `npm run smoke:node``npm run build``npm run smoke` | 回归通过,完整 Node、静态构建、浏览器 shell/dist smoke 均通过 |
| EV-W6-901 | W6-900 | 命令 | `npm run smoke:node``npm run build``npm run smoke``git diff --check -- web-rtcp-5axis-sim-plan work/working6` | 接续复核通过,确认 working6 当前任务闭环且无空白错误 |
## 命令记录
### 2026-06-27 R1
```bash
test -d /home/meswork/cnc_wams/work/working6 && find /home/meswork/cnc_wams/work/working6 -maxdepth 2 -type f | sort || true
```
结果:创建前无可见文件。
```bash
mkdir -p /home/meswork/cnc_wams/work/working6
```
结果:通过,创建工作目录。
本轮创建文件:
- `/home/meswork/cnc_wams/work/working6/README.md`
- `/home/meswork/cnc_wams/work/working6/01-项目功能内容.md`
- `/home/meswork/cnc_wams/work/working6/02-项目程序开发详细步骤.md`
- `/home/meswork/cnc_wams/work/working6/03-推进台账.md`
- `/home/meswork/cnc_wams/work/working6/04-任务矩阵.md`
- `/home/meswork/cnc_wams/work/working6/05-验收证据.md`
- `/home/meswork/cnc_wams/work/working6/06-决策记录.md`
### 2026-06-27 R2
基线命令:
```bash
cd /home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app
npm run smoke:node
```
结果:通过。关键输出包含:
- `gmoccapy_xyzab_profile_smoke=ok`
- `gmoccapy_communication_model_smoke=ok`
- `gmoccapy_hal_model_smoke=ok`
- `gmoccapy_xyzab_gates_smoke=ok`
- `linear_unit_conversion_smoke=ok`
```bash
cd /home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app
npm run build
```
结果:通过,输出 `gmoccapy_static_build=ok`
```bash
cd /home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app
npm run smoke
```
结果:通过,输出:
- `gmoccapy_shell_smoke=ok`
- `gmoccapy_dist_smoke=ok`
新增最小验收:
```bash
cd /home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app
node ../tests/node/verify_gmoccapy_hal_model.mjs && node ../tests/node/verify_gmoccapy_communication_model.mjs
```
结果:通过,输出:
- `gmoccapy_hal_model_smoke=ok`
- `gmoccapy_communication_model_smoke=ok`
```bash
cd /home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app
node ../tests/node/verify_gmoccapy_xyzab_profile.mjs && node ../tests/node/verify_gmoccapy_xyzab_gates.mjs
```
结果:通过,输出:
- `gmoccapy_xyzab_profile_smoke=ok`
- `gmoccapy_xyzab_gates_smoke=ok`
```bash
cd /home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app
bash ../tests/browser/verify_gmoccapy_shell_browser.sh
```
结果:通过,输出 `gmoccapy_shell_smoke=ok`
回归命令:
```bash
cd /home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app
npm run smoke:node
```
结果:通过。
```bash
cd /home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app
npm run build
```
结果:通过,输出 `gmoccapy_static_build=ok`
```bash
cd /home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app
npm run smoke
```
结果:通过,输出:
- `gmoccapy_shell_smoke=ok`
- `gmoccapy_dist_smoke=ok`
本轮新增断言摘要:
- `gmoccapy_XYZAB.ini` 的 5 个 `[MACROS]` 被识别为 MDI O-word 宏,不再误判为未配置。
- `IconFileSelection1` 文件页以 Web file input/staged source 诊断表达,不伪装成 native GTK chooser。
- `tooledit1` tool editor 读取 `tool.tbl` 的 17 把刀Web 写回被明确阻塞。
- native GTK 页面矩阵包含 implemented、partial、diagnostic-only、native-only 四类。
- `tbtn_setup``tbtn_user_tabs``btn_touch``btn_tool``tbtn_switch_mode` hard-button 进入 `GMOCAPY_NATIVE_PAGE` 诊断,不伪装为已实现页面。
### 2026-06-27 R3
接续复核命令:
```bash
cd /home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app
npm run smoke:node
```
结果:通过。关键输出包含:
- `gmoccapy_xyzab_profile_smoke=ok`
- `gmoccapy_communication_model_smoke=ok`
- `gmoccapy_hal_model_smoke=ok`
- `gmoccapy_xyzab_gates_smoke=ok`
- `linear_unit_conversion_smoke=ok`
```bash
cd /home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app
npm run build
```
结果:通过,输出 `gmoccapy_static_build=ok`
```bash
cd /home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app
npm run smoke
```
结果:通过,输出:
- `gmoccapy_shell_smoke=ok`
- `gmoccapy_dist_smoke=ok`
```bash
cd /home/meswork/cnc_wams
git diff --check -- web-rtcp-5axis-sim-plan work/working6
```
结果:通过,无输出。
复核结论:
- W6 任务矩阵已全部完成,无需新增代码补丁。
- profile/model/store/UI/tests 的实际差异与 W6 文档目标一致。
- 本轮未生成截图、PDF、job_id 或 report_id。
## 页面/截图/report/job 记录
本轮未生成截图、PDF、job_id 或 report_id。浏览器页面证据由 headless Chromium smoke 脚本验证,关键 DOM 为 `data-gmoccapy-page="file"``data-gmoccapy-page="macros"``data-gmoccapy-page="tool-editor"``data-gmoccapy-page="matrix"`

View File

@@ -0,0 +1,127 @@
# 06-决策记录
## DR-W6-001working6 作为 working5 后续深化,不作为未完成补丁
日期2026-06-27
决策:
- `working6` 不是修补 working5 未完成项,而是承接 working5 台账中“可选深化方向”。
- 本轮主线聚焦 gmoccapy 文件/宏页面、tool editor 页面、native GTK 未实现页面诊断边界。
- working5 中已完成的 HAL 输入、hard-button、状态机门控、换刀回环和低频 HAL pin 行为不得在 working6 中回退。
原因:
- `working5` 任务矩阵 W5-001 到 W5-900 已全部完成,并有 EV-W5-900 最终复核证据。
- 文件/宏/tool editor/native GTK 页面属于页面级能力和诊断边界深化,风险面和验收口径不同于 working5 的 HAL pin 细化。
影响:
- `working6` 需要独立任务矩阵、验收证据和决策记录。
- 后续提交或验收应区分 W5 已闭环行为与 W6 新增页面级诊断行为。
## DR-W6-002未实现 native GTK 页面必须诊断化,不伪装成已实现
日期2026-06-27
决策:
- 对 gmoccapy 原生存在但 Web 尚未完整实现的页面,先建立 implementation matrix。
- Web UI 可以显示 diagnostic-only 状态、源码对应关系、未实现原因和未来补齐入口。
- 未实现页面按钮和 hard-button pin 不得触发假的成功状态。
原因:
- gmoccapy 原生 GTK 页面和 Web shell 的布局、运行环境、文件系统权限、HAL 交互能力不同。
- 若直接把未实现页面显示为可操作,会误导验收,掩盖仿真边界。
影响:
- UI 和 tests 必须验证 diagnostic-only/unsupported/not configured 等边界文案或结构化状态。
- store 中未实现 action 应返回明确 operator message。
## DR-W6-003文件/宏/tool editor 先按 XYZAB 配置边界建模
日期2026-06-27
决策:
- 文件页面、宏页面和 tool editor 页面优先按 `gmoccapy_XYZAB.ini` 当前配置和 Web 仿真能力建模。
- 配置未启用的能力显示为 no config 或 diagnostic-only。
- 真实文件写入、外部 LinuxCNC 进程联动和持久化 tool table 修改不作为初始实现默认目标。
原因:
- 当前 Web 项目是 LinuxCNC/gmoccapy 行为仿真,不是完整桌面 gmoccapy 进程。
- XYZAB 配置的宏、tool sensor、user message 等能力存在明确启用边界。
- 先把边界表达清楚,后续才能安全决定哪些功能升级为可执行。
影响:
- W6-100、W6-110、W6-120 的验收重点是“能力、gate、边界和诊断是否正确”不是盲目补齐所有 GTK 行为。
- 若后续要启用真实写文件或外部进程,需要新增决策记录和验收任务。
## DR-W6-004XYZAB 宏页按已配置 5 个 `[MACROS]` 建模
日期2026-06-27
决策:
- `gmoccapy_XYZAB.ini``[MACROS]` 中 5 个宏必须建模为已配置能力:
- `i_am_lost`
- `halo_world`
- `jog_around`
- `increment xinc yinc`
- `go_to_position X-pos Y-pos Z-pos`
- Web 通过 `GMOCAPY_RUN_MACRO` 模拟 `_on_btn_macro_pressed()`,生成 `O<name> call [args]` MDI 命令。
- 宏执行必须复用 `RUN_MDI` gate未上电、未回零、非 MDI-capable 或解释器忙时拦截。
原因:
- 初始文档把“未配置宏时显示边界”列为需要处理的通用场景,但实际 XYZAB INI 明确配置了 5 个宏。
- gmoccapy 原生 `_make_macro_button()` 从 INI 读取宏,`_on_btn_macro_pressed()` 将宏转为 O-word MDI 调用。
影响:
- profile、HAL model、communication model、store、Node/browser tests 均断言 XYZAB 宏 count 为 5。
- Web 不创建 native entry dialog参数由 dispatch/test 传入,后续如需 UI 参数输入需要单独任务。
## DR-W6-005tool editor 本轮只做诊断和 gate不写 `tool.tbl`
日期2026-06-27
决策:
- Web 记录 `tooledit1``tool.tbl`、17 把刀、可见 XYZAB 轴和 M6/M61 工具动作边界。
- `GMOCAPY_TOOL_EDITOR_ACTION``save``add``delete``touch-off` 等写操作返回 diagnostic-only/operator message不修改本地 `tool.tbl`
- 工具换刀继续沿用 working5 的 `iocontrol-loopback`,不重新启用手动 gmoccapy toolchange GUI pins。
原因:
- 原生 gmoccapy tool editor 可以直接写配置目录中的 `tool.tbl`,但浏览器 Web 仿真没有等价的 LinuxCNC 配置写回权限和进程同步语义。
- 未经单独设计直接写文件会混淆“诊断仿真”和“真实机床配置修改”的边界。
影响:
- 本轮验收关注 tool table 来源、数量、只读边界和换刀语义一致性。
- 后续若要实现真实写回,需要新增持久化设计、备份策略、并发保护和验收任务。
## DR-W6-006hard-button 对 native-only/diagnostic-only 页面使用结构化页面诊断
日期2026-06-27
决策:
- `tbtn_user_tabs``tbtn_setup``btn_touch``btn_tool``tbtn_switch_mode` 不再作为普通 Web action 或模式切换伪装执行。
- 这些按钮通过 `GMOCAPY_NATIVE_PAGE` 更新 `gmoccapyGui.activeNativePage``nativePageMode` 和 operator message。
- UI 通过 `data-gmoccapy-page="matrix"` 展示 native GTK 页面实现矩阵。
原因:
- gmoccapy 原生 `_button_pin_changed()` 会触发当前可见且敏感的 GTK 按钮,但 Web shell 尚未实现完整 setup/user tabs/touch/tool/switchkins 页面。
- 直接把这些按钮映射成其他 Web action 会误表达 native 行为。
影响:
- hard-button 模型仍保留 pin 到 native widget 的源码映射。
- Web 验收明确区分 implemented、partial、diagnostic-only、native-only 页面,避免后续重复争论“未实现页面是否可点击成功”。

33
work/working6/README.md Normal file
View File

@@ -0,0 +1,33 @@
# working6 README 索引
本目录用于推进 `/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan` 中 gmoccapy 文件/宏页面、tool editor 页面、native GTK 未实现页面诊断边界的实现、验证和验收。
前置工作:
- `/home/meswork/cnc_wams/work/working5`
- `/home/meswork/cnc_wams/work/working3/gmoccapy_XYZAB_execution_analysis.md`
对标基准:
- `/home/meswork/cnc_wams/linuxcnc/configs/sim/gmoccapy/gmoccapy_XYZAB.ini`
- `/home/meswork/cnc_wams/linuxcnc/src/emc/usr_intf/gmoccapy/gmoccapy.py`
- `/home/meswork/cnc_wams/linuxcnc/src/emc/usr_intf/gmoccapy/gmoccapy.glade`
- `/home/meswork/cnc_wams/linuxcnc/src/emc/usr_intf/gmoccapy/dialogs.py`
- `/home/meswork/cnc_wams/linuxcnc/configs/sim/gmoccapy/*.hal`
工作文件:
1. [01-项目功能内容.md](01-项目功能内容.md)
2. [02-项目程序开发详细步骤.md](02-项目程序开发详细步骤.md)
3. [03-推进台账.md](03-推进台账.md)
4. [04-任务矩阵.md](04-任务矩阵.md)
5. [05-验收证据.md](05-验收证据.md)
6. [06-决策记录.md](06-决策记录.md)
推进规则:
- 先按 `04-任务矩阵.md` 选择任务,避免重复做同一项。
- 每轮结束更新 `03-推进台账.md`,记录做了什么、改了哪些文件、验证了什么、下一步是什么。
- 所有命令、页面、report、job_id、PDF、截图、测试输出摘要写入 `05-验收证据.md`
- 影响架构、兼容性、验收口径或 LinuxCNC/gmoccapy 对标边界的判断写入 `06-决策记录.md`
- 本轮是 working5 的后续深化,不回退 working5 已完成的 HAL 输入和按钮门控行为。