1

我正在尝试在 Ubuntu 中使用 Mag Stripe 阅读器读取 RS232 串行端口。我有一个 USB 工作正常(ID-Tech)。但我正试图让 Neuron 阅读器也能正常工作。我一般不熟悉串行端口通信,但是使用节点串行我编写了一个简单的应用程序,它可以等待设备:

node tester.js /dev/ttyS0 

然后从读卡器吐出输出。与 USB ID-Tech 阅读器配合使用非常好,但是当我插入串行端口设备时,我什么也得不到。我也有点不确定如何判断它正在使用哪个串行端口。有没有更好的工具来“探测” Ubuntu 中的串行端口并找出 Mag Reader 正在使用哪个串行端口?

更新

围绕它进行研究似乎使用的工具是:

sudo cat /dev/ttyS0

我遇到的问题是设备连接到哪个端口,在 ttyS0,1,2,3 上执行上述操作无济于事,应该从设备中转储一些输出。但是我不确定这是否需要先运行:

sudo inputattach -dump /dev/ttyS0

这只是挂在光标上,我想尝试为读卡器输入键盘类型,但同样的问题只是挂起。dmesg 的输出 | grep ttyS 显示端口启用:

[    1.906700] serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[    1.927250] serial8250: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
[    1.947758] serial8250: ttyS2 at I/O 0x3e8 (irq = 4) is a 16550A
[    1.968273] serial8250: ttyS3 at I/O 0x2e8 (irq = 3) is a 16550A
[    1.990199] 00:04: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[    2.010770] 00:05: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
[    2.031335] 00:06: ttyS2 at I/O 0x3e8 (irq = 5) is a 16550A
[    2.051952] 00:07: ttyS3 at I/O 0x2e8 (irq = 11) is a 16550A
4

1 回答 1

0

插入设备后,您可以运行此节点代码并检查每个端口的信息。您可能会认出某些东西,这就是您要寻找的端口。

var serialport = require("serialport");

serialport.list(function (err, ports) {
    ports.forEach(function(port) {

        console.log("pnpId: " + port.pnpId);
        console.log("manufacturer: " + port.manufacturer);
        console.log("comName: " + port.comName);
        console.log("serialNumber: " + port.serialNumber);
        console.log("vendorId: " + port.vendorId);
        console.log("productId: " + port.productId);
    });
});

然后你连接使用:

var myPort = new SerialPort("/dev/ttyACM0", { // replace ttyACM0 with the right port on your computer
    baudrate: 115200,
    parser: serialport.parsers.readline("\r\n")
});

希望能帮助到你!

于 2013-08-21T17:39:21.887 回答