对齐 gmoccapy XYZAB 模式互锁
This commit is contained in:
42
work/working5/06-决策记录.md
Normal file
42
work/working5/06-决策记录.md
Normal 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 和浏览器测试增加下电、未回零、已回零三个阶段的断言。
|
||||
Reference in New Issue
Block a user