MobiFlight Connector

Der Connector ermöglicht Dir, die Informationen aus Deinem Cockpit an die MobiFlight Module zu senden.

Die Doku ist leider nicht in allen Teilen ganz aktuell - aber definitv hilfreich für den Start Lächelnd - bitte hab' noch ein bisschen Geduld. Schau in der Zwischenzeit die aktualisierte englische Version an

Hauptansicht

MF Connector Hauptansicht

Die Menüleiste enthält folgende Hauptpunkte.

  • Datei - erlaubt das Laden & Speichern von Konfigurationen und zusätzlich den Schnellzugriff auf die letzten fünf geladenen Konfigurationsdateien.
  • Extras - Hier sind folgende Menüpunkte vorhanden
    • Verwaiste Module verwalten - Öffnet den Dialog zur Auflistung verwaister Module
    • Einstellungen - Öffnet den Einstellungen-Dialog.
  • Hilfe -
    • Hilfe im Web aufrufen - ruft die aktuelle Seite auf
    • Informationen zur aktuellen Software-Version

Toolbar

tl_files/bootstrapbase/img/dokumentation/software/mfconnector-toolbar.png

  • Speichern (Save)- aktuelle Konfiguration speichern. Er wird dann klickbar, sobald es Änderungen seit dem letzten Laden der Konfiguration gab.
  • Start (Run)- Führt die aktuelle Konfiguration aus. Ist nur klickbar, falls mindestens ein unterstütztes Modul (MobiFlight Board oder Arcaze) erkannt wurde und die FSUIPC-DLL aktiv ist (FS ist gestartet)
  • Test - Führt den Test-Mode aus. Für jede aktive Konfigurationszeile wird der entsprechende Output geschaltet - unabhängig von aktuellen FSUIPC-Werten. Dadurch kann man checken, ob die Konfiguration der Ausgabe über das MobiFlight Board korrekt ist (z.B. Pin-Wahl oder Led-Display-Modul)
  • Stop - Beendet den aktuell ausgeführten Modus (Run/Test).
  • AutoRun - Kann aktiviert werden und sorgt beim nächsten Start des MF Connector, dass die zuletzt geladene Konfiguration selbstständig ausgeführt wird (Run-Mode). Dabei minimiert sich das Startfenster automatisch (verschwindet in der Taskbar als Tray-Icon rechts unten) und das Programm wartet solange, bis die FSUIPC.DLL erreichbar ist (FS ist gestartet).

    Die Startreihenfolge der Programme (MFConnector und Flugsimulator) ist also unerheblich.
  • Beenden (Exit)- Beendet das Programm.
    Hinweis: Sollten noch ungespeicherte Änderungen vorliegen, wird der Benutzer entsprechend daraufhingewiesen und kann diese vor dem Beenden noch speichern.

Konfigurationsliste

main_screen_list.png

Die Liste zeigt alle Konfigurationseinträge der aktuell geladenen Datei (s. Hinweis im Fenstertitel).

Zeileneinträge enthalten folgende Informationen:

  • Aktiv (Active) - Konfigurationseintrag ist aktiviert. Nur aktive werden beim Auslesen der FSUIPC-Werte und beim Setzen der Ausgänge berücksichtigt.
     
  • Beschreibung (Description) - Frei wählbarer Name für den Konfigurationseintrag. Editierbar.
     
  • FSUIPC Offset - Der konfigurierte FSUIPC-Offset. Dient zur Orientierung und als sinnvolle Sortiermöglichkeit.
     
  • Arcaze Serial - Die Serial bzw. der Name des konfigurierten Arcaze-Moduls. Dient zur Orientierung und als sinnvolle Sortiermöglichkeit.
     
  • FSUIPC Wert (FSUIPC Value) - Aktuell ausgelesener Wert über FSUIPC. Nur wenn aktuell im Run-Mode. Sonst leer.
     
  • Arcaze Value - Aktueller Wert, der an das Arcaze-Modul zur Ausgabe gesendet wird.
     
  • ... - Klick öffnet den Config-Wizard (s. 2.). Der Config-Wizard kann auch durch einen Doppelklick auf eine Konfigurationszeile geöffnet werden.

Status-Leiste

main_screen_status.png

  • Arcaze-USB - zeigt den Status der Arcaze-Module an.
    • gelb - Kein Arcaze-Modul gefunden
       
    • grün - mindestens ein Arcaze-Modul gefunden
       
  • Arcaze-USB - zeigt den Status von FSUIPC an.
    • gelb - FSUIPC wurde nicht gefunden - Mögliche Ursache: Flugsimulator wurde nicht gestartet oder DLL ist nicht richtig konfiguriert.
       
    • grün - Software ist mit FSUIPC verbunden
       
  • Status Info... - Anzeige über den Ausführungszustand
    • "Status Info..." - Ausführung wurde gestoppt oder noch nicht gestartet. Aktuell werden keine FSUIPC-Werte ausgelesen oder Arcaze-Werte geschrieben.
       
    • "Läuft" / "Running..." - Aktuell befindet sich die Software im "Run-Mode" und Werte werden über FSUIPC gelesen bzw. an ein Arcaze-Modul gesendet.

      Hinweis: Solange die Pünktchen wandern läuft die Ausführung einwandfrei. Sollten die Pünktchen einfrieren, dann ist in der Regel ein Fehler aufgetreten und das Programm ist eingefroren bzw. hängt. Hier hilft aktuell nur ein Schließen der Applikation.

Settings-Dialog

Der Settings-Dialog wurde mit der Version 3.0 eingeführt. Er kann über das Hauptmenü unter "Extras" > "Settings" aufgerufen werden.

Hinweis: Sollte bei Programmstart festgestellt sein, dass neue oder unbekannte Module (z.B. nach Config-Änderung im ConfigTool) angeschlossen sind, wird der Dialog automatisch mit einem entsprechenden Hinweistext geöffnet.

Allgemein-Tab (General-Tab)

settings-general.png

Es ist möglich die Anzahl der zuletzt verwendeten Config-Dateien zu editieren. Das kann sinnvoll sein, wenn man häufig zwischen verschiedenen Flugzeugen wechselt.

Extension Module(s)-Tab

settings-extension-modules-internal.pngsettings-extension-modules-display.png

settings-extension-modules-led_v2.pngsettings-extension-modules-led.png

Das Extension-Modules-Tab erlaubt die Konfiguration der angeschlossenen Arcaze-Module in Bezug auf die Erweiterungsmodule, wie z.B. LED Driver v2 / v3 oder Display Driver.

  • Verfügbare Module (Available Modules)  - Serial, Liste mit den aktuell angeschlossenen Modulen, welche konfiguriert werden können.
  • Einstellungen Extension-Modul (Extension Modules Settings) - Hier sollen Details zu den verwendeten Erweiterungsmodulen angegeben werden. Die Informationen sind notwendig, damit die LED Driver Module korrekt von der Software angesteuert werden.

    Folgende Informationen sind anzugeben:
    • Type - DisplayDriver, LedDriver2 oder LedDriver3
    • Count - die Anzahl der angeschlossenen Module an dem ausgewählten Arcaze-Board
    • Global Intensity - Die globale Leuchtkraft (Intensität) der Anzeigen bzw. LEDs

FSUIPC-Tab

settings-fsuipc.png

Es ist möglich das Polling-Intervall - also die Häufigkeit mit der die Daten von FSUIPC abgerufen werden - im Bereich von 100ms bis 500ms anzupassen. Je niedriger der Wert, desto öfter werden die Offset-Daten via FSUIPC aktualisiert.

Die Einstellung des Polling-Intervalls ist ein experimentelles Feature. Der Standard-Wert liefert gute Ergebnisse.

Config-Wizard

Der Config-Wizard erlaubt das übersichtliche Pflegen der Konfigurationseinträge und verteilt die verschiedenen Angaben auf passende Tabs.

Der Config Wizard kann durch die folgenden Aktionen geöffnet werden:

  • Klicken auf den "..."-Button
  • Doppelklick auf Konfigurationszeile außerhalb der "Beschreibung"-Spalte
  • Leertaste wenn Fokus auf "..."-Button - z.B. durch mehrmaliges Drücken der Tab-Taste.

FSUIPC-Tab

config-wizard-fsuipc.png

Im FSUIPC-Tab werden alle relevanten Angaben zu den FSUIPC-Werten gemacht.

  • Verwende Preset (Use preset) - Ermöglicht das Laden von Voreinstellungen. Dadurch kann man besonders einfach auf FSUIPC-Werte zugreifen. Presets werden geladen durch:
    • Auswahl der gewünschten Funktion aus der Liste
    • Bestätigen durch Klick auf "OK"("use")-Button

wizard_tab_fsuipc_presets.png

  • Base settings - FSUIPC Basis-Einstellungen - Offset und Byte-Größe sind beide in der FSUIPC-Offset-Doku enthalten (s. Hinweis unten).
     
  • More Options - Erweiterte Angaben zur Verarbeitung der Offsets
    • Mask value with - Dieser Wert wird automatisch gesetzt und muss in den meisten Fällen nicht geändert werden. Der Wert erlaubt das maskieren von einzelnen Bits.

      Beispiel: "Lights"-Offset 0x0D0C - hier sind die einzelnen Light-Position (On|Off) bitweise kodiert.
      Ein Beispiel für die "Landing Lights" ist in der Beispiel-Konfiguration (sample.aic) enthalten. Ein ausführliches Beispiel gibt es unter:
       
    • BCD mode - Aktiviert den BCD Mode und interpretiert Werte an den Offsets anders. Ob der BCD-Mode aktiviert werden muss, kann in der FSUIPC-Offset-Doku abgelesen werden. Beispiel sind hierfür die Offsets rund um NAV-, COM- und SQUAWK-Einstellungen.
       
    • Multiply by - Erlaubt das Multiplizieren des ausgelesen FSUIPC-Wertes mit einem angegebenen Wert. Ob und wie man einen Wert multiplizieren muss ist in der FSUIPC-Offset-Doku vermerkt. Beispiel: Autopilot Heading - teile Werte durch (65536/360) (siehe sample.aic) -

      Ab Version 3.4 kann man auf dem Vergleichs-Tab ebenfalls mathematische Formeln auf die Werte anwenden.

Hinweis:

Die Informationen erhält man quasi zu 100% aus der FSUIPC-SDK-Dokumentation:

  • FSUIPC4 Offsets Status.pdf
  • FSUIPC for Programmers.pdf

Beide PDFs sind im frei verfügbaren FSUIPC SDK enthalten, welches auf der Seite von Peter Dowson http://www.schiratti.com/dowson.html verlinkt ist.

Comparison-Tab

config-wizard-comparison.png

Das Comparison-Tab erlaubt die Definition von Vergleichen. Dadurch ist es möglich, einen Wert nachträglich nochmal abzuändern. Beispiel: Anzeige der Flaps-Position 1 - Arcaze-Pin soll dann "1" sein, wenn FSUIPC-Wert 4096 (s. sample.aic). Der Aufbau des Tabs ist selbsterklärend.

Hinweis: Aktuell ist es nicht möglich eine untere und obere Grenze gleichzeitig zu definieren bzw. Vergleiche zu verknüpfen. Dies geht aber seit Version 3.0 indirekt durch die Vorbedingungen (Preconditions-Tab), denn man kann damit mehrere Bedingungen miteinander verknüpfen.

Expression-Engine

Ab Version 3.4 ist eine Expression-Engine (zuerst nur für die Vergleichswerte) eingeführt. Mehr Infos dazu gibt es im Abschnitt "Expression-Engine".

Display-Tab

config-wizard-display.png

Das Display-Tab dient zur Konfiguration der Ausgabe-Parameter. Also über welches Modul und welchen Pin bzw. welches LED-Display-Modul soll der aktuelle Wert ausgegben werden.

Ab Version 3.4 kann man gibt es im unteren Bereich für alle Display-Varianten eine Möglichkeit, die aktuellen Angaben zu testen. Hierbei wird der Testmodus für die passende Display-Variante gewählt. Dieser entspricht dem Test-Modus der auch in der Hauptansicht über die Toolbar gestartet werden kann.

  • Display Type - Definiert Modul und Display-Typ. Aktuell sind folgende Typen auswählbar:
    • Pin - Ausgang auf dem Arcaze-Modul.
       
    • LedDigits - Ausgabe über die neuen Led-Display-Module.
       
    • BCD4056 - Erlaubt die Ansteuerung einer 7-Segment-Anzeige unter Verwendung des CMOS-Bausteins
       
  • Display Settings - Je nach Typ werden zusätzliche Optionen angezeigt
    • Pin - Über die DropDowns wird der gewünschte Pin zur Ausgabe definiert. Die Angaben zu Port und Pin sind ab Version 2.0 getrennt.

      Sollte für das ausgewählte Arcaze Modul im Settings Dialog ein Extension Module LED Driver v3 definiert sein, dann können für die Ports auf dem LED Driver die Helligkeit über den Schieberegler "Brightness" beeinflusst werden.

      config-wizard-display-ledv3.png
       

      Für Port A und B, die sich ja auf das Basis-Board beziehen steht die Funktion natürlich nicht zur Verfügung. In diesem Fall ist der "Brightness"-Schieberegler zwar sichtbar, aber nicht aktiv.
       
    • LedDigits - Für die LED-Display-Module müssen folgenden Einstellungen vorgenommen werden:
      • Addr - Die eingestellte Adresse des Displays, z.B. 1
         
      • Connector - Der verwendete Connector. Ab Display Modul v2.0 gibt es zwei Connector auf dem Board die mit den entsprechenden Nummern gekennzeichnet sind.
         
      • Number of digits -  Die Anzahl der Stellen des verwendeten LED-Segment-Moduls. Das ist wichtig, damit die beiden Module korrekt angesteuert werden können.
         
      • Use Left Padding - Zahlen werden nach links mit "0" aufgefüllt. Sinnvoll z.B. für Kursanzeige "010" (s. sample.aic).
         
      • Use Display - Jede Checkbox repräsentiert ein Digit (Ziffer), welches über das Modul angesteuert werden kann (bis zu 8 Digits)

        (Hinweis: die interne Nummerierung der Digits ist genau entgegengesetzt zur Nummerierung im Formular. Entspricht aber nicht der intuitiven Leserichtung.)
         
      • Set decimal point - Definiert einen Dezimalpunkt für das entsprechende Digit/Ziffer.

config-wizard-display-7segment.png

  • BCD4056 - Folgende Informationen werden für diesen Typ angegeben:

    • Strobe - Die Adresse des Pins, der den Strobe-Pin des BCD4056 ansteuert
       
    • Pins - Die Adressen der Pins, die die vier Input-Pins am BCD4056 ansteuern. Es wird davon ausgegangen, dass die Pins am gleichen Port des Arcaze hängen (das erspart nämlich Platz im Konfigurationsdialog).

config-wizard-display-bcd.png

Precondition-Tab

Das Precondition-Tab ist seit v2.0 vorhanden. Es ist möglich eine Vorbedingung zu definieren. Nur wenn diese Vorbedingung erfüllt ist, wird die aktuelle Konfiguration ausgeführt. Dadurch ergeben sich viele neue Möglichkeiten, z.B. Multi-Radio-Instrumente, die je nach Schalterstellung entweder COM1, COM2, NAV1, NAV2 oder ADF auf einem gemeinsamen Display darstellen.

Seit v3.9 können mehrere Vorbedingungen in der Liste angegeben und logisch miteinander verknüpft werden.

 

Precondition list - Vorbedingungen bearbeiten
Bereich bearbeiten

Die Liste zeigt die aktuell definierten Vorbedingungen an. Man kann über das Kontextmenü (Öffnen mit rechter Maustaste)

  • Eine neue Vorbedinung hinzufügen
     
  • Eine Vorbedingung entfernen
     
  • Die logische Verknüpfung definieren, es ist "AND" oder "OR" möglich wobei aktuell noch keine Gruppierung möglich ist und die Logik nacheinander ausgewertet wird

Außerdem ist es möglich eine Vorbedingung zu aktivieren oder zu deaktiveren. Eine aktive Vorbedingung wird durch den Haken am Listeneintrag symbolisiert.

Vorbedingungen konfigurieren
Bereich bearbeiten

Use type of - Definiert die Art der Vorbedingung (precondition)

  • Pin - Der Status eines Ein- oder Ausgangs auf dem Arcaze-Modul.
    • Arcaze Module - Das Arcaze-Modul welches verwendet werden soll
       
    • Pin - Der Pin der für die Prüfung verwendet werden soll
       
    • If current state is - Der Vergleichswert: An (On) oder Aus (Off)

 

  • Config - Der Wert einer anderen Config-Zeile der aktuellen Konfiguration kann verglichen werden. Dadurch ist es übersichtlich möglich auf FSUIPC-Werte aus der aktuellen Konfiguration zu zugreifen.
    • Choose config - Aus der Liste kann man die gewünschte Config-Zeile auswählen
       
    • If current value is  - Auswahl von Vergleichsoperator und Wert.

      Hinweis:
      Der Vergleich verwendet immer den Arcaze-Wert (vgl. Konfigurationsliste, Arcaze Value) - also nicht den FSUIPC-Rohwert sondern den Wert nachdem alle Transformationen und Vergleiche durchgeführt wurden.

      Seit Version 3.9 ist es möglich auch eine Expression beim Vergleich anzugeben, wobei $ den aktuellen Wert der Config-Zeile repräsentiert. Dazu kann die Expression-Syntax verwendet werden (s. Expression-Engine)

 

Änderungen sind jeweils mit der Schaltfläche "Apply" zu bestätigen.

Expression-Engine (Komplexe Formeln)

Seit Version 3.4 gibt es die Möglichkeit, Werte auch mit komplexen Berechnungen abzuändern. Dies erlaubt neben dem ursprünglichen Multiplikator neue Freiheiten beim Berechnen von Werten. Schaut man in die FSUIPC Doku, dann gibt es eine Reihe von Werten, die nicht alleine mit dem Multiplikator-Feld abgebildet werden können, z.B. der aktuelle Kurs. Hierfür ist es notwendig zum FSUIPC-Wert 360 hinzuzuählen, wenn der Wert kleiner 0 ist.

Die Formeln können einfach in den "Dann-Sonst-Feldern" auf dem "Vergleichs"-Tab angegeben werden.

Der eigentliche Wert, der nach der Multiplikation vorhanden ist wird dabei mit dem "$"-Symbol referenziert und kann beliebig oft in der Formel auftauchen.

Beispiel "Aktueller Kurs"

config-wizard-comparison-expression.png

Bei Bedarf können auch Klammerungen usw. in den Ausdrücken enthalten sein. Eine komplette Doku kann man auf der Webseite der Expression-Engine finden.

Hinweis:
Aktuell findet noch keine Validierung der Formeln bei der Eingabe statt. Falls die Formel nicht korrekt ist, wird eine Fehlermeldung bei der Ausführung angezeigt.

Bit-Masken-Beispiel

In der FSUIPC-Doku steht zum Beispiel Folgendes:
 

Offset Byte Bemerkung
0D0C 2 Lights (FS2k/CFS2), a switch for each one (bits from lo to hi):
0  Navigation
1  Beacon
2  Landing
3  Taxi
4  Strobes
5  Instruments
6  Recognition
7  Wing
8  Logo
9  Cabin

An einem Offset sind also die Zustände von 10 verschiedenen Lichtschaltern hinterlegt - die können ja immer entweder "An" oder "Aus" sein. Das geht, weil der Wert am Offset 0x0D0C eine Länge von 2 Byte hat - insgesamt 16 bit - also insgesamt wären sogar 16 Schalter möglich gewesen (es gibt aber nicht so viele Lichtschalter bei den Default-Maschinen). "An" und "Aus" wird durch eine "1" bzw. "0" dargestellt. Im Speicher liegen die Bits "verkehrt" herum. Man kann sich es also wie folgt vorstellen:

2. Byte 1. Byte
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0

Die grünen Bits gehören zum ersten Byte, die blauen Bits gehören zum zweiten Byte. Im Beispiel sind also aktuell Cabin-Light (Bit 9) und Strobes (Bit 4) aktiviert während alle anderen Lichter ausgeschaltet sind (immer 0).

Möchte man im ArcazeFC nun eine LED einschalten, wenn ein bestimmtes Bit eine "1" enthält, muss man dieses eine Bit mit "1" und alle anderen Bits, die man nicht auswerten möchte mit "0" maskieren. Führende Nullen können dabei weggelassen werden. Für das Cabin Light ergibt sich daher
 

2. Byte 1. Byte
15 14 13 12 11 10  9  8  7  6  5  4  3  2  1  0
0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0

also "0000000100000000" oder ohne führende Nullen "1000000000". Diese Wurst aus Nullen und Einsen ist der binäre Wert für die notwendige Maskierung. Wenn man nun den Windows-Taschenrechner öffnet, bei "Ansicht" auf "Programmierer" stellt und auf der linken Seite "Bin" auswählt, kann man den Wert exakt so eingeben. Stellt man auf "Dez" um, kann man nun den dezimalen Wert ablesen: 512. Hintergrund: Binär ist Zweier-System. Deswegen bedeutet eine 1 am 9. Bit das Gleiche wie 2 hoch 9 also 512.
Typischerweise werden aber Bit-Masken hexadezimal codiert - und so erwartet es auch ArcazeFC. Warum einfach wenn es auch kompliziert geht :D  - EGAL! wir haben ja unseren Taschenrechner. Dort von "Dez" einfach auf "Hex" umstellen. Aus 512 wird 200 - fertig ist unsere gewünschte Maske! Diesen Wert muss man jetzt im ArcazeFC eintragen.

Der maskierte FSUIPC-Wert ist anschließend immer dann größer 0, wenn auch das entsprechende Licht aktiv ist. Ist das Licht aus, dann ist der Wert immer 0.

(Beim Schreiben habe ich mir vorgenommen, diesen Teil im ArcazeFC noch zu vereinfachen, damit man es auch als Nicht-Informatiker intuitiv benutzen kann. In der Zwischenzeit muss man es halt irgendwie verstehen.)

Sodele. Hoffentlich hilft die Doku ein bisschen weiter, falls mal Fragen auftauchen.

Viele Grüße,
Sebastian