2011-01-05 34 views
3

Linuxデバイス用にIOルーチンを作成すると、さまざまなUSBデバイスが接続されます。この目的のためには、どのデバイスがどのポートに接続されているか把握できるようにして、正しいソフトウェアで開くことができるようにする必要があります。 'udevinfo'に似たものが理想的かもしれませんが、私はそのようなことを書いてどのように始めるべきか分かりません。Linux/C++でのEnum USBデバイス

C++ apisの提案を読むには?

+0

私は341008に同意します。 –

答えて

0

私はchkconfigファイルでBASHソリューションを使用しました。私はすべてのttyUSBエントリーを見て、それぞれのドライバー情報を見てください。

USB_ID=`egrep -i "mct u232|pl2303|keyspan" -m 1 /proc/tty/driver/usbserial | awk '{ printf("$d", $1)}'` 
if [ -z $USB_ID ] 
then 
    echo $echo_n "No USB serial adapter found."; 
    exit 1 
fi 
2

libudev++をご覧ください。それはあなたが探しているもののようです。

+0

libudev ++は非常に興味深いですが、私のRHEL5.5システムにインストールしたくありません。 – ethrbunny

2

libusblibusb_get_device_list,libusb_get_bus_number,libusb_get_device_addressを参照してください。

2

GIOがそれに役立ちます。 volume-addedvolume-removed信号に接続すると、プログラムがシステムに追加または削除されたストレージデバイスに警告します。 GIOが提供する制御のレベルが必要ない場合は、libudev++を使用して、GIO上に高レベルのラッパーを提供することができます。

0

私はあなたが必要とする情報を知りませんが、/ sys/bus/usbを経由するだけでいいですか?

+0

私にとっては、どのUSBデバイスが/ dev/TTYUSBnのどのエントリに対応しているのかを突き止めることです。私はlibusbやlibudevで多くの成功を収めていないので、cmdの行に関連するdevパスを渡すスクリプト化されたソリューションについてもっと考えています。 – ethrbunny

関連する問題