设置
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
但即使这样我仍然收到错误:
Uncaught TypeError: dest.on is not a function
问题
后来我意识到这个功能仅从 5.0.0 版本开始可用,该版本处于测试阶段(截至 2017 年初)。我有4.0.7。那么如何才能逐行读取版本 5 以下的流呢?
最佳答案
tl;博士
就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的原型(prototype)是Stream
,令人惊讶的是,您可以像常规 Stream
一样阅读它,并且该解决方案的长度与文档中给出的长度大致相同。
关于javascript - 逐行读取 Node 串口流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42730976/