feat: sync axis task state parity work
This commit is contained in:
@@ -1,5 +1,81 @@
|
||||
# 03-推进台账
|
||||
|
||||
## 2026-07-07 18:18 EDT - AXIS 主控制按钮状态链路收敛轮次
|
||||
|
||||
### 本轮目标
|
||||
|
||||
按用户要求“按 working 完成全部工作”,依据 `18-20260707-AXIS主控制按钮调用链与Web完善指南.md`,把 Web 仿真的 `解除 ESTOP`、`上电/下电`、`Home All`、`Run`、`Pause/Resume`、`Step` 主控制链路收敛到 LinuxCNC AXIS/task/motion 的状态模型。
|
||||
|
||||
### 已做事项
|
||||
|
||||
- 修改 `app/src/state/linuxcnc-task-policy.js`:
|
||||
- 新增 `deriveLinuxCncTaskState()`,统一从 `estopActive + motionEnabled/powerOn` 派生 `estop`、`estop-reset`、`on`。
|
||||
- policy 状态补齐 `motionEnabled`、`homed[]`、`singleStepping`、`motionStepping`、`resumeInhibit`、`canPowerToggle`、`powerAction`。
|
||||
- 收紧 ESTOP 下 Power、Home、Run、Step、Resume 等按钮门禁,Run 必须 AUTO/IDLE/已 Home/有程序。
|
||||
- 修改 `app/src/state/store.js`:
|
||||
- 机器状态补齐 `motionEnabled`、`homed[]`、`singleStepping`、`motionStepping`、`resumeInhibit`。
|
||||
- ESTOP/RESET/Power/Home/Run/Stop/Pause/Resume/Step/RunFrame 统一清理或设置 pause/step/homing/home 状态。
|
||||
- Home All 增加 `homing -> homed` 瞬态;下电映射到 `estop-reset` 并清 motion/home/pause/step。
|
||||
- Task/HAL status 回写补齐 `motionEnabled`、`homed[]`、`singleStepping`、`motionStepping`。
|
||||
- 修改 `app/src/runtime/linuxcnc-task-hal-runtime.js` 和 `wasm-port/runtime/core/linuxcnc_wrap/linuxcnc_task_hal_wasm.cpp`:
|
||||
- Task/HAL status 输出 `motionEnabled`、`homed[]`。
|
||||
- `EMC_JOINT_HOME` 产生 homing 状态并完成后设置每轴 homed。
|
||||
- `EMC_TASK_SET_MODE MANUAL` 清 pause/step 并保持解释器 idle。
|
||||
- `EMC_TASK_PLAN_RUN` 增加 ON/AUTO/IDLE/非 homing/已 Home/程序已打开/运动计划已加载门禁。
|
||||
- 同步测试与 evidence:
|
||||
- 更新 Node/browser smoke 中 ESTOP+Power、ON->OFF、Home、Run、Step、Pause/Resume 断言。
|
||||
- 新增/更新 Task/HAL 状态矩阵与 SDK 测试,覆盖 ESTOP、ESTOP_RESET、MANUAL、未 Home、homing、缺程序、缺 motion plan、合法 Run。
|
||||
- 修复 Web evidence 采集里的 Task/HAL 运行前置序列,使其显式 `ON -> HOME -> cycle -> AUTO -> PLAN_RUN`。
|
||||
- impeller Task/HAL 测试改为基于实际 G93 逆时间 feed 段验证,而不是固定旧 feed 数值。
|
||||
|
||||
### 验证情况
|
||||
|
||||
```text
|
||||
source /home/mes123456/emsdk/emsdk_env.sh && wasm-port/tools/build_task_hal_wasm.sh
|
||||
linuxcnc_task_hal_wasm_build=ok
|
||||
|
||||
node wasm-port/tests/wasm/node/verify_task_hal_wasm.mjs
|
||||
node wasm-port/tests/wasm/node/verify_task_state_matrix.mjs
|
||||
node wasm-port/tests/wasm/node/verify_task_hal_sdk.mjs
|
||||
|
||||
node web-rtcp-5axis-xyzbc-trt-sim-plan/tests/node/verify_run_feedback_loop.mjs
|
||||
node web-rtcp-5axis-xyzbc-trt-sim-plan/tests/node/verify_run_preconditions.mjs
|
||||
node web-rtcp-5axis-xyzbc-trt-sim-plan/tests/node/verify_linuxcnc_task_hal_runtime.mjs
|
||||
node web-rtcp-5axis-xyzbc-trt-sim-plan/tests/node/verify_gmoccapy_xyzab_gates.mjs
|
||||
node web-rtcp-5axis-xyzbc-trt-sim-plan/tests/node/verify_rtcp_store.mjs
|
||||
node web-rtcp-5axis-xyzbc-trt-sim-plan/tests/node/verify_impeller_feed_task_hal_run.mjs
|
||||
|
||||
npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run build
|
||||
npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run smoke:node
|
||||
npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run smoke:browser
|
||||
npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run evidence:web
|
||||
npm --prefix web-rtcp-5axis-xyzbc-trt-sim-plan/app run evidence:compare
|
||||
compare_xyzbc_trt_status=pass
|
||||
```
|
||||
|
||||
最新 evidence 摘要:
|
||||
|
||||
```text
|
||||
web.collectedAt=2026-07-07T22:17:57.900Z
|
||||
web.executionPath.sampleCount=228
|
||||
web.basicSimEquivalent.ready=true
|
||||
web.taskHalEquivalence.ready=true
|
||||
web.axisMainUi.ready=true
|
||||
web.blockers=[]
|
||||
|
||||
compare.comparedAt=2026-07-07T22:17:58.519Z
|
||||
compare.status=pass
|
||||
compare.summary.checkCount=60
|
||||
compare.summary.passCount=60
|
||||
compare.summary.failCount=0
|
||||
compare.summary.blockers=[]
|
||||
compare.requiredImprovements=[]
|
||||
```
|
||||
|
||||
### 结论
|
||||
|
||||
AXIS 主控制按钮状态链路已从 Web 自定义 `runState` 主导收敛为 LinuxCNC task/motion/home 状态事实主导。当前 T-001 到 T-078 均为完成,最新 Web evidence 和 compare 通过,仍为 `60/60 pass`。
|
||||
|
||||
## 2026-07-05 18:57 EDT - Pause 按钮 LinuxCNC AXIS 严格对标修复轮次
|
||||
|
||||
### 本轮目标
|
||||
|
||||
Reference in New Issue
Block a user