/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); } }
/// <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; } }
/// <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); } }
/// <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); }
/// <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); }
void PositionChanged(Object sender, GpsEventArgs e) { _client.Longitude = e.Value.Longitude; _client.Latitude = e.Value.Latitude; RaisePropertyChanged("Position"); }