继续实现仿真测试程序

结论:真实浏览器仿真页面新增多测试程序选择和运行能力,覆盖直线、Z 轴轮廓、增量、圆弧和 G81 钻孔,并接入 Node、browser 与 release gate 验证。
This commit is contained in:
2026-06-16 21:13:09 +08:00
parent 24e1fc18b1
commit ddd5b78999
10 changed files with 461 additions and 41 deletions

View File

@@ -1630,3 +1630,56 @@ project_release_handoff_docs_node_smoke=ok
- JS 只调用 LinuxCNC-backed WASM SDK并把 LinuxCNC-produced canonical output 渲染成
program state、axis readout、motion table 和 SVG preview
- canonical output 中坐标字段的读取只用于 UI 渲染,不作为 CNC 解释或运动规划来源。
七十九、2026-06-16 继续执行记录real browser simulation 多测试程序
本批继续围绕真实 browser CNC simulation page 推进,把页面从单一内置程序扩展为可选择
多组 LinuxCNC-backed 测试程序的仿真入口。
本批新增实质能力:
- `runtime/ui/simulation/simulation-app.js` 新增 `SIMULATION_TEST_PROGRAMS`
- 当前测试程序覆盖:
- square contour
- pocket with Z moves
- incremental loop
- G2/G3 arc path
- G81 drill pattern
- `runtime/ui/simulation/index.html` 新增程序选择器和 Run 按钮;
- 页面 API 新增:
- `linuxCncRealSimulationApi.getPrograms()`
- `linuxCncRealSimulationApi.runProgramById(programId)`
- `linuxCncRealSimulationApi.getState()`
- browser smoke 现在会逐个运行所有测试程序,验证每个程序都经由 LinuxCNC WASM 执行,
DOM program rows、motion rows、canonical output、toolpath polyline 和 motion types 与
LinuxCNC-produced output 保持一致;
- 增强 canonical motion 渲染解析:`ARC_FEED` 使用 LinuxCNC canonical arc endpoint 字段映射
到当前 active plane 的坐标轴,只作为 UI toolpath 渲染输入;
- 新增 UI Node smoke
- `tests/ui/node/verify_real_simulation_programs.mjs`
- `tests/ui/node/verify_real_simulation_programs.sh`
- `tests/ui/node/verify_ui_node_smokes.sh` 接入该 smoke
- README、real-browser priority docs、PROJECT_COMPLETION_TRACKER 同步记录多测试程序能力。
本批新增/更新可执行验证:
```bash
wasm-port/tests/ui/node/verify_real_simulation_programs.sh
wasm-port/tests/ui/node/verify_ui_node_smokes.sh
SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_real_simulation_browser.sh
```
关键通过输出:
```text
real_simulation_programs_node_smoke=ok
ui_node_smokes=ok
browser_real_simulation_page_smoke=ok
```
本批仍保持 LinuxCNC 语义边界:
- 新增测试程序均通过 `createLinuxCncInterpSdk()` / `interp.runProgram()` 执行;
- JS 没有解释 G-code也没有实现 planner、kinematics、tool、parameter、remap 语义;
- JS 只保存测试程序文本、调用 LinuxCNC WASM、解析 LinuxCNC-produced canonical output 以渲染
UI 状态和刀路终点。