Qu'est-ce que Simconnect
Simconnect est l'API officielle de communication de Prepar3D.
Elle permet à une application externe ( serveur, client, réseaux, cockpit, tablette, arduino, etc ...) de :
- lire l'état du simulateur,
- envoyer des commandes de pilotage
- interagir avec les sytème avion et l'environnement
A quoi sert Simconnect concrètement ?
Avec SimConnect, on peut :
Lire des données :
- position avion (lat/long/alt)
- vitesse, cap, attitude
- état des systèmes (batteries, parking brake, lights, etc...)
Envoyer des commandes :
- vues (pan, hat, zoom, etc...)
- commandes avion (gear, flaps, brake,etc...)
- événements personnalisés
Créer des interfaces externes :
- panels tactiles
- hardware cockpit
- serveurs TCP
Architecture typique
[ Client externe ]
│ (TCP / WinAPI / UI)
▼
[ Application Serveur ]
│ (SimConnect)
▼
[ Prepar3D ]
SimConnect fonctionne localement ou via réseau
Le simulateur reste maître des données
Le client n’accède jamais directement au cœur de P3D
Types de communication SimConnect
Variables (SimVars)
- lecture continue ou à la demande
ex : BRAKE PARKING POSITION, ELECTRICAL MASTER BATTERY
Events
- actions ponctuelles
ex : PARKING_BRAKES, TOGGLE_AVIONICS_MASTER
Data Definitions
- structure des données échangées
SimConnect côté code (principe)
Connexion à Prepar3D
Déclaration des variables/événements
Boucle de réception (callback)
Envoi de commandes vers le sim
👉 Peut être utilisé en C#, C++, Python (via wrapper)
SimConnect et P3D (important)
P3D utilise sa propre version de SimConnect
Compatible avec :
FSX (partiellement)
P3D v4 / v5 (x64)
Nécessite :
SimConnect.dll
parfois SimConnect.xml pour le réseau
Cas d’usage typiques
Cockpit home cockpit 🧑✈️
Panels tactiles (Simu320)
Serveur de commandes réseau (Lexosim)
Synchronisation multi-PC
Interfaces
Limites à connaître
Pas accès direct aux systèmes custom très complexes (ex : certains add-ons)
Dépend fortement de la qualité d’implémentation avion
Certaines actions nécessitent offsets FSUIPC en complément
Configuration de SimConnect
Coté Serveur
Installer le SDK correspondant à la version de Prepar3D, ouvrer \le dossier : Programme\Lockeed_Martin\reteil\interface\FSX_SP2\lib\ executer le SimConnect.msi.
SimConnect.xml : Configuation du serveur:
Chemin d'accés : %APPDATA\lockheed Martin\Prepar3D VX ( X numéro de la version ). Doit être placer dans le PC où se trouve Prepar3D
Exemple de SimConnect.xml
<SimBase.Document version="1,0" Type="SimConnect">
<Descr>SimConnect</Descr>
<Filename>SimConnect.xml</Filename>
<Disabled>False</Disabled>
<SimConnect.Comm>
<Disabled>False</Disabled>
<Protocol>IPv4</Protocol>
<Scope>global</Scope>
<Address>XXX.XXX.X.XX</Address> ( Remplacer par l'adresse du PC Serveur.)
<MaxClients>64</MaxClients>
<Port>9017</Port>
<MaxRecvSize>4096</MaxRecvSize>
<DisableNagle>True</DisableNagle>
</SimConnect.Comm>
<SimConnect.Comm>
<Disabled>False</Disabled>
<Protocol>IPv4</Protocol>
<Scope>local</Scope>
<Address>127.0.0.1</Address>
<MaxClients>64</MaxClients>
<Port>9017</Port>
<MaxRecvSize>4096</MaxRecvSize>
<DisableNagle>True</DisableNagle>
</SimConnect.Comm>
</SimBase.Document>
Si besoin d'un log. Mettre SimConnect.ini sur le PC serveur dans le dossier : %USER%\Documents\Prepar3D Files VX ( X numéro de version )
Exemple de SimConnect.ini
[SimConnect]
level=verbose
console=1
;RedirectStdOutToConsole=1
;OutputDebugString=1
;file=c:\simconnect%03u.log
;file_next_index=0
;file_max_index=9
Côté client
Mettre SimConnect.cfg dans %USER%\Documents du PC client
Exemple de fichier SimConnect.cfg :
[SimConnect]
Protocol=IPv4
Address=XXX.XXX.X.XX ( Adresse du PC Serveur )
Port=9017
