2008-11-11 5 views
16

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

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

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

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

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

ли какой-либо из вас есть какие-либо другие альтернативы, чтобы предложить?

+0

Я узнал, что libusb-win32-src-1.2.6.0 не инициализирует элемент устройств struct usb_bus. Попробуйте что-нибудь еще. – Frank 2015-12-26 04:16:15

ответ

5

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

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

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

2

Программный пакет HIDmaker от Trace - это опция.

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

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

+0

Таким образом, это просто дает вам привязку C++ к их элементу управления ActiveX. Кроме того, он предназначен для создания кода на аппаратной стороне для различных микроконтроллеров. Это кажется мне немного лишним. – 2008-11-14 10:29:53

2

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

+0

Я создал свою собственную HID-библиотеку в C# и C++/CLI. Вы можете обратиться к WDK. – 2013-03-12 17:37:07

2

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

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 - это идентификатор поставщика и идентификатор продукта устройства (проверьте Device Manager).

2

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

7

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

+0

Определенно лучший выбор, если libhid не является вариантом из-за лицензирования. – patrickvacek 2013-10-23 14:00:55