Enforce AXIS source parity across panel controls

This commit is contained in:
2026-09-02 23:46:00 +08:00
parent 8b7fc5221b
commit 03c7fdf8f0
10 changed files with 357 additions and 14 deletions

View File

@@ -61,7 +61,10 @@ export type SimSnapshotV1 = {
authoritative?: { state_hash?: string; planner?: TrajectorySnapshot; kinematics?: Record<string, unknown> };
coordinates?: { machine?: number[]; relative?: number[]; g5x?: number; g92?: number[]; tool_offset?: number[] };
spindle?: Array<{ enabled?: boolean; direction?: number; commanded?: number; actual?: number; at_speed?: boolean }>;
io?: { coolant?: number; lube?: boolean; digital?: number[]; analog?: number[]; probe?: boolean };
// XYZAC panel snapshots carry the canonical LinuxCNC WASM IO envelope
// (`{ schema, source, state, ... }`). Generic legacy cases may still add
// coolant/probe fields, so keep this boundary open to both shapes.
io?: Record<string, unknown>;
tool?: { current?: number; prepared?: number; pocket?: number; change_state?: string };
overrides?: { feed?: number; rapid?: number; spindle?: number[]; adaptive?: number; feed_hold?: boolean };
hal?: { graph_revision?: number; changed_values?: ArrayBuffer };