37 lines
1.1 KiB
JavaScript
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;
|