12

2つのWavecom16ポートモデムを使用しています。モデムをシステムに接続すると、すべての/dev/ttyUSBポート名を一覧表示できますが、どのモデムにポート0〜16が含まれていて、どのモデムにポート17〜32が含まれているのかを知りたいのですが。

モデムは1日に何度も取り付けたり取り外したりする可能性があるので、モデムが切断されて再び接続されたときにもログを記録したいと思います。

c / c ++ / php script / node.jsを使用してこれを行う方法はありますか?

4

1 に答える 1

22

この情報はsysファイルシステムから取得できます。シェルからチェックして、同じことを行うプログラムを実行するのは簡単です。

  1. cd /sys/devices
  2. 最初のポートのディレクトリを見つけます:find -name "ttyUSB0"。それはおそらくそれらを次のようなもので見つけるでしょう./pci0000:00/0000:00:1d.0/usb2/2-2/2-2.1/2-2.1:1.0/...
  3. パーツはpci*USBコントローラーです。興味深いの2-2.1は、USBデバイスです。そのディレクトリには、デバイスを識別する多くのファイルがあります。

    • serial:シリアル番号。おそらくあなたが望むもの。
    • idVendorおよびidProduct:デバイスのUSB識別子。

手順1と2の代わりに簡単な方法は次のとおりです。

  1. cd /sys/class/tty/
  2. readlink ttyUSBnデバイスディレクトリのフルパスが表示されます。

sysfs脚注として、の一部はAPIで安定していると見なされ、一部はそうではないことに注意してください。詳細については、公式のsysfsルールを参照してください。

于 2013-01-04T07:53:55.123 に答える