枚举Linux / C ++中的USB设备

时间:2011-01-05 20:20:42

标签: c++ linux usb

我正在为一个Linux设备编写IO例程,该设备将连接各种不断变化的USB设备。为此,我需要能够确定哪个设备连接到哪个端口,以便我可以使用正确的软件打开它。类似'udevinfo'的东西是理想的,但我不知道如何开始写这样的。

有关c ++ apis的建议吗?

5 个答案:

答案 0 :(得分:2)

看看libudev++。这似乎是你在寻找的东西。

答案 1 :(得分:2)

请参阅libusblibusb_get_device_listlibusb_get_bus_numberlibusb_get_device_address

答案 2 :(得分:2)

GIO应该帮助你。连接到volume-addedvolume-removed信号会提醒您的程序任何添加到系统或从系统中删除的存储设备。如果您不需要GIO提供的控制级别,则可以使用libudev++提供高级别的GIO包装器。

答案 3 :(得分:0)

我不知道你需要什么样的信息,但你可以通过/ sys / bus / usb吗?

答案 4 :(得分: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