public void Unpause() { logger.LogDebug("Unpause"); simconnect?.TransmitClientEvent(SimConnect.SIMCONNECT_OBJECT_ID_USER, EVENTS.FREEZE_LATITUDE_LONGITUDE, 0, GROUPS.GENERIC, SIMCONNECT_EVENT_FLAG.GROUPID_IS_PRIORITY); simconnect?.TransmitClientEvent(SimConnect.SIMCONNECT_OBJECT_ID_USER, EVENTS.FREEZE_ALTITUDE, 0, GROUPS.GENERIC, SIMCONNECT_EVENT_FLAG.GROUPID_IS_PRIORITY); simconnect?.TransmitClientEvent(SimConnect.SIMCONNECT_OBJECT_ID_USER, EVENTS.FREEZE_ATTITUDE, 0, GROUPS.GENERIC, SIMCONNECT_EVENT_FLAG.GROUPID_IS_PRIORITY); }
public void BatterySet(bool on) { //if (currentStatus?.MasterBattery == (on ? 0 : 1)) { simconnect?.TransmitClientEvent(SimConnect.SIMCONNECT_OBJECT_ID_USER, EVENTS.MASTER_BATTERY_TOGGLE, 0, GROUPID.MAX, SIMCONNECT_EVENT_FLAG.GROUPID_IS_PRIORITY); } }
public void setFail(SimConnect sc) { Console.WriteLine(sName + failureValue); switch (possibleType) { case POSSIBLE_FAIL_TYPE.STUCK: { if (!failStart) { failureValue = dValue; Console.WriteLine("start" + failureValue); failStart = true; } dValue = failureValue; break; } case POSSIBLE_FAIL_TYPE.LEAK: { dValue -= failureValue; break; } case POSSIBLE_FAIL_TYPE.CONTINOUS: { if (isEvent) { if (rnd.Next(11) >= 5) { sc.MapClientEventToSimEvent(eEvent, sName); sc.TransmitClientEvent(SimConnect.SIMCONNECT_OBJECT_ID_USER, eEvent, 0, GROUP.ID_PRIORITY_STANDARD, SIMCONNECT_EVENT_FLAG.GROUPID_IS_PRIORITY); } } else { dValue = failureValue; } break; } case POSSIBLE_FAIL_TYPE.COMPLETE: { if (isEvent) { sc.MapClientEventToSimEvent(eEvent, sName); sc.TransmitClientEvent(SimConnect.SIMCONNECT_OBJECT_ID_USER, eEvent, 0, GROUP.ID_PRIORITY_STANDARD, SIMCONNECT_EVENT_FLAG.GROUPID_IS_PRIORITY); } else { dValue = failureValue; } done = true; break; } } sc.SetDataOnSimObject(eDef, SimConnect.SIMCONNECT_OBJECT_ID_USER, SIMCONNECT_DATA_SET_FLAG.DEFAULT, dValue); }
private void btnJetway_Click(object sender, RoutedEventArgs e) { if (!_simConnectionStatus) { return; } _simClient.MapClientEventToSimEvent(PushbackEventsEnum.KEY_TOGGLE_JETWAY, "TOGGLE_JETWAY"); _simClient.TransmitClientEvent(0U, PushbackEventsEnum.KEY_TOGGLE_JETWAY, 1, NotificationGroupsEnum.Group0, SIMCONNECT_EVENT_FLAG.GROUPID_IS_PRIORITY); }
// Подключение jetway к самолету по нажатию кнопки private void JetWayBtn_Click(object sender, EventArgs e) { if (!simConnectStatus) { return; } simConn.MapClientEventToSimEvent(EVENT_ENUM.toggleJetway, "TOGGLE_JETWAY"); simConn.TransmitClientEvent(0U, EVENT_ENUM.toggleJetway, 1, SENDER_EVENT_ENUM.group0, SIMCONNECT_EVENT_FLAG.GROUPID_IS_PRIORITY); }
private void SendCommand(EVENTS sendingEvent, uint data = 0) { try { simconnect?.TransmitClientEvent(SimConnect.SIMCONNECT_OBJECT_ID_USER, sendingEvent, data, GROUPID.MAX, SIMCONNECT_EVENT_FLAG.GROUPID_IS_PRIORITY); } catch (COMException ex) when(ex.Message == "0xC00000B0") { RecoverFromError(ex); } }
private void SendToFSX(double aileron, double rudder, double elevator, double throttle, int gear, int flaps) { FsDataObjects.ControlDataStructure controls; controls.elevator = elevator; controls.aileron = aileron; controls.rudder = rudder; controls.throttle1 = throttle * 100; controls.throttle2 = throttle * 100; controls.throttle3 = throttle * 100; controls.throttle4 = throttle * 100; simconnect.SetDataOnSimObject(FsDataObjects.DEFINITIONS.ControlDataStruct, SimConnect.SIMCONNECT_OBJECT_ID_USER, 0, controls); ControlsLatest = controls; if (gear != gear_last) { gear_last = gear; FsDataObjects.EVENTS g_state = (gear == 1) ? FsDataObjects.EVENTS.GEAR_UP : FsDataObjects.EVENTS.GEAR_DOWN; simconnect.TransmitClientEvent(SimConnect.SIMCONNECT_OBJECT_ID_USER, g_state, 0, FsDataObjects.NOTIFICATION_GROUPS.GROUP0, SIMCONNECT_EVENT_FLAG.GROUPID_IS_PRIORITY); } if (flaps != flaps_last) { flaps_last = flaps; FsDataObjects.EVENTS f_state = FsDataObjects.EVENTS.FLAPS0; if (flaps == 0) { f_state = FsDataObjects.EVENTS.FLAPS0; } else if (flaps == 1) { f_state = FsDataObjects.EVENTS.FLAPS1; } else if (flaps == 2) { f_state = FsDataObjects.EVENTS.FLAPS2; } play_flap = true; simconnect.TransmitClientEvent(SimConnect.SIMCONNECT_OBJECT_ID_USER, f_state, 0, FsDataObjects.NOTIFICATION_GROUPS.GROUP0, SIMCONNECT_EVENT_FLAG.GROUPID_IS_PRIORITY); } }
public void TransmitEvent(EventsEnum newEvent, uint data) { if (!Connected) { return; } simClient.TransmitClientEvent(0U, newEvent, data, NotificationGroupsEnum.Group0, SIMCONNECT_EVENT_FLAG.GROUPID_IS_PRIORITY); }
private void sendSimEvent(CLIENT_EVENTS clientEvent, uint data = 0) { if (simconnect == null) { return; } simconnect.TransmitClientEvent(0, clientEvent, data, NOTIFICATION_GROUPS.GROUP0, SIMCONNECT_EVENT_FLAG.GROUPID_IS_PRIORITY); }
public bool TransmitClientEvent(Groups group, Enum eventId, uint data) { if (_connected) { _simConnect.TransmitClientEvent((uint)SimConnect.SIMCONNECT_OBJECT_ID_USER, eventId, data, group, SIMCONNECT_EVENT_FLAG.GROUPID_IS_PRIORITY); return(true); } return(false); }
public void SetValue(Field field, double val) { EnsureFieldIsEnabled(field); var controlAdaptor = controlAdaptors[field]; var transmitVal = controlAdaptor.PrepareTransmitValue(val); simconnect.TransmitClientEvent(SimConnect.SIMCONNECT_OBJECT_ID_USER, controlAdaptor.Definition, transmitVal, GROUPS.GroupA, SIMCONNECT_EVENT_FLAG.GROUPID_IS_PRIORITY); }
public void FreezeObjectPosition(uint objectID) { if (simConnect == null) { return; } simConnect.TransmitClientEvent(objectID, Events.FreezeLatitudeLongitude, 1, (GROUP_ID)SimConnect.SIMCONNECT_GROUP_PRIORITY_HIGHEST, SIMCONNECT_EVENT_FLAG.GROUPID_IS_PRIORITY); }
public void BeaconSet(bool on) { if (currentStatus?.BeaconLight == (on ? 0 : 1)) { simconnect.TransmitClientEvent(SimConnect.SIMCONNECT_OBJECT_ID_USER, EVENTS.BEACON_TOGGLE, 0, GROUPID.MAX, SIMCONNECT_EVENT_FLAG.GROUPID_IS_PRIORITY); } }
// The simulation will pause each time a key is selected in the addon, so unpause the sim each time this happens void simconnect_OnRecvEvent(SimConnect sender, SIMCONNECT_RECV_EVENT data) { displayText("Pause event received"); switch ((EVENTS)data.uEventID) { case EVENTS.PAUSED: simconnect.TransmitClientEvent((uint)SimConnect.SIMCONNECT_OBJECT_ID_USER, EVENTS.SEND_UNPAUSE, (uint)0, GROUPID.FLAG, SIMCONNECT_EVENT_FLAG.GROUPID_IS_PRIORITY); displayText("Unpause request sent..."); break; } }
public void OnSpeechRecognized(object sender, SpeechRecognizedEventArgs e) { if (e.Result.Confidence < .90 || !bVoiceRecognitionEnabled) { return; } switch (phrases[e.Result.Text]) { case EVENTS.PAUSE: simconnect.TransmitClientEvent((uint)SimConnect.SIMCONNECT_OBJECT_ID_USER, EVENTS.PAUSE, (uint)0, GROUPID.FLAG, SIMCONNECT_EVENT_FLAG.GROUPID_IS_PRIORITY); Console.WriteLine("Pausing Prepar3D\n"); break; case EVENTS.UNPAUSE: simconnect.TransmitClientEvent((uint)SimConnect.SIMCONNECT_OBJECT_ID_USER, EVENTS.UNPAUSE, (uint)0, GROUPID.FLAG, SIMCONNECT_EVENT_FLAG.GROUPID_IS_PRIORITY); Console.WriteLine("Unpausing Prepar3D\n"); break; default: break; } }
public void Freeze(uint aircraftId) { lock (lockObj) { logger.LogDebug("Freeze aircraft {id}", aircraftId); simconnect?.TransmitClientEvent(aircraftId, EVENTS.FREEZE_LATITUDE_LONGITUDE, 1, GROUPS.GENERIC, SIMCONNECT_EVENT_FLAG.GROUPID_IS_PRIORITY); simconnect?.TransmitClientEvent(aircraftId, EVENTS.FREEZE_ALTITUDE, 1, GROUPS.GENERIC, SIMCONNECT_EVENT_FLAG.GROUPID_IS_PRIORITY); simconnect?.TransmitClientEvent(aircraftId, EVENTS.FREEZE_ATTITUDE, 1, GROUPS.GENERIC, SIMCONNECT_EVENT_FLAG.GROUPID_IS_PRIORITY); } }
static void Main() { simConnect = new SimConnect("SimConnectTest", GetConsoleWindow(), WM_USER_SIMCONNECT, null, 0); simConnect.MapClientEventToSimEvent(Events.EventSteerAileron, "AILERON_SET"); simConnect.AddClientEventToNotificationGroup(NotificationGroups.Group0, Events.EventSteerAileron, false); simConnect.SetNotificationGroupPriority(NotificationGroups.Group0, SimConnect.SIMCONNECT_GROUP_PRIORITY_HIGHEST); while (true) { Thread.Sleep(50); int d = (int)(Math.Sin((DateTime.Now - DateTime.Today).TotalSeconds / 2) * 16000); simConnect.TransmitClientEvent(0, Events.EventSteerAileron, (uint)d, NotificationGroups.Group0, SIMCONNECT_EVENT_FLAG.GROUPID_IS_PRIORITY); } }
private void AddSetVarListener() { connection.On <string>("doEvent", (stringEv) => { Events?ev = GetEvent(stringEv); uint value = GetValue(stringEv); if (ev != null) { LogToConnection("New event " + ev.ToString() + " value: " + value); simconnect.TransmitClientEvent(SimConnect.SIMCONNECT_OBJECT_ID_USER, ev, value, hSimConnect.group1, SIMCONNECT_EVENT_FLAG.GROUPID_IS_PRIORITY); } else { LogToConnection("Invalid event " + stringEv); } }); }
public void ChangeLandingLightState() { SimConnect?.TransmitClientEvent(0, SimEvents.LANDING_LIGHTS_TOGGLE, 0, GROUP.GROUP1, SIMCONNECT_EVENT_FLAG.GROUPID_IS_PRIORITY); }
static void Main(string[] args) { try { //Création d'une instance pour acceder à la librairie simconnect //m_scConnection = new Microsoft.FlightSimulator.SimConnect.SimConnect("FFSTracker", base.Handle, WM_USER_SIMCONNECT, null, 0); m_scConnection = new SimConnect("FSXML", IntPtr.Zero, WM_USER_SIMCONNECT, null, 0); Console.WriteLine("La connexion au simulateur a réussie"); } catch { Console.WriteLine("La connexion à FS à échouée."); return; } // On map les event avec notre enumérateur foreach (EventEnum item in Enum.GetValues(typeof(EventEnum))) { m_scConnection.MapClientEventToSimEvent(item, item.ToString()); } //On map les variables avec notre structure m_scConnection.AddToDataDefinition(DEFINITIONS.PERIODIQUE, "Title", "", SIMCONNECT_DATATYPE.STRING256, 0, SimConnect.SIMCONNECT_UNUSED); m_scConnection.AddToDataDefinition(DEFINITIONS.PERIODIQUE, "Plane Latitude", "degrees latitude", SIMCONNECT_DATATYPE.FLOAT64, 0, SimConnect.SIMCONNECT_UNUSED); m_scConnection.AddToDataDefinition(DEFINITIONS.PERIODIQUE, "Plane Longitude", "degrees longitude", SIMCONNECT_DATATYPE.FLOAT64, 0, SimConnect.SIMCONNECT_UNUSED); m_scConnection.AddToDataDefinition(DEFINITIONS.PERIODIQUE, "Plane Altitude", "feet", SIMCONNECT_DATATYPE.FLOAT64, 0, SimConnect.SIMCONNECT_UNUSED); m_scConnection.AddToDataDefinition(DEFINITIONS.PERIODIQUE, "Airspeed Indicated", "knots", SIMCONNECT_DATATYPE.FLOAT64, 0, SimConnect.SIMCONNECT_UNUSED); m_scConnection.AddToDataDefinition(DEFINITIONS.PERIODIQUE, "Plane Heading Degrees Magnetic", "degrees", SIMCONNECT_DATATYPE.FLOAT64, 0, SimConnect.SIMCONNECT_UNUSED); m_scConnection.AddToDataDefinition(DEFINITIONS.PERIODIQUE, "Plane Heading Degrees True", "degrees", SIMCONNECT_DATATYPE.FLOAT64, 0, SimConnect.SIMCONNECT_UNUSED); m_scConnection.AddToDataDefinition(DEFINITIONS.PERIODIQUE, "Com Active Frequency:1", "MHz", SIMCONNECT_DATATYPE.FLOAT64, 0, SimConnect.SIMCONNECT_UNUSED); m_scConnection.AddToDataDefinition(DEFINITIONS.PERIODIQUE, "Com Active Frequency:2", "MHz", SIMCONNECT_DATATYPE.FLOAT64, 0, SimConnect.SIMCONNECT_UNUSED); m_scConnection.AddToDataDefinition(DEFINITIONS.PERIODIQUE, "Com Standby Frequency:1", "MHz", SIMCONNECT_DATATYPE.FLOAT64, 0, SimConnect.SIMCONNECT_UNUSED); m_scConnection.AddToDataDefinition(DEFINITIONS.PERIODIQUE, "Com Standby Frequency:2", "MHz", SIMCONNECT_DATATYPE.FLOAT64, 0, SimConnect.SIMCONNECT_UNUSED); m_scConnection.AddToDataDefinition(DEFINITIONS.PERIODIQUE, "Nav Active Frequency:1", "MHz", SIMCONNECT_DATATYPE.FLOAT64, 0, SimConnect.SIMCONNECT_UNUSED); m_scConnection.AddToDataDefinition(DEFINITIONS.PERIODIQUE, "Nav Active Frequency:2", "MHz", SIMCONNECT_DATATYPE.FLOAT64, 0, SimConnect.SIMCONNECT_UNUSED); m_scConnection.AddToDataDefinition(DEFINITIONS.PERIODIQUE, "Nav Standby Frequency:1", "MHz", SIMCONNECT_DATATYPE.FLOAT64, 0, SimConnect.SIMCONNECT_UNUSED); m_scConnection.AddToDataDefinition(DEFINITIONS.PERIODIQUE, "Nav Standby Frequency:2", "MHz", SIMCONNECT_DATATYPE.FLOAT64, 0, SimConnect.SIMCONNECT_UNUSED); m_scConnection.AddToDataDefinition(DEFINITIONS.PERIODIQUE, "Autopilot Master", "", SIMCONNECT_DATATYPE.INT32, 0, SimConnect.SIMCONNECT_UNUSED); m_scConnection.AddToDataDefinition(DEFINITIONS.PERIODIQUE, "Autopilot Approach Hold", "", SIMCONNECT_DATATYPE.INT32, 0, SimConnect.SIMCONNECT_UNUSED); m_scConnection.AddToDataDefinition(DEFINITIONS.PERIODIQUE, "Autopilot Heading Lock", "", SIMCONNECT_DATATYPE.INT32, 0, SimConnect.SIMCONNECT_UNUSED); m_scConnection.AddToDataDefinition(DEFINITIONS.PERIODIQUE, "Autopilot Heading Lock Dir", "degrees", SIMCONNECT_DATATYPE.FLOAT64, 0, SimConnect.SIMCONNECT_UNUSED); m_scConnection.AddToDataDefinition(DEFINITIONS.PERIODIQUE, "Autopilot Altitude Lock", "", SIMCONNECT_DATATYPE.INT32, 0, SimConnect.SIMCONNECT_UNUSED); m_scConnection.AddToDataDefinition(DEFINITIONS.PERIODIQUE, "Autopilot Altitude Lock Var", "feet", SIMCONNECT_DATATYPE.FLOAT64, 0, SimConnect.SIMCONNECT_UNUSED); m_scConnection.AddToDataDefinition(DEFINITIONS.PERIODIQUE, "Autopilot Vertical Hold Var", "feet/minute", SIMCONNECT_DATATYPE.FLOAT64, 0, SimConnect.SIMCONNECT_UNUSED); m_scConnection.AddToDataDefinition(DEFINITIONS.PERIODIQUE, "Autopilot Throttle Arm", "", SIMCONNECT_DATATYPE.INT32, 0, SimConnect.SIMCONNECT_UNUSED); m_scConnection.AddToDataDefinition(DEFINITIONS.PERIODIQUE, "Autopilot Airspeed Hold", "", SIMCONNECT_DATATYPE.INT32, 0, SimConnect.SIMCONNECT_UNUSED); m_scConnection.AddToDataDefinition(DEFINITIONS.PERIODIQUE, "Autopilot Airspeed Hold Var", "knots", SIMCONNECT_DATATYPE.FLOAT64, 0, SimConnect.SIMCONNECT_UNUSED); m_scConnection.AddToDataDefinition(DEFINITIONS.PERIODIQUE, "Autopilot Nav1 Lock", "", SIMCONNECT_DATATYPE.INT32, 0, SimConnect.SIMCONNECT_UNUSED); m_scConnection.AddToDataDefinition(DEFINITIONS.PERIODIQUE, "Gps Drives Nav1", "", SIMCONNECT_DATATYPE.INT32, 0, SimConnect.SIMCONNECT_UNUSED); m_scConnection.AddToDataDefinition(DEFINITIONS.PERIODIQUE, "Number Of Engines", "", SIMCONNECT_DATATYPE.INT32, 0, SimConnect.SIMCONNECT_UNUSED); m_scConnection.AddToDataDefinition(DEFINITIONS.PERIODIQUE, "General Eng Throttle Lever Position:1", "", SIMCONNECT_DATATYPE.FLOAT64, 0, SimConnect.SIMCONNECT_UNUSED); m_scConnection.AddToDataDefinition(DEFINITIONS.PERIODIQUE, "General Eng Throttle Lever Position:2", "", SIMCONNECT_DATATYPE.FLOAT64, 0, SimConnect.SIMCONNECT_UNUSED); m_scConnection.AddToDataDefinition(DEFINITIONS.PERIODIQUE, "General Eng Throttle Lever Position:3", "", SIMCONNECT_DATATYPE.FLOAT64, 0, SimConnect.SIMCONNECT_UNUSED); m_scConnection.AddToDataDefinition(DEFINITIONS.PERIODIQUE, "General Eng Throttle Lever Position:4", "", SIMCONNECT_DATATYPE.FLOAT64, 0, SimConnect.SIMCONNECT_UNUSED); m_scConnection.AddToDataDefinition(DEFINITIONS.PERIODIQUE, "Flaps Handle Percent", "", SIMCONNECT_DATATYPE.FLOAT64, 0, SimConnect.SIMCONNECT_UNUSED); m_scConnection.AddToDataDefinition(DEFINITIONS.PERIODIQUE, "Gear Handle Position", "", SIMCONNECT_DATATYPE.INT32, 0, SimConnect.SIMCONNECT_UNUSED); m_scConnection.AddToDataDefinition(DEFINITIONS.PERIODIQUE, "Spoilers Armed", "", SIMCONNECT_DATATYPE.INT32, 0, SimConnect.SIMCONNECT_UNUSED); m_scConnection.AddToDataDefinition(DEFINITIONS.PERIODIQUE, "Spoilers Handle Position", "", SIMCONNECT_DATATYPE.FLOAT64, 0, SimConnect.SIMCONNECT_UNUSED); m_scConnection.AddToDataDefinition(DEFINITIONS.PERIODIQUE, "Brake Left Position", "", SIMCONNECT_DATATYPE.FLOAT64, 0, SimConnect.SIMCONNECT_UNUSED); m_scConnection.AddToDataDefinition(DEFINITIONS.PERIODIQUE, "Brake Right Position", "", SIMCONNECT_DATATYPE.FLOAT64, 0, SimConnect.SIMCONNECT_UNUSED); m_scConnection.AddToDataDefinition(DEFINITIONS.PERIODIQUE, "APU GENERATOR SWITCH", "", SIMCONNECT_DATATYPE.INT32, 0, SimConnect.SIMCONNECT_UNUSED); m_scConnection.AddToDataDefinition(DEFINITIONS.PERIODIQUE, "APU_GENERATOR_ACTIVE", "", SIMCONNECT_DATATYPE.INT32, 0, SimConnect.SIMCONNECT_UNUSED); m_scConnection.AddToDataDefinition(DEFINITIONS.PERIODIQUE, "TOGGLE_MASTER_BATTERY", "", SIMCONNECT_DATATYPE.INT32, 0, SimConnect.SIMCONNECT_UNUSED); // On associe notre structure à la définition simconnect m_scConnection.RegisterDataDefineStruct<DonneesAvion>(DEFINITIONS.PERIODIQUE); m_scConnection.OnRecvException += new SimConnect.RecvExceptionEventHandler(OnRecvException); m_scConnection.OnRecvQuit += new SimConnect.RecvQuitEventHandler(OnRecvQuit); m_scConnection.OnRecvSimobjectData += new SimConnect.RecvSimobjectDataEventHandler(OnRecvSimobjectData); //On programme la requete cyclique pour l'obtention des données de l'avion m_scConnection.RequestDataOnSimObject(DATA_REQUESTS.REQUEST_1, DEFINITIONS.PERIODIQUE, SimConnect.SIMCONNECT_OBJECT_ID_USER, SIMCONNECT_PERIOD.SECOND, 0, 0, 0, 0); Timer timer = new Timer(); timer.Interval = 1000; timer.AutoReset = true; timer.Elapsed += new ElapsedEventHandler(OnTimer); timer.Start(); listener = new HttpListener(); listener.Prefixes.Add("http://+:8000/"); Console.WriteLine("Listening.."); listener.Start(); while (!quit) { // Note: The GetContext method blocks while waiting for a request. HttpListenerContext context = listener.GetContext(); HttpListenerRequest request = context.Request; // Obtain a response object. HttpListenerResponse response = context.Response; // Construct a response. if ((request.RawUrl == "/cmd") && (request.HttpMethod == "POST") && request.HasEntityBody && request.ContentType == "application/json") { var sr = new System.IO.StreamReader(request.InputStream, request.ContentEncoding); var code = sr.ReadToEnd(); Console.WriteLine(code); var deserializer = new JavaScriptSerializer(); var json = deserializer.Deserialize<commande>(code); Console.WriteLine(json.cmd + " : " + json.param); json.cmd = json.cmd.ToUpper(); Byte[] Bytes = BitConverter.GetBytes(Convert.ToInt32(json.param)); UInt32 Param = BitConverter.ToUInt32(Bytes, 0); try { m_scConnection.TransmitClientEvent(0, (EventEnum)Enum.Parse(typeof(EventEnum), json.cmd), Param, GROUP.GROUP1, SIMCONNECT_EVENT_FLAG.GROUPID_IS_PRIORITY); } catch (Exception e) { Console.WriteLine("La requete simconnect a échouée :" + e.Message); } response.Close(); } else if (request.RawUrl == "/getall") { response.ContentType = "application/json"; var serializer = new JavaScriptSerializer(); string json = serializer.Serialize(Donnees); byte[] buffer = System.Text.Encoding.UTF8.GetBytes(json); var output = response.OutputStream; output.Write(buffer, 0, buffer.Length); output.Close(); response.Close(); } else { response.StatusCode = 404; response.StatusDescription = "Not Found"; response.Close(); } } listener.Stop(); }
public void SetStarter1() { SimConnect?.TransmitClientEvent(0, SimEvents.TOGGLE_STARTER1, 1, GROUP.GROUP1, SIMCONNECT_EVENT_FLAG.GROUPID_IS_PRIORITY); }
public void SendEvent(SimEvents evt, uint evtData) { m_simConnect.TransmitClientEvent(0U, (Enum)evt, evtData, (Enum)NOTIFICATION_GROUPS.GENERIC, SIMCONNECT_EVENT_FLAG.GROUPID_IS_PRIORITY); }
//////////////////////////////////////////////////////////////////////// // COM1 //////////////////////////////////////////////////////////////////////// private void btnCOM1MHzUp_Click(object sender, EventArgs e) { try { // send event simConnect.TransmitClientEvent(SimConnect.SIMCONNECT_OBJECT_ID_USER, EVENTS.COM_RADIO_WHOLE_INC, 0, GROUP.ID_PRIORITY_STANDARD, SIMCONNECT_EVENT_FLAG.GROUPID_IS_PRIORITY); // get status simConnect.RequestDataOnSimObjectType(DATA_REQUESTS.REQUEST_RADIOS, DEFINITIONS.Radios, 0, SIMCONNECT_SIMOBJECT_TYPE.USER); DisplayTextNewLine("Request sent..."); } catch (COMException ex) { DisplayTextNewLine(ex.Message); } }
public void SetFuel1SelectorAll() { SimConnect?.TransmitClientEvent(0, SimEvents.FUEL_SELECTOR_ALL, 0, GROUP.GROUP1, SIMCONNECT_EVENT_FLAG.GROUPID_IS_PRIORITY); }
public void SetMixture1(uint value) { SimConnect?.TransmitClientEvent(0, SimEvents.MIXTURE1_SET, value, GROUP.GROUP1, SIMCONNECT_EVENT_FLAG.GROUPID_IS_PRIORITY); }
public void SetAutoStart() { SimConnect?.TransmitClientEvent(0, SimEvents.ENGINE_AUTO_START, 1, GROUP.GROUP1, SIMCONNECT_EVENT_FLAG.GROUPID_IS_PRIORITY); }
public void ChangeStrobesLightState() { SimConnect?.TransmitClientEvent(0, SimEvents.STROBES_TOGGLE, 0, GROUP.GROUP1, SIMCONNECT_EVENT_FLAG.GROUPID_IS_PRIORITY); }
public void ChangeNavLightState() { SimConnect?.TransmitClientEvent(0, SimEvents.TOGGLE_NAV_LIGHTS, 0, GROUP.GROUP1, SIMCONNECT_EVENT_FLAG.GROUPID_IS_PRIORITY); }
/// <summary> /// Sends the input parameters to FSX /// </summary> /// <param name="aileron">An aileron input in percent, between -1 and 1</param> /// <param name="rudder">An rudder input in percent, between -1 and 1</param> /// <param name="elevator">An elevator input in percent, between -1 and 1</param> /// <param name="throttle">An throttle input in percent, between 0 and 1</param> /// <param name="gear">The landing gear status, 0 being down and 1 being up</param> /// <param name="flaps">The flap status, with 0 being up, 1 being halfway, and 2 being down</param> private void SendToFSX( double aileron, double rudder, double elevator, double throttle, int gear, int flaps) { // Skip if not connected if (simconnect == null) { return; } // Set the data in the control data structure FsDataObjects.ControlDataStructure controls; controls.elevator = elevator; controls.aileron = aileron; controls.rudder = rudder; controls.throttle1 = throttle * 100; controls.throttle2 = throttle * 100; controls.throttle3 = throttle * 100; controls.throttle4 = throttle * 100; // Set the data in the simconnect object simconnect.SetDataOnSimObject( FsDataObjects.DEFINITIONS.ControlDataStruct, SimConnect.SIMCONNECT_OBJECT_ID_USER, 0, controls); // Save the latest controls parameters ControlsLatest = controls; // Transmit the gear state if it is different from the last gear state if (gear != gear_last) { gear_last = gear; FsDataObjects.EVENTS g_state = (gear == 1) ? FsDataObjects.EVENTS.GEAR_UP : FsDataObjects.EVENTS.GEAR_DOWN; simconnect.TransmitClientEvent( SimConnect.SIMCONNECT_OBJECT_ID_USER, g_state, 0, FsDataObjects.NOTIFICATION_GROUPS.GROUP0, SIMCONNECT_EVENT_FLAG.GROUPID_IS_PRIORITY); } // Transmit the flaps state if it is different from the last flaps state if (flaps != flaps_last) { flaps_last = flaps; FsDataObjects.EVENTS f_state = FsDataObjects.EVENTS.FLAPS0; if (flaps == 0) { f_state = FsDataObjects.EVENTS.FLAPS0; } else if (flaps == 1) { f_state = FsDataObjects.EVENTS.FLAPS1; } else if (flaps == 2) { f_state = FsDataObjects.EVENTS.FLAPS2; } simconnect.TransmitClientEvent( SimConnect.SIMCONNECT_OBJECT_ID_USER, f_state, 0, FsDataObjects.NOTIFICATION_GROUPS.GROUP0, SIMCONNECT_EVENT_FLAG.GROUPID_IS_PRIORITY); } }
static void Main(string[] args) { bool panelStrobeState = false; Console.WriteLine("Connecting to AVR panel controller"); //var serialPort = new SerialPort("") Console.WriteLine("Hello World!"); var connection = new SimConnect( Process.GetCurrentProcess().ProcessName, new IntPtr(0), 0x0402, null, 0); //hookup a handler for getting data out of the sim. connection.OnRecvSimobjectData += Connection_OnRecvSimobjectData;; //build control data definition schema. connection.AddToDataDefinition(DEFINITIONS.AirCraftControl, "AILERON POSITION", "position", SIMCONNECT_DATATYPE.FLOAT64, 0, 0); connection.AddToDataDefinition(DEFINITIONS.AirCraftControl, "ELEVATOR POSITION", "position", SIMCONNECT_DATATYPE.FLOAT64, 0, 1); connection.AddToDataDefinition(DEFINITIONS.AirCraftControl, "ELECTRICAL MASTER BATTERY", "bool", SIMCONNECT_DATATYPE.INT32, 0, 2); connection.AddToDataDefinition(DEFINITIONS.AirCraftControl, "GEAR HANDLE POSITION", "bool", SIMCONNECT_DATATYPE.INT32, 0, 3); connection.RegisterDataDefineStruct <AirCraftControlSimVars>(DEFINITIONS.AirCraftControl); AirCraftControlSimVars controlSimVarsStruct; AirCraftControl_EventData controlSimEventStruct; //build the return data schema - we'll use this data to determine if we should toggle lights (or other events) or not. connection.AddToDataDefinition(DEFINITIONS.NonSettableData, nameof(lightStruct.LIGHT_STROBE).Replace("_", " "), "bool", SIMCONNECT_DATATYPE.INT32, 0, 0); connection.AddToDataDefinition(DEFINITIONS.NonSettableData, nameof(lightStruct.LIGHT_BEACON).Replace("_", " "), "bool", SIMCONNECT_DATATYPE.INT32, 0, 0); connection.AddToDataDefinition(DEFINITIONS.NonSettableData, nameof(lightStruct.LIGHT_CABIN_LIGHTS).Replace("_", " "), "bool", SIMCONNECT_DATATYPE.INT32, 0, 0); connection.AddToDataDefinition(DEFINITIONS.NonSettableData, nameof(lightStruct.LIGHT_LANDING).Replace("_", " "), "bool", SIMCONNECT_DATATYPE.INT32, 0, 0); connection.AddToDataDefinition(DEFINITIONS.NonSettableData, nameof(lightStruct.LIGHT_NAV).Replace("_", " "), "bool", SIMCONNECT_DATATYPE.INT32, 0, 0); connection.AddToDataDefinition(DEFINITIONS.NonSettableData, nameof(lightStruct.LIGHT_PANEL).Replace("_", " "), "bool", SIMCONNECT_DATATYPE.INT32, 0, 0); connection.AddToDataDefinition(DEFINITIONS.NonSettableData, nameof(lightStruct.LIGHT_TAXI).Replace("_", " "), "bool", SIMCONNECT_DATATYPE.INT32, 0, 0); connection.RegisterDataDefineStruct <NonSettableData>(DEFINITIONS.NonSettableData); //map all events to events with same names connection.MapClientEventToSimEvent(EVENTS.TOGGLE_MASTER_ALTERNATOR, nameof(EVENTS.TOGGLE_MASTER_ALTERNATOR)); connection.MapClientEventToSimEvent(EVENTS.STROBES_TOGGLE, nameof(EVENTS.STROBES_TOGGLE)); connection.MapClientEventToSimEvent(EVENTS.LANDING_LIGHTS_TOGGLE, nameof(EVENTS.LANDING_LIGHTS_TOGGLE)); connection.MapClientEventToSimEvent(EVENTS.PANEL_LIGHTS_TOGGLE, nameof(EVENTS.PANEL_LIGHTS_TOGGLE)); connection.MapClientEventToSimEvent(EVENTS.TOGGLE_BEACON_LIGHTS, nameof(EVENTS.TOGGLE_BEACON_LIGHTS)); connection.MapClientEventToSimEvent(EVENTS.TOGGLE_CABIN_LIGHTS, nameof(EVENTS.TOGGLE_CABIN_LIGHTS)); connection.MapClientEventToSimEvent(EVENTS.TOGGLE_NAV_LIGHTS, nameof(EVENTS.TOGGLE_NAV_LIGHTS)); connection.MapClientEventToSimEvent(EVENTS.TOGGLE_TAXI_LIGHTS, nameof(EVENTS.TOGGLE_TAXI_LIGHTS)); connection.MapClientEventToSimEvent(EVENTS.ALL_LIGHTS_TOGGLE, nameof(EVENTS.ALL_LIGHTS_TOGGLE)); connection.MapClientEventToSimEvent(EVENTS.THROTTLE_SET, nameof(EVENTS.THROTTLE_SET)); connection.RequestDataOnSimObject( Requests.REQUEST1, DEFINITIONS.NonSettableData, SimConnect.SIMCONNECT_OBJECT_ID_USER, SIMCONNECT_PERIOD.SIM_FRAME, SIMCONNECT_DATA_REQUEST_FLAG.DEFAULT, 0, 0, 0); var task = Task.Run(() => { while (true) { //waitHandle.WaitOne(); System.Threading.Thread.Sleep(300); connection.ReceiveMessage(); controlSimVarsStruct.aileron = ran.Next(-1, 2) * ran.NextDouble(); controlSimVarsStruct.elevator = ran.Next(-1, 2) * ran.NextDouble(); controlSimVarsStruct.master_battery = ran.Next(2) == 0 ? false : true; controlSimVarsStruct.gear_position = ran.Next(2) == 0 ? false : true; controlSimEventStruct.throttlePos = (uint)ran.Next(0, 16383); //Debug.WriteLine(x.aileron); // Debug.WriteLine(x.elevator); try { //connection.SetDataOnSimObject(SettableData.AirCraftControl, SimConnect.SIMCONNECT_OBJECT_ID_USER, SIMCONNECT_DATA_SET_FLAG.DEFAULT, x); //connection.TransmitClientEvent(SimConnect.SIMCONNECT_OBJECT_ID_USER, EVENTS.TOGGLE_MASTER_ALTERNATOR, 0, groups.group1, SIMCONNECT_EVENT_FLAG.GROUPID_IS_PRIORITY); //connection.TransmitClientEvent(SimConnect.SIMCONNECT_OBJECT_ID_USER, EVENTS.STROBES_TOGGLE, 0, groups.group1, SIMCONNECT_EVENT_FLAG.GROUPID_IS_PRIORITY); //connection.TransmitClientEvent(SimConnect.SIMCONNECT_OBJECT_ID_USER, EVENTS.ALL_LIGHTS_TOGGLE, 0, groups.group1, SIMCONNECT_EVENT_FLAG.GROUPID_IS_PRIORITY); if (panelStrobeState != lightStruct.LIGHT_STROBE) { connection.TransmitClientEvent(SimConnect.SIMCONNECT_OBJECT_ID_USER, EVENTS.STROBES_TOGGLE, 0, groups.group1, SIMCONNECT_EVENT_FLAG.GROUPID_IS_PRIORITY); } connection.TransmitClientEvent(SimConnect.SIMCONNECT_OBJECT_ID_USER, EVENTS.THROTTLE_SET, controlSimEventStruct.throttlePos, groups.group1, SIMCONNECT_EVENT_FLAG.GROUPID_IS_PRIORITY); } catch (Exception e) { Console.WriteLine(e.Message); } } }); var form = new System.Windows.Forms.Form(); var checkbox = new CheckBox(); checkbox.CheckedChanged += (o, e) => { panelStrobeState = checkbox.Checked; }; #if DEBUG //create a modal dialog for testing our panel //without actual serial coms. form.Controls.Add(checkbox); form.ShowDialog(); #else task.Wait(); #endif }
public void SetAntiIce1(uint value) { SimConnect?.TransmitClientEvent(0, SimEvents.ANTI_ICE_SET_ENG1, value, GROUP.GROUP1, SIMCONNECT_EVENT_FLAG.GROUPID_IS_PRIORITY); }