我可以监控与node.js的现有串口通信吗?

时间:2018-05-14 15:07:19

标签: javascript node.js

我正在寻找自动化我已经使用Eltima串口监视器的过程。我有一个硬件及其专有软件,它向我显示它通过串行接收的数据,但不允许任何数据记录本地。我使用串口监视器来嗅探通信,然后过滤掉我需要的数据,然后处理文本文件输出,直到我得到我想要的。我的问题是关于node-serialport或socket.io或类似的,以便嗅探已经打开的端口?我知道我可以使用这些端口打开端口,但对于初学者来说,我更喜欢在现有连接上搭载某些内容,只需浏览我需要的信息,而无需详细了解所提供的Windows应用程序如何与硬件进行通信。

如果问题看起来很复杂,我道歉,但我只是想指出已知有效的方向,而不是给出一个完整的解决方案。我没有太多的时间专注于此,而宁愿不必学习一个框架,只是为了发现它根本不做我想用它的东西。有人可以确认一个节点解决方案是否可以监听已经活动的端口吗?

1 个答案:

答案 0 :(得分:1)

当然你可以从串口读取流。 我可以想象的一种方式是(在Linux环境中,因为我觉得它更加舒适):考虑到你可以将流打印为纯文本

cat /dev/ttyS0 

您可以创建并调用bash,只需读取串口即可 你将需要知道在哪个tty建立之后,你可以将stdout重定向到文件并做一些greps ...等等,你可以使用文件监视器在你收到所需的值时触发一个动作。

无论如何,它只是最快捷的方式(可能不是最佳方式)

关于使用node.js阅读串口,有大量的例子和图书馆在网上冲浪,例如:

https://www.npmjs.com/package/serialport

安装库:

npm install --save-dev serialport

在这样的事情发生之后(我没有尝试过)只需遵循一些文档:

var serialport = require("serialport");
var SerialPort = serialport.SerialPort;
/*need to know in which port is connected in case of windows i think 
COM1*/
var serialPort = new SerialPort("/dev/ttyS0", {
  baudrate: 9600,
  parser: serialport.parsers.readline("\n")
});

serialPort.on("open", function () {
 console.log('open');
  serialPort.on('data', function(data) {
  console.log(data);
  });
});

希望我帮助

祝你好运!