SimConnect ist eine von Microsoft entwickelte Schnittstelle zur Kommunikation externer Programme mit dem Flugsimulator. Der SimConnect-Server wird zusammen mit dem Flugsimulator installiert. SimConnect-Clients können unter bestimmten Voraussetzungen auch auf weiteren Netzwerk-PCs installiert werden, auf diese Möglichkeit wird hier aber nicht eingegangen, da aus Gründen der schnellen Übertragung der USB-Ereignisse z.B. von Drehimpulsgeben, eine lokale Installation der Clients bevorzugt wird.
Funktionsschema des SimConnect-Clients UCPControl
Der SimConnect-Client kommuniziert direkt mit dem USB-Controller. Die Ereignisse an der Tastatur-Matrix und an den Eingabe-Ports werden vom USB-Controller verarbeitet und entsprechend der Definitionen in der Konfigurationsdatei werden Ereignisse (Event-IDs) zum SimConnect-Server gesendet.
Diese Ereignisse können priorisiert werden, damit ist es möglich über den SimConnect-Server auch selbst definierte Ereignisse an weitere SimConnect-Clients wie z.B. den TFT-Interface Client zu senden.
Der UCPControl-Client kann Simulations-Variablen abfragen und entsprechend der Definition in der Konfigurationsdatei diese zur Ansteuerung von Anzeigen an den Ausgabe-Ports nutzen
Für die Verwendung des ITRA-SimConnect-Clients ist die Installation der aktuellen Version des FSX oder Prepar3D notwendig. Es müssen die aktuellen Treiber für die ITRA-Geräte installiert sein. Für die Verwendung der USB-Geräte installieren Sie bitte vor dem Anschluss des Gerätes an den PC das ITRA-USB-Treiberpaket.
Speicherort der ITRA-SimConnect-Clients:
Win7-64bit: C:\Program Files (x86)\ITRA\SimConnect
Win7-32bit: C:\Program Files\ITRA\SimConnect
Speicherort der Konfigurations-Dateien der ITRA-SimConnect-Clients
C:\Users\Benutzername\AppData\Roaming\ITRA\SimConnect
Speicherort der Konfigurations-Dateien exe.xml und dll.xml des FSX
C:\Users\Benutzername\AppData\Roaming\Microsoft\FSX
Speicherort der Konfigurations-Dateien exe.xml und dll.xml des Prepar3D
C:\Users\Benutzername\AppData\Roaming\Lockheed Martin\Prepar3D
Die Konfigurationsdateien können z.B. mit dem Editor (Programme → Zubehör) angezeigt und bearbeitet werden. Entsprechende Links zu den Konfigurationsdateien werden bei der Installation im Programmordner erzeugt.
Wir empfehlen die Benutzung der mitgelieferten Konfigurations-Programme.
Es bestaht auch die Möglichkeit der Einrichtung zum automatischen Starten der SimConnect-Clients mit dem Flugsimulator.
Hinweis: Falls die SimConnect-Clients auf Ihrem System mit einer Fehlermeldung starten, dann müssen auf Ihrem System die aktuellen Laufzeitbibliotheken für die Programmumgebung installiert werden. Diese finden Sie über die Microsoft Downloads.
Microsoft Visual C++ 2010 SP1 Redistributable Package (x86)
Visual C++ Redistributable Packages für Visual Studio 2013
Das Paket finden Sie auf im ITRA-Support-Bereich auf Sim&IT. Es besteht aus dem SimConnect-Client und Tools zum Erstellen der Konfigurationsdateien.
→ Download ucpcontrol-simconnect.zip
Wählen Sie bei der Installation das Konfigurations-Tool für den von Ihnen eingesetzten Flugsimulator (FSX oder Prepar3D) aus. Die Tools sind funktional gleich, aber die Pfade sind entsprechend der Flugsimulatoren eingestellt.
In den nächsten Abfragen können Sie den Zielordner der Installation und den Menü-Ordner der Programm-Gruppe ändern. Mit „Fertigstellen“ ist die Client-Installation abgeschlossen.
Nach der Installation finden Sie in der Programmgruppe ITRA → SimConnect den SimConnect-Client sowie Dokumentationen, einen Link zur Konfigurationsdatei und ein Konfigurationsprogramm für den Flugsimulator.
Beim Starten des Clients wird eine Verbindung zum Flugsimulator gesucht und wenn dieser gestartet ist, aufgebaut, danach wird das Flightboard gesucht. Informationen über den Status sowie die geladene Konfigurationsdatei werden im Konsolenfenster des Clients angezeigt.
Für erfahrene Benutzer
Jede Client-Verknüpfung kann durch Hinzufügen eines Konfigurationsdateinamens an das Ende des Verknüpfungsziels mit einer separaten Konfiguration ausgeführt werden. Die angegebene Konfigurationsdatei wird erst im aktuellen Programm-Pfad und dann im oben angegebenen Applikations-Datenpfad für die SimConnect-Clients gesucht.
Achtung! Wenn der Client über die exe.xml vom Flugsimulator gestartet wird ist der aktuelle Programm-Pfad der Flugsimulator-Pfad. Die geeignetere Ablage für Konfigurationsdateien ist der Applikations-Datenpfad der SimConnect-Clients.
Das automatische Starten der SimConnect-CLients mit dem Flugsimulator ist im HowTo SimConnect-Client Autostart beschrieben.
In der Hilfe-Datei des SimConnect SDK bzw. auf der Webseite des Microsoft ESP bzw. Prepar3D. Im Abschnitt Event-IDs sind die Zeichenketten (String Name) für die Ereignisse beschrieben, die bei der Definition der Tasten und Schalter verwendet werden können.
Die Zeichenketten der Variablen, die bei der Ansteuerung der LEDs verwendet werden, befinden sich im Abschnitt Simulation Variables.
Der standardmäßig verwendete Dateiname ist ITRA-UCPControl.cfg.
Es gibt vier Sektionen in der Konfigurationsdatei des SimConnect-Clients
[UCPControl] Grundlegende Definitionen INDEX=0 -> je nach programmiertem Index des USB-Controllers, Standard ist 0 DEBOUNCE=0 -> Entprellung (Wert*50ms)
[UCP_KEYS] Definition der Tastenzuordnungen Z0_S0=DME_SELECT -> String-Definition für Tast-Ereignis entsprechend der Dokumentation des SimConnect-SDK im Abschnitt Event-IDs, Beispiel für DME-Auswahl Z0_S0_ARG=2 -> Einige Kommandos erfordern einen Parameter Beispiel für DME2 Es sind hier nur Zahlen als Argument möglich Z0_S0_REPEAT=0 -> {0..10} Faktor zum Definieren der Wiederholfunktion, 0=aus 1 entspricht ca. 50ms 10 entspricht ca. 500ms Z0_S0_PRIORITY=0 -> {0,1} setzen auf hohe Event-Priorität für Senden von selbst definierten Ereignissen an weitere SimConnect-Clients z.B. zum ITRA-Interface-Client ... Z8_S15 Z8_S15_ARG Z8_S15_REPEAT Z8_S15_PRIORITY -> derzeit werden 144 Taster unterstützt von Zeile0/Spalte0 bis Zeile8/Spalte15
[UCP_SWITCHES] Schalterdefinition bei Verwendung der Eingabeports (I²C-Adressen 20..23) P0_B0_OFF -> String-Definition für Ausschalt-Ereignis des Schalters entsprechend der Dokumentation des SimConnect-SDK im Abschnitt Event-IDs P0_B0_OFF -> String-Definition für Einschalt-Ereignis des Schalters entsprechend der Dokumentation des SimConnect-SDK im Abschnitt Event-IDs P0_B0_OFF_ARG -> Einige Kommandos erfordern einen Parameter Es sind hier nur Zahlen als Argument möglich P0_B0_ON_ARG -> Einige Kommandos erfordern einen Parameter Es sind hier nur Zahlen als Argument möglich P0_B0_PRIORITY=0 -> {0,1} setzen auf hohe Event-Priorität für Senden von selbst definierten Ereignissen an weitere SimConnect-Clients ... P3_B7_OFF P3_B7_ON P3_B7_OFF_ARG P3_B7_ON_ARG P3_B7_PRORITY -> Es werden maximal 4 Ports (32 Eingänge) unterstützt
Es wird jeweils einmalig ein Kommando beim Zustandswechsel des Schalters ausgegeben.
[UCP_LEDS] Definition der Anzeige-Ausgänge bei Verwendung der Ausgabeports (I²C-Adresse 24..27) P0_B0=SELECTED DME -> String-Definition für Simulations-Variable entsprechend der Dokumentation des SimConnect-SDK im Abschnitt Simulation Variables P0_B0_UNIT=number -> Einheit entsprechend der Variablen-Definition. Standard ist boolean, bei Boolean-Variablen kann diese Definition entfallen P0_B0_LEVEL=2 -> Bei der Verwendung von Integer-Variablen kann hier eine Schaltschwelle angegeben werden, ab welcher der Ausgang geschaltet wird, RANGE beeinflusst das Verhalten P0_B0_RANGE=1 -> Bei der Verwendung von LEVEL kann hier ein Wertebereich eingetragen werden, bei dem der Ausgang geschaltet wird. (Standard ist 0) 0: alle Werte gleich und größer LEVEL aktivieren den Ausgang 1: nur bei LEVEL wird der Ausgang aktiviert größer 1: von LEVEL bis kleiner LEVEL+RANGE ist der Ausgang aktiv P0_B0_INVERSE=0 -> {0,1} Die Ausgangslogik wird umgekehrt. ... P3_B7 P3_B7_UNIT P3_B7_LEVEL P3_B7_RANGE P3_B7_INVERSE -> Es werden maximal 4 Ports (32 Ausgänge) unterstützt
Mit dem Setup können Sie eine Beispiel-Konfiguration installieren.
In der Programmgruppe ITRA – SimConnect befinden sich nach der Installation drei Hilfsprogramme für das Erstellen und Bearbeiten der UCPControl-Konfigurationsdatei.
Mit dem Key Event Editor können der Tastatur-Matrix des USB-Controllers Simulator-Ereignisse zugeordnet werden. Zu jeder Taste kann zusätzlich eine Wiederholrate eingestellt werden.
Zuerst müssen alle Programme deaktiviert werden, die mit dem USB-Controller kommunizieren.
Sie können eine bereits bestehende Konfiguration laden oder mit einer leeren Matrix beginnen und diese dann speichern.
Die Abfrage der Tasten erfolgt, indem die entsprechende Taste gedrückt wird und anschließend mit der Maus die Schaltfläche UCP-Taste lesen geklickt wird. Es öffnet sich die zugehörige Eingabe-Maske.
Sie können aber auch mit der Maus in der Matrix das gewünschte Feld doppelklicken, um die Eingabemaske zu öffnen.
Es werden Zeile und Spalte angezeigt sowie bereits definierte Ereignisse. Für einige Ereignisse ist ein zusätzliches Argument notwendig, so kann z.B. bei DME_SELECT mit dem Argument 1 oder 2 das entsprechende DME ausgewählt werden.
Für Ereignisse, die nicht nur zum Flugsimulator, sondern weiter zu anderen SimConnect-Clients gesendet werden sollen, wie z.B. zum TFT-Interface-Client, ist es notwendig die Ereignispriorität auf hoch zu setzen.
Der Standard-Abfragezyklus des SimConnect-Clients beträgt 50ms. Es kann mit Taster entprellen für alle Ereignisse eine Anzahl zusätzlicher Zyklen angegeben werden, in der ein Tastensignal gültig sein muss. Beachten Sie, dass dies beim Einsatz von Drehimpulsgebern nicht verwendet werden kann.
Die Belegung der Matrix kann mit Druckvorschau auch als Liste angezeigt werden. Diese Liste kann dann ausgedruckt werden.
Mit dem Switch Event Editor können den Schaltwechseln der Schalter an den Eingabe-Ports Simulator-Ereignisse zugeordnet werden. Es gibt jeweils ein ON- und ein OFF-Ereignis.
Zuerst müssen alle Programme deaktiviert werden, die mit dem USB-Controller kommunizieren.
Sie können eine bereits bestehende Konfiguration laden oder mit einer leeren Matrix beginnen und diese dann speichern.
Die Abfrage der Schalterwechsel erfolgt, indem der entsprechende Schalter betätigt wird und anschließend mit der Maus die Schaltfläche Abfragen geklickt wird. Es öffnet sich die zugehörige Eingabe-Maske. In der Zeile neben dem Abfrage-Knopf wird der Bit-Zustand der Ports angezeigt.
Sie können aber auch mit der Maus in der Matrix das gewünschte Feld doppelklicken, um die Eingabemaske zu öffnen.
Es werden Port und Bit angezeigt sowie bereits definierte Ereignisse. Für einige Ereignisse ist ein zusätzliches Argument notwendig, so kann z.B. bei DME_SELECT mit dem Argument 1 oder 2 das entsprechende DME ausgewählt werden.
Für Ereignisse, die nicht nur zum Flugsimulator, sondern weiter zu anderen SimConnect-Clients gesendet werden sollen, wie z.B. zum TFT-Interface-Client, ist es notwendig die Ereignispriorität auf hoch zu setzen. Siehe dazu auch die Beschreibung der SimConnect-Clients A320. Dort sind auch die ITRA-SimConnect-Ereignisse definiert, die die A320-Clients verarbeiten können.
Die Belegung der Matrix kann mit Druckvorschau auch als Liste angezeigt werden. Diese Liste kann dann ausgedruckt werden.
Mit dem Simulation Variables Editor können Simulator-Variablen den LED-Funktionen den Ausgabe-Ports zugeordnet werden.
Zuerst müssen alle Programme deaktiviert werden, die mit dem USB-Controller kommunizieren.
Sie können eine bereits bestehende Konfiguration laden oder mit einer leeren Matrix beginnen und diese dann speichern.
Die Definition der Zuordnung erfolgt, indem Sie im entsprechenden Feld der Matrix doppelklicken. Die mit dem entsprechenden Ausgang verbundene LED kann mit dem Knopf LED-Test für 2 Sekunden getestet werden.
Für einfache ON-/OFF-Variablen (boolean) wird nur die Simulations-Variable in das Eingabefeld eingetragen. Im ON-Zustand ist der Ausgang aktiv. Mit dem Aktivieren von Umgekehrte Funktion ist der Ausgang im OFF-Zustand aktiv.
Wenn Sie Integer-Variablen verwenden wollen, dann muss die entsprechende Maßeinheit der Variablen angegeben werden (je nach Zuordnung der Variablen zu bestimmten Oberbegriffen z.B. Druck, Temperatur usw. sind mehrere Maßeinheiten möglich). Es kann ein Schwellwert (Level) angegeben werden, ab dem der Ausgang aktiv sein soll und ein Bereich (Range) oberhalb des Schwellwertes. Ein Bereich von 0 aktiviert den Ausgang bei allen Werten ab dem Schwellwert (einschließlich), ein Bereich von 1 aktiviert den Ausgang bei nur genau dem Wert des Schwellwertes. Ist ein Bereich größer 1 angegeben, dann wird der Ausgang aktiv, wenn der Wert größer/gleich dem Schwellwert und kleiner als Schwellwert+Bereich ist. Auch hierbei ist die umgekehrte Funktion des Ausgangs möglich.
Die Belegung der Matrix kann mit Druckvorschau auch als Liste angezeigt werden. Diese Liste kann dann ausgedruckt werden.