2008-11-11 14 views
16

라이브러리가 있어야합니다.Windows에서 USB HID 장치와 통신하는 데 가장 좋은 usb 라이브러리는 무엇입니까?

- 사용하기 쉽고 가능한 클라이언트 코드가 몇 줄이면
-되도록 플랫폼 독립적입니다. (다른 플랫폼에 대한 향후 포트의 경우)
-Have C++ 바인딩.
- 성숙하고 안정적입니다.

콜백을 통해 대부분의 HID 이벤트에 대한 알림을 받고 싶습니다. 나는 다음과 같은 대안을 고려했다

:

* libhid - (불행하게도?)이 GPL이며, 내 응용 프로그램에서 사용할 수 없습니다.
* WDK - 조금 낮은 수준으로 보입니다. 나는 컨트롤의 종류를 필요로 돈`t
* atusbhid -이 추상화의 적절한 수준을 가지고 있지만, 어떤이 제공하는 다른 대안이 있습니까 단단히 창 메시지 루프

에 묶여?

+0

libusb-win32-src-1.2.6.0은 struct usb_bus의 devices 요소를 초기화하지 않았다는 것을 알게되었습니다. 다른 것을 시도하십시오. – Frank

답변

5

libhid가 도움이된다면 libhid를 사용하여 장치와 통신하는 응용 프로그램 (예 : GPL)을 작성한 다음 TCP 연결을 통해 필요한 것을 제공하십시오. 귀하의 실제 응용 프로그램은 TCP를 통해 필요한 것을 수행 할 수 있습니다. 이것은 분명히 엄청난 성능 저하 일 것입니다.

이 응용 프로그램은 실제로 libhid와 응용 프로그램 사이의 '심'입니다. 이 경우 shim은 기술적 인 이유가 아닌 법적으로 존재합니다.

저는 좋은 생각이라고 말하는 것이 아닙니다. 단지 아이디어 일뿐입니다.

2

Trace 시스템의 HIDmaker 소프트웨어 제품군은 옵션입니다.

장점 : - (USB의 HID를 위해 프로그램하는 방법을 학습 Excelent)를 사용하기 쉬운 - 각종 프로젝트 형식 (비주얼 스튜디오, 볼랜드) 에서 응용 프로그램의 소스 코드를 작업하는 생성 - 두 호스트에 대한 안정적인 예제 코드를 생성 장치 (내 경험에서 안정적) - 고성능

단점 (HID 심지어 처음부터 높은 성능을 가지고 있다고 할 수있는 경우) : - 만 마이크로 소프트 윈도우 에서 작동 - (그것이 내가 생각하는 자신의 USB 라이브러리의 사용 을 ActiveX)

+0

사실상 ActiveX 컨트롤에 C++ 바인딩을 제공합니다. 또한 다양한 마이크로 컨트롤러의 하드웨어 측면에서 코드를 생성하기위한 것입니다. 그건 나에게 과장된 것 같다. –

2

롤링 요 ur 자신. 인터페이스, 플랫폼 독립성 수준 등을 완벽하게 제어 할 수 있습니다. 프로젝트는 GPL이지만 직접 작성한 레서피로 사용할 수도 있고 자신 만의 문제를 찾을 수있는 테스트 베드로 사용할 수도 있습니다. 이 코드에서

+0

C# 및 C++/CLI에서 자체 HID 라이브러리를 만들었습니다. WDK를 참조 할 수 있습니다. –

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는 장치의 공급 업체 ID 및 제품 ID입니다 (장치 관리자 확인).

2

Windows 용 USB HID 호스트 드라이버가 여러 개 있습니다. 사용하기 쉬운 동적 링크 라이브러리는 http://embedded24.net입니다. 또한 Visual Studio 2010에 포함 된 몇 가지 예제 응용 프로그램 (C++, C# 및 VB)이 있습니다.

7

hidapi : C++ 바인딩 질문에 대한 답변입니다. (사실 :), 크로스 플랫폼이며 매우 관대 한 라이센스가 있습니다. 콜백을 가지고 있지는 않지만 ...

+0

libhid가 라이센스로 인해 옵션이 아닌 경우 가장 좋은 선택입니다. – patrickvacek

관련 문제