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
pizman82
From: ETSI, Germany
Posts: 6010
Supporter
Wie von Sebastian angeregt erstelle ich dafür ein neues Thema....
Vorgeschichte siehe hier..... http://www.mobiflight.de/forum/topic/199.html


1. Problemursache.
Eine falsche Synchro entsteht meist beim Starten des SIM (Was man mit einen Sauberen PanelState und einer Checkliste umgehen könnte)
Schlimmer aber ist der Fall den Fischbone beschrieb (und den ich früher auch hatte), das Schaltbefehle nicht im FSX ankommen.
Oder der MF Connector hängt sich mal auf und hat mehrere Schaltstellung nicht mehr erkannt bis ich resette. Beim neustart stimmt dann der IST Zustand nicht mehr !

2. Wirkung
Richtig doof wird das ganze, wenn ich keine möglichkeit habe den Fehler zu erkennen.... Ist man weiter in sachen HC und nutzt vom FSX nur noch die Außenansicht und z.b. kein Overhead mehr weil man dieses bereits Real verbaut hat, dann würde man nicht mehr erkennen ob z.b.die NavLights wirklich an sind nur weil MEIN Realer Schalter auf An steht !
Es kann ja nicht die Lösung sein bei jeden Input das 2D Panel zu öffen und die Funktion zu prüfen !

3. Unterschied Schalter/Taster
Hier hat Sebastian gebeten das zu erklären.....
Ansich ganz einfach ! Wir sollten hier definieren das mit Taster (in Meinen Augen) ein 0 / (1) Taster gemeint ist. Also NICHT Rastend !!
Ein Taster ist also sefern ich ihn nicht gerade aktiv drücke immer OFF. Auch die Virtuellen Taster sind ansich immer OFF. Somit ist keine Synchro erforderlich.
(Hier muss man vielleicht PMDG speziell sehen, da hier der MFTaster nicht den Offset selbst ändert sondern nur den Virtuellen Taster betätigt)
Ansich wird also nicht die Funktion des Schalters aktiviert sondern nur der Schalter gedrückt und losgelassen...

***
Ein Schalter (z.b. Kippschalter, Drehstufenschalter) jedoch ist Rastend !
Folgerlich kann dieser aus obigen diversen Gründen im HC eine andere Stellung haben als im FSX. Und DAS ist das Problem!

4. Ansatz:
Habe das ja bereits beschrieben aber weiß nicht ob du mich da verstanden hast.....
Aktuell denke ich arbeitest du so:
Arduinosketch liest Schalterzustand aus und sendet Info an MF. MF Connctor erkennt die Veränderung eines Schalters und sendet den Vorbelegten Befehl "Blind" an den FSX

Unser Ansatz wäre....
MF holt sich wie gehabt den Schalterzustand vom Arduino.... Holt sich zusätzlich ständig einen Offsetwert vom FSX (Der des virtuellen Schalters)
Jetzt wird per Loop ein Dauerhafter Vergleich gemacht ... "Wenn Schaltbefehl der Aktuellen Real Schalterstellung GLEICH dem Offsetwert dann tue nichts und beginne Loop von Vorne" ELSE "Wenn aktueller Schaltbefehl vom FSX Offsetwert abweicht dann sende den definierten Schaltbefehl an den FSX und gleiche den Offset an den Schalter an .

Durch so eine Umstruckturierung würde gewährleistet, das jeder Schalter IMMER Synchron ist...Oder zumindest solange immer wieder automatisch gesendet wird BIS er irgendwann Synchron ist.


5. Umsetzung
Ich vermute das ein Auslesen von jeweils einen Offset Pro Schalter viel zusätzliche Rechenleistung erfordert und auch die Loops eine Programmumlaufdauer stark erhöht.
Aus diesen Grund hatte ich und vermutlich auch Fishbone den Gedanken das ganze als "Option" zu machen, so das der User entscheiden kann welche Schalter diese Loop funktion nutzen und welche nach dem "Alten" System bearbeitet werden können.
Dadurch könnte man verhindern, das z.b. die Ohnehin synchronen Drucktaster ebenfalls den Connector zusätzlich belasten !

Denkbar wäre auch eine Lösung über zusätzliche Möglichkeiten in der Benutzeroberfläche. Z.b. wäre ein "Immaginärer" Inputeintrag denkbar der nicht als Initiator einen High/Low
des Arduino sondern eine Kombination aus Bedingungen verwendet....

So könnte man, wenn auch umständlich über viele neue Einträge im MF Connector, selber solche Vergleiche von Pinzustand und Offsetwert realisieren.
Den vergleich könnte man denke ich jetzt schon realisieren....
Nach dem Prinzip Schalter X On press ändert Offset Auf 1 Vorbedingung : Nur Anwenden wenn Offset aus Configeintrag Ungleich 1
Jedoch Führt MF einen Befehl nur aus wenn sich der Pinzustand des Schalter ändert.... Hierfür müsste aber die Vorbedingung selbst eine Befehlsübermittlung auslösen was wohl aktuell noch nicht möglich ist. also in dem Beispiel... Wenn Pinzustand des Schalters aktuell 1 und vorbedingung erfüllt dann Schaltung "simulieren" ohne das man selber drückt.




Danke UND Sorry für den langen Text. Ist kompliziert das zu umschreiben das es verständlich rüberkommt!
Good Luck !
2015-12-30 06:31
icon