HIDAPI hid_open_path() как определить, какой путь использовать
- HIDAPI+Qt5.4+ubuntu14.04LTS + пистолет для сканирования штрих-кодов
Я использую HIDAPI отсюда https://github.com/signal11/hidapi
Это HIDAPI API http://www.signal11.us/oss/hidapi/hidapi/doxygen/html/group__API.html
Вопрос 1: Я могу использовать метод hid_open() с VID и PID моего пистолета для сканирования штрих-кодов, но в этом случае мое приложение не может использовать другой пистолет для сканирования штрих-кодов. Также я нашел метод hid_open_path(), но не могу определить, какой путь использовать /dev/hidraw0? Или /dev/hidraw1? или поменяется на другой пк?
Вопрос 2: есть ли разрешение на чтение. Когда я подключаю сканер штрих-кода к ПК, он не может читать и писать, мое решение - использовать udev, чтобы определить мои собственные правила для использования VID & PID, это действительно работает! Но это не работает для пистолета сканирования штрих-кода.
1 ответ
Вы должны использовать
hid_enumerate(<vid>, <pid>)
, который вернет связанный списокhid_device_info
структур.hid_device_info
имеет переменную-член под названиемpath
, который путь к устройству вы ищете. Путь может меняться в зависимости от компьютера или даже от того же компьютера, если у вас подключены другие устройства. Чтобы различать разные устройства, вы можете проверить их серийный номер, используяhid_get_serial_number_string
функция.Проверьте разрешения на соответствующем устройстве. Я видел, как люди рекомендуют добавлять правила udev, чтобы изменить их на 666 на разных форумах (Ubuntu, Arch). Тем не менее, я думаю, что это неправильно. Вместо этого проверьте, к какой группе принадлежит устройство, и добавьте себя в эту группу. Возможно
usb
или жеplugdev
или что-то другое.