Une bibliothèque simple pour se connecter et travailler avec SimConnect, une bibliothèque permettant de communiquer avec des Flight Simulators (ex : FS2020).
Le but de cette bibliothèque est de fournir une interface simple pour travailler avec FS2020 sur .NET/C# sans aucune connaissance approfondie de SimConnect. En revanche, seules les opérations de base sont prises en charge. Cette bibliothèque ne couvre pas toutes les possibilités de la bibliothèque SimConnect originale.
La bibliothèque nécessite l'installation du runtime Windows .NET Core 6.0 (il est inclus par défaut dans l'installation de Windows 10+).
Décompressez simplement la version requise dans un dossier d'exécution de projet cible et liez ESimConnect.dll + les autres bibliothèques fournies à votre projet. Remarque : Pour fonctionner, un fichier SimConnect.dll doit également être inclus dans le répertoire de sortie de votre projet. Ce fichier ne sera pas référencé dans votre projet .NET, mais doit être présent pour être chargé pour l'utilisation de la bibliothèque.
Un exemple d'application simple ESimConnectDemo est disponible dans le projet.
Lors de l'exécution de FS2020, démarrez ESimConnectDemo.exe . Dans la fenêtre, sélectionnez le bouton Connect/Disconnect . Dans l'onglet SimVars , entrez le nom SimVar et appuyez sur Add . Vous devriez immédiatement voir la valeur du SimVar dans la fenêtre.
Remarque : Pour connaître les noms SimVar spécifiques, consultez la documentation SimVar FS202. Au début, vous pouvez essayer d'entrer dans PLANE ALTITUDE SimVar.
ESimConnect.dll et à tous les assemblys du dossier DLLs sauf SimConnect.dll . Cependant, le fichier SimConnect.dll doit être présent dans le dossier de sortie, sinon une erreur au démarrage sera générée. Pour une simple lecture SimVar (par exemple, PLANE ALTITUDE ), vous devez :
// 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}");
}
Pour des informations plus détaillées, consultez les projets ESimConnectDemo ou ESimConnectTest pour vous inspirer.
Si quelque chose ne fonctionne pas, n'hésitez pas à le signaler comme problème. Veuillez fournir autant de détails que possible.
(rien pour l'instant)
Voir le fichier LICENCE.
Merci au repo original RandFailuresFS2020 pour avoir été une motivation initiale et une source d'étude.
Merci à George Barlow pour son aide dans la résolution des problèmes de désinscription.
Marek Vajgl https://github.com/Engin1980/ESimConnect