208 lines
14 KiB
Markdown
208 lines
14 KiB
Markdown
# 03-推进台账
|
||
|
||
## 2026-06-26 R1:启动 working5 对标推进
|
||
|
||
做了什么:
|
||
|
||
- 创建 working5 工作文件结构。
|
||
- 建立与 `gmoccapy_XYZAB.ini` 执行流程对齐的任务矩阵和验收记录模板。
|
||
- 开始读取 LinuxCNC 执行分析和 Web 项目结构。
|
||
|
||
改了哪些文件:
|
||
|
||
- `/home/meswork/cnc_wams/work/working5/README.md`
|
||
- `/home/meswork/cnc_wams/work/working5/01-项目功能内容.md`
|
||
- `/home/meswork/cnc_wams/work/working5/02-项目程序开发详细步骤.md`
|
||
- `/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、构建和浏览器冒烟测试。
|
||
|
||
下一步是什么:
|
||
|
||
- 执行 `npm run smoke:node`,根据失败项定位 LinuxCNC 行为差异。
|
||
|
||
## 2026-06-26 R2:基线验证与 gmoccapy 模式互锁修复
|
||
|
||
做了什么:
|
||
|
||
- 执行现有 Node、构建、浏览器冒烟测试,确认项目基线可运行。
|
||
- 对照 `gmoccapy_XYZAB_execution_analysis.md` 和 `gmoccapy.py` 的 `STATE_OFF`、`STATE_ON`、`all_homed` 逻辑,发现 Web 侧允许提前点击 Manual/MDI/Auto 模式按钮,store 虽能拦截部分运行动作,但 UI 敏感状态不完全等同 gmoccapy。
|
||
- 修改 task policy:`SET_MODE` 在机床未上电时禁止 Manual/MDI/Auto/Jog;机床上电但未回零时只允许 Manual/Jog,禁止 MDI/Auto;Auto 运行中仍禁止离开 Auto。
|
||
- 修改 gmoccapy Web shell:右侧 Manual/Jog/Auto/MDI 模式按钮统一使用 `gateLinuxCncTaskAction`,以 `disabled`、`data-command-ready`、`aria-disabled` 和 title 展示互锁原因。
|
||
- 补充 Node 和浏览器测试,锁定下电、上电未回零、回零后三个阶段的模式按钮行为。
|
||
|
||
改了哪些文件:
|
||
|
||
- `/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/app/src/state/linuxcnc-task-policy.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/node/verify_gmoccapy_xyzab_gates.mjs`
|
||
- `/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/tests/node/verify_run_preconditions.mjs`
|
||
- `/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/tests/browser/gmoccapy_shell_smoke.html`
|
||
- `/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_xyzab_gates.mjs && node ../tests/node/verify_run_preconditions.mjs && bash ../tests/browser/verify_gmoccapy_shell_browser.sh` 通过。
|
||
- `npm run smoke:node` 通过。
|
||
- `npm run build && npm run smoke` 通过。
|
||
|
||
下一步是什么:
|
||
|
||
- 下一轮可继续按任务矩阵深入核对 Tool/M6/M61 手动换刀对话框、限位 override、optional stop/block delete HAL pin 交叉行为等更细粒度 gmoccapy 行为。
|
||
|
||
## 2026-06-26 R3:细化 gmoccapy XYZAB 换刀 HAL 语义
|
||
|
||
做了什么:
|
||
|
||
- 对照 `gmoccapy_postgui.hal`,确认该 XYZAB 仿真配置在 GUI ready 后执行 `unlinkp iocontrol.0.tool-change`、`unlinkp iocontrol.0.tool-changed`、`unlinkp iocontrol.0.tool-prep-number`,并将 `gmoccapy.toolchange-*` 手动换刀 GUI nets 保持注释状态。
|
||
- 在 Web profile 和 HAL 诊断模型中显式记录换刀策略为 `iocontrol-loopback`,手动 gmoccapy 换刀 GUI pins 未连接,活动回环为 `iocontrol.0.tool-change -> iocontrol.0.tool-changed`。
|
||
- 在 gmoccapy UI 诊断页新增 `Tool change` 行,显示换刀策略、手动 GUI pin 连接状态、POSTGUI `unlinkp` 数量和注释掉的手动换刀 nets 数量。
|
||
- 补充 Node 与浏览器断言,防止后续误把此配置表述为需要 gmoccapy 手动换刀确认对话框。
|
||
|
||
改了哪些文件:
|
||
|
||
- `/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-hal-model.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/node/verify_gmoccapy_hal_model.mjs`
|
||
- `/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/tests/node/verify_gmoccapy_xyzab_profile.mjs`
|
||
- `/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/tests/node/verify_profile_boundary.mjs`
|
||
- `/home/meswork/cnc_wams/web-rtcp-5axis-sim-plan/tests/browser/gmoccapy_shell_smoke.html`
|
||
- `/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_xyzab_profile.mjs && node ../tests/node/verify_profile_boundary.mjs` 通过。
|
||
- `npm run smoke:node` 通过。
|
||
- `npm run build && npm run smoke` 通过。
|
||
|
||
下一步是什么:
|
||
|
||
- 可继续核对限位 override、optional stop/block delete、外部 HAL hard-button pin 与 UI action 的交叉行为。
|
||
|
||
## 2026-06-26 R4:细化外部 HAL hard-button pin 与 Web UI action 映射
|
||
|
||
做了什么:
|
||
|
||
- 对照 `gmoccapy.py` 的 `_make_hal_pins()`、`_button_pin_changed()`、`_get_child_button()` 和 `gmoccapy.glade` 的 `vbtb_main` 顺序,确认外部硬按钮 pin 只响应 rising edge,并按当前可见且敏感的 GTK 按钮位置触发;目标隐藏或不敏感时忽略。
|
||
- 修正 `gmoccapy-xyzab` panel schema 中右侧主按钮 HAL pin 顺序:`tbtn_estop`/`tbtn_on`/`rbt_manual`/`rbt_mdi`/`rbt_auto` 对应 `gmoccapy.v-button.button-0..4`,不再把 Estop/Power 误列为 `h-button`。
|
||
- 在 HAL model 和 communication model 中增加 hard-button 结构化映射,记录 7 个右侧 `v-button` pin、底部主页面 `h-button` 引用、rising-edge 语义、insensitive ignored 语义和 Web selector/action 对应关系。
|
||
- 在 store 中新增 `GMOCAPY_HARDWARE_BUTTON` action,用同一套 Web action/gate 模拟外部 HAL hard-button pin;falling edge、未映射 pin 和诊断-only pin 均给出明确 operator message。
|
||
- 在 UI 按钮 DOM 上新增 `data-gmoccapy-hal-pin`、`data-gmoccapy-native-panel`、`data-gmoccapy-native-button-index`,并在 gmoccapy HAL 诊断中显示 hard-button 摘要。
|
||
- 补充 Node 和浏览器断言,覆盖 hard-button 模型、通信路径、profile pin 顺序、store gate 行为和 DOM 映射。
|
||
|
||
改了哪些文件:
|
||
|
||
- `/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/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/web-rtcp-5axis-sim-plan/tests/browser/gmoccapy_shell_smoke.html`
|
||
- `/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` 通过。
|
||
- `npm run smoke:node` 通过。
|
||
- `npm run build && npm run smoke` 通过。
|
||
|
||
下一步是什么:
|
||
|
||
- 可继续核对 `gmoccapy.ignore-limits`、`gmoccapy.optional-stop`、`gmoccapy.blockdelete`、override analog/count/reset pins 与 Web 状态的交叉行为。
|
||
|
||
## 2026-06-27 R5:细化 gmoccapy HAL 输入 pin 与倍率 pin 语义
|
||
|
||
做了什么:
|
||
|
||
- 对照 `gmoccapy.py` 的 `_ignore_limits()`、`_optional_blocks()`、`_blockdelete()`、`_on_counts_changed()`、`_on_analog_value_changed()`、`_reset_override()` 和 `gmoccapy_XYZAB.pref`,确认本轮应保留 `optional-stop`/`blockdelete` 的交叉语义,以及 counts/direct-value/reset 的 enable 和 rising-edge 规则。
|
||
- 在 Web store 中新增 `GMOCAPY_HAL_PIN` action,统一模拟 `gmoccapy.ignore-limits`、`gmoccapy.optional-stop`、`gmoccapy.blockdelete`、feed/rapid/spindle/jog override counts、analog direct-value 和 reset pins。
|
||
- 在 `gmoccapyGui` 状态中记录 ignore limits、block delete、optional stop、override enable/counts、jog velocity 和最后一次 HAL pin 效果。
|
||
- 扩展 profile、HAL model、communication model 和 UI 诊断,明确 `optional-stop -> block delete`、`blockdelete -> optional stop`、counts 需要 count-enable、direct-value 需要 analog-enable、reset 只响应 rising edge。
|
||
- 在 override 面板增加 ignore limits、block delete、optional stop 和 100% override reset 控件,并补充浏览器 DOM/状态断言。
|
||
|
||
改了哪些文件:
|
||
|
||
- `/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/app/src/styles/gmoccapy.css`
|
||
- `/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/web-rtcp-5axis-sim-plan/tests/browser/gmoccapy_shell_smoke.html`
|
||
- `/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` 通过。
|
||
|
||
下一步是什么:
|
||
|
||
- 可继续核对 `gmoccapy.jog.axis.*`、`gmoccapy.jog.jog-inc-*`、`gmoccapy.delete-message`、`gmoccapy.warning-confirm` 等剩余 HAL pin 与 Web 状态/消息系统的映射。
|
||
|
||
## 2026-06-27 R6:细化 gmoccapy jog 与消息 HAL pin 语义
|
||
|
||
做了什么:
|
||
|
||
- 对照 `gmoccapy.py` 的 `_on_pin_jog_changed()`、`_on_pin_incr_changed()`、`_on_pin_turtle_jog()`、`_del_message_changed()` 和 `dialogs.warning_dialog()`,确认 jog axis pin 是按下/释放电平语义,jog increment pin 只响应 true/rising edge,`jog-inc-0` 为连续点动,`delete-message` 只在 true 时删除消息,`warning-confirm` 是活动 warning dialog 的轮询确认 pin。
|
||
- 在 `gmoccapy-xyzab` profile 中补齐 XYZAB 的 10 个 axis jog pins、`jog-inc-0..5`、`jog.jog-increment`、`jog.turtle-jog`、`delete-message` 和 `warning-confirm`。
|
||
- 扩展 HAL model 和 communication model,记录 jog axis、jog increment、turtle jog、message pins 的源码回调、summary 数量和 Web 映射。
|
||
- 扩展 `GMOCAPY_HAL_PIN`:模拟 jog axis press/release、jog increment rising-edge 选择、turtle jog level、delete-message falling-edge 忽略和 warning-confirm level 状态。
|
||
- 在 gmoccapy UI 诊断中新增 `HAL jog` 和 `HAL messages` 行,并补充 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` 通过。
|
||
|
||
下一步是什么:
|
||
|
||
- 可继续核对 `gmoccapy.unlock-settings`、tool measurement/blockheight/probeheight、INI user messages 等更低频 HAL pins;本轮 W5-190 已完成。
|