示例#1
0
文件: HVM.cs 项目: SammyB428/NMEA
        public override bool Parse(Sentence sentence)
        {
            /*
            ** HVM - Magnetic Variation, Manually set
            **
            **        1   2 3
            **        |   | |
            ** $--HVM,x.x,a*hh<CR><LF>
            **
            ** Field Number:
            **  1) Magnetic Variation degrees
            **  2) Magnetic Variation direction, E = Easterly, W = Westerly
            **  3) Checksum
            */

            /*
            ** First we check the checksum...
            */

            if (sentence.IsChecksumBad() == Boolean.True)
            {
                Empty();
                return(false);
            }

            MagneticVariationDegrees   = sentence.Double(1);
            MagneticVariationDirection = sentence.EastOrWest(2);

            return(true);
        }
示例#2
0
文件: HVM.cs 项目: SammyB428/NMEA
        public override void Empty()
        {
            base.Empty();

            MagneticVariationDegrees   = 0.0D;
            MagneticVariationDirection = EastOrWest.Unknown;
        }
示例#3
0
文件: RMA.cs 项目: SammyB428/NMEA
        public override bool Parse(Sentence sentence)
        {
            /*
            ** RMA - Recommended Minimum Navigation Information
            **                                                    12
            **        1 2       3 4        5 6   7   8   9   10  11|
            **        | |       | |        | |   |   |   |   |   | |
            ** $--RMA,A,llll.ll,a,yyyyy.yy,a,x.x,x.x,x.x,x.x,x.x,a*hh<CR><LF>
            **
            ** Field Number:
            **  1) Blink Warning
            **  2) Latitude
            **  3) N or S
            **  4) Longitude
            **  5) E or W
            **  6) Time Difference A, uS
            **  7) Time Difference B, uS
            **  8) Speed Over Ground, Knots
            **  9) Track Made Good, degrees true
            ** 10) Magnetic Variation, degrees
            ** 11) E or W
            ** 12) Checksum
            */

            /*
            ** First we check the checksum...
            */

            if (sentence.IsChecksumBad() == Boolean.True)
            {
                Empty();
                return(false);
            }

            IsDataValid = sentence.Boolean(1);
            Position.Parse(2, 3, 4, 5, sentence);
            TimeDifferenceA            = sentence.Double(6);
            TimeDifferenceB            = sentence.Double(7);
            SpeedOverGroundKnots       = sentence.Double(8);
            TrackMadeGoodDegreesTrue   = sentence.Double(9);
            MagneticVariation          = sentence.Double(10);
            MagneticVariationDirection = sentence.EastOrWest(11);

            int checksum_field_number = sentence.ChecksumFieldNumber();

            if (checksum_field_number == 13)
            {
                Mode = sentence.FAAMode(12);
            }
            else
            {
                Mode = FAAModeIndicator.Unknown;
            }

            return(true);
        }
示例#4
0
文件: RMA.cs 项目: SammyB428/NMEA
        public override void Empty()
        {
            base.Empty();

            IsDataValid = Boolean.Unknown;
            Position.Empty();
            TimeDifferenceA            = 0.0D;
            TimeDifferenceB            = 0.0D;
            SpeedOverGroundKnots       = 0.0D;
            TrackMadeGoodDegreesTrue   = 0.0D;
            MagneticVariation          = 0.0D;
            MagneticVariationDirection = EastOrWest.Unknown;
            Mode = NMEA.FAAModeIndicator.Unknown;
        }
示例#5
0
文件: HDG.cs 项目: SammyB428/NMEA
        public override bool Parse(Sentence sentence)
        {
            /*
            ** HDG - Heading - Deviation & Variation
            **
            **        1   2   3 4   5 6
            **        |   |   | |   | |
            ** $--HDG,x.x,x.x,a,x.x,a*hh<CR><LF>
            **
            ** Field Number:
            **  1) Magnetic Sensor heading in degrees
            **  2) Magnetic Deviation, degrees
            **  3) Magnetic Deviation direction, E = Easterly, W = Westerly
            **  4) Magnetic Variation degrees
            **  5) Magnetic Variation direction, E = Easterly, W = Westerly
            **  6) Checksum
            */

            /*
            ** First we check the checksum...
            */

            if (sentence.IsChecksumBad() == Boolean.True)
            {
                Empty();
                return(false);
            }

            MagneticSensorHeadingDegrees = sentence.Double(1);
            MagneticDeviationDegrees     = sentence.Double(2);
            MagneticDeviationDirection   = sentence.EastOrWest(3);
            MagneticVariationDegrees     = sentence.Double(4);
            MagneticVariationDirection   = sentence.EastOrWest(5);

            return(true);
        }