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
dh1tb
Posts: 5
Hallo Ihr,

nachdem ich im Forum nicht fündig geworden bin - brauche ich mal Euren Rat.

Ich will über vier Encoder jeweils eine Stelle des Transponder-Code verstellen.
D.h im BCD kodierten Transponder Code - Offset 0x0354.

Aufgrund der BCD Kodierung sollte die jeweilige Ziffer eigentlich einfach zu maskieren sein:
Variable Interger; 2 Byte; 16 Bit; jeweils 8 Bit / Zahlenwert

Transponder-Code: ABCD

A: 0xF000 [1111 0000 0000 0000] <- Encoder 1
B: 0x0F00 [0000 1111 0000 0000] <- Encoder 2
C: 0x00F0 [0000 0000 1111 0000] <- Encoder 3
D: 0x000F [0000 0000 0000 1111] <- Encoder 4

an den jeweiligen Stellen werden nur Zahlen von 0-7 zugelassen um keine Grenzen verletzen zu können
[on left]if($<=0,0,$-1) ; [on right] if($>=7,7,$+1)

Leider macht das System nur totalen Blödsinn. Beispielsweise ändern sich bei der Maskierung "D" die letzten beiden Werte sprunghaft; danach bricht dann irgendwann das System mit der Meldung "Error on config execution. Die Eingabezeichenfolge hat das falsche Format." ab.
Mache ich irgendwo einen Denkfehler ?

Selbst wenn ich das ganze nicht maskiere kann ich mit einem Encoder die Werte nicht sinnvoll einstellen. Die Springen für mich nicht nachvollziehbar hoch - gibt es die Möglichkeit innerhalb des Programmes sich die Rohdaten die in der Schnittstelle landen sich in einer Art debugging anzeigen zu lassen?
NAV und COM Frequnzen funktionieren im übrigen einwandfrei.

Vielen Dank.

Gruß Thomas
2016-02-26 19:18
Avatar
DocMoebiuz
Moderator
From: NW of KPWK, United States
Posts: 1516
Hi Thomas,

ich empfehle Dir das mit den EventIDs zu machen:

XPNDR_1_INC
XPNDR_10_INC
XPNDR_100_INC
XPNDR_1000_INC

und DEC entsprechend. Das klappt sehr gut.
Have a great day!
Sebastian

MobiFlight - Simply build your own home cockpit for your favorite flight sim - MSFS2020, FSX, Prepar3D (FSUIPC), X-Plane (XPUIPC)
2016-02-26 20:11
Avatar
dh1tb
Posts: 5
...aufgrund der Reaktionszeit bin ich doch mehr als verblüfft.
Alle Achtung und vielen Dank dafür- und im übrigen auch für das Tool. Hervorragend gemacht.

Auch wenn ich mich jetzt etwas outen muss, aber ich kann mit Event ID's nicht wirklich etwas Anfangen. Google konnte mir da auch nur begrenzt helfen.
Kann es sein das diese ausschließlich im FS verwendet werden?
Ich habe als SIM XPlane.

Gruß
Thomas
2016-02-26 20:35
Avatar
DocMoebiuz
Moderator
From: NW of KPWK, United States
Posts: 1516
EventIDs gibt es beim Microsoft FS. Du hattest nicht erwähnt, dass Du XPlane hast.

Eigentlich muss es einfach gehen. Anstatt kompliziert zu maskieren lieber
$+1 für 4. Stelle
$+10 für 3. Stelle
$+100 für 2. Stelle
$+1000 für 1 Stelle.

Nur das mit dem von 7 auf 1 geht mit dem Ansatzn icht so einfach.
Have a great day!
Sebastian

MobiFlight - Simply build your own home cockpit for your favorite flight sim - MSFS2020, FSX, Prepar3D (FSUIPC), X-Plane (XPUIPC)
2016-02-26 21:15
Avatar
dh1tb
Posts: 5
Danke.

Die Lösung funktioniert einwandfrei. Beim Übertrag wird zwar dann die nächste Stelle mitgenommen - solange man aber die Null abfängt ist das kein Problem.
Manchmal sind die einfachsten Lösungen doch die Besten.
Damit hätte ich jetzt den ersten MEGA vollständig ausgelastet :-).

Gruß
Thomas
2016-02-26 21:46
Avatar
DocMoebiuz
Moderator
From: NW of KPWK, United States
Posts: 1516
Ich bin überrascht dass es problemlos geht.
Have a great day!
Sebastian

MobiFlight - Simply build your own home cockpit for your favorite flight sim - MSFS2020, FSX, Prepar3D (FSUIPC), X-Plane (XPUIPC)
2016-02-27 13:27
Avatar
ec-cts
From: Pozuelo de Alarcon, Spain
Posts: 79
Hallo Freunde:

Ich habe den Transponder konfiguriert und mir passiert etwas Merkwürdiges.

Ich habe 4 Knöpfe, 1 für jede Stelle.
In Set-Wert habe ich durch die Konfiguration mit FSUIPC 0354 eingestellt:

$ + 1 für 4. Stelle
$ + 10 für 3. Stelle
$ + 100 für 2. Stelle
$ + 1000 für 1 Stelle.

Aber wenn die 1 Stelle 7 erreicht, hört Mobiflight auf zu laufen.

Das Problem war, dass, als ich zu 7 kam und die Taste noch einmal drückte, 8000 addierte und ich versuchte, sie in SET VALUE zu setzen:
if (($ + 1000)> = 8000, 0, ($ + 1000)) aber dann funktionierte die Schaltfläche nicht mehr.

Ich würde gerne wissen, warum dies passiert, wenn Sie es mit FSUIPC machen.

Ich habe es mit der Ereignis-ID mit dem Inkrement jeder Ziffer gelöst und es funktioniert perfekt, aber es ist das erste Mal, dass durch eine Berechnung Mobiflight nicht mehr läuft.


Vielen Dank

Grüße,

Carlos (ec-cts)
[Last edited by ec-cts, 2017-11-04 19:53]
2017-11-04 19:48
Avatar
StephanHo
From: EDDG, Germany
Posts: 1867
Supporter
Hi,

laß mal die Leerzeichen weg:

iconQuote:

if (($ + 1000)> = 8000, 0, ($ + 1000))



Korrekt wäre:

if(($+1000)>=8000,0,($+1000))

wobei die Klammern um die Additionen nicht erforderlich sind. Das ergäbe dann:

if($+1000>=8000,0,$+1000)

wobei auch funktionieren müßte:

if($+1000>7777,0,$+1000)

Kenne mich aber mit XPlane nicht aus. Gehe davon aus, daß bei 0 alle 4 Stellen auf 0 gesetzt werden.

Es kann durchaus sein, daß die Leerzeichen MF aus dem Tritt bringen. > = sind 3 Zeichen, die interpretiert werden müssen, >= sind nur 2
Grüße,
Stephan (Time: UTC+2)
2017-11-04 20:35
Avatar
pizman82
Moderator
From: ETSI, Germany
Posts: 6010
Supporter
Jepp....
Leerzeichen sind GIFT für die expressions.... Auch falsche Klammern mag das System gar nicht.

@ Carlos.

Wenn du FSX oder P3D verwendest ( Denke das tust du) dann verwende die EventID.... Das erspart dir die Probleme..... Per Offset muss man nur in Xplane arbeiten.

*****
Zum IF Problem....
Ich würde empfehlen stets die Funktion zu vereinfachen..... Das erleichtert Mobiflight die Arbeit ( Was eigentlich egal ist) .... Es macht aber auch die Funktion übersichtlicher.

z.b. if(($+1000)>=8000,0,$+1000) ..... Wenn $+1000 Größer oder Gleich 8000 Dann bla bla .....
Warum sagst du nicht Wenn $>=7000 Dann Bla bla. somit: if($>=7000,0,$+1000) ist das selbe wie if($+1000>=8000,0,$+1000)
Es ist egal ob du erst 1000 dazu zählst und dann nicht 8000 haben darfst oder gleich sagst es darf nicht 7000 sein.

Zur Logik noch eins.....
iconStephanHo:


if(($+1000)>=8000, 0 ,($+1000))
Kenne mich aber mit XPlane nicht aus. Gehe davon aus, daß bei 0 alle 4 Stellen auf 0 gesetzt werden.



Genau so ist es ! .... Wenn man hier 0 für das THEN verwendet dann setzt er ALLES auf 0 .... Also wenn der Squawk gerade 7123 ist und man dreht die 7 "versehentlich" hoch dann setzt er 0000. Deshalb muss man hier $ anstatt 0 verwenden ! Also das er falls Wert zu groß ist den ALTEN Wert ($) sendet und NICHT 0

Die korrekte Funktion wäre also....
if($>6777,$,$+1000) ... Dadurch bleibt der aktuelle Wert bestehen.....
Alternativ kann man auch einen Swap Over machen....
if($>6777,$-7000,$+1000) .... Hiermit sollte beim Hochdrehen über 7000 NUR die Tausender Stelle wieder auf 0 gehen.... Also 7123 wird zu 0123.

Bitte nachprüfen bei interesse.... Ist nur theorie bis jetzt.
Good Luck !
2017-11-05 15:18
Avatar
ec-cts
From: Pozuelo de Alarcon, Spain
Posts: 79
Obwohl ich es bereits mit den ID-Ereignissen gelöst habe, werde ich testen, ob es funktioniert, indem es den Speicherplatz unterdrückt.

Grüße und danke für deine Hilfe.


Carlos
2017-11-06 19:59
icon