2.4 KiB
2.4 KiB
2026-07-06 AXIS 主控制按钮严格对标补齐
用户提问
对标 doc/AXIS主控制按钮功能先决条件与状态影响详解.md,修改项目 /home/mes123456/cnc_wams/web-rtcp-5axis-xyzbc-trt-sim-plan,并依据 working 下既有任务文档实施。
本轮目标
- 以本地 LinuxCNC AXIS
task_pause、task_resume、task_pauseresume源码和项目文档为准,复查主控制按钮状态门禁。 - 收紧 Web 仿真中暂停相关门禁,避免仅凭
runState的残留运行态绕过 AXIS 的task_mode与interp_state条件。 - 更新自动化验证,覆盖菜单 Pause、工具栏 pause/resume 在 idle、manual、AUTO/MDI、paused 状态下的严格行为。
- 重新构建
dist,执行节点 smoke、浏览器 smoke、Web evidence 与 compare。
实施结论
-
app/src/state/linuxcnc-task-policy.jscanPause调整为仅在STATE_ON + MODE_AUTO + INTERP_READING/WAITING时为真。- 菜单
PAUSE严格对标 AXIStask_pause:非 AUTO 阻止,非 READING/WAITING 阻止。 - 工具栏
PAUSE_RESUME的暂停分支对标 AXIStask_pauseresume:必须为 AUTO/MDI,且解释器非 idle。
-
app/src/state/store.jsPAUSE_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重新生成。
- 通过
验证结果
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 暂停/恢复门禁,不回退既有改动。