完善 working6 gmoccapy 页面诊断边界
This commit is contained in:
@@ -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_OUT;INI 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 控制 setup;tool 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 R8:working5 最终复核与验收收口
|
||||
|
||||
做了什么:
|
||||
|
||||
- 重新读取 `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` 已按当前任务矩阵完成并复核通过;本轮不新增后续实现任务。
|
||||
|
||||
@@ -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 | 更新验收证据和决策记录 | 完成 | 命令、结果、修改原因和后续项已记录 |
|
||||
|
||||
@@ -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 脚本完成。
|
||||
|
||||
@@ -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.*` 未配置提示。
|
||||
|
||||
Reference in New Issue
Block a user