EC135 V5.10 Joystick Inputs
- HellG
- Autor
- Offline
- Junior Boarder
-
Weniger
Mehr
- Beiträge: 26
- Dank erhalten: 3
15 Mär 2022 14:21 #4597
von HellG
EC135 V5.10 Joystick Inputs wurde erstellt von HellG
Hi,
in unserem Cockpit haben wir keinen Joystick angeschlossen, sondern lesen die Positionen direkt aus der Hardware aus überschreiben damit folgende Werte:
sim/joystick/yoke_pitch_ratio
sim/joystick/yoke_roll_ratio
sim/joystick/yoke_heading_ratio
mit den jeweiligen Overrides gesetzt. Das funktioniert auch ganz gut. Nur das Collective bekomme ich nicht unter Kontrolle: Die Maschine hebt sofort unkontrolliert ab, selbst wenn ich mein eigenes Plugin gar nicht laufen lasse. Bisher hatten wir dafür
sim/cockpit2/engine/actuators/prop_ratio[0]
aber das scheint nicht mehr zu funktionieren. Auch die Software der Controls, die ein eigenes Plugin verwendet, funktioniert mit der neuen Version nicht mehr. In welche DataRef muss ich meine Collective Stellung schreiben, um die Maschine wieder fliegen zu können?
Gruß HellG
in unserem Cockpit haben wir keinen Joystick angeschlossen, sondern lesen die Positionen direkt aus der Hardware aus überschreiben damit folgende Werte:
sim/joystick/yoke_pitch_ratio
sim/joystick/yoke_roll_ratio
sim/joystick/yoke_heading_ratio
mit den jeweiligen Overrides gesetzt. Das funktioniert auch ganz gut. Nur das Collective bekomme ich nicht unter Kontrolle: Die Maschine hebt sofort unkontrolliert ab, selbst wenn ich mein eigenes Plugin gar nicht laufen lasse. Bisher hatten wir dafür
sim/cockpit2/engine/actuators/prop_ratio[0]
aber das scheint nicht mehr zu funktionieren. Auch die Software der Controls, die ein eigenes Plugin verwendet, funktioniert mit der neuen Version nicht mehr. In welche DataRef muss ich meine Collective Stellung schreiben, um die Maschine wieder fliegen zu können?
Gruß HellG
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- rotorsim
-
- Offline
- Administrator
-
Weniger
Mehr
- Beiträge: 243
- Dank erhalten: 107
15 Mär 2022 17:35 #4598
von rotorsim
rotorsim antwortete auf EC135 V5.10 Joystick Inputs
Wir überschreiben
sim/flightmodel/engine/POINT_pitch_deg_use[0]
Bedauerlicherweise kann man anders als für die anderen Achsen den Collective nur durch Override beeinflussen. Das ist wohl in X-Plane fest verknüppelt. Die Dataref braucht direkt den Anstellwinkel in Grad. Ich weiß aber nicht, ob das dann mit unserem override kollidiert.
sim/flightmodel/engine/POINT_pitch_deg_use[0]
Bedauerlicherweise kann man anders als für die anderen Achsen den Collective nur durch Override beeinflussen. Das ist wohl in X-Plane fest verknüppelt. Die Dataref braucht direkt den Anstellwinkel in Grad. Ich weiß aber nicht, ob das dann mit unserem override kollidiert.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- HellG
- Autor
- Offline
- Junior Boarder
-
Weniger
Mehr
- Beiträge: 26
- Dank erhalten: 3
16 Mär 2022 21:37 - 16 Mär 2022 21:48 #4604
von HellG
HellG antwortete auf EC135 V5.10 Joystick Inputs
Ok, das verstehe ich noch nicht so ganz:
Für Heading, Pitch und Roll gibt es Override Schalter (override_joystick_pitch/roll/heading) mit denen eigene Werte nach in joystick_heading/pitch/roll_ratio schreiben kann. Wenn ich den Override nicht setze, wird immer der Wert aus joy_mapped_axis_value[1,2,3] genommen. Wird die Zuordnung der Collective-Achse in der ACF-Datei gemacht, oder wie ist das gelöst? Das Problem ist doch, dass ich das Collective (joy_mapped_axis_value[5]) nicht von außen überschreiben kann, sondern allenfalls einer anderen Joystickachse zuweisen kann. Wenn ihr aber POINT_pitch_deg_use[0] überschreibt, mit welchem Wert überschreibt ihr den denn? Bei der 5.03 wird die Variable auch gesetzt, aber nur wenn sich auch der Wert in der Joystickachse verändert hat, so dass ich, wenn ich keine Achse zurordne diese einfach überschreiben könnte. Hier funktioniert aber auch noch mein Mechanismus mit dem Schreiben von prop_ratio[0] (0...1), wobei sich POINT_pitch_deg_use[0] linear von 0 bis 17.3 verändert.
Ich habe das Thema Joystick Inputs vor ein paar Jahren schon mal ziemlich ausführlich untersucht und damals auch Laminar vorgeschlagen, doch eine Möglichkeit zu schaffen um über das SDK Joystick Inputs ganz vorne in die Verarbeitungskette bei joystick_axis_values einzuschleusen. Dies hätte den Vorteil, dass dann alle Mappingfunktionen zur Verfügung ständen. Leider war das Tyler damals zu aufwendig, um es mal eben so zu implementieren.
Sobald die V5.10 auch unter Linux läuft werde ich mich nochmal eingehender damit beschäftigen.
Für Heading, Pitch und Roll gibt es Override Schalter (override_joystick_pitch/roll/heading) mit denen eigene Werte nach in joystick_heading/pitch/roll_ratio schreiben kann. Wenn ich den Override nicht setze, wird immer der Wert aus joy_mapped_axis_value[1,2,3] genommen. Wird die Zuordnung der Collective-Achse in der ACF-Datei gemacht, oder wie ist das gelöst? Das Problem ist doch, dass ich das Collective (joy_mapped_axis_value[5]) nicht von außen überschreiben kann, sondern allenfalls einer anderen Joystickachse zuweisen kann. Wenn ihr aber POINT_pitch_deg_use[0] überschreibt, mit welchem Wert überschreibt ihr den denn? Bei der 5.03 wird die Variable auch gesetzt, aber nur wenn sich auch der Wert in der Joystickachse verändert hat, so dass ich, wenn ich keine Achse zurordne diese einfach überschreiben könnte. Hier funktioniert aber auch noch mein Mechanismus mit dem Schreiben von prop_ratio[0] (0...1), wobei sich POINT_pitch_deg_use[0] linear von 0 bis 17.3 verändert.
Ich habe das Thema Joystick Inputs vor ein paar Jahren schon mal ziemlich ausführlich untersucht und damals auch Laminar vorgeschlagen, doch eine Möglichkeit zu schaffen um über das SDK Joystick Inputs ganz vorne in die Verarbeitungskette bei joystick_axis_values einzuschleusen. Dies hätte den Vorteil, dass dann alle Mappingfunktionen zur Verfügung ständen. Leider war das Tyler damals zu aufwendig, um es mal eben so zu implementieren.
Sobald die V5.10 auch unter Linux läuft werde ich mich nochmal eingehender damit beschäftigen.
Letzte Änderung: 16 Mär 2022 21:48 von HellG.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- HellG
- Autor
- Offline
- Junior Boarder
-
Weniger
Mehr
- Beiträge: 26
- Dank erhalten: 3
16 Mär 2022 21:49 #4606
von HellG
HellG antwortete auf EC135 V5.10 Joystick Inputs
Nachtrag:
ich denke in X-Plane werden die Werte aus joy_mapped_axis_value[] nur dann in die jeweilige DataRef geschrieben, wenn auch joy_mapped_axis_avail[] für die jeweilige Achse auf 1 steht. So ist es zumindest möglich, wenn die entsprechende Joystickachse nicht zugeordnet ist, oder sich nicht verändert, das jeweilige Ziel zu überschreiben. Dafür muss man allerdings wissen, welches die jeweilige Ziel-DataRef ist. Für Heading, Pitch und Roll sind das die Joystickachsen, aber für das Collective ist das leider nicht so klar.
Könnte es außerdem sein, dass ihr die joystick_override_<heading/pitch/roll> auch über das Plugin setzt? Bei meinem ersten Versuch unter Linux sah das im DataRefTool fast so aus.
ich denke in X-Plane werden die Werte aus joy_mapped_axis_value[] nur dann in die jeweilige DataRef geschrieben, wenn auch joy_mapped_axis_avail[] für die jeweilige Achse auf 1 steht. So ist es zumindest möglich, wenn die entsprechende Joystickachse nicht zugeordnet ist, oder sich nicht verändert, das jeweilige Ziel zu überschreiben. Dafür muss man allerdings wissen, welches die jeweilige Ziel-DataRef ist. Für Heading, Pitch und Roll sind das die Joystickachsen, aber für das Collective ist das leider nicht so klar.
Könnte es außerdem sein, dass ihr die joystick_override_<heading/pitch/roll> auch über das Plugin setzt? Bei meinem ersten Versuch unter Linux sah das im DataRefTool fast so aus.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- HellG
- Autor
- Offline
- Junior Boarder
-
Weniger
Mehr
- Beiträge: 26
- Dank erhalten: 3
21 Mär 2022 17:07 #4623
von HellG
Wenn ihr den Wert aus einer Joystick DataRef nehmt (z.B. joy_mapped_axis_value[5]) hier mein Vorschlag: legt doch eine eigene (r/w) DataRef an, in die der Wert aus joy_mapped_axis_value[x] immer dann geschrieben wird, wenn joy_mapped_axis_avail[x]=1 ist. Und danach macht ihr mit der DataRef was immer ihr wollt und schreibt sie dann nach POINT_pitch_deg_use[0]. So könnte ich von außen die DataRef überschreiben, so lange kein Joystick angeschlossen ist und eigene Daten sendet. Oder ist eure Verarbeitungskette noch komplizierter?
HellG antwortete auf EC135 V5.10 Joystick Inputs
Ok, aber womit? Mit welchem Wert wir diese DataRef beschrieben? Ich habe keinen Joystick, den ich auf Collective mappen könnte (das Menü in X-Plane ist tatsächlich leer) und trotzdem hebt der Heli ab mit POINT_pitch_deg_use[0]=17.29999999Wir überschreiben
sim/flightmodel/engine/POINT_pitch_deg_use[0]
Wenn ihr den Wert aus einer Joystick DataRef nehmt (z.B. joy_mapped_axis_value[5]) hier mein Vorschlag: legt doch eine eigene (r/w) DataRef an, in die der Wert aus joy_mapped_axis_value[x] immer dann geschrieben wird, wenn joy_mapped_axis_avail[x]=1 ist. Und danach macht ihr mit der DataRef was immer ihr wollt und schreibt sie dann nach POINT_pitch_deg_use[0]. So könnte ich von außen die DataRef überschreiben, so lange kein Joystick angeschlossen ist und eigene Daten sendet. Oder ist eure Verarbeitungskette noch komplizierter?
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- HellG
- Autor
- Offline
- Junior Boarder
-
Weniger
Mehr
- Beiträge: 26
- Dank erhalten: 3
24 Mär 2022 13:39 - 24 Mär 2022 13:41 #4625
von HellG
HellG antwortete auf EC135 V5.10 Joystick Inputs
Hi,
ich habe nochmal mit einem Entwickler beim Hersteller unserer Helicopter Controls (Brunner Elektronik AG) gesprochen und erfahren, welche DataRefs die zur Zeit in ihrem Plugin nutzen. In Zukunft wird es allerdings auch die Möglichkeit geben, die Achsen der Controls auf beliebige DataRefs oder Commands mit angepasster Skalierung zu mappen. Dafür müssen allerdings auch entsprechende DataRefs zur Verfügung stehen. Gerade im Hinblick auf Doppelsteuerung (die wie man hört in X-Plane 12 tatsächlich implementiert wird) wären meiner Meinung nach von außen beschreibbare DataRefs die beste Lösung. Und ob dann zusätzlich noch entsprechende Overrides eingeführt werden oder den eingebauten Joystick inputs über joy_mapped_axis_avail Priorität gegeben wird, ist dann eigentlich auch egal. Ich möchte hier nur ungerne den Weg gehen, dass ich erst die Daten mit meinem Plugin auslese, dann in einen externen virtuellen Joysticktreiber schreibe, um sie dann wieder in X-Plane zur Verfügung zu haben. Auch wenn bei meinen Framerates die Latenz einer solchen Lösung gering wäre, ist sie doch immer noch alles andere als ideal.
Gruß HellG
ich habe nochmal mit einem Entwickler beim Hersteller unserer Helicopter Controls (Brunner Elektronik AG) gesprochen und erfahren, welche DataRefs die zur Zeit in ihrem Plugin nutzen. In Zukunft wird es allerdings auch die Möglichkeit geben, die Achsen der Controls auf beliebige DataRefs oder Commands mit angepasster Skalierung zu mappen. Dafür müssen allerdings auch entsprechende DataRefs zur Verfügung stehen. Gerade im Hinblick auf Doppelsteuerung (die wie man hört in X-Plane 12 tatsächlich implementiert wird) wären meiner Meinung nach von außen beschreibbare DataRefs die beste Lösung. Und ob dann zusätzlich noch entsprechende Overrides eingeführt werden oder den eingebauten Joystick inputs über joy_mapped_axis_avail Priorität gegeben wird, ist dann eigentlich auch egal. Ich möchte hier nur ungerne den Weg gehen, dass ich erst die Daten mit meinem Plugin auslese, dann in einen externen virtuellen Joysticktreiber schreibe, um sie dann wieder in X-Plane zur Verfügung zu haben. Auch wenn bei meinen Framerates die Latenz einer solchen Lösung gering wäre, ist sie doch immer noch alles andere als ideal.
Gruß HellG
Letzte Änderung: 24 Mär 2022 13:41 von HellG.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
Moderatoren: Hilli
Ladezeit der Seite: 0.167 Sekunden