2017-06-29 5 views
1

Mit incomming Daten wie STX(0x02)..Data..ETX(0x03)Benutzerdefinierter Parser für Knoten-Serialport?

I-Daten von byte sequence parser verarbeiten kann:

var SerialPort = require('serialport'); 

var port = new SerialPort('/dev/tty-usbserial1', { 
    parser: SerialPort.parsers.byteDelimiter([3]) 
}); 

port.on('data', function (data) { 
    console.log('Data: ' + data); 
}); 

Aber meine eigentlichen incomming Daten STX(0x02)..Data..ETX(0x03)..XX(plus 2 characters to validate data)

Wie kann ich entsprechende Daten?

Danke!

Antwort

2

Gelöst!

Ich schreibe meine eigenen Parser:

var SerialPort = require('serialport'); 
var incommingData = new Buffer(0); 
var myParser = function(emitter, buffer) { 
    incommingData = Buffer.concat([incommingData, buffer]); 
    if (incommingData.length > 3 && incommingData[incommingData.length - 3] == 3) { 
     emitter.emit("data", incommingData); 
     incommingData = new Buffer(0); 
    } 
}; 
var port = new SerialPort('COM1', {parser: myParser}); 

port.on('data', function(data) { 
    console.log(data); 
});