对齐 gmoccapy XYZAB 模式互锁

This commit is contained in:
2026-06-26 18:19:49 -04:00
parent 0664ea9bd7
commit 544bfd4b4b
13 changed files with 591 additions and 6 deletions

View File

@@ -0,0 +1,42 @@
# 06-决策记录
## DR-W5-001以 gmoccapy_XYZAB 执行流程作为本轮验收主线
日期2026-06-26
决策:
- 本轮不只验证图形 RTCP 轨迹,而是按 LinuxCNC 启动、INI/HAL、task/NML、interpreter、gmoccapy UI 通信和互锁全链路推进。
原因:
- 用户指定的基准文件覆盖了 `gmoccapy_XYZAB.ini` 五轴仿真从启动到界面通信的完整执行流程。
- 若只看轨迹显示容易遗漏回零、状态机、换刀、主轴到速、冷却、UI gate 等数控系统仿真关键行为。
影响:
- 任务矩阵按 LinuxCNC 行为拆分。
- 任何实现修改都需要补充对应测试或验收证据。
## DR-W5-002模式按钮门控前移到 `SET_MODE` 和 UI disabled 状态
日期2026-06-26
决策:
- Web 侧 `SET_MODE` 统一按 LinuxCNC/gmoccapy 状态门控。
- `STATE_OFF` 或未上电时Manual/Jog/MDI/Auto 都禁止切换。
- `STATE_ON` 但未全轴回零且 `NO_FORCE_HOMING = 0` 时,只允许 Manual/Jog禁止 MDI/Auto。
- 回零后 MDI/Auto 恢复可用Auto 解释器非 idle 时仍禁止离开 Auto。
原因:
- LinuxCNC `gmoccapy.py``on_hal_status_state_off()` 会禁用 `rbt_manual``rbt_mdi``rbt_auto`
- `on_hal_status_state_on()` 先只启用 `rbt_manual`,退出设置页时也明确区分“未回零只 Manual 可用”和“已回零三种模式可用”。
- 旧 Web 实现主要在 `RUN``RUN_MDI` 时拦截,模式按钮本身仍可点击,不符合 gmoccapy 的按钮敏感状态。
影响:
- `app/src/state/linuxcnc-task-policy.js` 成为模式切换和执行动作的统一互锁入口。
- `app/src/ui/gmoccapy-shell.js` 侧边模式按钮使用同一 gate 输出 disabled、`data-command-ready``aria-disabled`
- Node 和浏览器测试增加下电、未回零、已回零三个阶段的断言。