Some Code to help you
Hi tazaree,
I cannot for industrial reason give you a copy of my program
But I wrote for you and the persons that could be interrested some code explaining how to position the plane by program.
This code is in C#
diplaytext is a simple displaying module like Console.WriteLine()
I hope this will help you
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Media;
using System.Data;
using System.Drawing;
using System.Text;
using System.IO;
using System.Diagnostics;
using System.Threading;
// This example is given without guarante. Normally calling connecteretpositionner_avion should connect
// to FSX and position the plane
using Microsoft.FlightSimulator.SimConnect;
using System.Runtime.InteropServices;
namespace ConnectionSimple
{
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
struct PositionData
{
public double latitude;
public double longitude;
public double altitude;
public double pitch;
public double bank;
public double heading;
};
enum DEFINITIONS
{
PositionData,
AltSol,
AltSol0
}
SimConnect simconnect = null;
void connecter()
{
// Creer l'objet simconnect
simconnect = new SimConnect("C# Creation Objet", this.Handle, WM_USER_SIMCONNECT, null, 0);
}
void connecteretpositionner_avion ()
{
if (simconnect == null)
{
try
{
// the constructor is similar to SimConnect_Open in the native API
// simconnect = new SimConnect("C# Creating AI Objects", this.Handle, WM_USER_SIMCONNECT, null, 0);
connecter();
}
catch
{
displayText("Impossible de se connecter");
}
}
else
{
displayText("Erreur reessayer");
closeConnection();
return;
}
// Definir l'element PositionData dans l'Enumeration DEFINITIONS
simconnect.AddToDataDefinition(DEFINITIONS.PositionData, "Plane Latitude", "degrees", SIMCONNECT_DATATYPE.FLOAT64, 0.0f, SimConnect.SIMCONNECT_UNUSED);
simconnect.AddToDataDefinition(DEFINITIONS.PositionData, "Plane Longitude", "degrees", SIMCONNECT_DATATYPE.FLOAT64, 0.0f, SimConnect.SIMCONNECT_UNUSED);
simconnect.AddToDataDefinition(DEFINITIONS.PositionData, "PLANE ALTITUDE", "meters", SIMCONNECT_DATATYPE.FLOAT64, 0.0f, SimConnect.SIMCONNECT_UNUSED);
simconnect.AddToDataDefinition(DEFINITIONS.PositionData, "Plane Pitch Degrees", "degrees", SIMCONNECT_DATATYPE.FLOAT64, 0.0f, SimConnect.SIMCONNECT_UNUSED);
simconnect.AddToDataDefinition(DEFINITIONS.PositionData, "Plane Bank Degrees", "degrees", SIMCONNECT_DATATYPE.FLOAT64, 0.0f, SimConnect.SIMCONNECT_UNUSED);
simconnect.AddToDataDefinition(DEFINITIONS.PositionData, "Plane Heading Degrees True", "degrees", SIMCONNECT_DATATYPE.FLOAT64, 0.0f, SimConnect.SIMCONNECT_UNUSED);
// Definir la structure initPositionData et l'alimenter
// Definir les variables de positionner et les alimenter
PositionData initPositionData;
Double latc, lngc, capc, altc, rouc, assc;
//
// Put here the value you want for latc Lattitude ,lngc Longitute , altc Altitude assc is the pitch, rouc the bank and capc the heading
// this will put the plane where you want it to be
//
// ex:
// latc=43.5;
lngc=2.3;, etc...
initPositionData.latitude = latc;
initPositionData.longitude = lngc;
initPositionData.altitude = altc;
initPositionData.heading = capc;
initPositionData.pitch = assc;
initPositionData.bank = rouc;
simconnect.SetDataOnSimObject(DEFINITIONS.PositionData, SimConnect.SIMCONNECT_OBJECT_ID_USER, SIMCONNECT_DATA_SET_FLAG.DEFAULT, initPositionData);
}
}