Files
cnc_wams/work/working5/03-推进台账.md

18 KiB
Raw Blame History

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.mdgmoccapy.pySTATE_OFFSTATE_ONall_homed 逻辑,发现 Web 侧允许提前点击 Manual/MDI/Auto 模式按钮store 虽能拦截部分运行动作,但 UI 敏感状态不完全等同 gmoccapy。
  • 修改 task policySET_MODE 在机床未上电时禁止 Manual/MDI/Auto/Jog机床上电但未回零时只允许 Manual/Jog禁止 MDI/AutoAuto 运行中仍禁止离开 Auto。
  • 修改 gmoccapy Web shell右侧 Manual/Jog/Auto/MDI 模式按钮统一使用 gateLinuxCncTaskAction,以 disableddata-command-readyaria-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-changeunlinkp iocontrol.0.tool-changedunlinkp 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.gladevbtb_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 pinfalling edge、未映射 pin 和诊断-only pin 均给出明确 operator message。
  • 在 UI 按钮 DOM 上新增 data-gmoccapy-hal-pindata-gmoccapy-native-paneldata-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-limitsgmoccapy.optional-stopgmoccapy.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-limitsgmoccapy.optional-stopgmoccapy.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 deleteblockdelete -> 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-messagegmoccapy.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 edgejog-inc-0 为连续点动,delete-message 只在 true 时删除消息,warning-confirm 是活动 warning dialog 的轮询确认 pin。
  • gmoccapy-xyzab profile 中补齐 XYZAB 的 10 个 axis jog pins、jog-inc-0..5jog.jog-incrementjog.turtle-jogdelete-messagewarning-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 jogHAL 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 已完成。

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.inigmoccapy_XYZAB.pref,确认本配置没有 [TOOLSENSOR]、没有 [DISPLAY] MESSAGE_*,且默认 unlock_way=useuse_toolmeasurement=Falseblockheight=0.0
  • gmoccapy-xyzab profile 中补齐 gmoccapy.unlock-settingsgmoccapy.probeheightgmoccapy.blockheightgmoccapy.toolmeasurementgmoccapy.searchvelgmoccapy.probevelgmoccapy.toolchange-numbergmoccapy.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 settingsHAL 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=okgmoccapy_communication_model_smoke=okgmoccapy_hal_model_smoke=okgmoccapy_xyzab_gates_smoke=oklinear_unit_conversion_smoke=ok
  • npm run build 通过,输出 gmoccapy_static_build=ok
  • npm run smoke 通过,输出 gmoccapy_shell_smoke=okgmoccapy_dist_smoke=ok

下一步是什么:

  • working5 已按当前任务矩阵完成并复核通过;本轮不新增后续实现任务。