/// <summary> /// Handle the Orientation Data /// </summary> /// <param name="data"></param> private void HandleOrn(string[] data) { var aAndM = data[1].Split(new[] { ';' }); var aData = aAndM[0].Split(new[] { ',' }); var mData = aAndM[1].Split(new[] { ',' }); var altitudeprep = new Point3D(aData[0], aData[1], aData[2]); var azimuthPrep = new Point3D(mData[0], mData[1], mData[2]); var altitude = CalcuclateAltitude(altitudeprep); var azimuth = CalculateAzimuth(azimuthPrep); //Convert this into the Orientation neeed for google sky. var hcs = new HorizontalCs(azimuth, altitude); try { ArduinoMessageEvent(new ErrorEvent(string.Format("Alt {0} Azi {1}", altitude, azimuth))); var gcs = CoordinateConverter.HorizontalToGoogleSky(hcs); //Pass Data up to UI via event or something. ArduinoMessageEvent(new OrientationEvent(gcs)); } catch (Exception ex) { ArduinoMessageEvent(new ErrorEvent(string.Format("Error Occurred: {0}", ex.Message))); if (ex.Message.Contains("gps")) { GetGpsCoOrdinates(); } } }
/// <summary> /// Converts horizontal coordinates to coordinates the Google Sky object can process /// </summary> /// <param name="azimuth"></param> /// <param name="altitude"></param> /// <returns> Returns the latitude, longitude, and the zoom to the Google Sky object</returns> private double[] HorizontalToGoogleSkyDouble(int azimuth, int altitude) { var horizontal = new HorizontalCs(azimuth, altitude); try { GoogleSkyCoordinate = CoordinateConverter.HorizontalToGoogleSky(horizontal); return(new[] { GoogleSkyCoordinate.Latitude, GoogleSkyCoordinate.Longitude, 9000 }); } catch (Exception ex) { LogListBox("Exception occured: {0}", ex.Message); return(null); } }