V-USB hid-data: Daten ohne Aufforderung an den PC schicken

OP #1814458
Lesenswert?
• ▲
▼
Hallo!

Gibt es eine Möglichkeit, das Beispielprogramm hid-data von V-USB so 
anzupassen, dass es von selbst (ohne Anfrage vom PC) Daten an den PC 
sendet?
Ich möchte mit einem PC-Programm darauf reagieren, wenn ein Taster am 
AVR gedrückt wird, würde es aber gerne vermeiden, dauernd den Zustand 
des Tasters abfragen zu müssen.
Persönliche Seite #1814754
Lesenswert?
• ▲
▼
Rufus t. Firefly schrieb:
> Auf USB-Ebene trifft die Aussage von "ado" zwar zu, aber nicht auf
> Anwendungsebene. Eine Tastatur, auch wenn sie über USB angeschlossen
> ist, muss nicht vom Anwendungsprogramm aktiv abgefragt werden.

Jein, das macht dann halt der Treiber, aber das Grundproblem bleibt das 
selbe, es geht immer nur vom Host, in dem Fall der PC, aus.
Gast #1814756
Lesenswert?
• ▲
▼
>Ich möchte mit einem PC-Programm darauf reagieren, wenn ein Taster am
>AVR gedrückt wird, würde es aber gerne vermeiden, dauernd den Zustand
>des Tasters abfragen zu müssen.


>Auf USB-Ebene trifft die Aussage von "ado" zwar zu, aber nicht auf
>Anwendungsebene. Eine Tastatur, auch wenn sie über USB angeschlossen
>ist, muss nicht vom Anwendungsprogramm aktiv abgefragt werden.

Der Tastendruck betrifft dann aber alle Programme. Ich glaube nicht das
er das möchte.
Persönliche Seite #1814762
Lesenswert?
• ▲
▼
Nils ‫‪ schrieb:
> Gibt es also eine Möglichkeit, die Reports, die V-USB HIDs zur
> Datenübertragung nutzen, ohne Aufforderung zu senden?

Ich kenne V-USB's HID Implementierung nicht. Aber im Grunde könntest du 
(falls du Windows nutzt) einen Keyboard Hook registrieren und auf deine 
(Steuer)zeichen lauschen. Das ist quasi ein Callback, falls dir der 
Begriff was sagt, also eine Methode die immer aufgerufen wird wenn über 
eine angeschlossene Tastatur eine Eingabebefehl reinkommt. Je nachdem in 
welcher Sprache du programmierst, das geht auch z.B. in höheren Sprachen 
wie C# noch.
#1822759
Lesenswert?
• ▲
▼
Hallo Nils,

keine Ahnung ob ich Deine Frage richtig verstanden habe. Aber ich glaube 
sie stellt sich garnicht.

Der Host fragt Dein HID-Gerät alle 1 ms ab, und prüft, ob neue Daten 
vorhanden sind (ob Du das willst oder nicht). Also schreibst Du einfach 
(z.B. bei einem Tastendruck) den Datenpuffer deines Endpunktes voll und 
der Host erledigt den Rest. Sind keine Daten im Puffer wird auch nichts 
übertragen.

Gruß Ralf

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.