Forum: PC-Programmierung Suche Beispielprojekt für HID


von KLL (Gast)


Lesenswert?

Hallo Leute,

ich habe AT90USB als HID an PC angeschlossen.
Die Enumeration scheint gut zu funktionieren. Gerät wird im Gerätmanager 
als HID angezeigt. Jetzt möchte ich Daten an Geräte senden und 
empfangen.

Leider konnte ich kein Beispielprojekt mit sourcecode finden, wo ich 
sehen kann wie ich das Gerät ansprechen und Datentransfer realisiere. Es 
gibt ein Beipsielcode von Atme 
hier:http://www.atmel.com/dyn/products/tools_card.asp?tool_id=4199

Aber die zeigen dort nur wie man AtUsbHid.dll benutzt. Ich würde es aber 
eine Anwendung nur mit API Funktionen schreiben.

Hat mir jemand einen Tipp?

Danke
Karl Liener-Linz

von KKL (Gast)


Lesenswert?

Hat denn niemand mit AtUsbHid.dll gearbeitet?

von Mars (Gast)


Lesenswert?

Wo liegt dein Problem?
Mit WriteFile kannst du einen Report zum USB Device schicken und mit 
ReadFile kannst due einen oder mehrere Reports von deinem USB Device 
lesen. Wobei das erste Byte im Puffer die ReportID darstellt und 
entsprechend von dir beim Schreiben gesetzt werden muss. Abgesehen davon 
bietet die hid.dll noch einige weitere mehr oder minder nützliche 
Funktionen.

Lg

von KKL (Gast)


Lesenswert?

Hallo,

welche Header, Dlls sind zu includieren?

von Mars (Gast)


Lesenswert?

windows.h für CreateFile/WriteFile/ReadFile.
hidsdi.h für HID spezifische Funktionen(Nur im DDK).
Setupapi.h für Device Enummeration.

von KLL (Gast)


Lesenswert?

@Mars: vielen Dank.

DDK ist also zwingende Voraussetzung?
Soweit ich weiß muss man den kaufen....

Kannst du mir auch die Funktionen nennen, oder entsprechende 
Literatur/Links empfehlen?

Mfg
Karl Liener-Linz

von Mars (Gast)


Lesenswert?

Hi!

Das DDK kannst du gratis bei MS nach Registrierung downloaden. Nur das 
Header File ist - warum auch immer - nicht im Platform SDK sondern nur 
im DDK vorhanden. Somit kannst du auch ohne DDK deine Anwendung 
entwickeln, da die hid.dll Bestandteil von Windows und somit auf jedem 
System vorhanden ist.
=>http://msdn.microsoft.com/en-us/library/ms790932.aspx
=>http://msdn.microsoft.com/en-us/library/dd406734.aspx

Ich habe mir vor kurzem eine Lib für WinUSB und HID in C# geschrieben. 
Bei Bedarf kann ich diese mal online stellen.

Lg

von KLL (Gast)


Lesenswert?

Hallo Mars,

vielen Dank, deine Hinweise sind sehr hilfrech!

>DDK
Ich hatte gestern nach DDK Download gesucht. Konnte nur WDK (Windows 
Development Kit) bei Microsoft finden. Aber die Beschreibung sagt, WDK 
ist der neue Name für DDK.

>nur das Header File ist - warum auch immer - nicht im Platform SDK sondern >nur 
im DDK vorhanden.
meinst du die datei hid.h?

>Somit kannst du auch ohne DDK deine Anwendung entwickeln
In der Regel benutze ich Visual Studio 2005. Aus Neugier habe ich in 
DEV-C++ reingeschaut. Im Installationsverzeichnis unter Include/DDK sind 
einige HID/USB Header vorhanden:
1
hidclass.h
2
hidpi.h
3
hidusage.h
4
usb.h
5
usb100.h
6
...

kann man diese header verwenden um einen HID Treiber zu entwickeln?

von KLL (Gast)


Lesenswert?

Nachtrag

@Mars:
>Ich habe mir vor kurzem eine Lib für WinUSB und HID in C# geschrieben.
>Bei Bedarf kann ich diese mal online stellen.

Ja gerne. Dafür wäre ich dir sehr dankbar.

Gruß
Karl Liener-Linz

von Philipp (Gast)


Lesenswert?

Hallo,

ich würde mich auch über die Lib in C# freuen.

Ich versuche zur Zeit, von einem Fernbedienungsempfänger, der sich als 
HID-Maus und Tastatur anmeldet, die Befehle so abzufangen, dass sie 
nicht mehr beim Betriebssystem ankommen. Bislang hatte ich immer das 
Problem, das LowLevelHooks die Befehle nicht von denen der Tastatur 
unterscheiden können (und damit die Tastatur auch blockieren) und es 
beim RawInput nicht möglich ist, den Befehl abzufangen, sodass das 
OS/das aktive Programm auch auf die Eingabe reagiert, was ich nicht 
will.


Vielen Dank und viele Grüße
Philipp

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.