NEWS
Handler wenn Skript gestoppt wird
-
Hallo zusammen,
gibt es die Möglichkeit Code auszuführen wenn ein Skript gestoppt wird oder durch Fehler beendet oder neu gestartet wird? Es geht darum, dass ich das serialport-Modul nutze und den geöffneten seriellen Port wieder schließen muss wenn das Skript beendet wird.
Hier das Skript:
const SerialPort = require('serialport') const Readline = require('@serialport/parser-readline') const port = new SerialPort('/dev/ttyUSB0', { baudRate: 2400 }, function (err) { if (err) { return console.log('Error opening serial port ', err.message) } }) const parser = new Readline({ delimiter: '\r\n' }) port.pipe(parser) parser.on('data', line => { rx_str = new String(line.substring(1, 16)); //console.log(rx_str); const values = rx_str.split(';'); const Upv = parseInt(values[0]); const Pac = parseInt(values[1]) * 10; const Etd = parseInt(values[2]) * 10; if(!isNaN(Upv)) { setState('knx.0.Zentral.Daten.PV_Upv', Upv); } if(!isNaN(Pac)) { setState('knx.0.Zentral.Daten.PV_Pac', Pac); /*PV Pac*/ } if(!isNaN(Etd)) { setState('knx.0.Zentral.Daten.PV_Etd', Etd); } //console.log(Upv); //console.log(Pac); //console.log(Etd); });
Besten Dank!
Gruß
Nils -
hmm, schwierig den der process laeuft in dem javascript code wen du den anhaellst ist die Steuerung des processes weck.
Darf ich einen anderen loesungs Ansatz vorschlagen ?- Lasse das script an
- Erstellen einen datenbunkt, z.b. script running
- Dan machst du einen event trigger auf den datenpunkt
- Du machst eine function "starte serial port und listening" mit dem code den du jetzt hast
- Du machst einen function "close port" womit du den serial port schließt
Ergo script bleibt actief, und ueber den Datenpunkt steuerst du javascript Funktionen die den Serail port öffnen/schliessen
-
-
@paul53 sagte in Handler wenn Skript gestoppt wird:
Siehe onStop().
danke ! vergessen den gibts ja auch noch, Schande über mein Haupt.....
-
Hi,
danke! onStop() funktioniert wie erwartet.
// close connection if script stopped onStop(function (callback) { if (connected) { console.log('Closing Port'); port.close(); } callback(); }, 2000 /*ms*/);