# 2026-07-06 暂停按钮严格测试报告 ## 用户提问 严格测试“暂停”按钮的功能。 ## 测试目标 按 `working/14-20260706-xyzbc-trt-暂停按钮严格对标.md` 的预期语义验证: - 工具栏双竖线按钮对标 AXIS `task_pauseresume`:运行中暂停,暂停中恢复。 - 菜单 `Pause` 对标 `task_pause`:仅 AUTO 且 interpreter 为 reading/waiting 时暂停。 - 菜单 `Resume` 对标 `task_resume`:paused 且 AUTO/MDI 时恢复。 - 暂停后速度归零,G-code 采样不继续推进,DRO、axisPose、canvas toolhead 保持冻结。 ## 执行命令和结果 ### 1. 构建与回归 ```text npm --prefix app run build gmoccapy_static_build=ok npm --prefix app run smoke:node xyzbc_trt_web_app_smoke=ok npm --prefix app run smoke:browser xyzbc_trt_browser_smoke=ok ``` ### 2. 暂停位置 JSON trace 命令: ```text APP_URL_PATH=/web-rtcp-5axis-xyzbc-trt-sim-plan/app/dist/index.html node tools/trace-pause-position-json.mjs ``` 结果: ```text pause_position_status=passed-position-frozen trace=/home/mes123456/cnc_wams/web-rtcp-5axis-xyzbc-trt-sim-plan/working/pause-position-traces/pause-position-20260706T063131Z/trace.json position_changed=false changed_fields= ``` 关键证据: ```text pausedSampleCount=35 baselineLabel=pause-start sampleIndex=48 currentVelocity=0 changedFields=[] ``` 暂停开始到最后一个暂停采样期间: - `runState=paused` - `taskState=on` - `mode=auto` - `interpState=paused` - `taskPaused=true` - `sampleIndex=48` 保持不变 - `currentVelocity=0` - `axisPose`、`dro`、`runtimeAxisPose`、`runtimeTcp`、`uiExecution.joint`、`uiExecution.tcp`、`canvasToolhead` 均无变化 - 暂停按钮状态为 `paused=true`,标题为 `Resume program` ### 3. 50ms 长流程截图验证 命令: ```text RUN_STABLE_BEFORE_FIRST_PAUSE_MS=3000 node tools/verify-estop-power-home-run-pause-50ms.mjs ``` 结果: ```text verification_status=passed screenshots=/home/mes123456/cnc_wams/web-rtcp-5axis-xyzbc-trt-sim-plan/working/screenshots/estop-power-home-run-pause-50ms-20260706T063233Z captured_frames=403 sample_period_ms=50 manifest=/home/mes123456/cnc_wams/web-rtcp-5axis-xyzbc-trt-sim-plan/working/screenshots/estop-power-home-run-pause-50ms-20260706T063233Z/manifest.json ``` 关键断言: | 阶段 | 结果 | runState | mode | interpState | taskPaused | sampleIndex | currentVelocity | |---|---|---|---|---|---|---:|---:| | 第一次暂停 | 通过 | paused | auto | paused | true | 111 | 0 | | 第一次暂停保持 5 秒 | 通过 | paused | auto | paused | true | 111 | 0 | | 第二次暂停 | 通过 | paused | auto | paused | true | 405 | 0 | | 第二次暂停保持 5 秒 | 通过 | paused | auto | paused | true | 405 | 0 | 两次暂停都发生在真实展开程序 `helix_bc.ngc` 第 17 行: ```text f# g2i#z# p# ``` ### 4. Web/native evidence ```text 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 ``` ## 结论 暂停按钮严格测试通过。工具栏暂停/恢复、菜单 Pause/Resume 的回归测试通过;真实浏览器中暂停后状态稳定为 `paused`,速度为 0,采样索引不推进,DRO/axisPose/runtime/canvas toolhead 均保持冻结;两次 5 秒暂停保持均通过,50ms 截图长流程验证通过,Web/native compare 仍为 pass。