Files
cnc_wams/web-rtcp-5axis-xyzbc-trt-sim-plan/working/15-20260706-AXIS主控制按钮严格对标补齐.md
2026-07-07 09:40:33 -04:00

56 lines
2.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 2026-07-06 AXIS 主控制按钮严格对标补齐
## 用户提问
对标 `doc/AXIS主控制按钮功能先决条件与状态影响详解.md`,修改项目 `/home/mes123456/cnc_wams/web-rtcp-5axis-xyzbc-trt-sim-plan`,并依据 `working` 下既有任务文档实施。
## 本轮目标
1. 以本地 LinuxCNC AXIS `task_pause``task_resume``task_pauseresume` 源码和项目文档为准,复查主控制按钮状态门禁。
2. 收紧 Web 仿真中暂停相关门禁,避免仅凭 `runState` 的残留运行态绕过 AXIS 的 `task_mode``interp_state` 条件。
3. 更新自动化验证,覆盖菜单 Pause、工具栏 pause/resume 在 idle、manual、AUTO/MDI、paused 状态下的严格行为。
4. 重新构建 `dist`,执行节点 smoke、浏览器 smoke、Web evidence 与 compare。
## 实施结论
- `app/src/state/linuxcnc-task-policy.js`
- `canPause` 调整为仅在 `STATE_ON + MODE_AUTO + INTERP_READING/WAITING` 时为真。
- 菜单 `PAUSE` 严格对标 AXIS `task_pause`:非 AUTO 阻止,非 READING/WAITING 阻止。
- 工具栏 `PAUSE_RESUME` 的暂停分支对标 AXIS `task_pauseresume`:必须为 AUTO/MDI且解释器非 idle。
- `app/src/state/store.js`
- `PAUSE_RESUME` 不再因 `runState=running/stepping` 自动接管 manual 残留状态。
- `PAUSE_RESUME` 在 manual 模式直接返回 `pause blocked: task mode must be auto or MDI`
- `PAUSE_RESUME` 在 AUTO/MDI 且解释器 idle 时返回 `pause ignored: interpreter is idle`
- `tests/node/verify_xyzbc_trt_web_app.mjs`
- 移除旧的宽容断言idle interpreter + running runState 不应被菜单 Pause 暂停。
- 移除旧的宽容断言manual 残留 running 状态不应被工具栏 pause/resume 强制改成 AUTO paused。
- 增加对应严格拦截断言。
- `app/dist/src/...`
- 通过 `npm --prefix app run build``src` 重新生成。
## 验证结果
```text
npm --prefix app run smoke:node
xyzbc_trt_web_app_smoke=ok
npm --prefix app run build
gmoccapy_static_build=ok
npm --prefix app run smoke:browser
xyzbc_trt_browser_smoke=ok
npm --prefix app run evidence:web
web_xyzbc_trt_evidence=/home/mes123456/cnc_wams/web-rtcp-5axis-xyzbc-trt-sim-plan/working/evidence/web-xyzbc-trt-evidence.json
npm --prefix app run evidence:compare
compare_xyzbc_trt_status=pass
```
## 注意事项
本轮开始前工作区已有多处未提交修改和新增证据文件。本轮只在现有状态上补齐 AXIS 暂停/恢复门禁,不回退既有改动。