Устройства Enum USB в Linux / C ++ - PullRequest
3 голосов
/ 05 января 2011

Я пишу процедуры ввода-вывода для устройства linux, к которому будут подключены различные и меняющиеся USB-устройства.Для этого мне нужно выяснить, какое устройство подключено к какому порту, чтобы я мог открыть его с правильным программным обеспечением.Что-то похожее на 'udevinfo' было бы идеально, но я понятия не имею, с чего начать писать такие слова.

Ответы [ 5 ]

2 голосов
/ 05 января 2011

См. libusb * libusb_get_device_list, libusb_get_bus_number, libusb_get_device_address.

2 голосов
/ 05 января 2011

GIO должен помочь вам в этом. Подключение к добавленным томам и удаленным томам предупредит вашу программу о любом устройстве хранения, добавленном или удаленном из системы. Если вам не нужен уровень контроля, обеспечиваемый GIO, вы можете использовать libudev ++ , который обеспечивает высокоуровневую оболочку над GIO.

2 голосов
/ 05 января 2011

Взгляните на libudev ++ . Кажется, это то, что вы ищете.

0 голосов
/ 25 января 2011

В итоге я использовал решение BASH в файле chkconfig. Я просматриваю все записи 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
0 голосов
/ 06 января 2011

я не знаю, какая информация вам нужна, но вы можете просто перейти через / sys / bus / usb?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...