예제 #1
0
        /// <summary>
        /// Private method for Firing a serialport timeout event
        /// </summary>
        private void FireTimeOut()
        {
            GPGGA.FixQuality = GPGGA.FixQualityEnum.Invalid;
            GpsEventArgs e = new GpsEventArgs
            {
                TypeOfEvent = GpsEventType.TimeOut
            };

            NewProcessedGpsFix(this, e);
        }
예제 #2
0
        /// <summary>
        /// Fires a NewGPSFix event
        /// </summary>
        /// <param name="type">Type of GPS event (GPGGA, GPGSA, etx...)</param>
        /// <param name="sentence">NMEA Sentence</param>
        private void FireEvent(GpsEventType type, string sentence)
        {
            GpsEventArgs e = new GpsEventArgs
            {
                TypeOfEvent = type,
                Sentence    = sentence
            };

            NewGpsData(this, e);
        }
예제 #3
0
        /// <summary>
        /// Private method for parsing the GPGLL NMEA sentence
        /// </summary>
        /// <param name="strGLL">GPGLL sentence</param>
        private void ParseGLL(string strGLL)
        {
            GPGLL = new GPGLL(strGLL);
            GpsEventArgs e = new GpsEventArgs
            {
                TypeOfEvent = GpsEventType.GPGLL,
                Sentence    = strGLL
            };

            NewProcessedGpsFix(this, e);
        }
예제 #4
0
        /// <summary>
        /// Private method for parsing the PGRME NMEA sentence
        /// </summary>
        /// <param name="strRME">GPRMC sentence</param>
        private void ParseRME(string strRME)
        {
            PGRME = new GPRME(strRME);
            //fire the event.
            GpsEventArgs e = new GpsEventArgs
            {
                TypeOfEvent = GpsEventType.PGRME,
                Sentence    = strRME
            };

            NewProcessedGpsFix(this, e);
        }
예제 #5
0
        /// <summary>
        /// Private method for parsing the GPGGA NMEA sentence
        /// </summary>
        /// <param name="strGGA">GPGGA sentence</param>
        private void ParseGGA(string strGGA)
        {
            GPGGA = new GPGGA(strGGA);
            //fire the event.
            GpsEventArgs e = new GpsEventArgs
            {
                TypeOfEvent = GpsEventType.GPGGA,
                Sentence    = strGGA
            };

            NewProcessedGpsFix(this, e);
        }
예제 #6
0
        /// <summary>
        /// Private method for parsing the GPRMC NMEA sentence
        /// </summary>
        /// <param name="strRMC">GPRMC sentence</param>
        private void ParseRMC(string strRMC)
        {
            GPRMC = new GPRMC(strRMC);

            //fire the event.
            GpsEventArgs e = new GpsEventArgs
            {
                TypeOfEvent = GpsEventType.GPRMC,
                Sentence    = strRMC
            };

            NewProcessedGpsFix(this, e);
        }
예제 #7
0
 /// <summary>
 /// Private method for parsing the GPGSV NMEA sentence
 /// GPGSV is a bit different, since it if usually made from several NMEA sentences
 /// </summary>
 /// <param name="strGSV">GPGSV sentence</param>
 private void ParseGSV(string strGSV)
 {
     //fire the event if last GSV message.
     if (GPGSV.AddSentence(strGSV))
     {
         GpsEventArgs e = new GpsEventArgs
         {
             TypeOfEvent = GpsEventType.GPGSV,
             Sentence    = strGSV
         };
         NewProcessedGpsFix(this, e);
     }
 }
예제 #8
0
        /// <summary>
        /// Method called when a GPS event occured.
        /// This is where we call the methods that parses each kind of NMEA sentence
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void GpsDataEventHandler(object sender, SerialPort.GpsEventArgs e)
        {
            switch (e.TypeOfEvent)
            {
            case GpsEventType.GPRMC:
                ParseRMC(e.Sentence);
                break;

            case GpsEventType.GPGGA:
                ParseGGA(e.Sentence);
                break;

            case GpsEventType.GPGLL:
                ParseGLL(e.Sentence);
                break;

            case GpsEventType.GPGSA:
                ParseGSA(e.Sentence);
                break;

            case GpsEventType.GPGSV:
                ParseGSV(e.Sentence);
                break;

            case GpsEventType.PGRME:
                ParseRME(e.Sentence);
                break;

            case GpsEventType.TimeOut:
                FireTimeOut();
                break;

            case GpsEventType.Unknown:
                GpsEventArgs e2 = new GpsEventArgs
                {
                    TypeOfEvent = e.TypeOfEvent,
                    Sentence    = e.Sentence
                };
                NewProcessedGpsFix(this, e2);
                break;

            default: break;
            }
        }
예제 #9
0
 /// <summary>
 /// Private method for parsing the GPGSV NMEA sentence
 /// GPGSV is a bit different, since it if usually made from several NMEA sentences
 /// </summary>
 /// <param name="strGSV">GPGSV sentence</param>
 private void ParseGSV(string strGSV)
 {
     //fire the event if last GSV message.
     if(GPGSV.AddSentence(strGSV))
     {
         GpsEventArgs e = new GpsEventArgs
                              {
                                  TypeOfEvent = GpsEventType.GPGSV,
                                  Sentence = strGSV
                              };
         NewProcessedGpsFix(this, e);
     }
 }
예제 #10
0
 /// <summary>
 /// Private method for parsing the GPGSA NMEA sentence
 /// </summary>
 /// <param name="strGSA">GPGSA sentence</param>
 private void ParseGSA(string strGSA)
 {
     GPGSA = new GPGSA(strGSA);
     //fire the event.
     GpsEventArgs e = new GpsEventArgs
                          {
                              TypeOfEvent = GpsEventType.GPGSA,
                              Sentence = strGSA
                          };
     NewProcessedGpsFix(this, e);
 }
예제 #11
0
 /// <summary>
 /// Private method for parsing the GPGLL NMEA sentence
 /// </summary>
 /// <param name="strGLL">GPGLL sentence</param>
 private void ParseGLL(string strGLL)
 {
     GPGLL = new GPGLL(strGLL);
     GpsEventArgs e = new GpsEventArgs
                          {
                              TypeOfEvent = GpsEventType.GPGLL,
                              Sentence = strGLL
                          };
     NewProcessedGpsFix(this, e);
 }
예제 #12
0
 /// <summary>
 /// Parse event from GPS thread to parent thread
 /// </summary>
 /// <param name="sender">Sender</param>
 /// <param name="e">GPSEventArgs</param>
 private void GpsEventHandler(object sender, GpsEventArgs e)
 {
     NewGpsFix(this, e);
 }
예제 #13
0
 /// <summary>
 /// Method called when a GPS event occured.
 /// This is where we call the methods that parses each kind of NMEA sentence
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void GpsDataEventHandler(object sender, SerialPort.GpsEventArgs e)
 {
     switch (e.TypeOfEvent)
     {
         case GpsEventType.GPRMC:
             ParseRMC(e.Sentence);
             break;
         case GpsEventType.GPGGA:
             ParseGGA(e.Sentence);
             break;
         case GpsEventType.GPGLL:
             ParseGLL(e.Sentence);
             break;
         case GpsEventType.GPGSA:
             ParseGSA(e.Sentence);
             break;
         case GpsEventType.GPGSV:
             ParseGSV(e.Sentence);
             break;
         case GpsEventType.PGRME:
             ParseRME(e.Sentence);
             break;
         case GpsEventType.TimeOut:
             FireTimeOut();
             break;
         case GpsEventType.Unknown:
             GpsEventArgs e2 = new GpsEventArgs
                                   {
                                       TypeOfEvent = e.TypeOfEvent,
                                       Sentence = e.Sentence
                                   };
             NewProcessedGpsFix(this, e2);
             break;
         default: break;
     }
 }
예제 #14
0
 /// <summary>
 /// Private method for Firing a serialport timeout event
 /// </summary>
 private void FireTimeOut()
 {
     GPGGA.FixQuality = GPGGA.FixQualityEnum.Invalid;
     GpsEventArgs e = new GpsEventArgs
                          {
                              TypeOfEvent = GpsEventType.TimeOut
                          };
     NewProcessedGpsFix(this, e);
 }
예제 #15
0
 void PositionChanged(Object sender, GpsEventArgs e)
 {
     _client.Longitude = e.Value.Longitude;
     _client.Latitude  = e.Value.Latitude;
     RaisePropertyChanged("Position");
 }
예제 #16
0
 /// <summary>
 /// Parse event from GPS thread to parent thread
 /// </summary>
 /// <param name="sender">Sender</param>
 /// <param name="e">GPSEventArgs</param>
 private void GpsEventHandler(object sender, GpsEventArgs e)
 {
     NewGpsFix(this, e);
 }
예제 #17
0
        /// <summary>
        /// Private method for parsing the GPRMC NMEA sentence
        /// </summary>
        /// <param name="strRMC">GPRMC sentence</param>
        private void ParseRMC(string strRMC)
        {
            GPRMC = new GPRMC(strRMC);

            //fire the event.
            GpsEventArgs e = new GpsEventArgs
                                 {
                                     TypeOfEvent = GpsEventType.GPRMC,
                                     Sentence = strRMC
                                 };
            NewProcessedGpsFix(this, e);
        }
예제 #18
0
 /// <summary>
 /// Private method for parsing the PGRME NMEA sentence
 /// </summary>
 /// <param name="strRME">GPRMC sentence</param>
 private void ParseRME(string strRME)
 {
     PGRME = new GPRME(strRME);
     //fire the event.
     GpsEventArgs e = new GpsEventArgs
                          {
                              TypeOfEvent = GpsEventType.PGRME,
                              Sentence = strRME
                          };
     NewProcessedGpsFix(this, e);
 }
예제 #19
0
 /// <summary>
 /// Fires a NewGPSFix event
 /// </summary>
 /// <param name="type">Type of GPS event (GPGGA, GPGSA, etx...)</param>
 /// <param name="sentence">NMEA Sentence</param>
 private void FireEvent(GpsEventType type, string sentence)
 {
     GpsEventArgs e = new GpsEventArgs
                          {
                              TypeOfEvent = type,
                              Sentence = sentence
                          };
     NewGpsData(this, e);
 }