Какая библиотека usb лучше всего подходит для связи с USB HID-устройствами в Windows? - PullRequest
18 голосов
/ 11 ноября 2008

Библиотека должна;

-Быть простым в использовании, и несколько строк клиентского кода должны значительно улучшить
-Будьте как можно более независимыми от платформы. (В случае будущих портов на другие платформы)
-Имеют привязки C ++.
- будь зрелым и стабильным

Я также хотел бы получать уведомления о большинстве событий HID через обратные вызовы.

Я рассмотрел следующие варианты:

* libhid - (К сожалению?), Это GPL и не может использоваться в моем приложении.
* WDK - кажется, немного низкого уровня для моего использования. Мне не нужен такой контроль
* atusbhid - имеет соответствующий уровень абстракции, но он прочно связан с циклом обмена сообщениями Windows.

Кто-нибудь из вас может предложить другие альтернативы?

Ответы [ 6 ]

7 голосов
/ 11 августа 2011

Взгляните на hidapi : именно C, который отвечает на вопрос о связываниях C ++ (эффективно :)), является кроссплатформенным и имеет очень разрешительную лицензию. Кажется, что нет обратных вызовов, но ...

5 голосов
/ 12 ноября 2008

Если у вас работает libhid, возможно, вам стоит написать приложение (которое вы бы назвали GPL), которое использует libhid для связи с устройствами, а затем предоставляет все, что вам нужно, через соединение TCP. Ваше реальное приложение будет подключаться через TCP, чтобы делать то, что ему нужно. Это, очевидно, станет огромным ударом по производительности.

Это приложение, по сути, станет «прокладкой» между libhid и вашим приложением. В этом случае прокладка будет существовать по юридическим, а не техническим причинам.

Я не говорю, что это хорошая идея, просто это идея.

2 голосов
/ 18 марта 2011

Существует несколько драйверов USB HID Host для Windows. Простая в использовании библиотека динамических ссылок - от http://embedded24.net. Есть также несколько примеров приложений, включенных для Visual Studio 2010 (C ++, C # и VB).

2 голосов
/ 03 февраля 2009

Посмотрите на этот код:

http://khason.net/blog/read-and-use-fm-radio-or-any-other-usb-hid-device-from-c

Это дает вам несколько простых классов для общения с HID-устройством. Это сводится к тому, чтобы получить псевдоним для устройства (что-то вроде \? \ HID # Vid_nnnn & Pid_nnn # .......) и использовать CreateFile, чтобы открыть его. Вы можете получить псевдоним устройства в разделе HKML \ SYSTEM \ CCS \ Control \ DeviceClasses {4d1e55 ...} \

Vid и Pid - это идентификатор поставщика и идентификатор продукта устройства (проверьте диспетчер устройств).

2 голосов
/ 14 ноября 2008

Подумайте о том, чтобы кататься самостоятельно. Вы будете иметь полный контроль над интерфейсом, уровнем независимости от платформы и тому подобным. Несмотря на то, что проект является лицензией GPL, вы можете использовать его как собственный рецепт и как тестовую площадку для поиска собственных проблем.

2 голосов
/ 14 ноября 2008

Пакет программного обеспечения HIDmaker от систем Trace является опцией.

Плюсы: - Простота в использовании (отлично подходит для обучения программированию для USB HID) - Генерирует исходный код рабочих приложений в различных форматах проекта (Visual Studio, Borland) - Создает стабильный пример кода для хоста и устройства (стабильный в моем опыте) - Высокая производительность (если можно сказать, что HID вообще имеет высокую производительность)

Минусы: - Работает только на Microsoft Windows - Использует собственную библиотеку USB, я думаю (ActiveX)

...