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! 

icon
Avatar
Linkshand1969
Posts: 8
Hallo in die Runde

Ich versuche schon seit Stunden Encoder für die Flight und Landing Altitude zu programieren.
Nur bekomme ich das leider nicht hin.
Als Event Id nutze ich 69850. Ein FSUIPC offset habe ich nicht gefunden im SDK
Bei Parameter habe ich die ein bei nach links drehen und -1 bei nach rechts drehen eingestellt.
Jetzt bin ich soweit das das einstellen in eine Richtung funzt (aufwärts). In die andere Richtung jedoch nicht.
Hat jemand eine Idee wo mein Fehler liegt.
Als Encoder nutze ich ALPS STEC12E07 Encoder 5 V/DC
Für Hilfe wäre ich sehr dankbar

Grüße Jens
2019-05-15 14:23
Avatar
StephanHo
From: EDDG, Germany
Posts: 1341
Supporter
Hi Jens,

anhand der EventID sehe ich, daß du die PMDG B737NGX meinst.

Die EventID ist schon richtig. Aber bei den Parametern hast du das SDK nicht bis zum Ende gelesen bzw. die EventID-Liste.
Am Ende stehen die Parameter für die Maus-Events.
Die EventID bleibt, aber versuche mal bei ON LEFT als Parameter 16384 und bei ON RIGHT die 8192.

Bei der PMDG hast du den Vorteil, daß du nicht mühselig herausfinden mußt, ob nun 1 oder -1, sondern arbeite mit den Mausevents. Dies gilt zumindest für die Encoder.
Dies kannst du direkt am Bildschirm ausprobieren. Du kannst linken und rechten Mausklick nehmen, flotter geht es aber mit dem Mausrad. Dies Parameter übernimmst du in Mobiflight. Klappt so ebenfalls.

Bei den Drehschaltern (Rotary-Switches) ist es so, daß es links mit 0 beginnt und dann mit 1, 2, 3 etc. weitergeht.
Grüße,
Stephan
2019-05-15 15:54
Avatar
Linkshand1969
Posts: 8
Hallo Stephan!

Danke dir genau das war`s. Jetzt funzt es.:thumbup:
Wer lesen kann ist eben doch klar im Vorteil:cry: :cry:
Also danke nochmal

Grüße Jens
2019-05-15 16:23
Avatar
StephanHo
From: EDDG, Germany
Posts: 1341
Supporter
Gerne, kein Thema!

Am Anfang drehen sich die Gedanken weniger um die "Formalitäten" als um die zu erstellenden Funktionen.
Man sieht zwar die Zahnräder, aber noch nicht die Stellen, wo sie ineinander greifen.

Gräme dich nicht, das wird ;)
Grüße,
Stephan
2019-05-15 20:26
Avatar
Linkshand1969
Posts: 8
Hallo Stephan!

Hier nun mein nächstes Problem.
Jetzt moöchte ich auch das Flt Alt Display betreiben. Habe ein 7Segment modul mit 8 ziffern angeschlossen.
Habe in der Config auf fünf Ziffern begrenzt. Test funzt auch super.
Was muß ich jetzt als FSUIPC offset benutzen.
Gefunden habe ich nur als oeffst E64E4. Damit geht es leider nicht.
Hast du / ihr vielleicht eine Idee?
Ich hoffe ich nerve nicht all zu sehr

Grüße Jens
2019-05-16 18:47
Avatar
StephanHo
From: EDDG, Germany
Posts: 1341
Supporter
Hi Jens,

64E4 ist schon der richtige Offset. Wie hast du das Device denn konfiguriert?
Da der Testbutton positiv verlief, ist ja alles richtig angeschlossen.
Grüße,
Stephan
2019-05-16 23:03
Avatar
Linkshand1969
Posts: 8
Hallo Stephan

Das Device habe ich folgendermaßen eingestellt:
Reiter FSUIPC
Offset 64E4
Wert Typ Int
Größe in Bites 4
BCD Mode Haken gesetzt

Reiter Display
Number of Digits 5
Use Left Padding Haken gesetzt und 0

Mit diesen Einstellungen geht es (ausprobiert nach der Version Try and Error:lol: )
Als "problem habe ich jetzt noch das er bei Werten kleiner 10000 immer eine Null voranstellt zB bei 5000 = 05000
Gibt es eine Möglichkeit dies zu ändern.

MfG Jens
2019-05-17 13:26
Avatar
pizman82
Moderator
From: ETSI, Germany
Posts: 2773
Supporter
Hiho

Fehler 1:
BCD Mode muss/soll OFF sein. BCD verwendet man nur wenn es auch ein BCD Offset ist.... Und das sind eher wenige und es würde dabei stehen !

Fehler 2:
Du hast genau bestimmt das ein Wert von 5000 bei 5 Diggits als 05000 angezeigt wird indem du sagst Left Padding JA Typ "0" Zero.

Was willst du ? Das bei 5000 ft auf dem Display _5000 steht ( _ entspricht leeren Digit links) .
Falls JA dann setze bei Left Padding anstatt "Zero" im Dropdown "Space" .
Jetzt macht er LINKS alle nicht benötigten Stellen als Blank.

By the Way. Ein Wert von 111 wird wie folgt auf einen 5 Diggit Display angezeigt:
OHNE Left Padding = 11100
Mit Left Padding Zero = 00111
Mit LEft Padding Space = _ _111
Good Luck !
2019-05-17 15:00
Avatar
Linkshand1969
Posts: 8
Hallo Pizman
Vielen Dank für Deine ausführliche Erklärung.
Jetzt funktioniert es so wie es soll.
Ein einziges Manko habe ich noch.
Die Anzeigen leuchten auch wenn das Cockpit im cold and dark befindet.

Also nochmal danke
Grüße Jens
2019-05-19 22:37
Avatar
StephanHo
From: EDDG, Germany
Posts: 1341
Supporter
Hi Jens,

woher soll MobiFlight denn wissen, daß du dein Cockpit im c&d-Modus hast? Solange du z.B. den Batteriehauptschalter nicht abfragst und in MF integrierst, weiß MF ja nichts davon.
Selbst, wenn du den Schalter abfragst, müssen die davon abhängigen Devices mit einer Vorbedingung verknüpft sein. Das siehst dann in etwa so aus:

Wenn Batterieschalter=on dann aktiviere diese config

Mit anderen Worten: ist der Schalter off, ist die config inaktiv. Dies betrifft nicht nur die 7-Segment-Anzeigen, sondern alle Anzeigen des Cockpits schlechthin. Diesbezüglich kannst du dich aber hier im Forum auf die Suche begeben, dieses Thema wurde schon ausgiebig erörtert.
Grüße,
Stephan
2019-05-19 23:03
Avatar
pizman82
Moderator
From: ETSI, Germany
Posts: 2773
Supporter
Stephan hat das Grundprinzip erklärt aber ein paar Details nicht erwähnt.

1. Warum zeigt es im C&D was an....
Weil die "Offsets" nicht Cold and Dark sind :-)
Heist.... Wenn du z.b. mit einen Offset die LED´s ausliest die den Zustand des Fahrwerks anzeigen ( 3 Green) dann ist dieser Offset auch auf "1" auch wenn die Batterie OFF ist.... Denn das Fahrwerk ist ja auch bei Cold and Dark ausgefahren.
Keine Ahnung ob es vielleicht AddOns gibt die tatsächlich den Zustand der LED im Virtuellen Cockpit anzeigen ( Also nur 1 Sind wenn die LED grad dort leuchtet) . Bei PMDG und all den anderen die ich bisher genutzt habe zeigen die Offsets nur die Funktion.... Nicht aber den Zustand im Bezug auf BatteryOFF oder Lighttest.
(Lighttest ist das andere Beispiel.... Wenn du diesen machst leuchten alle LED´s .... Aber der Offset ändert nicht den Wert. Ist das Gear Down dann ist der Offset der Roten LED "0" ... Auch wenn du Lighttest drückst und sie AN sein sollten)

2. Warum reicht es nicht eine Config zu "deaktivieren"
Weil Mobiflight "faul" ist und beim Deaktivieren schlicht die Arbeit einstellt :cry:
Soll eine LED Leuchten weil ihr Offset gerade von 0 auf 1 wechselt dann erkennt Mobiflight dies und sagt dem Arduino "Hey... Schalte den betreffenden Pin auf HIGH und lass somit die LED Leuchten. Dies macht Mobiflight aber nur EINMAL. Erst wenn der Offset wieder von 1 auf 0 geht dann würde MF wieder mti dem Arduino "reden" und sagen es soll den Pin wieder zurück auf LOW setzten.
Wie angesprochen macht Mobiflight beim deaktivieren einer Config (Druch die Preconditions/Vorbedingungen) GAR NIX . Die Config wird ab dem Zeitpunkt nicht mehr auf das Device zugreifen wenn sich z.b. der Offset ändert. ABER sie wird die gerade brennende LED auch nicht auf OFF schalten denn wie gesagt sie tut jetzt nix mehr.
FOLGE: Die LED bleibt solange an bis eine andere Config ( oder die Ursprüngliche) aktiviert wird und auf dieses Device zugreift und konkret sagt "Led geh aus"

3. Lösung
Wie Stephan sagt.... Dazu gibt es 20+ Topics die das erklären. Such nach "Lighttest" oder "Master Battery".

Grob gesagt.
Man braucht aktuell 3 Configs pro LED (Plus eine Globale Config die den Status der Battery ausliest)
Config A (Global) liest den Zustand der Battery
Config 1 liest die Information des Systems und hat selbst kein Device.
Config 2 schaltet deine LED auf AN und arbeitet nur wenn Battery AN ist UND wenn Status aus Config 1 ebenfalls AN ist
Config 3 schaltet deine LED auf AUS und arbeitet nur wenn Battery AUS ist ODER wenn Status aus Config 1 AUS ist.
(Bei 7Seg Displays braucht man dann 2 Configs bzw 3 Configs .... C1 Zeigt nur Blanks wenn Battery Off ist. C2 Zeigt den Wert .... C3 Zeigt z.b. 88888 Bei Lighttest )
Alles in allen musst du also pro Output anstatt einer 2-3 Configs machen damit das geht

4. Zukunft/Alternates
Mit einen zukünftigen tool in Mobiflight geht das mit einer Config. Das dauert aber noch und ist in der Erprobung.
Alternativ können Programmierer bereits seitens FSUIPC mit eigenen Code (Lua script) diese Abfrage machen.
Sprich sie Erstellen "neue" Offsets die den Status deines Displays bzw deiner LEDs bereits sauber anzeigen. Ansich machen die das gleiche und sagen :
Lese Offset A.... Lese Battery .... Wenn Battery AN dann schreibe Wert von Offset A auf Offset X ... Wenn Battery aus dann schreibe "Null" auf Offset X
Wir lesen dann final mit Mobiflight nicht mehr Offset A sondern Offset X und haben so einen Wert der die Battery Info bereits intigiriert hat und richtig reagiert.


Summary.....
Aktuell nur mit etzwas Aufwand machbar ..... In Zukunft einfacher..... Perfekt mit eigenen Programmierten Script.
Good Luck !
2019-05-20 09:09
Avatar
Linkshand1969
Posts: 8
Hallo
Vielen Dank für Eure ausführlichen Erklärungen.
Ich dachte es geht einfacher da die LED´s bei C/D auch aus blieben.
Ich werde mich da mal durcharbeiten
Also danke nochmal.
Gruß Jens
2019-05-27 16:39
icon