/// <summary> /// Get the selected object in TheSkyX /// </summary> /// <returns></returns> public async Task <DeepSkyObject> GetTarget() { try { string response = await Query("GET_TARGET"); response = response.TrimEnd('\r', '\n'); /* * Split the coordinates and object name from the returned message. * GET_TARGET returns 4 fields, space-separated: * RA Dec Name Position_angle * * RA and Dec are in radians. Epoch is J2000. */ string[] info = response.Split(' '); if (!(info[0].Equals("?") || string.IsNullOrEmpty(info[2]))) { Coordinates newCoordinates = new Coordinates(Astrometry.RadianToHour(double.Parse(info[0].Replace(',', '.'), System.Globalization.CultureInfo.InvariantCulture)), Astrometry.ToDegree(double.Parse(info[1].Replace(',', '.'), System.Globalization.CultureInfo.InvariantCulture)), Epoch.J2000, Coordinates.RAType.Hours); DeepSkyObject dso = new DeepSkyObject(info[2], newCoordinates, string.Empty); return(dso); } else { throw new PlanetariumObjectNotSelectedException(); } } catch (Exception ex) { Logger.Error(ex); throw ex; } }