Files
appRobotDriver/robot/SenderInterface.js
2026-06-12 18:16:15 +02:00

37 lines
1.1 KiB
JavaScript

class SenderInterface {
async connect() {
throw new Error('connect() must be implemented by sender classes');
}
send(command) {
throw new Error('send() must be implemented by sender classes');
}
getStatus() {
throw new Error('getStatus() must be implemented by sender classes');
}
disconnect() {
throw new Error('disconnect() must be implemented by sender classes');
}
/**
* Emergency Stop: Bewegung sofort stoppen (best-effort).
* Standard-Implementierung: no-op (wird übersprungen).
* Override in TelnetSenderGRBL → sendet '!' (FluidNC Feed Hold).
* Override in ShellyEmergencyStop → schneidet Strom ab.
* @returns {Promise<{ok: boolean, skipped?: boolean}>}
*/
async emergencyStop() { return { ok: true, skipped: true }; }
/**
* Alarm-Unlock: Controller nach Strom-Neustart entsperren.
* Standard-Implementierung: no-op (wird übersprungen).
* Override in TelnetSenderGRBL → sendet '$X'.
* @returns {Promise<{ok: boolean, skipped?: boolean}>}
*/
async alarmUnlock() { return { ok: true, skipped: true }; }
}
module.exports = SenderInterface;