节点串口的自定义解析器?

问题描述:

有了这样STX(0x02)..Data..ETX(0x03)节点串口的自定义解析器?

我可以byte sequence parser处理数据进来的数据:

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); 
}); 

但我的实际进来的数据为STX(0x02)..Data..ETX(0x03)..XX(plus 2 characters to validate data)

我怎样才能得到适当的数据?

谢谢!

解决!

我写我自己的解析器:

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); 
});