MobiFlight Community Support

Welcome to the forum for MobiFlight! Feel free to reach out to the community in case you have questions, issues or just want to share great ideas or details about your latest home cockpit project.

You like MobiFlight? Donate via PayPal and support the MobiFlight development. Thanks! 

05/03/2024 - This forum is read-only

The community support for MobiFlight has moved exclusively over to our Discord server. Register for free and enjoy more interactive functions like image and video upload, voice chat. More than 7,000 registered users around the world make it a great experience!

See you on our MobiFlight Community Discord server.

A HUGE Thank You to everyone who participated in the forum, especially obviously to Pizman and Stephan who did an outstanding job over so many years providing an incredible service to the MobiFlight community.

The forum is still providing a lot of good content, hence we keep this information accessible.

icon
Avatar
NeffyHH
Posts: 4
Moin aus Hamburg :)

ich bin gerade in den Überlegungen ein A320 sim mit Jeehell zu bauen und bin bei der Recherche auf diese fantastische Software gestossen :) Was hier so lese und sehe bin ich schon recht beeindruckt - kompliment und bestimmt ein door-opener für viele die damit anfangen (so wie ich)

Derzeit hänge ich bei der FCU mit den Push/Pull funktionen für die AP modi fest. Encoder mit Push gibt es ja zuhauf - mit push/pull wirds teuer ... Selber bauen ist eine Alternative jedoch ohne Erfahrung am anfang etwas schwierig

Alternativ ünerlege icb das Verhalten des Pull zu simulieren, in dem man zum Beispiel definiert: long push = pull / wobei das long vielleicht 2 sekunden wäre. Sowas wäre für den Anfang ausreichend für mich.

Ist es möglich derartiges zu konfigurieren?

Vielen Dank für Euer Feedback
Gruß
Dennis
2017-01-11 08:23
Avatar
pizman82
From: ETSI, Germany
Posts: 6010
Supporter
Hallo Dennis

Ja und Nein !

Es geht genau wie du es willst, ABER aktuell nicht über Mobiflight sondern du brauchst dafür Pete Dawsons "FSUIPC" als Registirerte Version.
Weiß nicht wie weit du in dem Thema schon drin bist.... Aber ich sage mal Pauschal das man beim Cockpitbau sowieso nicht an FSUIPC vorbei kommt... Somit sind diese 20-30 € irgendwann sowieso fällig !

Mit FSUIPC kannst du dann einen eigenen Lua Code schreiben ( Oder schlicht den von uns hier kopieren) und sagen.... Wenn Taster kurz gedrückt wird mache A Wenn er 2 mal hintereinander gedrückt wird mache B und wenn er gehalten wird dann mache C. ( Oder du definierst eigene Bedingungen)

Hier ist der Englische Topic dazu der das erklärt..... http://www.mobiflight.de/forum/topic/535.html

Falls English nicht so dein Ding ist sag bescheid.... Dann können wir dir auch hier helfen !
Good Luck !
2017-01-11 09:01
Avatar
NeffyHH
Posts: 4
Hey Pizman,

danke für Deine schnelle Antwort B) :thumbup:

Also die Lizenz für FSUIPC habe ich schon da ich in der Vergangenheit schon ein bisschen mit LINDA und Lua Scripts gemacht habe. Habe hier zur Zeit meine HOTAS Warthog Thrustmaster mit Linda auf A320 getrimmt und dafür einige der verfügbaren Joystick-Buttons entsprechend belegt... Insofern verstehe ich mehr oder weniger die Grundzüge von FSUIPC und Offsets.

Wenn ich das in dem anderen Thread richtig verstanden habe, so ist eine Lösung für das Problem eigentlich folgender.

- man erstellt ein event listener auf dem im thread benannten offset
- in mobiflight konfiguriert man den Push Encoder auf onPress derart, das das Offset einen neuen Wert bekommt
- dies triggert den listener und called die entsprechend Funktion
- diese Funktion wiederrum erkennt ob es sich um ein single, double oder long push handelt und führt entsprechend gewünschte Offset Änderung durch

Eine Frage hierzu habe ich hierzu:

- würde man auf "onRelease" wieder das gleiche Offset anpassen um zu erkennen, dass das Push Roundtrip beendet ist?
- dies könnte man ja dann in der Funktion "verwursten" und die Auswertung machen
-- wenn offset = WertA (aus onPress) dann starte auswertung des Push Verhaltens
-- wenn offset = WertB (aus onRelease) dann werte das Ergebnis aus der Funktion aus und übergebe das jeweilige Resultat in das gewünschte Ergebnis

Macht das Sinn?

Es wäre natürlich ein wenig geschmeidiger, wenn man lua scripts direct in MobiFlight aufrufen kann (ähnlich wie in FSUIPC), dann spart man sich den Umweg über den Event listener.

Gibt es eigentlich noch mehr frei verfügbare Offsets die man selbst belegen kann?

Viele Grüße

Dennis
2017-01-12 11:21
Avatar
pizman82
From: ETSI, Germany
Posts: 6010
Supporter
Hallo Dennis.
Sitze gerade mit einen fetten Smile am Computer. Da heist es immer die Nordlichter und die Bayern passen nicht zusammen..... Aber offenbar denken wir komplett gleich. Oder du hast meinen Email Account gehackt :scared: und gelesen worüber ich mit Sebastian (Admin Mobiflight) seit einigen Wochen rede.

Zu deinen Fragen....

Da du dich mit Lua etwas auskennst können wir ja ins Detail gehen....
Wie du siehst ist der Script von Pete Dawson so aufgebaut, das er auf einen Joystick Button beruht. Somit könntest du diesen direkt für deinen Warthog benutzen.
Das Problem ist aber das Mobiflight kein Gamecontroller ist und somit nicht als Joystick erkannt wird !

Was sebastian gemacht hat (Custom Offset beschreiben) war der erste Ansatz, wie man das über Mobiflight lösen könnte.
Wie du auch hier richtig kombinierst, können wir theoretisch als "Input" für Pete Dawsons script sagen.... Nimm nicht den Push/Release des Joystickbutton XY als Ausgangspunkt für die Berechnung sondern lese Offset 66C0 Bit 1 ... Wenn 1 Dann entspricht das dem Drücken(halten) des Buttons... Wenn 0 dann ist das wie wenn der Joystickbutton losgelassen wird. Also anstatt "event.button" würde man "event.offset" als Input verwenden (( Aber das ist eigentlich nicht nötig, da ich dafür einen besseren Weg gefunden habe))

Ich verwende dafür die Offsets 3340 (und folgende) . Damit kann man eine Config Erstellen die FSUIPC einen "Virtuellen Joystickbutton"
vorgaugelt. Sprich wenn dein Encoder gedrückt wird dann "meint" FSUIPC das z.b. Taste 1 von Joystick 64 gedrückt wurde. Gibst du jetzt in dem script von Pete Dawson als "Input" an das er Taste 1 von Joystick 64 verwenden soll dann bewirkt dein Tastendruck des Encoders (Über Mobiflight) das gleiche wie wenn du einen echten Joystick verwenden würdest.
Eine genaue Beschreibung ist in Arbeit. Ich wollte aber warten damit ob Sebastian diese neue Funktion direkt in Mobiflight einplant, was den Guide überflüssig macht.
Solltest du es nicht selber schaffen dann gib bescheid.... Gerne auch per Email pizman@freenet.de


Jetzt noch zu deiner Anmerkung das es cool wäre Luascripts direkt über MF zu starten...
Daran arbeitet Sebastian ebenfalls gerade.... Hänge da auch seit Mittwoch dran aber leider hatten wir noch keinen Erfolg. Der Weg ist schon klar... Nur an der umsetzung fehlt noch der Feinschliff.... In DIESEN Fall ist es aber unnötig..... Denn der Script (wenn du es richtig verstanden hast) muss eben nicht "aufgerufen" werden wenn man den Button drückt, sondern dieser script muss IMMER laufen. Folgerlich braucht man den nicht über MF steuern sondern er gehört in die ipcready.lua oder gleich in die fsuipc4.ini. als "AUTO"

Übrigens kann man auch hierfür die "Notlösung" verwenden die Sebastian in dem Thread vorgestellt hat. Per Luascript kann man definieren ... Scanne z.b. Offset 66c0 . wenn Bit 1 =1 dann starte Luascript xyz wenn bit wieder 0 dann KillLua xyz . Sozusagen ist DAS halt eine profisorische Lösung um ALLES in Lua zu machen was man will, zumindest bis es möglich ist mit Mobiflight direkt über das Interface auf Lua zuzugreifen.



Zum Schluss noch die Frage zu den freien Offsets....
Auch hier kann ich gutes berichten. Wie es aussieht haben wir nicht nur die 64 byte sondern hunderte bytes mehr. Z.b. könnten wir die Range verwenden die für Projekt Magenta reserviert ist, sofern wir dieses Addon nicht nutzen. Aber auch dazu wollte ich genaueres schreiben wenn ich es selber getestet und ausgearbeitet habe.


Hoffe die Infos bringen dich erst mal weiter..... Schreib wenn du noch was brauchst!
Good Luck !
2017-01-13 09:02
Avatar
NeffyHH
Posts: 4
Servus pizman :-)

also Weißwurscht kommt mir trotzdem net auf den Teller :-) :scared: Alles andere sind bestimmt nur Vorurteile :w00t:

Vielen Dank für die ausführliche Erklärung - ich habe jetzt auch am Wochenende etwas rumprobiert, hänge jetzt aber trotz Deiner guten Erklärung fest :-)

Was habe ich also gemacht:

- das script von Pete habe ich zumindest erfolgreich ausprobieren können

Dafür habe ich entsprechend ein .lua file angelegt und dort am ende event.button die variablen auf einen der Hotas Buttons gelegt. Das script tut dann genau das was es soll nachdem ich es auch in ipcReady gestartet hatte.

ABER jetzt wollte ich das ganze eben auch mal über den von Dir genannten virtuellen Button probieren

Dazu muss ich aber sagen, dass ich bisher noch kein A-Mega Board habe und insofern mein folgernder weg eventuell sowieso nicht geht. Ich fürchte aber ich habe ganz üble Syntax Fehler gemacht :blush: - ich bin da einfach noch nicht sehr erfahren mit.

Als erstes habe ich versucht dem event.button nun Joystick 64 - Button 1 zu assignen. Das Script läuft da auch ohne Probleme an und wartet augenscheinlich auf diesen Button.

Um jetzt diesen virtuellen Button zu drücken, war meine Idee ein weiteres Lua script zu schreiben. Hierfür habe ich ipc.btnPress(1) verwendet. Dieses Script habe ich via LINDA auf einen Hotas Button gelegt in der Hoffnung das jetzt die Kette - LINDA --> ipc.btnPress(1) --> event.button --> pete's lua script abläuft.

Was allerdings passiert ist, das der event listener nicht auf ipc.btnPress(1) reagiert.

Jetzt habe ich nochmal weiter geschaut und gelesen, das event.button nicht für virtuelle buttons geeignet ist. Das steht zumindest in dem FSUIPC Lua Library meiner FSUIPC Version (4.955).

Also weiter geschaut, und das offset 29F0 gefunden und obiges script von ipc.btnPress(1) auf ipc.writeSD("29F0", 0x00014001) geändert um den Button 1 von Joystick 64 zu drücken. Das Ergebnis ist leider das gleiche wie vorher.

Danach habe ich event.button mit event.offsetmask("29F0", 0x00014001, "SD", "buttonpress") ausgetauscht - aber der listener reagiert nach wie vor nicht.

Ich habe hier mit Sicherheit irgendwo ein Syntax oder Denkfehler drin.

Hast Du eventuell eine Idee warum das nicht funktionieren will?

Danke
Viele Grüße nach Bayern :-)

Dennis
2017-01-15 19:35
Avatar
pizman82
From: ETSI, Germany
Posts: 6010
Supporter
Holla die Waldfee :-)

Entweder hab ich nicht genau verstanden was du willst bzw mit was du arbeitest.... Oder du bist einen enormen Umweg gegangen der nicht nötig ist.....

iconNeffyHH:


- das script von Pete habe ich zumindest erfolgreich ausprobieren können

Dafür habe ich entsprechend ein .lua file angelegt und dort am ende event.button die variablen auf einen der Hotas Buttons gelegt. Das script tut dann genau das was es soll nachdem ich es auch in ipcReady gestartet hatte.

ABER jetzt wollte ich das ganze eben auch mal über den von Dir genannten virtuellen Button probieren



Erstmal soweit gut.... Du hast auch verstanden das der Script selbst immer läuft und NICHT auf einen Button gelegt wird per Linda oder FSUIPC. ( So verstehe ich dich zumindest)

iconNeffyHH:


Als erstes habe ich versucht dem event.button nun Joystick 64 - Button 1 zu assignen. Das Script läuft da auch ohne Probleme an und wartet augenscheinlich auf diesen Button.

Um jetzt diesen virtuellen Button zu drücken, war meine Idee ein weiteres Lua script zu schreiben. Hierfür habe ich ipc.btnPress(1) verwendet. Dieses Script habe ich via LINDA auf einen Hotas Button gelegt in der Hoffnung das jetzt die Kette - LINDA --> ipc.btnPress(1) --> event.button --> pete's lua script abläuft.



Hier wirds etwas unverständlich....
Du hast offenbar im Script von Pete die Werte "joy = 64" und "btn=1" abgeändert ...... Auch das ist richtig !

Aber warum versuchst du jetzt auf deinen Hostas Button ein Script zu legen, der diesen "Virtuellen" Button von Joystick 64 drückt ? Wenn du die Funktion mit dem Hosta steuern willst dann kannst du direkt diesen Button in Petes Script eintragen...... Du willst doch deinen Encoder verwenden, der über Mobiflight konfiguriert werden soll.....
Verstehe also gerade nicht warum du versuchst per Script mit einen Druck auf den Hotas diesen Virtuellen Button zu steuern.

Zur Lösung selbst.
http://www.mobiflight.de/forum/message/3498.html Hier habe ich es bereits mal erklärt.
Offset 29F0 halte ich an der Stelle übrigens für ungünstig.... Geht zwar auch aber der ist eher was für Sebastian da er damit mit nur einen Script alle 288 Buttons abdecken kann. Für "unsere" Zwecke denke ich ist 3340 der einfachere Weg.



Wenn du noch rückfragen hast melde dich. Oder falls ich dich falsch verstanden habe und du grad ganz was anderes machen willst dann erklärs mir nochmal.
Good Luck !
2017-01-15 22:15
Avatar
NeffyHH
Posts: 4
Moin B)

iconQuote:

Erstmal soweit gut.... Du hast auch verstanden das der Script selbst immer läuft und NICHT auf einen Button gelegt wird per Linda oder FSUIPC. ( So verstehe ich dich zumindest)



Yepp - genauso habe ich es gemacht

iconQuote:

Du hast offenbar im Script von Pete die Werte "joy = 64" und "btn=1" abgeändert ...... Auch das ist richtig !



:thumbup: :thumbup: :thumbup: - auch das habe ich scheinbar richtig verstanden :blink:

iconQuote:

Aber warum versuchst du jetzt auf deinen Hostas Button ein Script zu legen, der diesen "Virtuellen" Button von Joystick 64 drückt ?



OK, das habe ich scheinbar nicht gut erklärt :-/

Ich habe noch kein Mega-Board insofern kann ich eine Konfiguration mit einem Encoder an Mobiflight nicht testen. Ich dachte einfach (nur um zu sehen, wie es funktioniert) das ich das fehlende Board über entsprechendes Script "simulieren" kann - rein aus Neugier, Wissensdurst und vermutlich einer Tendenz zum "übers Ziel hinausschießen" :-)

Das angestrebte Setup ist sicherlich die Variante mit einem Encoder über Mobiflight ... und dies wird jetzt der nächste Schritt - dann sprechen wir auch über das gleiche und nicht über Probleme wo keine sind :-)

Danke nochmal für den Link und die Erklärung, das hilft auch nochmal sehr :-)

Vielen Dank für Deine Hilfe
Schönen Abend noch

VG
Dennis
2017-01-15 22:51
Avatar
pizman82
From: ETSI, Germany
Posts: 6010
Supporter
Ok. Kappiert.

Also haben wir jetzt probiert einen simulierten Virtuellen Joystickbuttton zu steuern mithilfe eines simulierten "Virtuellen MobiflightBoards" das wiederrum von einen echten Joystik angesteuert wurde.
Oder anders gesagt.... Wir wollten von München über Rom und Istanbul nach Hamburg fahren. :w00t:

In diesen Sinne.... Kauf dir ein Arduino und leg los.... Wenn du jetzt schon so viel Verständnis von der Thematik hast wirst du schnell Erfolge sehen.
Good Luck !
2017-01-15 23:22
icon