Raw Input und Force Feedback / Output

Design Patterns, Erklärungen zu Algorithmen, Optimierung, Softwarearchitektur
Forumsregeln
Wenn das Problem mit einer Programmiersprache direkt zusammenhängt, bitte HIER posten.
Antworten
bananashakealchemist
Beiträge: 3
Registriert: 16.06.2016, 10:55

Re: Raw Input und Force Feedback / Output

Beitrag von bananashakealchemist »

gibt es schon neuigkeiten hierzu? es wäre supi wenn ihr eure derzeitigen codes veröffentlichen könnt. ein teilerfolg ist besser als gar kein erfolg. hoffentlich können wir es dann gemeinsam lösen. :)
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Raw Input und Force Feedback / Output

Beitrag von Krishty »

Ich hab’s damals vorerst aufgegeben und habe jetzt auch keine Zeit mehr, mich reinzuhängen :(

Macht das denn niemand sonst? Es muss doch irgendwo ein paar Entwickler geben, die sich mit der Problematik auskennen?
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
bananashakealchemist
Beiträge: 3
Registriert: 16.06.2016, 10:55

Re: Raw Input und Force Feedback / Output

Beitrag von bananashakealchemist »

das ist sehr schade. leider ist dieser thread einer der wenigen nützlichen threads im internet, die sich überhaupt erst mit dem thema beschäftigen.

ich hab das "Windows Driver Kit (WDK) 8.0 Samples" paket runtergeladen und mir die "HClient sample application" beispiele angeschaut. dort sieht man u.a. wie man ein report erstellt und verschickt. hilft mir aber wenig, da ich leider absolut keine ahnung hab, wo der controller die force feedback daten lagert und wie diese aussehen sollen.

es wäre schon ein anfang, wenn ich rausfinden könnte, ob ein controller überhaupt force feedback unterstützt.
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Raw Input und Force Feedback / Output

Beitrag von Krishty »

Das Folgende ist total mutmaßlich weil ich nie vollständige Informationen dazu finden konnte, aber …
  • Force Feedback wird tatsächlich aktiviert, indem man einen Report erstellt und verschickt.
  • Die ganzen Force Feedback-Daten sind nicht im USB-HID-Standard festgelegt, sondern laufen über herstellerspezifische Reports (die mit den großen Zahlen in den IDs).
  • Das Force Feedback scheint komplett auf Microsofts DirectInput-Implementierung ausgerichtet zu sein. (Verwaltung in Blöcken von Effekten mit Parametern oder so.) Entweder, weil das der einzige Standard ist, den Hardware-Hersteller befolgen können; oder, weil Windows das für angeschlossene Geräte abstrahiert.
  • Ich habe vergeblich versucht, Informationen darüber zu finden, wie Hardware-Hersteller Force Feedback implementieren. Ob es da Datenblätter mit Schnittstellen gibt usw usf. Ich kenne aber leider niemanden aus der Branche, und diese Suche ist sehr zehrend.
  • Force Feedback scheint nur im exklusiven Modus verfügbar zu sein. Ich habe durch Zufall (Brute-Force alle Report IDs durchprobiert und an meinen Controller geschickt) die Vibration aktiviert, und sie wurde NICHT beendet, als mein Programm beendet wurde. Ich musste den Controller trennen und neu verbinden. Das bedeutet schonmal, dass keine zwei Anwendungen zugleich drauf zugreifen sollten und dass lustige Dinge passieren, falls das Programm während eines Force Feedback-Effekts abstürzt.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
bananashakealchemist
Beiträge: 3
Registriert: 16.06.2016, 10:55

Re: Raw Input und Force Feedback / Output

Beitrag von bananashakealchemist »

Krishty hat geschrieben:Die ganzen Force Feedback-Daten sind nicht im USB-HID-Standard festgelegt
bist du sicher? unter "5. PHYSICAL INPUT DEVICE PAGE (0X0F)" (http://www.usb.org/developers/hidpage/pid1_01.pdf) wird force feedback beschrieben. ich versuch das ganze grad zu entschlüsseln, weiss aber leider noch nicht mal, wie ich überhaupt erst diese daten auslesen kann.
Krishty hat geschrieben:Ich habe durch Zufall (Brute-Force alle Report IDs durchprobiert und an meinen Controller geschickt) die Vibration aktiviert, und sie wurde NICHT beendet, als mein Programm beendet wurde.
ich vermute mal, es gibt noch einen dauer parameter, den man angeben muss. zumindest wird duration im dokument erwähnt.

ansonsten könnte das vielleicht noch interessant sein: http://www.microchip.com/forums/m487478-p2.aspx

wenn ich mal zeit habe, werde ich mit xinput die vibration starten und mir dann die HidP_GetUsageValue() und HidP_GetUsages() input/output daten anschauen, ob sich was verändert hat.
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Raw Input und Force Feedback / Output

Beitrag von Krishty »

Sicher bin ich mir bei nichts, darum steht „total mutmaßlich“ drüber ;)

Die USB-HID-Sachen hat keiner meiner Controller unterstützt (oder ich habe es halt total falsch gemacht), aber DirectInput ging. Ist Jahre her, aber ich meine mich zu erinnern, dass der Rückgabecode jedes Mal „nicht implementiert“ war oder so. Irgendwo hatte ich auch ein Datenblatt, dass die Vendor-defined ID XXXX mit Daten YYYY den DirectInput-Effekt ZZZZ auslöst, glaube ich.

Dein Experiment betreffend: Ja, prüf das mal. Falls sich was ergibt: Möglicherweise kannst du eine gefakte hid.dll bauen und ins Programmverzeichnis legen, und dir dann die Parameter anschauen, mit denen sie aufgerufen wird.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Antworten