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.

Go to page 1Go to page 012Go to page 2Go to page 2
Avatar
Gemu
Posts: 101
Hallo Zusammen,

ich habe vor Äonen mal ein Radio-Panel gebastelt. Als Controller verwendete ich FSBus. Da dieser schon lange nicht mehr weiterentwickelt wird und sämtliche Layouts und Schaltpläne irgendwo verschütt gingen, möchte ich das Teil mit Mobiflight wieder funktionsfähig machen, jedoch als Multi-Radio.






Wie man auf den Bildern sehen kann, ist die Platine mit den Anzeigen, bzw. Tastern genau an das Panel angepasst. Hatte die Platine damals extra dafür geätzt. Die untere Platine habe ich jetzt entfernt, da die den Treiber für die Display´s enthält und nun nicht mehr benötigt wird. Die mittlere Platine fiel ebenfalls weg - sie diente nur für die Aufhängung der beiden Encoder-Achsen. Jetzt habe ich einen ELMA-Doppelencoder eingebaut.

Die große Frage ist nun aber, kann ich so ein Multi-Panel überhaupt mit Mobiflight umsetzen? Ich habe inzwischen schon fast alle Beiträge hier im Forum gelesen und es gab zum Thema auch eine ähnliche Frage. Nur war dieses Multi-Panel mit Drehschalter zum Umschalten der verschiedenen Radios. Ich hingegen habe Taster die zudem noch beleuchtet werden sollen. Das heißt, drücke ich z.B. den Taster für Nav1, soll nicht nur die Nav1 Frequenzen angezeigt werden, sondern auch die Taster-LED leuchten - und im Idealfall auch wieder ausgehen, wenn ich ein anderen Taster betätige. :) So kann ich sehen welches Radio gerade angezeigt wird.

Soviel ich aus diesem älteren Beitrag entnehmen konnte, kann man keine Variablen in Mobiflight anlegen und diese dann als Bedingung für LED´s etc. benutzen, sondern das geht wohl nur über den Umweg über einen FSUIPC Custom-Offset. Jedoch so ganz verstanden habe ich das nicht.
Damit ich überhaupt erstmal feststellen konnte, ob mein Teil grundsätzlich funktioniert, habe ich einfach mal COMM-1 auf die Displays geroutet. Bis auf das jämmerliche Verhalten des Doppelencoders, da muss ich nochmal einen Blick draufwerfen, funktioniert soweit alles. Theoretisch müsste ich jetzt ausser COMM-1 noch alle restlichen Displayausgaben in der Config anlegen. Da das Panel ja 7 Tasten hat, würde ich vorzugsweise gerne den ganzen Kram dort anzeigen lassen - also Comm-1 u. 2, Nav-1 u. 2, ADF-1 u.2, und noch den Transponder.
Die Displayausgaben brauchen dann natürlich eine Vorbedingung. Mit diesen FSUIPC-Offsets blicke ich zwar nicht durch, aber so ein Custom-Offset scheint wie eine Variable zu funktionieren, der ich dann einen Wert zuweisen kann. Ich müsste dann wohl mit meinen 7 Tastern immer dasselbe Offset schreiben, nur eben mit jeweils einem anderen Wert, 0 bis 6 beispielsweise. Nun kann ich Comm-1- Act und Comm-1-Stb das Offset mit dem Wert 1 als Bedingung eintragen und alle anderen Anzeigen mit dem entsprechenden Wert.
Soweit ist mir das alles noch halbwegs nachvollziehbar. Die Taster-LED´s können theoretisch ja die selbe Bedingung erhalten wie die Displays. Doch nun habe ich ja auch noch den Umschalttaster für den Wechsel zwischen Active und Standby und da setzt es bei mir aus. Ich kann einem Taster ja nicht mehrere Funktionen zuweisen. Der Umschalttaster müsste ja folgende Funktion ausführen können:

iconCode:
if CustomOffset == 0
   set OffsetCom1 ; (eben das Offset das für Com1 FreqSwitch zuständig ist)
elseif CustomOffset == 1
   set OffsetCom2
elseif....


Kann einem Button mehrere Bedingungen zugewiesen werden und desweitern kann der auch unterschiedliche Befehl ausführen?
Wenn nicht, dann fällt mir spontan keine Lösung dazu ein. Die beiden ADF´s sind nochmal ein Sonderfall, weil die ja keine Active/Standby Funktion besitzen. Diese müsste man dann quasi gleichzeitig in beiden Displays anzeigen und die beiden zugehörigen Taster müssten dann den Doppelencoder aufs linke oder rechte Display routen. Mit der jeweiligen Taster-LED könnte man dann sehen, welche der beiden Frequenzen gerade verändert werden können. Beim Transponder-Code könnte man ja nur eine der beiden Anzeigen nutzen und die andere irgendwie abschalten.

Ich habe den schrecklichen Verdacht, dass ich mir wohl nicht das einfachste Projekt für meine ersten Schritte mit Mobiflight ausgesucht habe. :D
Von daher würde ich mich sehr freuen, wenn ihr mir da etwas Hilfe zukommen lassen würdet.


Herzliche Grüße

Gert
2017-05-10 03:24
Avatar
pizman82
Moderator
From: ETSI, Germany
Posts: 6010
Supporter
Hi Gert
Willkommen in Mobiflight..... Schön das auch Profis zu uns finden !
iconGemu:


Ich habe den schrecklichen Verdacht, dass ich mir wohl nicht das einfachste Projekt für meine ersten Schritte mit Mobiflight ausgesucht habe. :D



Jepp. Da hast du recht :thumbup: :blink:



1. Arduino
Ich war etwas verwirrt weil ich in deinen Bildern und deiner Beschreibung nur die selbstgebaute Platine sehe..... Ich gehe mal davon aus es ist klar das Mobiflight auf Arduino bzw Arcaze basiert..... Somit müsstest du deine Hardware auf so ein Board verkabeln ( Vorzugsweise Arduino MEGA) .... die Displays müssen zwingend mit einen MAX7219 Chip gesteuert sein (Und Kompatibel .... Also Common Cathode) da Mobi nur diesen supportet,
Wenn ich mir deinen Skill aber so ansehe dürfte dir das klar sein.... Also diese Info nur um auf Nummer Sicher zu gehen.

2. Welches System und welches AddOn.
Pauschal... Mit dem FSX (Und Standardflugzeugen) sollte das meiste Möglich sein..... Erfordert aber teilweise wirklich viel Arbeit. Xplane hab ich weniger Erfahrung..... Womöglich könnten da "leichte" Probleme entstehen.
Ob ADF2 geht weiß ich nicht.... Gibt es das im FSX überhaupt noch ?
Wichtige Frage ist welches AddOn.
Das Teil ist ja sehr BUS lastig..... z.b. verwendet Jeehell FMGS AirbusA320 ein sehr interessantes System hier..... Die Bieten 2 Outputs (Leider nicht direkt über FSUIPC sondern über SIOC) die direkt das Display im Simulator anzeigen..... Also wenn du dort NAV1 anwählst dann zeigt das Display NAV1 Wechselst du auf COM1 dann zeigt der gleiche Output jetzt COM1. Du brauchst also keinerlei IF ELSE da alles Intern geht.... Auch die Encoder steuern direkt den betreffenden Wert.
Andere AddOns sind da vielleicht nicht so praktisch und machen das ganze schwieriger.... Boeing setzt ja meist auf Einzeldisplays... eventuell problematischer.

3. Deine Logik im Detail.

Ansich hast du bereits alles kappiert..... Der Custom Offset dient hier sozusagen als Variable. Wenn wir eine deiner Auswahltasten drücken dann schreiben wir je nach Taste diesen Offset auf z.b. 0 oder 1 oder 2 usw.
DANN erstellst du sozusagen für jeden Modus eine Eigenständige Configliste....
Also in deinen Fall.... eine Config Für Das Linke Display... Eine für das Rechte Display .... Eine für die SchalterLED .... Eine für die Swap Taste .... Eine für den Inneren Encoder und eine für den äußeren Encoder.
ALLE Configs bekommen als Precondition dann " Arbeite nur wenn Customoffset = X" (wobei X die Zahl ist für den modus den du grad aktiv gesetzt hast)

Somit um deine Frage zu beantworten...JA Auch Inputs können ( und müssen in diesen fall) Preconditions haben..... Du hast bei deiner Überlegung somit die Encoder vergessen..... Wir können in Mobiflight leider nicht sagen "ändere den Wert der gerade im Display steht" sondern wir müssen gezielt sagen z.b. "Ändere NAV1 StandBy"... Somit Auch individuelle Encoder Configs für jeden einzelnen Modus ! (Außer dein AddOn lässt das zu... PMDG z.b.)


4. Alternative:
Du hast ja in deinen Posting ein Code Beispiel gebracht..... Falls du da bereits Kenntnisse hast und für den "Hausgebrauch" selber programmieren kannst dann würde sich alternativ LUA anbieten..... Die FSUIPC Programmiersprache mit der du Selber scripts im FSX einfügen kannst.
Rein theoretisch könntest du dir so ein System programmieren das ähnlich dem von Jeehell (Oben erklärt) ist.... Also das du in Mobiflight nur noch 2 Displays 2 Encoder und die Taster sowie LED anwählst.... Die Ganze Precondition Geschichte würde dann in deinen "eigenen" Programm abgearbeitet,
ABER: Das ist nicht nötig... Es geht auch so...... Nur falls dir Programmieren leichter fällt als Mobiflight Configs zu bauen wäre das eine Alternative !

Hoffe der Überblick reicht...... wenn du noch fragen hast, melde dich !
Good Luck !
2017-05-10 05:14
Avatar
Gemu
Posts: 101
Hallo - und Besten Dank für deine ausführliche Antwort!

Wegen deiner Verwirrheit bezüglich der Bilder - die sind nicht aktuell, sonder ca. 15 Jahre alt. So sah das Teil eben mit FSBus aus. Geblieben ist nur die Platine direkt hinterm Panel, wo eben die Taster und die 7-Segment-LED´s verbaut sind. Darunter habe ich jetzt nur ein Stück Epoxi-Platte mit Abstandshalter angefügt, auf der dann die beiden 7219-Tubes verschraubt sind. In die beiden Segmentsockel habe ich direkt die Verbindungsdrähte eingelöten, die dann mit der Hauptplatine verbunden wurden. Musste ja nur 5 Digits verdrahten und die verbauten Einzel-Segmente waren dankenswerter Weise auch Common-Cathode. Sonst wäre es richtig ätzend geworden. Das Ganze steuert ein Arduino-Mega.
Hardwareseitig ist somit alles OK. Ich habe zum Testen auch schon Comm-1, den Encoder und die Umschalttaste definiert und es funktioniert. Wie schon geschrieben, nur der Encoder läuft nicht ganz rund und vergisst gern mal ein paar Steps.

Ja, das liebe Programmieren. Ich hatte die letzten Jahre an einem eigenen Spiel gebaut, auf Basis einer vorhandenen Engine. Aber das war eine relativ einfache Skriptsprache und trotzdem habe ich sehr lange Zeit gebraucht bis ich damit umgehen konnte. Ich glaube, mir fehlen im Gehirn ein paar spezifische Synapsen - unglücklicherweise genau die, die für´s Programmieren zuständig sind.
Der ganze Rest wie 3d Modellbau, Animation, Vertonungen der Figuren und von Soundbearbeitung bis zur Kompositions von Musikstücken, fiel mir alles nicht schwer - nur das Programmieren. Von daher lege ich lieber Configs in MF an.

iconQuote:

Wichtige Frage ist welches AddOn.



Stimmt, da habe ich ja noch gar nichts dazu geschrieben. Also ich verwende immer noch den FS-2004 und habe eigentlich nicht vor, mich für einen bestimmten Flieger festzulegen. Deshalb sieht bei mir alles kunterbunt aus. Der Trottlequadrant ist ein Nachbau einer Tripple-7, das MCP ist an der 747 angelehnt, dann habe ich noch einen Dreiachsenregler für GA-Flugzeuge und noch TM-Hotas für DCS. Da ich alles in FSUIPC anlege, brauche ich mich wegen der Zuordnungen beim Flugzeugwechsel nicht mehr kümmern. Mobiflight will ich hauptsächlich für die Anzeigen nutzen, nur beim Radio komme ich natürlich nicht umhin, die Taster und Encoder auch dort anzulegen.
Mir geht es im Wesentlichen darum, die nervigsten Dinge im Simulator bequemer bedienen zu können - und Frequenzeinstellungen sind im Nervungsfaktor ganz weit oben angesiedelt. Head-Tracker und Virtual Cockpit - mehr muss ich dazu wohl nicht sagen. :D

iconQuote:

Ob ADF2 geht weiß ich nicht.... Gibt es das im FSX überhaupt noch ?



Gute Frage, ich hab schon seit Jahren keinen Default-Flieger mehr angerührt, jedoch meine Addons haben alle zwei ADF´s. In der FSUIPC "List of FS2004 Controls" wird ADF2 zumindest aufgeführt.

ADF2_1_DEC 66550
ADF2_1_INC 66546
ADF2_10_DEC 66549
ADF2_10_INC 66545
ADF2_100_DEC 66548
ADF2_100_INC 66544
ADF2_COMPLETE_SET 66556
ADF2_FRACT_DEC_CARRY 66555
ADF2_FRACT_INC_CARRY 66554
ADF2_RADIO_TENTHS_DEC 66551
ADF2_RADIO_TENTHS_INC 66547
ADF2_WHOLE_DEC 66553
ADF2_WHOLE_INC 66552

In "FSUIPC for Programmers" habe ich aber auf die Schnelle keine Offsets für ADF-2 gefunden.

Ich weiß es nun nicht ganz genau, aber ich glaube viele Addons für den FS9 verwenden einfach die Default-Radios. Von daher würde ich das Radio auch so konfigurieren. Falls dann ein wichtiges Addon nicht mitspielt, kann ich notfalls dafür eine spezielle Config basteln.

Soweit so gut. Ich lege jetzt mal die ganzen Configzeilen an und schau wie weit ich komme. Der logische Aufbau des Radios ist mir eigentlich schon klar, aber ich bin da glaub einem Denkfehler aufgesessen, der mich total verwirrt hatte. Ich war der Meinung ich kann pro Taster nur eine Config-Zeile anlegen und müsste dann in dieser Zeile sämtliche unterschiedlichen Funktionen des Tasters auch dort definieren. Das ginge ja nur dann, wenn man der Zeile ein komplettes Skript zuordnen könnte, das zumindest bei Betätigen des Tasters eimal abgearbeitet wird - deswegen konnte ich mir nicht vorstellen wie das funktionieren soll.
Jedoch kann man ja auch mehrere Config-Zeilen pro Taster anlegen und die Bedingungen verhindern dann das gleichzeitige Auslösen der angelegten Funktionen. Ist ja im Grunde genau gleich wie bei den LED´s oder Displays. Eine Config-Zeile entspricht einer Funktion, will ich mehrere, brauch ich mehr Zeilen für den selben Taster, oder was auch immer und natürlich dann auch Bedingungen.
Falls meine Überlegungen zutreffen, dann habe ich einfach zu kompliziert gedacht, ohne dass es notwenig gewesen wäre. :w00t:

Eine kleine Frage hätte ich dennoch. Außer dem Radio hängen noch ein paar LED´s am Arduino. Z.B. auch 3 Grüne für die Landing-Gears. Die funktionieren zwar, aber nicht ganz richtig. Sie leuchten nämlich sofort auf, wenn der Fahrwerkhebel benutzt wird. Es müsste aber eine Zeit dauern, bis alle unten und eingerastet sind. Erst dann gibts die Three Green. In der FSUIPC-Dokumentation fand ich folgenden Eintrag:

0BEC 4 Gear position (nose): 0=full up, 16383=full down

Bedeutet das, dass der Wert beim Aktivieren des Fahrwerks stellungsabhängig von 0 - 16383 hochgezählt wird? Würde ich von außen schauen, wäre bei Wert 8000 das Fahrwerk ca. halb ausgefahren. Wenn dem so ist, dann brauch ich für die LED doch nur eine Bedingung wie:
if OBEC > 16382.
Sorry, falls meine Fragen schon zu banal klingen, aber mir reicht es nie dass etwas funktioniert, ich will immer auch wissen weshalb es funktioniert.


An der Stelle gleich noch ein herzliches Dankeschön an Sebastian, den Entwickler dieses genialen Programms. :thumbup:

Gruß, Gert
2017-05-11 01:45
Avatar
pizman82
Moderator
From: ETSI, Germany
Posts: 6010
Supporter
1. ADF2

Im FS2004 war das auch noch klar dabei.... Ich weis nur nicht genau ob es im Nachfolger FSX tatsächlich rausgenommen wurde oder ob es nur nicht mehr verwendet wird.... Im Programm aber noch theoretisch da ist.

2. FSUIPC INPUT
Mobiflight war in seinen Kindertagen eigentlich als reines Output Programm gedacht.... Die Inputs kamen erst später dazu. Vermutlich deshalb müssen wir auch auf die Custom Offsets zugreifen für so ein Element, weil Mobiflight den Schalterzustand nur an den FSX ausgibt.... Aber sozusagen intern diesen nicht verknüpft. Wir können nicht sagen "Wenn Schalter 1 ist dann führe Displayconfig A aus... Wir müssen den Umweg nehmen und sagen... Der Schalter schreibt den FSUIPC Offset....Eine Weitere Config liest diesen Offset sofort wieder aus dem FSX aus .... Und Das Display wiederrum bestmmt anhand dieses ausgelsenen Wertes ob es arbeiten soll oder nicht.
Leider noch etwas umständlich.....
Ein Vorteil für dich. Du kannst natürlich auch heute noch sagen das du deine Imputs rein über das FSUIPC machst wenn du das gewohnt bist.

Beispiel:
In deinen Element setzt du auf das Mega nur die LED und Displays..... Die Schalter und Encoder kabelst du auf einen Gamecontroller und im FSUIPC sind diese dann wie "Joystick Buttons" Und dort kannst du wie gewohnt diese belegen.
Natürlich kannst du auch dort mit der Taste zum Beispiel gezielt einen OFFSET beschreiben und DIESER wird dann von Mobiflight als Vorbedingung für die Outputs genommen.
Also ganz wie du es lieber hast. (( Einschränkung... Ein MEGA wenn es zum Mobiflight Board wird kann nicht mehr gleichzeitig ein Joystick Controller sein ))

3. Scripts über Mobiflight
Auf diese Geniale Idee sind wir auch schon gekommen..... Das ist aber noch in der Erprobungsphase und die Strucktur von Mobi und FSUIPC wirft uns da noch Prügel zwischen die Beine. Das wird noch dauern bis das kommt. Ziel ist es für komplizierte Dinge einen script zu schreiben den wir per Schalter über Mobiflight gezielt starten und beenden können bzw über einen Value als Parameter beeinflussen.


****************
4. GEAR Problem:

Falls du Englsih kannst was ich mal pauschal annheme.... https://www.mobiflight.com/forum/message/4092.html

In kurzen Worten.

Deine annahme stimmt.... 0 ist Up.... Der Weg beim Ausfahren ist 1-16382 .... Ausgefahren ist 16383 ( Bzw manchmal ein bischen weniger ... ist wohl ein Bug)

Eine LED in Mobiflight ist AUS bei Output Value 0 .......und AN bei Value 1 (oder größer 1.... also auch bei z.b. 2, 100 oder 16383)
In dem Link wird erklärt wie es für Three Green und Three Red funktoniert.
Für deine 3 Grün wäre es also WENN Wert >16380 DANN 1 SONST 0
(16380 anstatt 16383 deshalb weil eben mache Flieger trotz voll ausgefahren bei 16382 z.b. hängen bleiben.... Erfahrungswerte. (Hab damals auch Stunden gebraucht bis ich das gemerkt habe)

Mach dich mit dem Compare Field auf Tab2 vertraut.... Das ist programmtechnisch eine IF-THEN-ELSE ..... Es geht auch ELSEIF.... Einfach die Forensuche probieren oder einen Thread erstellen.... Wir helfen gerne !
Good Luck !
2017-05-11 02:49
Avatar
Gemu
Posts: 101
So, nun habe ich mal die beiden Comm und Nav Frequenzen soweit in MF definiert. Das Ganze ging einfacher als ich dachte und hat auch gleich auf Anhieb funktioniert. Jetzt habe ich nur noch ein kleines Problemchen drin. Ich zitiere mich mal selbst.

iconQuote:

Das heißt, drücke ich z.B. den Taster für Nav1, soll nicht nur die Nav1 Frequenzen angezeigt werden, sondern auch die Taster-LED leuchten - und im Idealfall auch wieder ausgehen, wenn ich ein anderen Taster betätige. :)



Da hatte ich wohl schon so eine Vorausahnung, denn genau der besagte Idealfall tritt bei mir nicht ein. Die Bedingung wird anscheinend nur bei einem Event abgefragt, so dass die LED weiterleuchtet auch wenn die Bedingung inzwischen nicht mehr erfüllt ist. Wie kann ich der aktiven LED beibringen sich abzuschalten, wenn ein anderer Taster gedrückt wird? Theoretisch müssten alle Taster einen Zusatz haben, der die gerade aktive LED wieder löscht. Nur habe ich noch keine Idee wie ich das anstellen soll.
2017-05-11 05:36
Avatar
DocMoebiuz
Moderator
From: EDSH, Germany
Posts: 1516
Für die LEDs nimmst du keine Precondition, du verwendest nur das Vergleich Tab.

Angenommen Wenn Du beim NAV1 Taster drücken einen Offset Wert setzt, z.B. 66C0 -> 1, dann konfiguriere Deine LED für den Taster mit dem Offset 66C0. Bei COM1 schreibst Du 66C0 -> 2. Für die LED von dem COM1 Taster konfigurierst du ebenfalls 66C0.

Damit jetzt immer nur die richtige LED vom richtigen Taster leuchtet wechselst Dubauf das Vergleichen-Tab. Für NAV1 wenn Wert = 1 dann 1 sonst 0. Für COM1 wenn Wert = 2 dann 1 sonst 0.

Ich hoffe ich hab mich einigermaßen verständlich ausgedrückt.
Have a great day!
Sebastian

MobiFlight - Simply build your own home cockpit for your favorite flight sim - MSFS2020, FSX, Prepar3D (FSUIPC), X-Plane (XPUIPC)
2017-05-11 06:45
Avatar
pizman82
Moderator
From: ETSI, Germany
Posts: 6010
Supporter
Sebastian hats schon Perfekt erklärt .....

Zusatz:

Das funktioniert natürlich nicht in JEDER Situation ... Hier geht es weil der Offset der uns den Zustand der LED liefert GLEICHZEITIG auch der Offset ist der uns die Bedingung liefert wann sie Aus sein soll.

Somit ist deine Annahme und Feststellung richtig.... Eine Output Config ( Display oder LED z.b.) wenn durch eine Precondition INAKTIV gemacht wird sendet keine Signale mehr an das Device.
Also wenn du die LED grad an hast sobald die Config inaktiv wird ( Vorbedingung) dann bleibt sie so lange an, bis DIESE oder eine ANDERE Config ihr was neues sagt.

Hier ist die aktuelle Technik dann eine 2. Config zu machen die Immer den Wert hat der anliegen soll wenn die Erste Inaktiv wird.
Sollte die LED z.b. dann immer aus sein, dann würdest du in der 2. Config sagen " Wenn Wert = 1 Dann 0 sonst 0 " wodurch sie IMMER 0 ist.
Dann setzt du für beide Configs deine Vorbedingung so, das je nach Bedingung immer die Eine oder die Andere Aktiv sein muss.

Beispiele findest du per Suche im Forum hier unter dem Stichwort "Battery OFF" .... Hier wird es oft gebraucht das eine LED unabhängig ihres aktuellen Offsetzustands AUS gehen muss sobald man den hauptschalter aus stellt.

Womöglich wird das in Zukunft vereinfacht.... Aktuell ist das die Empfohlene Methode !
Good Luck !
2017-05-11 10:16
Avatar
Gemu
Posts: 101
Super, vielen Dank an euch Beiden!

Jetzt klappt es auch mit den LED´s. :)
Nun wollte ich mich gleich mal an die beiden ADF´s und den Transponder wagen, wobei ich bei den AFD´s nicht ganz durchsteige. In den FSUIPC-Dokus entdeckte ich folgendes:

iconQuote:

034C 2 ADF1 Frequency: main 3 digits, in Binary Coded Decimal. See also offset 0356. A frequency of 1234.5 will have 0x0234 here and 0x0105 in offset 0356.
(See also offset 0389)



iconQuote:

02D4 2 [FS2004 only] ADF2 Frequency: main 3 digits, in Binary Coded Decimal. See also offset 02D6. A frequency of 1234.5 will have 0x0234 here and 0x0105 in offset 02D6.



Hab also erstmal eine ADF1-Config angelegt. 0x034C, Int, Bytes 2, BCD.
Mein Display zeigt nun aber nur die Ganzzahlen an, also 00473. Richtig müsste es 473.0 sein. Wie kommt man an die Nachkommastelle - und wie kann ich die Frequenz dann auch mit den beiden Encodern ändern?


Es gibt da aber auch noch ein Extended-ADF1:

iconQuote:

0356 2 Extended ADF1 frequency. The high byte contains the 1000’s digit and the low byte the fraction, so, for a frequency of 1234.5 this offset will contain 0x0105.



Dieses Offset habe ich auch mal getestet, liest aber nur Nullen aus.

Den Transponder habe ich soweit hinbekommen, allerdings ist hier die Einstellung über den Doppelencoder ziemlich langwierig. Vielleicht wäre hier sinnvoll, den Encoder-Button als Umschalter einzusetzen, so dass quasi jede Stelle separat angewählt werden kann.
Vermutlich werde ich in Zukunft den Transponder und die ADF´s als separate Panels noch nachbauen, doch bis dahin wäre es schön wenn das auch im Multi-Radio funktioniert.

Die wirklichen Sorgenkinder sind jetzt noch die beiden ADF´s. Hätte mir jemand eine funktionierende ADF-Config?

Viele Grüße

Gert
2017-05-12 21:20
Avatar
DocMoebiuz
Moderator
From: EDSH, Germany
Posts: 1516
Die Doku beschreibt wie du bereits geschrieben hast, dass du die Nachkommastellen am Offset 0356 auslesen kannst.

Für die Inputs empfehle ich die EventIDs zu verwenden. Ich bin mir sicher dass es da welche gibt.
Have a great day!
Sebastian

MobiFlight - Simply build your own home cockpit for your favorite flight sim - MSFS2020, FSX, Prepar3D (FSUIPC), X-Plane (XPUIPC)
2017-05-12 21:41
Avatar
pizman82
Moderator
From: ETSI, Germany
Posts: 6010
Supporter
iconGemu:


iconQuote:

034C 2 ADF1 Frequency: main 3 digits, in Binary Coded Decimal. See also offset 0356. A frequency of 1234.5 will have 0x0234 here and 0x0105 in offset 0356.
(See also offset 0389)


......
Hab also erstmal eine ADF1-Config angelegt. 0x034C, Int, Bytes 2, BCD.
Mein Display zeigt nun aber nur die Ganzzahlen an, also 00473. Richtig müsste es 473.0 sein.

......

iconQuote:

0356 2 Extended ADF1 frequency. The high byte contains the 1000’s digit and the low byte the fraction, so, for a frequency of 1234.5 this offset will contain 0x0105.



Dieses Offset habe ich auch mal getestet, liest aber nur Nullen aus.




Hi Gert.....

Du hast dir die Antwort bereits selber gegeben.....

Dein Offset sollte 473,0 sein wie du sagst..... Da das ADF 4 Stellig ist wäre das also 0473.0
Der Erste Offset 034C enthält wie beschrieben den 100er 10er und 1er Part.... also x473.x
Der Zweite Offset enthält im High Byte den 1000er Part und im Low Byte die Kommastelle. 0xxx.0
Da in deinen Fall mit 0473,0 sowohl die Tausender Stelle als auch die Komma Stelle 0 sind ist der Offset somit richtig !

Mache jetzt einfach 2 Configs.... Die Erste legst du auf die Mittleren Stllen deines Displays .... 1 2 3 4 5
Die Zweite Config ergibt einen Zweistelligen Wert diese legst du auf die 1. und letzte .... 1 2 3 4 5
Dezimalpunt dann in dem Beispiel hier zwischen 4 und 5


****

Zu den Eingaben.... Es ist sicherlich möglich mit diversen Formeln das ganze auf die Encoder zu legen...... Also " Lese Aktuellen wert und je nachdem +/- irgendwas"

ABER wie Sebastian sagte... Hier empfehlen sich klar die Event ID.... Weis nicht ob diese im FS2004 gleich waren ( musst du testen )
Liste liegt normal FSUIPC bei oder sind als Preset in Mobiflight unter EVENT ID verfügbar ( Zumindest in der FSX Version)
Good Luck !
2017-05-13 00:43
Avatar
Gemu
Posts: 101
Hi,

als ich mal kapiert hatte, dass ich da 2 Offsets dazu benötige, bin ich genau so vorgegangen. Zwei Configs angelegt. Eine mit 034C und die andere mit 0356. Bei Use Display habe ich auf der ersten 2,3,4 und auf der zweiten Config 1,5 angehakt. Der Test zeigt dann auch genau diese Stellen im Display an, nur im FS scheinen 1 und 5 vertauscht zu sein. Stelle ich im FS-Panel beispielsweise die Frequenz 157.4 ein, steht auf dem Display 41570. Das alles scheint doch komplizierter zu sein.
Was mir auch noch etwas rätselhaft ist, sind die Angaben der Digits. Da ich ja nur 5 Digits habe, dachte ich dass man da auch 5 angeben muss. Bei 5 kommt aber Unsinn heraus, nur wenn ich 8 einstelle geht´s.

Immerhin habe ich herausgefunden was EventID´s sind und den Encoder auf diese umgestellt. In den FSUIPC-Dokus gibt es eine "List of FS2004 Controls" und da tauchen genau diese fünfstelligen Ziffern auf, die im EventID-Tab wohl verwendet werden. Ich konnte nur mit dem Begriff zunächst nichts anfangen.

Gibt es eine Möglichkeit das Verhalten der Encoder zu verbessern? Beim ELMA ist es so, dass es min. 2 Schritte braucht bis eine Reaktion erfolgt. Meistens jedoch braucht es 4, oder 5 Schritte. Habe bisher aber nur die normalen Left und Right belegt, nicht die Fast.

Gruß, Gert
2017-05-13 03:54
Avatar
DocMoebiuz
Moderator
From: EDSH, Germany
Posts: 1516
NDB Stationen gehen im allgemeinen von 190 - 535 KHz - selten haben sie eine Dezimalstelle. Deswegen hatte wahrscheinlich ursprünglich auch das eine Offset gereicht.

Warum es verdreht ist kann ich dir leider gerade nicht sagen. Du kannst aber auch nur das hintere Byte auslesen in dem Du für den Offset 0356 + 8 machst - also 035E und dann bei Byte Size nur 1 verwendest.
Have a great day!
Sebastian

MobiFlight - Simply build your own home cockpit for your favorite flight sim - MSFS2020, FSX, Prepar3D (FSUIPC), X-Plane (XPUIPC)
2017-05-13 05:17
Avatar
pizman82
Moderator
From: ETSI, Germany
Posts: 6010
Supporter
iconDocMoebiuz:


Warum es verdreht ist kann ich dir leider gerade nicht sagen. Du kannst aber auch nur das hintere Byte auslesen in dem Du für den Offset 0356 + 8 machst - also 035E und dann bei Byte Size nur 1 verwendest.



Sorry wenn ich meckere..... aber das ist Falsch !
Die Taktik würde theoretisch funktionieren... Aber Der 2. Byte ist NICHT 0356 +8 SONDERN 0356 +1 ... ALSO 0357 ( Nicht +8 Byte sondern +8 Bit ) ;)

**************
@ Gemu ....
Da hast dir ja gleich mal einen "Bäääh Offset" Ausgesucht !
Obwohl ich Pete Dowson für FSUIPC wirklich dankbar bin da es ohne ihn keine Homecockpits gäbe sind "manche" Offsets wirklich sehr fragwürdig umgesetzt und auf einen Programmierstand von 1985,.... Oder sollten wir da Microsoft böse sein das der FSX immer noch auf dem FS der 80ger Jahre beruht und teilweise noch immer so arbeitet ?

Die Lösung deines Problems auf English gibts hier im Forum im Detail ..... https://www.mobiflight.com/forum/message/3406.html

Kurz überschlagen auf Deutsch....
Der Offset gibt als Ausgabe einen Wert....
Ist die Tausender Stelle gerade 0 ( Also z.b. bei deinen Wert von 157,4 .... Dann Zeigt der Offset hier einen Wert von "4" an.
Du lässt diesen aber ja auf 2 Display Diggits anzeigen.... Somit Zeigt dir Mobiflight "40" an, denn er setzt den Wert auf das Linke display und füllt mit Nullen nach Rechts auf
Wenn du das ganze mit dem Vollen Display betrachtest .... 4xxx0
Benutzt du nun die LEFT PADDING Funktion wird daraus "04"... Also 0xxx4
Da wir aber hier die 0 auch nicht wollen musst du bei LEFT PADDING "SPACE" anstatt "0" auswählen...
Dann wird daraus "Blank-4" und es ergibt am Display xxx4 ( Also die Linke Stelle bleibt Leer)

Problem 2:
Ist dein Wert des ADF über 1000 dann ändert sich dieser Offset leider etwas unpraktisch.
Ein Wert von 1157,4 wird in dem Offset dann als 104 dargestellt ( 0-9 ist die Kommazahl wenn kein 1000er an ist.... 100-109 ist der Wert wenn 1000er an ist.

Da wir nun versuchen würden einen 3 stelligen Wert auf 2 Diggits darzustellen wäre das ergebnis in dem Fall 11570 .... anstatt 11574 !
Denn er versucht ja 104 zu schreiben... hat nur 2 Diggits und schaft nur "10"

Hier hiflt dann ein Compare.... Wenn Wert > 10 DANN Wert -90 .... Bei 0-9 ändert sich nichts. Bei 100-109 wird -90 gerechnet. Somit wird aus unserer "104" aus dem Beispiel "14" bzw 1xxx4 auf dem Display.... Und genau das wollen wir !
Alternativ könntest du auch 2 Configs dafür machen.... Die erste liest nur den 1000er (Byte 2) und schreibt das eine Display.... Die Zweite liest den Kommawert (Byte 1) und schreibt das hintere Diggit..... Ist aber in meinen Augen umständlicher !

***********

Keine Panik Gert.... Aus erfahrung kann ich sagen.... Nicht alle Offsets sind so umständlich wie dieser !
Good Luck !
2017-05-14 07:40
Avatar
Gemu
Posts: 101
Vielen Dank für diese Ausführliche Erklärung! Haha, mein Multi-Radio scheint ja eine richtige Zangengeburt zu werden.
Ich habe mir die ganze Nacht um die Ohren gehauen und versucht das Verhalten dieses Offsets zu entschlüssel - ohne Erfolg natürlich. Mir fehlt da auch einfach das Wissen über den grundsätzlichen Aufbau der Offsets - und zudem sind mir viele Dinge in MF auch noch etwas rätselhaft. Das ist wirklich Neuland für mich und oft logisch nicht gleich entschlüsselbar.

iconQuote:

Die Lösung deines Problems auf English gibts hier im Forum im Detail ..... https://www.mobiflight.com/forum/message/3406.html



Verflixt, schon bevor ich mich hier im Forum anmeldete, hatte ich mir die Zeit genommen und fast alle Post gelesen. Dieser ist mir wohl durch die Lappen gegangen.

Schön, jetzt verstehe ich die ADF-Problematik schon bedeutend besser und habe nun sogar zwei mögliche Lösungswege.
Wenn ich jetzt noch das Encoderverhalten verbessern könnte, wäre mein Radio quasi einsatzbereit. Der ELMA-E37 ist angegeben mit 16 detents per revolution, 2 pulses per detent und scheint mit MF nicht so gut zu harmonieren. Es braucht min. zwei Raster um ein Event auszulösen, oft reagiert er erst nach 5 oder mehr Raster. Das macht eine Frequenzeinstellung zur Geduldsprobe.
Ich dachte auch schon daran, den ELMA direkt auf den BU0836X-Controller zu setzen, weil man hierfür eine Encoder Configurations Software hat. Hab diese aber bislang noch nie ausprobiert. Dann müsste ich aber meine "66C0-Variable" in FSUIPC einbinden. Leider ist die Advanced-User-Doku für mich bislang noch sehr abstrakt und kyptisch.

Viele Grüße

Gert
2017-05-14 22:24
Avatar
pizman82
Moderator
From: ETSI, Germany
Posts: 6010
Supporter
Wenn du ein registriertes FSUIPC hast sag ich mal pauschal kannst du alles was du in Mobiflight einstellen kannst auch dort machen.
Sollte dir die Oberfläche zu kompliziert sein empfiehlt sich LINDA.... ein Freeware Tool das dich bei der Erstellung der FSUIPC Configs unterstützt !

Zu den Offsets....
Ich empfehle hier immer das ganze "Logisch" anzugehen.... Lies den Offset aus ( Ohne Display oder LED) und guck dir nur den Wert an der in Mobiflight ankommt....

Natürlich setze ich mal vorraus das ein Bastler der sich an das thema wagt z.b. weis was BCD Code ist und das er die Grundsätze von Binär und Hexadezimal versteht.
Wenn ja dann braucht es nur nen Taschenrechner und Jeder Offset ist plötzlich logisch und selbsterklärend !
Musst also kein Informatiker sein..... Ein wenig Grundwissen.... der Rest geht dann über probieren und schlussfolgern !

***********
Zum Problem:

Die Encoder Fehler können viele Ursachen haben.... Von einen kaputten Encoder über Verkabelung bis hin zu einen echten Softwareproblem.....
Da du offenbar aber nicht Grundsätzlich 2 Detents brauchst sondern auch mehrere am Stück nicht gehen..... Das ganze aber nicht regelmäßig ist sondern dann auch mal wieder klappt KÖNNTE es ein alter bekannter BUG sein.

Bei einer kleinen Gruppe von Usern kommt es zu teils massiven Lücken bei der Input übertragung..... Ursache bisher noch nicht bestätigt....
ABER
Es gibt eine nahezu 100%ige Lösung: Die Fehler verschwinden wenn man
a) Entweder nur Inputs in der Config verwendet und KEINE Outputs definiert.....
b) Oder man lässt Mibiflight DAUERHAFT im "Logging Debug" Mode laufen. ( Dann gehen auch Outputs)

Falls du Lust hast könntest du das testen.
Erstelle entweder Testhalber ne Config NUR mit deinen Encoder ohne ein Display oder einer anderen Output Config....
Oder Aktiviere unter "Einstellungen" das Logging per Checkmark und wähle den LoggingTyp "DEBUG" aus !

Bitte melde ob dein Encoder dann Fehlerfrei läuft.
Jede Info zu dem Problem hilft uns das ganze zu lösen.... Sebastian hat schon viel probiert.... Kann aber nur schwer helfen da ER diesen Fehler nicht hat !
[Last edited by pizman82, 2017-05-15 08:33]
Good Luck !
2017-05-14 23:46
Go to page 1Go to page 012Go to page 2Go to page 2