С++: Определения подключения USB (виртуального COM)
От:
Аноним
Дата:
15.04.11 12:08
Оценка:
Здраствуйте.
Подскажите пожлста, программа должна определить подключение usb устройства, и открыть соответствующий виртуальный com-порт — ttyUSBx. Какими средствами с/с++ это можно сделать. Можно конечно просто пытаться по очереди открывать ttyUSB0, ttyUSB1, ... ttyUSB9, ... . Но ведь это не оптимально решения как мне кажется.
Re: С++: Определения подключения USB (виртуального COM)
Здравствуйте, Аноним, Вы писали:
А>Подскажите пожлста, программа должна определить подключение usb устройства, и открыть соответствующий виртуальный com-порт — ttyUSBx. Какими средствами с/с++ это можно сделать. Можно конечно просто пытаться по очереди открывать ttyUSB0, ttyUSB1, ... ttyUSB9, ... . Но ведь это не оптимально решения как мне кажется.
Наиболее кошерно написать правило для udev и положить его в /etc/udev/rules.d/. Правило определяет появление устройства по определенным параметрам (VendorId/ProductId, подстрока в имени и т.п.) и пинает нужную программу.
Обязательно бахнем! И не раз. Весь мир в труху! Но потом. (ДМБ)
Re: С++: Определения подключения USB (виртуального COM)
Здравствуйте, Аноним, Вы писали:
А>Здраствуйте. А>Подскажите пожлста, программа должна определить подключение usb устройства, и открыть соответствующий виртуальный com-порт — ttyUSBx. Какими средствами с/с++ это можно сделать. Можно конечно просто пытаться по очереди открывать ttyUSB0, ttyUSB1, ... ttyUSB9, ... . Но ведь это не оптимально решения как мне кажется.
Ну, во-первых, события по устройствам часто посылаются на dbus, там их можно слушать.
Если там нет, то просто делается ls -l /dev/ttyUSB* или аналог для целевого языка, и смотрится, что подключено и как. К /dev можно цепляться через inotify и следить за изменениями.
The God is real, unless declared integer.
Re: С++: Определения подключения USB (виртуального COM)