public void OnAircraftConfigurationInfoReceived(object sender, NetworkDataReceivedEventArgs e) { AircraftConfigurationInfo info; try { info = AircraftConfigurationInfo.FromJson(e.Data); } catch { return; } if (info.Request.HasValue) { switch (info.Request.Value) { case AircraftConfigurationInfo.RequestType.Full: { AircraftConfiguration cfg = AircraftConfiguration.FromUserAircraftData(UserAircraftData); cfg.IsFullData = true; mFsdManager.SendAircraftConfiguration(e.From, cfg); break; } } } }
public void SendIncrementalAircraftConfigurationUpdate(AircraftConfiguration config) { if (FSD.Connected) { AircraftConfigurationInfo aircraftConfigurationInfo = new AircraftConfigurationInfo { Config = config }; FSD.SendPDU(new PDUClientQuery(OurCallsign, "@94836", ClientQueryType.AircraftConfiguration, new List <string> { aircraftConfigurationInfo.ToJson() })); } }
public void RequestFullAircraftConfiguration(string to) { if (FSD.Connected) { AircraftConfigurationInfo aircraftConfigurationInfo = new AircraftConfigurationInfo { Request = new AircraftConfigurationInfo.RequestType?(AircraftConfigurationInfo.RequestType.Full) }; FSD.SendPDU(new PDUClientQuery(OurCallsign, to, ClientQueryType.AircraftConfiguration, new List <string> { aircraftConfigurationInfo.ToJson() })); } }
public void SendAircraftConfiguration(string to, AircraftConfiguration config) { if (FSD.Connected) { AircraftConfigurationInfo aircraftConfigurationInfo = new AircraftConfigurationInfo { Config = config }; FSD.SendPDU(new PDUClientQuery(OurCallsign, to, ClientQueryType.AircraftConfiguration, new List <string> { aircraftConfigurationInfo.ToJson() })); } }
public void OnAircraftConfigurationInfoReceived(object sender, NetworkDataReceivedEventArgs e) { AircraftConfigurationInfo aircraftConfigurationInfo; try { aircraftConfigurationInfo = AircraftConfigurationInfo.FromJson(e.Data); } catch (Exception ex) { Console.WriteLine($"Unable to deserialize aircraft configuration JSON from {e.From}: {e.Data} - Error: {ex.Message}"); return; } NetworkAircraft aircraft = mNetworkAircraft.FirstOrDefault(o => o.Callsign == e.From); if (aircraftConfigurationInfo.HasConfig && aircraft != null) { if (!aircraft.SupportsConfigurationProtocol) { aircraft.SupportsConfigurationProtocol = true; mFsdManager.RequestFullAircraftConfiguration(aircraft.Callsign); Console.WriteLine($"Received aircraft configuration from {e.From}. Requesting full ACCONFIG again."); } if (aircraft.Status == AircraftStatus.Active) { Console.WriteLine($"Received aircraft configuration info from: {e.From}: {e.Data}"); ProcessAircraftConfig(aircraft, aircraftConfigurationInfo.Config); } else { Console.WriteLine($"Queing ACCONFIG for {e.From} because the aircraft isn't active yet."); aircraft.PendingAircraftConfiguration.Push(aircraftConfigurationInfo.Config); } } }