1.8 KiB
Wiring Runtime Contract
Wiring configs remain the L0 wiring_configs contract described by
protocol/schemas/wiring-config.schema.json. The L3 patch-panel runtime applies
one active config and owns cross-box signal propagation.
Runtime Config
hwlab-patch-panel loads a runtime config from HWLAB_WIRING_CONFIG_PATH when
the variable is set. The file contains:
wiringConfig: an L0 wiring config object.endpointMap: an object keyed byresourceIdwith HTTP base URLs for writablehwlab-box-simuinstances.
The service also supports:
GET /wiringfor the applied wiring config.GET /statusfor L0 patch-panel status plus config/evidence summary.GET /diagnosticsfor readable config, endpoint, and sync diagnostics.POST /wiring/applyto apply an inline runtime config.POST /wiring/reloadto reloadbody.pathorHWLAB_WIRING_CONFIG_PATH.POST /signals/routeto route one source signal.POST /sync/tickto route a batch of source signals.
Supported Sync Families
The minimal L3 runtime supports these directed signal families:
| Source | Target | Value |
|---|---|---|
DO* |
DI* |
boolean |
AO* |
AI* |
number |
FREQ_OUT* |
FREQ_IN* |
number |
Typed signal wiring is directional. For example, DI1 -> DO1 is rejected with
source_port_not_output, and AO1 -> DI1 is rejected with
unsupported_signal_wiring.
Untyped legacy MVP fixture ports such as uart0 and gpio0 may still be routed
as recorded deliveries for M1 compatibility, but they are not part of the L3
sync loop.
Evidence Boundary
This runtime records only config application and evidence summary fields in
/status and /diagnostics. It does not write tick audit records. Live DEV or
PROD deployment is outside this local runtime contract.