Forum: Mikrocontroller und Digitale Elektronik V-USB hid-data: Daten ohne Aufforderung an den PC schicken


von Nils ‫. (n-regen)


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.

von ado (Gast)


Lesenswert?

Nein, die Kommunikation wird bei USB immer vom HOST initiert.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

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.

von Christian H. (thunder2002) Benutzerseite


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.

von Nils ‫. (n-regen)


Lesenswert?

Gibt es also eine Möglichkeit, die Reports, die V-USB HIDs zur 
Datenübertragung nutzen, ohne Aufforderung zu senden?

von holger (Gast)


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.

von Christian H. (thunder2002) Benutzerseite


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.

von Chris R. (hownottobeseen)


Lesenswert?

Hi,

vielleicht lohnt es sich, den Quelltext des USB IR Remote Receiver 
anzusehen. Dort werden die Empfangenen Codes per Interrupt Transfer zum 
Host übertragen.

von Potter S. (potter68)


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

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.