Esempio n. 1
0
            public bool Parse(string nmea_string)
            {
                bool result = false;

                this.NMEAString = nmea_string;

                string raw_string = nmea_string.Substring(0, nmea_string.IndexOf('*'));

                this.CheckSum = nmea_string.Substring(nmea_string.IndexOf('*') + 1);
                string calculated = NMEAHelper.CalculateChecksum(nmea_string);

                this.Checked = (calculated == this.CheckSum);

                string[] field = raw_string.Split(NMEADelimiter);
                this.Time              = NMEAHelper.parseTime(field[INDEX_TIME]);
                this.Longitude         = NMEAHelper.parseLongitude(field[INDEX_LONGITUDE], field[INDEX_LONGITUDE_HEMISPHERE]);
                this.Latitude          = NMEAHelper.parseLatitude(field[INDEX_LATITUDE], field[INDEX_LATITUDE_HEMISPHERE]);
                this.Fix               = NMEAHelper.parseFixQuality(field[INDEX_FIX_QUALITY]);
                this.Satelites         = NMEAHelper.parseInt(field[INDEX_SATLITES]);
                this.HDOP              = NMEAHelper.parseFloat(field[INDEX_HDOP]);
                this.Altitude          = NMEAHelper.parseAltitude(field[INDEX_ALTITUDE], field[INDEX_ALTITUDE_DIMENSIONS]);
                this.Geoid             = NMEAHelper.parseGeoid(field[INDEX_GEOID], field[INDEX_GEOID_DIMENSIONS]);
                this.DGPS_Elapsed_Time = NMEAHelper.parseFloat(field[INDEX_DGPS_UPDATE]);
                this.DGPS_ID           = field[INDEX_DGPS_ID];
                return(result);
            }
Esempio n. 2
0
            public bool Parse(string nmea_string)
            {
                bool result = false;

                this.NMEAString = nmea_string;

                string raw_string = nmea_string.Substring(0, nmea_string.IndexOf('*'));

                this.CheckSum = nmea_string.Substring(nmea_string.IndexOf('*') + 1);
                string calculated = NMEAHelper.CalculateChecksum(nmea_string);

                this.Checked = (calculated == this.CheckSum);

                string[] field = raw_string.Split(NMEADelimiter);
                this.Time      = NMEAHelper.parseTime(field[INDEX_TIME]);
                this.Valid     = NMEAHelper.parseValid(field[INDEX_VALID]);
                this.Latitude  = NMEAHelper.parseLatitude(field[INDEX_LATITUDE], field[INDEX_LATITUDE_HEMISPHERE]);
                this.Longitude = NMEAHelper.parseLongitude(field[INDEX_LONGITUDE], field[INDEX_LONGITUDE_HEMISPHERE]);

                this.Speed   = NMEAHelper.parseFloat(field[INDEX_SPEED]);
                this.Bearing = NMEAHelper.parseFloat(field[INDEX_BEARING]);
                this.Date    = NMEAHelper.parseDate(field[INDEX_DATE]);

                this.MagneticVariation = NMEAHelper.parseFloat(field[INDEX_MAG_VARI]);
                this.MagneticDeviation = NMEAHelper.parseDeviation(field[INDEX_MAG_DEV]);
                this.Mode = (field.Count() > INDEX_MODE) ? NMEAHelper.parseMode(field[INDEX_MODE]) : ModeIndicator.Data_not_valid;
                return(result);
            }
Esempio n. 3
0
            public bool Parse(string nmea_string)
            {
                bool result = false;

                this.satelites.Clear();
                this.Count = 0;

                this.NMEAString = nmea_string;

                string raw_string = nmea_string.Substring(0, nmea_string.IndexOf('*'));

                this.CheckSum = nmea_string.Substring(nmea_string.IndexOf('*') + 1);
                string calculated = NMEAHelper.CalculateChecksum(nmea_string);

                this.Checked = (calculated == this.CheckSum);

                string[] field = raw_string.Split(NMEADelimiter);
                this.Selection = NMEAHelper.parseSelection(field[INDEX_SELECTION]);
                this.Fix       = NMEAHelper.parseFixType(field[INDEX_FIXTYPE]);
                bool b = false;

                b          = AddSatelite(this.satelites, field[INDEX_SAT__1]);
                b          = AddSatelite(this.satelites, field[INDEX_SAT__2]);
                b          = AddSatelite(this.satelites, field[INDEX_SAT__3]);
                b          = AddSatelite(this.satelites, field[INDEX_SAT__4]);
                b          = AddSatelite(this.satelites, field[INDEX_SAT__5]);
                b          = AddSatelite(this.satelites, field[INDEX_SAT__6]);
                b          = AddSatelite(this.satelites, field[INDEX_SAT__7]);
                b          = AddSatelite(this.satelites, field[INDEX_SAT__8]);
                b          = AddSatelite(this.satelites, field[INDEX_SAT__9]);
                b          = AddSatelite(this.satelites, field[INDEX_SAT_10]);
                b          = AddSatelite(this.satelites, field[INDEX_SAT_11]);
                b          = AddSatelite(this.satelites, field[INDEX_SAT_12]);
                this.Count = this.satelites.Count();
                this.PDOP  = NMEAHelper.parseFloat(field[INDEX_PDOP]);
                this.HDOP  = NMEAHelper.parseFloat(field[INDEX_HDOP]);
                this.VDOP  = NMEAHelper.parseFloat(field[INDEX_VDOP]);


                return(result);
            }