Esempio n. 1
0
            /// <summary>
            /// Set any possible values for the given NMEA data.
            /// It will continue to replace
            /// the values so the last value is used as the final value.
            /// </summary>
            /// <param name="sentence">NMEA sentence containing data.</param>
            private void SetValues(NmeaSentence sentence)
            {
                /*
                 * NMEA specification states that the first two letters of
                 * a sentence may change.  For example, for "$GPGSV" there may be variations such as
                 * "$__GSV" where the first two letters change.  As a result, we need only test the last three
                 * characters.
                 */

                try
                {
                    if (sentence.CommandWord.EndsWith("GGA", StringComparison.Ordinal))
                    {
                        // Yes.  Convert it using the fast pre-parseed constructor
                        GPGGA = new GpggaSentence(sentence.Sentence);

                        // Set the Lat and Lon and time
                    }
                    if (sentence.CommandWord.EndsWith("VTG", StringComparison.Ordinal))
                    {
                        // Yes.  Convert it using the fast pre-parseed constructor
                        GPVTG = new GpvtgSentence(sentence.Sentence);
                    }
                    if (sentence.CommandWord.EndsWith("RMC", StringComparison.Ordinal))
                    {
                        // Yes.  Convert it using the fast pre-parseed constructor
                        GPRMC = new GprmcSentence(sentence.Sentence);
                    }
                    if (sentence.CommandWord.EndsWith("RMF", StringComparison.Ordinal))
                    {
                        // Yes.  Convert it using the fast pre-parseed constructor
                        PGRMF = new PgrmfSentence(sentence.Sentence);
                    }
                    if (sentence.CommandWord.EndsWith("GLL", StringComparison.Ordinal))
                    {
                        // Yes.  Convert it using the fast pre-parseed constructor
                        GPGLL = new GpgllSentence(sentence.Sentence);
                    }
                    if (sentence.CommandWord.EndsWith("GSV", StringComparison.Ordinal))
                    {
                        // Yes.  Convert it using the fast pre-parseed constructor
                        GPGSV = new GpgsvSentence(sentence.Sentence);
                    }
                    if (sentence.CommandWord.EndsWith("GSA", StringComparison.Ordinal))
                    {
                        // Yes.  Convert it using the fast pre-parseed constructor
                        GPGSA = new GpgsaSentence(sentence.Sentence);
                    }
                    if (sentence.CommandWord.EndsWith("HDT", StringComparison.Ordinal))
                    {
                        // Yes.  Convert it using the fast pre-parseed constructor
                        GPHDT = new GphdtSentence(sentence.Sentence);
                    }
                }
                catch (Exception e)
                {
                    log.Error("Error decoding a NMEA sentance.", e);
                }
            }
Esempio n. 2
0
        public void GpvtgSentenceFromString()
        {
            GpvtgSentence sentence = new GpvtgSentence("$GPVTG,054.7,T,034.4,M,005.5,N,010.2,K*48");

            Assert.AreEqual("$GPVTG,054.7,T,034.4,M,005.5,N,010.2,K*48", sentence.Sentence);
            Assert.AreEqual(new Speed(5.5, SpeedUnit.Knots), sentence.Speed);
            Assert.AreEqual(54.7, sentence.Bearing.DecimalDegrees);
        }
Esempio n. 3
0
            /// <summary>
            /// Set any possible values for the given NMEA data.
            /// It will continue to replace
            /// the values so the last value is used as the final value.
            /// </summary>
            /// <param name="sentence">NMEA sentence containing data.</param>
            private void SetValues(NmeaSentence sentence)
            {
                /*
                 * NMEA specification states that the first two letters of
                 * a sentence may change.  For example, for "$GPGSV" there may be variations such as
                 * "$__GSV" where the first two letters change.  As a result, we need only test the last three
                 * characters.
                 */

                if (sentence.CommandWord.EndsWith("GGA", StringComparison.Ordinal))
                {
                    // Yes.  Convert it using the fast pre-parseed constructor
                    GPGGA = new GpggaSentence(sentence.Sentence);

                    // Set the Lat and Lon and time
                }
                if (sentence.CommandWord.EndsWith("VTG", StringComparison.Ordinal))
                {
                    // Yes.  Convert it using the fast pre-parseed constructor
                    GPVTG = new GpvtgSentence(sentence.Sentence);
                }
                if (sentence.CommandWord.EndsWith("RMC", StringComparison.Ordinal))
                {
                    // Yes.  Convert it using the fast pre-parseed constructor
                    GPRMC = new GprmcSentence(sentence.Sentence);
                }
                if (sentence.CommandWord.EndsWith("RMF", StringComparison.Ordinal))
                {
                    // Yes.  Convert it using the fast pre-parseed constructor
                    PGRMF = new PgrmfSentence(sentence.Sentence);
                }
                if (sentence.CommandWord.EndsWith("GLL", StringComparison.Ordinal))
                {
                    // Yes.  Convert it using the fast pre-parseed constructor
                    GPGLL = new GpgllSentence(sentence.Sentence);
                }
                if (sentence.CommandWord.EndsWith("GSV", StringComparison.Ordinal))
                {
                    // Yes.  Convert it using the fast pre-parseed constructor
                    GPGSV = new GpgsvSentence(sentence.Sentence);
                }
                if (sentence.CommandWord.EndsWith("GSA", StringComparison.Ordinal))
                {
                    // Yes.  Convert it using the fast pre-parseed constructor
                    GPGSA = new GpgsaSentence(sentence.Sentence);
                }
                if (sentence.CommandWord.EndsWith("HDT", StringComparison.Ordinal))
                {
                    // Yes.  Convert it using the fast pre-parseed constructor
                    GPHDT = new GphdtSentence(sentence.Sentence);
                }
            }