我正在为一个Linux设备编写IO例程,该设备将连接各种不断变化的USB设备。为此,我需要能够确定哪个设备连接到哪个端口,以便我可以使用正确的软件打开它。类似'udevinfo'的东西是理想的,但我不知道如何开始写这样的。
有关c ++ apis的建议吗?
答案 0 :(得分:2)
看看libudev++。这似乎是你在寻找的东西。
答案 1 :(得分:2)
请参阅libusb的libusb_get_device_list
,libusb_get_bus_number
,libusb_get_device_address
。
答案 2 :(得分:2)
GIO应该帮助你。连接到volume-added和volume-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