Какая лучшая библиотека usb для связи с USB-устройствами HID в Windows?

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

-Be простой в использовании, и несколько строк клиентского кода должны выполнить много
-На как независимая платформа, насколько это возможно. (В случае будущих портов на другие платформы)
-Связывание С++.
-Вы зрелые и стабильные

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

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

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

Есть ли у кого-нибудь из вас другие альтернативы?

Ответ 1

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

Ответ 2

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

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

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

Ответ 3

Программный пакет HIDmaker из систем Trace - это вариант.

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

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

Ответ 4

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

Ответ 5

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

http://geekswithblogs.net/tamir/archive/2008/12/30/read-and-use-fm-radio-or-any-other-usb-hid.aspx

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

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

Ответ 6

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