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 に答える