Forum: Mikrocontroller und Digitale Elektronik [HID] Joystick & Outputs


von Easty (Gast)


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 
:)

von Easty (Gast)


Lesenswert?

Kann keiner helfen? :(

von Guido Körber (Gast)


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...

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.