Make machine configuration authoritative and restore native checkpoints exactly
This commit is contained in:
@@ -39,9 +39,10 @@ const wasm = await createModule({ wasmBinary: await readFile(new URL("../../buil
|
||||
const session = new SimSession(wasm, { sessionId: "axis3-selected-case" });
|
||||
const base = { schema_version: 1, context_id: CONTEXT_ID, session_id: session.sessionId };
|
||||
let sequence = 0;
|
||||
const send = (kind, operationId, payload = {}) => {
|
||||
const send = (kind, operationId, payload = {}, expected = "ok") => {
|
||||
const response = session.accept({ ...base, kind, seq: ++sequence, operation_id: operationId, payload });
|
||||
assert.notEqual(response.kind, "ERROR", `${kind}:${response.payload?.code ?? "error"}`);
|
||||
if (expected === "error") assert.equal(response.kind, "ERROR");
|
||||
else assert.notEqual(response.kind, "ERROR", `${kind}:${response.payload?.code ?? "error"}`);
|
||||
return response;
|
||||
};
|
||||
|
||||
@@ -67,6 +68,12 @@ const checkpoint = send("CHECKPOINT", "checkpoint").payload.checkpoint;
|
||||
send("SIM_STEP", "program-step", { cycles: 8 });
|
||||
const programSnapshot = send("SNAPSHOT_REQUEST", "program-snapshot");
|
||||
assert.ok(["running", "completed"].includes(programSnapshot.payload.snapshot?.state?.program?.program_status ?? "running"));
|
||||
assert.equal(send("SPINDLE_COMMAND", "spindle-during-motion", { spindle: 0, rpm: 600, enabled: true }, "error").payload.code, "axis_gate");
|
||||
assert.equal(send("TOOL_PREPARE", "tool-during-motion", { tool: 1, pocket: 1 }, "error").payload.code, "axis_gate");
|
||||
for (let tick = 0; tick < 200 && (session.program.snapshot().program_status !== "completed" || session.wasmMotion.read().state.queue_depth > 0); tick++) send("SIM_STEP", `finish-program-${tick}`, { cycles: 100 });
|
||||
assert.equal(session.program.snapshot().program_status, "completed");
|
||||
assert.equal(session.wasmMotion.read().state.queue_depth, 0);
|
||||
send("SET_MODE", "manual-after-program", { mode: "MANUAL" });
|
||||
|
||||
assert.equal(send("SPINDLE_COMMAND", "spindle-on", { spindle: 0, rpm: 600, enabled: true }).payload.status, "verified");
|
||||
assert.equal(send("IO_STEP", "spindle-step", { ticks: 5 }).payload.status, "verified");
|
||||
|
||||
Reference in New Issue
Block a user