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.
Nein, die Kommunikation wird bei USB immer vom HOST initiert.
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.
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.
Gibt es also eine Möglichkeit, die Reports, die V-USB HIDs zur Datenübertragung nutzen, ohne Aufforderung zu senden?
>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.
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.
Hi, vielleicht lohnt es sich, den Quelltext des USB IR Remote Receiver anzusehen. Dort werden die Empfangenen Codes per Interrupt Transfer zum Host übertragen.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.