完善虚拟HAL仿真替代能力

This commit is contained in:
2026-06-17 19:45:51 +08:00
parent 656cddf73a
commit a4d449ad48
17 changed files with 5005 additions and 302 deletions

View File

@@ -56,6 +56,32 @@ owned by vendored LinuxCNC source and existing LinuxCNC-backed WASM boundaries.
`createIniPanelShellSessionReadinessWorkflowReport()` when they need
machine-readable session readiness phase and missing reasons. The workflow
overview exposes the API surface inventory as a read-only summary row.
- Project-level virtual HAL is exposed from the same SDK entrypoint for
simulation pages, INI-panel shells, Node/browser smokes, and external
dashboards. Use `createVirtualHalState()`, `applyVirtualHalAction()`,
`createLinuxCncVirtualHalRuntime()`, and
`createVirtualHalWasmBridgeSnapshot()` for shared browser virtual HAL state
and standalone interpreter bridge values. Use
`createVirtualHalPinInventory()`, `createVirtualHalBridgeReadiness()`,
`createVirtualHalBridgeActionPlan()`, and
`createVirtualHalProjectReport()` when a caller needs a machine-readable
project report, pin inventory, or readiness/action-plan surface. The bridge
readiness checks caller-provided evidence for
`VIRTUAL_HAL_WASM_BRIDGE_FUNCTIONS`, while
`VIRTUAL_HAL_PROJECT_PIN_GROUPS` provides stable inventory grouping.
`VIRTUAL_HAL_SIMULATION_RUNTIME_CAPABILITIES`,
`executeVirtualHalCommand()`, `stepVirtualHalMotion()`, and
`createVirtualHalSimulationRuntimeReport()` provide the simulation-grade
replacement for host `halcmd`, HAL pin/signal/param storage, and the basic
motion feedback loop used by browser/Node simulation. For simulation, this
removes the host `halcmd`/`halrun`/motion-controller requirement.
`applyVirtualHalToInterpSdk()` is the common adapter for interpreter SDK
instances that expose `applyVirtualHalState()` or
`applyVirtualHalSnapshot()`. This is a simulation runtime and virtual
realtime HAL runtime replacement for browser workflows, not a Linux kernel
hard-realtime ABI; kernel realtime scheduling, external device drivers, native
HAL module ABI behavior, HALUI process behavior, Tcl/Python process
integration, and external device semantics remain explicit boundaries.
- CI dashboards and external SDK callers can use
`createProjectReleaseGateManifest()` to discover required gate commands and
expected smoke outputs, `createProjectReleaseGateResultMatrix()` to map