Eine einfache Bibliothek zum Verbinden und Arbeiten mit SimConnect, einer Bibliothek, die die Kommunikation mit Flugsimulatoren (z. B. FS2020) ermöglicht.
Das Ziel dieser Bibliothek besteht darin, eine einfache Schnittstelle für die Arbeit mit FS2020 über .NET/C# bereitzustellen, ohne dass tiefe Kenntnisse von SimConnect erforderlich sind. Andererseits werden nur die Grundoperationen unterstützt. Diese Bibliothek deckt nicht alle Möglichkeiten der ursprünglichen SimConnect-Bibliothek ab.
Für die Bibliothek muss die Windows .NET Core 6.0-Laufzeitumgebung installiert sein (sie ist standardmäßig in der Installation von Windows 10+ enthalten).
Entpacken Sie einfach die erforderliche Version in den Ausführungsordner eines Zielprojekts und verknüpfen Sie ESimConnect.dll + andere bereitgestellte Bibliotheken mit Ihrem Projekt. Hinweis: Damit es funktioniert, muss auch eine Datei SimConnect.dll
in Ihrem Projektausgabeverzeichnis enthalten sein. Auf diese Datei wird in Ihrem .NET-Projekt nicht verwiesen, sie muss jedoch vorhanden sein, damit sie für die Bibliotheksverwendung geladen werden kann.
Eine einfache Beispielanwendung ESimConnectDemo ist im Projekt verfügbar.
Wenn Sie FS2020 ausführen, starten Sie ESimConnectDemo.exe
. Wählen Sie im Fenster die Schaltfläche Connect/Disconnect
. Geben Sie auf der Registerkarte SimVars
den Namen der SimVar ein und klicken Sie auf Add
. Sie sollten sofort den Wert der SimVar im Fenster sehen.
Hinweis: Spezifische SimVar-Namen finden Sie in der FS202-SimVar-Dokumentation. Zu Beginn können Sie versuchen, PLANE ALTITUDE
SimVar einzugeben.
ESimConnect.dll
und alle Assemblys aus dem DLLs
Ordner außer SimConnect.dll
hinzu. Allerdings muss die Datei SimConnect.dll
im Ausgabeordner vorhanden sein, andernfalls wird beim Start ein Fehler ausgelöst. Für eine einfache SimVar-Anzeige (z. B. PLANE ALTITUDE
) müssen Sie Folgendes tun:
// create ESimConnect instance
ESimConnect.ESimConnect eSimCon = new();
// register as a listener for incoming data messages
eSimCon.DataReceived += ESimCon_DataReceived; // see below for the definition
// open a connection to FS2020
eSimCon.Open();
// register a SimVar - tell FS2020 that you are interested in this SimVar
var typeId = eSimCon.Values.Register<double>("PLANE ALTITUDE");
// and request the value once
RequestId requestId = eSimCon.Values.Request(typeId);
// or request value repeatedly every second, only when value has changed
RequestId repeatedRequestId = eSimCon.Values.RequestRepeatedly(typeId, SimConnectPeriod.SECOND, true);
// now you are ready
// once some data has arrived, the following handler is invoked:
private static void ESimCon_DataReceived(ESimConnect.ESimConnect sender, ESimConnect.ESimConnect.ESimConnectDataReceivedEventArgs e)
{
Console.WriteLine($"ESimCon - DataReceived - requestId={e.RequestId}, simVar={relatedSimVar}, type={e.Type}, data={e.Data}");
}
Ausführlichere Informationen finden Sie in den Projekten ESimConnectDemo oder ESimConnectTest als Inspiration.
Wenn etwas nicht funktioniert, können Sie es gerne als Problem melden. Bitte geben Sie so viele Details wie möglich an.
(noch nichts)
Siehe LICENSE-Datei.
Vielen Dank an das Original-Repo von RandFailuresFS2020 als erste Motivation und Studienquelle.
Vielen Dank an George Barlow für seine Hilfe bei der Lösung von Problemen mit der Aufhebung der Registrierung.
Marek Vajgl https://github.com/Engin1980/ESimConnect