c++ - significa - ¿Cuál es la mejor biblioteca de usb para comunicarse con dispositivos usb HID en Windows?
qué significa en español (6)
La biblioteca debería;
-Sé fácil de usar y pocas líneas de código de cliente deben lograr mucho
-Ser la plataforma más independiente posible. (En caso de puertos futuros a otras plataformas)
-Tiene enlaces de C ++.
-Ser maduro y estable
También me gustaría recibir notificaciones de la mayoría de los eventos HID a través de devoluciones de llamada.
He considerado las siguientes alternativas:
* libhid - (¿Desafortunadamente?) esto es GPL y no se puede usar en mi aplicación.
* WDK: parece ser un poco de bajo nivel para mi uso. No necesito ese tipo de control
* atusbhid: tiene un nivel apropiado de abstracción pero está firmemente relacionado con el bucle de mensajes de Windows
¿Alguno de ustedes tiene otras alternativas para ofrecer?
Considera rodar el tuyo. Tendrás control total sobre la interfaz, el nivel de independencia de la plataforma, y demás. Aunque un proyecto es GPL, puede usarlo como una receta propia y como banco de pruebas para encontrar problemas con los suyos.
El paquete de software HIDmaker de los sistemas Trace es una opción.
Pros: - Fácil de usar (Excelente para aprender a programar para USB HID) - Genera código fuente de aplicaciones en varios formatos de proyecto (Visual Studio, Borland) - Genera código de ejemplo estable tanto para el host como para el dispositivo (estable en mi experiencia) - Alto rendimiento (si HID incluso puede decirse que tiene un alto rendimiento en primer lugar)
Contras: - Solo funciona en Microsoft Windows - Usa su propia biblioteca USB, creo (ActiveX)
Mira este código:
http://khason.net/blog/read-and-use-fm-radio-or-any-other-usb-hid-device-from-c
Le da algunas clases simples para hablar con un dispositivo HID. Lo que se reduce a esto es obtener el alias para el dispositivo (algo así como /? / HID # Vid_nnnn & Pid_nnn # .......) y usar CreateFile para abrirlo. Puede obtener el alias del dispositivo en HKML / SYSTEM / CCS / Control / DeviceClasses {4d1e55 ...} /
Vid y Pid son la identificación del vendedor y la identificación del producto del dispositivo (ver Administrador de dispositivos).
Eche un vistazo a hidapi : es C, que responde a la pregunta de enlaces C ++ (efectivamente :)), es multiplataforma y tiene una licencia muy permisiva. Parece que no tiene las devoluciones de llamada, pero ...
Hay varios controladores USB HID Host para Windows. Una biblioteca de enlace dinámico fácil de usar es http://embedded24.net . También hay varias aplicaciones de ejemplo incluidas para Visual Studio 2010 (C ++, C # y VB).
Si libhid funciona para usted, entonces tal vez lo que haría sería escribir una aplicación (que usted usaría GPL), que usa libhid para hablar con dispositivos, y luego le proporcionará lo que necesite a través de una conexión TCP. Su aplicación real se conectaría a través de TCP para hacer lo que necesita. Esto obviamente sería un golpe de rendimiento masivo.
Esta aplicación sería efectivamente una ''cuña'' entre libhid y tu aplicación. En este caso, la cuña existiría por razones legales, no técnicas.
No digo que sea una buena idea, solo que es una idea.