/// <summary> /// Process the data from a GGA message. /// </summary> /// <param name="data">String array of the message components for a CGA message.</param> public override void Process(string[] data) { if (OnPositionCourseAndTimeReceived != null) { var position = new PositionCourseAndTime(); position.TimeOfReading = NMEAHelpers.TimeOfReading(data[9], data[1]); if (data[2].ToLower() == "a") { position.Valid = true; } else { position.Valid = false; } position.Latitude = NMEAHelpers.DegreesMinutesDecode(data[3], data[4]); position.Longitude = NMEAHelpers.DegreesMinutesDecode(data[5], data[6]); position.Speed = double.Parse(data[7]); position.Course = double.Parse(data[8]); if (data[10].ToLower() == "e") { position.MagneticVariation = DirectionIndicator.East; } else { position.MagneticVariation = DirectionIndicator.West; } OnPositionCourseAndTimeReceived(this, position); } }
static void rmcDecoder_OnPositionCourseAndTimeReceived(object sender, PositionCourseAndTime positionCourseAndTime) { Debug.Print("Satellite information received."); Debug.Print("Time of reading: " + positionCourseAndTime.TimeOfReading); Debug.Print("Latitude: " + DecodeDMPosition(positionCourseAndTime.Latitude)); Debug.Print("Longitude: " + DecodeDMPosition(positionCourseAndTime.Longitude)); Debug.Print("Speed: " + positionCourseAndTime.Speed.ToString("f2")); Debug.Print("Course: " + positionCourseAndTime.Course.ToString("f2")); Debug.Print("*********************************************\n"); }
private static void RmcDecoder_OnPositionCourseAndTimeReceived(object sender, PositionCourseAndTime positionCourseAndTime) { Console.WriteLine("Satellite information received."); Console.WriteLine("Time of reading: " + positionCourseAndTime.TimeOfReading); Console.WriteLine("Latitude: " + DecodeDMPostion(positionCourseAndTime.Latitude)); Console.WriteLine("Longitude: " + DecodeDMPostion(positionCourseAndTime.Longitude)); Console.WriteLine("Speed: " + positionCourseAndTime.Speed.ToString("f2")); Console.WriteLine("Course: " + positionCourseAndTime.Course.ToString("f2")); Console.WriteLine("*********************************************\n"); }
private static void rmcDecoder_OnPositionCourseAndTimeReceived(object sender, PositionCourseAndTime positionCourseAndTime) { gl.DrawText(0, 10, DecodeDMPostion(positionCourseAndTime.Latitude)); gl.DrawText(0, 20, DecodeDMPostion(positionCourseAndTime.Longitude)); gl.DrawText(0, 30, positionCourseAndTime.TimeOfReading.TimeOfDay.ToString()); gl.Show(); Debug.Print("Satellite information received."); Debug.Print("Time of reading: " + positionCourseAndTime.TimeOfReading); Debug.Print("Latitude: " + DecodeDMPostion(positionCourseAndTime.Latitude)); Debug.Print("Longitude: " + DecodeDMPostion(positionCourseAndTime.Longitude)); Debug.Print("Speed: " + positionCourseAndTime.Speed.ToString("f2")); Debug.Print("Course: " + positionCourseAndTime.Course.ToString("f2")); Debug.Print("*********************************************\n"); }