示例#1
0
 /// <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);
     }
 }
示例#2
0
 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");
 }
示例#3
0
 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");
 }
示例#4
0
        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");
        }