USB Usage Id's für eigene Zwecke verwenden

Gast #989142
Lesenswert?

Moin zusammen,

folgende Frage:

Ich habe einen USB-Tastaturcontroller, den ich frei programmieren kann. 
Also die Tastenbelegungen der Tasten eigene Usage Id's zuweisen. Soweit 
kein Problem mit "normalen" Tasten wie ABCD....

Jetzt habe ich einen Buttonhandler der auf bestimmte Make/Break-Codes 
reagiert und dadurch bestimmte Programme aufruft. Das funktioniert alles 
soweit wenn ich ganz normale Tasten hernehme die auch wirklich auf einem 
Keyboard vorhanden sind. Dadurch, dass es eigene Programme sind soll 
natürlich auf herkömmliche Tasten nicht reagiert werden. Also brauch ich 
wohl Usage Id's, die noch nicht vergeben sind. Bei Microsoft hab ich ein 
Dokument gefunden (Teilausschnitt im Anhang) da stehen alle Usage Id's 
drauf. Dort findet man dann einige mit "Reserved". Habe die mal in 
meinen Controller gebrannt und mit einem Tool geschaut ob da Scancodes 
ankommen. Bei 3 Tasten funktionierts, beim Rest nicht. Also auch keine 
wirklich gute Möglichkeit.


Jemand Ahnung wie das mit den Usage Id's abläuft? Ich muss sicher 
stellen, dass ein User nicht durch die normalen Tasten auf der Tastatur 
die Programme starten kann. Gibt es überhaupt "freie" Usage Id's?


Danke
Angehängte Dateien:
Gast #989223
Lesenswert?

Das wird nichts. Entweder sind die UsageIDs in der HID Spec definiert 
und damit zum größeren Teils als Standardtasten verfügbar, oder Du musst 
den Controller dazu bringen Vendor Specific Usages zu senden. Das wird 
aber kein Standardcontroller erlauben, dazu müsste man u.a. den Report 
Descriptor ändern können.
Gast #989272
Lesenswert?

Hi,

@Mars: Softwareseitig sollen die Brake/Make-Codes nur empfangen werden. 
Damit hab ich weniger zutun. Ich muss nur meinen Controller dazu bringen 
die richtigen Codes zu senden.

@Guido: Den Reportdescriptor kann ich auch verändern. Wie meinst du das 
genau? Was ist der Unterschied zu den normalen Usage Id's?

Bei dem Chip handelt es sich übrigens um dem ALCOR AU9410.

Gruß
Gast #989371
Lesenswert?

Zieh Dir mal die HID Spezifikation. Es gibt die Möglichkeit Vendor 
specified IDs zu definieren. Die werden von MacOS und Windows ignoriert, 
Linux versucht die leider zu dekodieren, was Freude bereitet und einen 
Treiber erforderlich macht um an solche Daten ranzukommen.

Zuverlässig klappen kann das aber nur wenn man eine eigene VendorID hat.

Besser wäre es einen Chip zu nehmen, der sich garnicht erst als Tastatur 
anmeldet.
Gast #989544
Lesenswert?

RawInput über den Tastaturtreiber.

Wie gesagt ist es aber sinnvoller einen Chip zu verwenden, der garnicht 
erst als Tastatur auftaucht wenn er auch nicht als Tastatur 
funktionieren soll.
Gast #991169
Lesenswert?

Hi,

die Versionen hören sich schonmal nicht schlecht an!

Jetzt muss ich aber doch nochmal eine Frage loswerden:

Wenn ich einfach irgendeine nicht belegte Usage Id in mein Controller 
eintrage, und dann einfach mit der Software schaue ob da irgendwas 
ankommt. Könnte doch auch funktionieren? Oder schmeißt Windows mit 
Sicherheit die Id bzw. die Make/Brake Codes weg weil sie laut Liste 
nicht vergeben sind?

Gruß

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren