56 lines
2.4 KiB
Markdown
56 lines
2.4 KiB
Markdown
# 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 暂停/恢复门禁,不回退既有改动。
|