mikrocontroller.net

Forum: PC-Programmierung Suche Beispielprojekt für HID


Autor: KLL (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?t...

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

Autor: KKL (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat denn niemand mit AtUsbHid.dll gearbeitet?

Autor: Mars (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: KKL (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

welche Header, Dlls sind zu includieren?

Autor: Mars (Gast)
Datum:

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

Autor: KLL (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Mars (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: KLL (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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:
hidclass.h
hidpi.h
hidusage.h
usb.h
usb100.h
...

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

Autor: KLL (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Philipp (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.