关于如何逐行阅读official documentation has a part流的node-serialport。
我尝试了示例代码:
var SerialPort = require('serialport');
var Readline = SerialPort.parsers.Readline;
var port = new SerialPort('/dev/tty-usbserial1');
var parser = new Readline();
port.pipe(parser);
parser.on('data', console.log);
port.write('ROBOT PLEASE RESPOND\n');
我很快意识到SerialPort.parsers.Readline
应该是SerialPort.parsers.readline
,但即便如此,我仍然会收到错误:
未捕获的TypeError:dest.on不是函数
后来我意识到这个功能仅在5.0.0以后才开始提供测试版(截至2017年初)。我有4.0.7。那么如何在版本5下面逐行读取流?
答案 0 :(得分:2)
只需read it like a regular stream:
var SerialPort = require('serialport');
var createInterface = require('readline').createInterface;
var port = new SerialPort('/dev/tty-usbserial1');
var lineReader = createInterface({
input: port
});
lineReader.on('line', function (line) {
console.log(line);
});
port.write('ROBOT PLEASE RESPOND\n');
由于node-serialport的原型是Stream
,令人惊讶的是你可以像常规Stream
一样阅读它,并且这个解决方案的长度与文档中给出的长度大致相同。