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



我希望自动化我已经使用Eltima串行端口监视器的过程。我有一个带有专有软件的硬件,它向我显示它通过串行接收的数据,但不允许本机任何数据记录。我使用串行端口监视器嗅探通信,然后过滤掉我需要的数据,然后处理文本文件输出,直到我得到我想要的东西。我的问题关于节点串行端口或 socket.io 或类似端口,以便嗅探已经打开的端口?我知道我可以使用这些打开端口,但对于初学者来说,我更愿意在现有连接上搭载一些东西,并简单地浏览我需要的信息,而无需深入研究提供的细节Windows应用程序如何与硬件通信。

如果这个问题看起来很复杂,我深表歉意,但我只是想被指向已知有效的东西的方向,而不是给出一个完整的解决方案。我没有很多时间花在这件事上,宁愿不必学习一个框架,只是为了发现它根本无法完成我想使用它的事情。有人可以确认节点解决方案是否可以侦听已经活动的端口吗?

当然,您可以从串行端口读取流。 我可以想象的一种方法是(在 linux 环境中,因为我觉得更舒适(:考虑到您可以将流打印为纯文本

cat /dev/ttyS0 

您可以创建和调用一个 bash,您可以在其中读取串行端口 您需要知道 tty 正在建立哪个,之后您可以将 stdout 重定向到文件并执行一些 grep ...等等,之后您可以使用文件观察程序在收到所需值时触发操作。

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

关于使用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);
});
});

希望我有帮助

祝你好运!

最新更新