Use native LinuxCNC homing and consolidate web panel status

This commit is contained in:
2026-09-09 12:28:02 +08:00
parent eb5c58cdb3
commit 0be2ee8ce1
35 changed files with 881 additions and 350 deletions

View File

@@ -83,6 +83,12 @@ function projection(result: Record<string, unknown>, message: MessageEnvelope, p
} : previous.snapshot.visual;
const nextSnapshot = {
...previous.snapshot,
source_status: (result.source_status as SimSnapshotV1["source_status"]) ?? (previous.snapshot.source_status ? {
...previous.snapshot.source_status,
task: { ...previous.snapshot.source_status.task,
mode: String((result.task as Record<string, unknown>)?.mode ?? previous.snapshot.source_status.task.mode),
interpState: (result.axis_state as AxisStateView)?.source_interp_state ?? previous.snapshot.source_status.task.interpState },
} : undefined),
simulation_tick: message.simulation_tick ?? delta.tick ?? previous.snapshot.simulation_tick,
state_hash: String(result.state_hash ?? previous.snapshot.state_hash),
task: (result.task as SimSnapshotV1["task"]) ?? previous.snapshot.task,
@@ -147,6 +153,7 @@ function projection(result: Record<string, unknown>, message: MessageEnvelope, p
const axes = [pose.x, pose.y, pose.z, pose.a, pose.c].map((value) => Number.isFinite(value) ? value : 0);
const snapshot = {
schema: panel.schema,
source_status: panel.source_status,
simulation_tick: panel.simulation_tick,
state_hash: panel.state_hash,
task: panel.task as SimSnapshotV1["task"],