diff --git a/src/server.ts b/src/server.ts index b45f74a..4ae44a6 100644 --- a/src/server.ts +++ b/src/server.ts @@ -7,7 +7,7 @@ import type { PortInfo } from "@serialport/bindings-interface"; import { WakeLock } from "wake-lock"; import WebSocket from "ws"; import { SerialPortSerialPort } from "./serialport-serialport"; -import { Device, PenMotion, type Motion, Plan } from "./planning"; +import { PenMotion, type Motion, Plan } from "./planning"; import { formatDuration } from "./util"; import { autoDetect } from '@serialport/bindings-cpp'; import * as _self from './server'; // use self-import for test mocking @@ -158,7 +158,7 @@ export async function startServer (port: number, hardware: Hardware = 'v3', com: interface Plotter { prePlot: (initialPenHeight: number) => Promise; executeMotion: (m: Motion, progress: [number, number]) => Promise; - postCancel: () => Promise; + postCancel: (initialPenHeight: number) => Promise; postPlot: () => Promise; } @@ -170,10 +170,8 @@ export async function startServer (port: number, hardware: Hardware = 'v3', com: async executeMotion(motion: Motion, _progress: [number, number]): Promise { await ebb.executeMotion(motion); }, - async postCancel(): Promise { - const device = Device(ebb.hardware); - // TODO: switch to pen up position - await ebb.setPenHeight(device.penPctToPos(50), 1000); + async postCancel(initialPenHeight: number): Promise { + await ebb.setPenHeight(initialPenHeight, 1000); }, async postPlot(): Promise { await ebb.waitUntilMotorsIdle(); @@ -189,7 +187,7 @@ export async function startServer (port: number, hardware: Hardware = 'v3', com: console.log(`Motion ${progress[0] + 1}/${progress[1]}`); await new Promise((resolve) => setTimeout(resolve, motion.duration() * 1000)); }, - async postCancel(): Promise { + async postCancel(_initialPenHeight: number): Promise { console.log("Plot cancelled"); }, // eslint-disable-next-line @typescript-eslint/no-empty-function @@ -224,7 +222,7 @@ export async function startServer (port: number, hardware: Hardware = 'v3', com: motionIdx = null; currentPlan = null; if (cancelRequested) { - await plotter.postCancel(); + await plotter.postCancel(firstPenMotion.initialPos); broadcast({ c: "cancelled" }); cancelRequested = false; } else {