HID device IN Report mit ReadFile empfangen

OP #744676
Lesenswert?

Hallo,
ich habe schon ne ganze Menge an Beiträgen hier durchforstet aber keine 
Antwort auf meine Frage gefunden.
Ich möchte mit ReadFile einen Report von meinem HID device empfangen. 
Der Report Deskriptor sieht folgerndermaßen aus:
HID_UsagePageVendor(0xFF),
HID_Usage(0x01),
HID_Collection(HID_Application),
  HID_Usage(0x03),
  HID_LogicalMin(0),
  HID_LogicalMax(1),
  HID_ReportCount(4),
  HID_ReportSize(8),
  HID_Input(HID_Data | HID_Variable | HID_Absolute),
  HID_Usage(0x04),
  HID_LogicalMin(0),
  HID_LogicalMax(1),
  HID_ReportCount(127),
  HID_ReportSize(8),
  HID_Output(HID_Data | HID_Variable | HID_Absolute),
HID_EndCollection,

ReadFile liefert aber kein Ergebnis (time out - can't read from device). 
Mit einem USB Paket Analyzer sehe ich aber, dass ein IN Paket vom 
controller gesendet wird. Ich habe probiert dem Report eine ID 
zuzuweisen und dann im IN Report im ersten Byte die ID anzugeben und es 
ging. Ich möchte aber die Report ID vermeiden, da ich keine brauche. 
Soweit ich das verstanden habe bekommen dann alle Reports die ID 0. Aber 
selbst wenn das erste Byte im IN Report eine 0 ist empfängt Windows ihn 
nicht.
Hat jemand eine Idee woran das liegen könnte?

Danke
mfg
sven
(Firma: Explinovo GmbH) #1189680
Lesenswert?

Hallo,
ich habe ein kleines Problemchen.
Gerade beschäftige ich mich mit dem PIC 18F4550 und wollte nun eine 
Verbindung über USB zum PC herstellen.

Ich habe alle Deskriptoren geschrieben und die Enumeration scheint gut 
zu funktionieren oder zumindest das Gerät wird im Gerätmanager als HID 
angezeigt.

Jetzt möchte ich Daten an Geräte senden und empfangen. Dazu habe ich ein 
Programm in Visual C++ geschrieben (Microsoft Visual Studio 2009).
Ich habe vieles in Foren gelesen und was ich verstanden habe ist daß es 
mit den Funktionen ReadFile(...) und WriteFile(...) vollkommen 
ausreicht,  leider sende und empfange ich nichts.
Deswegen glaube ich, dass ich noch etwas falsch mache.
Inzwischen bin ich auf die WDK (früher DDK) gestoßen.
Aus dieser Library benutze ich die Funnktionen 
HidD_GetInputReport(...)zum empfangen und HidD_SetOutputReport(...)zum 
senden.
Ich habe die Dateien HID.h und HIDSDI.h hinzugefügt, aber jetzt es 
kompiliert nicht mehr. Ich kriege immer:

***
error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""unsigned 
char __stdcall HidD_GetInputReport(void *,void *,unsigned long)" 
(?HidD_GetInputReport@@YGEPAX0K@Z)" in Funktion "_main".
***

Muss ich DDK oder WDK Librarys benutzen?
Hat jemand schon so ein Problem gehabt? Habt Ihr  Ideen woran es liegen 
könnte? Ich befürchte das es an dem Report Deskriptor liegt... Was 
glaubt ihr??
Vielen Dank für jede Antwort!

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren