javascript - 逐行读取 Node 串口流

标签 javascript node.js stream node-serialport

设置

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/

相关文章:

arrays - 无法使用 Mongoose 将嵌套 JSON 数组存储到 MongoDB

node.js - Bunyan 较高级别登录到较低级别流

java - 我应该关闭使用 java.nio.file.Files.newInputStream 创建的 Streams 吗?

javascript - 如何使用一个大图像并将其分解为网站的小块?

javascript - 如何选择位于不同跨度且也是类元素的元素?

javascript - 当用户访问页面时如何动态缩放整个 ASP.Net MVC 应用程序

c# - 在 C# 中从 SQL Server 流式传输 VARBINARY 数据

javascript - 检查 get api 的响应是否是原型(prototype)对象

javascript - node.js 错误 : req. flash() 需要 session

javascript - MAC M1 安装 "sharp"模块出现问题