# 03 RTCP 刀具轨迹整改测试记录

生成时间：2026-06-22

## 1. 修改摘要

```text
问题: G-code RUN 后 RTCP 从 on 回退到 off。
根因: TASK_HAL_STATUS_APPLIED 直接采用 task/HAL status.ui.switchkinsType=0。
修复: task/HAL switchkinsType 为 0 时，按 activeLine 查询 programExecution.motion 的 switchkins 语义。
```

## 2. 修改文件

| 文件 | 修改内容 |
| --- | --- |
| `app/src/state/store.js` | 新增 `resolveTaskHalKinsType()`、`kinsTypeFromProgramActiveLine()`、`programMotionAtOrBeforeLine()` |
| `tests/node/verify_rtcp_store.mjs` | 增加 task/HAL status 与 program motion switchkins 合并回归测试 |
| `qa/web-rtcp-5axis-site-test/capture-toolpath-preview-cases.mjs` | 专项截图测试已保留运行态 RTCP 检查 |
| `qa/web-rtcp-5axis-site-test/generate-toolpath-preview-docx-report.mjs` | 专项 Word 报告生成 |

## 3. 验证命令

```bash
npm --prefix web-rtcp-5axis-sim-plan/app run build
node web-rtcp-5axis-sim-plan/tests/node/verify_rtcp_store.mjs
node web-rtcp-5axis-sim-plan/tests/node/verify_linuxcnc_task_hal_runtime.mjs
bash web-rtcp-5axis-sim-plan/tests/browser/verify_gmoccapy_shell_browser.sh
node qa/web-rtcp-5axis-site-test/capture-toolpath-preview-cases.mjs
node qa/web-rtcp-5axis-site-test/generate-toolpath-preview-docx-report.mjs
```

## 4. 验证结果

```text
gmoccapy_static_build=ok
rtcp_store_smoke=ok
linuxcnc_task_hal_runtime_smoke=ok
task_hal_machine_file_smoke=ok
switchkins_remap_hal_sync_smoke=ok
browser_task_hal_worker_smoke=ok
gmoccapy_shell_smoke=ok
```

专项测试：

```text
total=6
PASS=6
FAIL=0
06-running-rtcp-toolpath threeRtcpState=on
```

Word 报告校验：

```text
unzip -t qa/web-rtcp-5axis-site-test/output/web-rtcp-5axis-toolpath-preview-report-2026-06-22.docx
No errors detected
```

## 5. 证据文件

```text
qa/web-rtcp-5axis-site-test/output/toolpath-preview-cases.json
qa/web-rtcp-5axis-site-test/output/web-rtcp-5axis-toolpath-preview-report-2026-06-22.docx
qa/web-rtcp-5axis-site-test/screenshots/toolpath-preview-cases/06-running-rtcp-toolpath.png
```

## 6. 回归结论

```text
整改后，G-code RUN 状态下 task/HAL runtime feedback 不再把程序 switchkins TCP 区间错误回退到 identity/off。
刀具预览、TCP 球、刀轴线、长路径、执行轨迹、rapid/feed 分层和 RTCP 状态在专项测试中全部通过。
```
