虚拟HAL完全满足Web数控仿真

结论:real simulation page 已将保存的 virtual HAL session snapshot 联动到 release diagnostics artifact,保存或恢复后的 Web CNC 仿真会话可直接输出 release-ready virtual HAL source、sim-config、halcmd fixture 与 motion matrix evidence;该能力仍限于 Web 仿真替代层,不声明 Linux kernel hard-realtime ABI、外部硬件驱动 ABI 或 native HAL module ABI。
This commit is contained in:
2026-06-17 23:07:11 +08:00
parent 7449ff7f4e
commit 208992c42e
5 changed files with 154 additions and 2 deletions

View File

@@ -1113,3 +1113,80 @@ git diff --check ok
让用户可在页面上输入 release artifact URL 与 browser diagnostics URL 后直接运行验证。
3. 为 motion matrix 增加 manifest-backed source check把 matrix 关联的 sim config
source files 与 vendored LinuxCNC manifest 做显式一致性验证。
### 十二、2026-06-17 Virtual HAL Session Diagnostics Artifact Linkage
继续按本文件铁律推进:虚拟 HAL 的功能完全来源于 LinuxCNC 源程序,并且虚拟 HAL
完全满足 Web 方式数控系统仿真系统。本批完成上一节下一步第 1 项,把 real
simulation page 保存的 virtual HAL session snapshot 与 release diagnostics artifact 做联动,
使保存后的 Web CNC 仿真会话可直接输出 release-ready diagnostics evidence。
新增实质能力:
- real simulation page 新增 session diagnostics artifact builder
- `createVirtualHalSessionDiagnosticsArtifact(snapshot)`
- 从保存的 session snapshot 读取 `payload.virtualHal`
- 复用 snapshot 中的 virtual HAL state、simulation replacement、source compliance、
sim-config coverage、halcmd fixtures、motion controller matrix
- 使用 `createProjectReleaseBrowserDiagnosticsArtifactValidation()` 对 snapshot
派生 diagnostics artifact 做 release 级验证;
- `exportDiagnosticsArtifact()` 新增:
- `virtualHalSessionDiagnostics`
- 未保存 session 时返回 `phase: "not-saved"` 和 missing reason
- 已保存或恢复 session 后返回 `phase: "release-ready"`
- Browser simulation API 新增:
- `exportVirtualHalSessionDiagnosticsArtifact()`
- `saveVirtualHalSessionSnapshot()` 返回值新增:
- `releaseDiagnosticsReady`
- `sessionDiagnostics`
- `restoreVirtualHalSessionSnapshot()` 返回值新增:
- `releaseDiagnosticsReady`
- `sessionDiagnostics`
- AXIS simulation docs 同步公开
`exportVirtualHalSessionDiagnosticsArtifact()`,并说明 saved virtual HAL session
snapshot 会进入 browser diagnostics artifact形成 release-ready evidence。
新增/扩展验证:
- `real_simulation_page_smoke.html` 覆盖:
- 页面 API 暴露 `exportVirtualHalSessionDiagnosticsArtifact()`
- 保存 virtual HAL session 后 `releaseDiagnosticsReady === true`
- 保存返回的 `sessionDiagnostics.validation.ready === true`
- 保存返回的 session diagnostics 包含 complete motion controller matrix
- `exportVirtualHalSessionDiagnosticsArtifact()` 输出 `phase === "release-ready"`
- `exportDiagnosticsArtifact()` 内嵌 `virtualHalSessionDiagnostics.ready === true`
- restore 后 session diagnostics 仍保持 release-ready
- `verify_axis_style_simulation_docs.mjs` 覆盖新 API 文档契约;
- `verify_sdk_surface.sh` 继续覆盖 release diagnostics validation 与 virtual HAL source
evidence。
关键验证:
```text
axis_style_simulation_docs_node_smoke=ok
browser_real_simulation_page_smoke=ok
sdk_surface_node_smoke=ok
project_release_gate_manifest_node_smoke=ok
project_release_artifact_url_workflow_node_smoke=ok
project_batch_acceptance_workflow_node_smoke=ok
project_batch_acceptance_artifact_node_smoke=ok
git diff --check ok
```
语义边界:
- 本批没有新增 G-code/interpreter/planner/kinematics/remap 语义;
- session diagnostics artifact 只复用保存时已有的 source-derived virtual HAL reports
- release validation 只验证 Web 仿真所需 HAL、halcmd、motion controller evidence
- virtual HAL 仍不声称提供 Linux kernel hard-realtime ABI、外部硬件驱动 ABI 或 native
HAL module ABI
- G-code/interpreter/planner/canonical motion 语义仍来自 LinuxCNC-backed WASM。
下一步工作内容:
1. 将 ini-panel workflow overview 的 diagnostics URL workflow 接入固定页面表单/按钮,
让用户可在页面上输入 release artifact URL 与 browser diagnostics URL 后直接运行验证。
2. 为 motion matrix 增加 manifest-backed source check把 matrix 关联的 sim config
source files 与 vendored LinuxCNC manifest 做显式一致性验证。
3. 将 virtual HAL session diagnostics artifact 纳入 release artifact URL workflow 的示例
fixtures使 URL workflow 同时覆盖 live diagnostics 与 saved-session diagnostics。