[HID] Joystick & Outputs

Gast #1715778
Lesenswert?

Ich versuche momentan meinen Gamecube-Controller mit dem PC zu 
verbinden. Das ganze funktioniert auch recht gut; jedoch bereitet mir 
der Rumbleeffekt noch sorgen.

Ich kann im HID-Report einen Output einstellen und diesen Report auch 
manuell per Tools wie HID-Test senden und es funktioniert alles; jedoch 
kann ich dem Output sozusagen irgendwie keinen "Namen" geben.

Egal welche Usage-Pages und Usages ich verwende - die Outputs werden 
nirgendswo im Windows-Joystick Dialog angezeigt (ok, verständlich); aber 
auch nicht von dem Dolphin-Emulator erkannt.

Nach welchem Schema werden diese Outputs entsprechend von der Software 
erkannt? Was genau muss sie ausmachen?

Ausschnitt für den Output @ HID Report:
1
    0xa1, 0x00,                    //   COLLECTION (Physical)
2
    0x05, 0x09,                    //     USAGE_PAGE (LEDs)
3
    0x09, 0x0F,                    //     USAGE (Generic Indicator)
4
    0x75, 0x08,                    //     REPORT_SIZE (8)
5
    0x95, 0x01,                    //     REPORT_COUNT (1)
6
    0x15, 0x00,                    //     LOGICAL_MINIMUM (0)
7
    0x25, 0x01,                    //     LOGICAL_MAXIMUM (1)
8
    0x92, 0x02, 0x01,              //     OUTPUT (Data,Var,Abs,Buf)
9
    0xc0,                          //   END_COLLECTION

Alternativ würde sich auch eine Implementierung via Forcefeedback 
anbieten - doch ist der Report dazu sehr unübersichtlich. Welche der 200 
verschiedenen Collections braucht man minimal für einen einfachen 
bool'schen Steurungswert @ Vibrationen? Kann doch nicht sein, dass man 
dafür einen 1200-Byte-Descriptor braucht?

Generell also die Frage: Wie bring ich Windows, Dolphin, o. Ä. dazu 
einen Output-Report entsprechend der Usages zu erkennen? Bin hier echt 
am verzweifeln bei den ganzen Dokumentationen.. - Jede Hilfe wäre nett 
:)
Gast #1716208
Lesenswert?

Also die "Generic Indicator" Usage wird natürlich nicht von den 
Systemtreibern angesteuert, weil die ja nicht wissen können was das nun 
für ein Indicator ist. Deine Generic Indicator Outputs sollten sich aber 
ganz einfach per File-IO ansprechen lassen.

Force Feedback ist ein sehr komplexes Thema und vor Jahren von Microsoft 
und Immersion gründlichst mit Patenten vermint worden, bevor die nicht 
abgelaufen sind werde ich mich mit dem Thema nicht weiter befassen...

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