/// <summary> /// Change the Omni range of a ground station. /// Note that this change is temporary. For example it is overridden to the value written in the settings file if the tracking station is upgraded. /// </summary> /// <param name="stationId">The station ID for which to change the antenna range.</param> /// <param name="newRange">The new range in meters.</param> /// <returns>true if the ground station antenna range was changed, false otherwise.</returns> public static bool ChangeGroundStationRange(Guid stationId, float newRange) { RTLog.Notify("Trying to change ground station {0} Omni range to {1}", RTLogLevel.API, stationId.ToString(), newRange); if (RTSettings.Instance == null) { return(false); } if (RTSettings.Instance.GroundStations.Count > 0) { MissionControlSatellite groundStation = RTSettings.Instance.GroundStations.First(gs => gs.mGuid == stationId); if (groundStation == null) { return(false); } IEnumerable <IAntenna> antennas = groundStation.MissionControlAntennas.ToArray(); if (antennas.Count() > 0) { // first antenna IAntenna antenna = antennas.ToArray()[0]; if (antenna is MissionControlAntenna) { ((MissionControlAntenna)antenna).SetOmniAntennaRange(newRange); RTLog.Notify("Ground station Omni range successfully changed.", RTLogLevel.API); return(true); } } } return(false); }
public static Guid GetGroundStationGuid(String name) { MissionControlSatellite groundStation = RTSettings.Instance.GroundStations.Where(station => station.GetName().Equals(name)).FirstOrDefault(); if (groundStation == null) { return(Guid.Empty); } return(groundStation.mGuid); }
/// <summary> /// Adds a new ground station to the list. /// </summary> /// <param name="name">Name of the ground station</param> /// <param name="latitude">Latitude position</param> /// <param name="longitude">Longitude position</param> /// <param name="height">Height above sea level</param> /// <param name="body">Reference body 1=Kerbin etc...</param> /// <returns>A new <see cref="Guid"/> if a new station was successfully added otherwise a Guid.Empty.</returns> public Guid AddGroundStation(string name, double latitude, double longitude, double height, int body) { RTLog.Notify("Trying to add ground station({0})", RTLogLevel.LVL1, name); var newGroundStation = new MissionControlSatellite(); newGroundStation.SetDetails(name, latitude, longitude, height, body); // Already on the list? var foundGroundStation = GroundStations.FirstOrDefault(ms => ms.GetDetails().Equals(newGroundStation.GetDetails())); if (foundGroundStation != null) { RTLog.Notify("Ground station already exists!"); return Guid.Empty; } GroundStations.Add(newGroundStation); Save(); return newGroundStation.mGuid; }