diff --git a/src/NmeaParser.Shared/Nmea/Gps/Garmin/PGRMZ.cs b/src/NmeaParser.Shared/Nmea/Gps/Garmin/PGRMZ.cs index ce5ad80..8b9361e 100644 --- a/src/NmeaParser.Shared/Nmea/Gps/Garmin/PGRMZ.cs +++ b/src/NmeaParser.Shared/Nmea/Gps/Garmin/PGRMZ.cs @@ -47,20 +47,24 @@ namespace NmeaParser.Nmea.Gps.Garmin /// /// Position Fix Dimension /// - public enum PositionFixDimension : int + public enum PositionFixType : int { + /// + /// Unknown + /// + Unknown = 0, /// /// No fix /// - None = 0, + NoFix = 1, /// /// 2D Fix /// - UserAltitude = 2, + Fix2D = 2, /// /// 3D Fix /// - GpsAltitude = 3 + Fix3D = 3 } /// /// Called when the message is being loaded. @@ -78,11 +82,14 @@ namespace NmeaParser.Nmea.Gps.Garmin Unit = message[1] == "f" ? AltitudeUnit.Feet : AltitudeUnit.Unknown; int dim = -1; if (message[2].Length == 1 && int.TryParse(message[2], out dim)) - FixDimension = (PositionFixDimension)dim; + { + if (dim >= (int)PositionFixType.NoFix && dim <= (int)PositionFixType.Fix3D) + FixType = (PositionFixType)dim; + } } /// - /// Estimated horizontal position error in meters (HPE) + /// Current altitude /// public double Altitude { get; private set; } @@ -92,8 +99,8 @@ namespace NmeaParser.Nmea.Gps.Garmin public AltitudeUnit Unit { get; private set; } /// - /// Estimated vertical position error in meters (VPE) + /// Fix type /// - public PositionFixDimension FixDimension { get; private set; } + public PositionFixType FixType { get; private set; } } } diff --git a/src/NmeaParser.Tests/NmeaMessages.cs b/src/NmeaParser.Tests/NmeaMessages.cs index 132beab..2737256 100644 --- a/src/NmeaParser.Tests/NmeaMessages.cs +++ b/src/NmeaParser.Tests/NmeaMessages.cs @@ -318,7 +318,7 @@ namespace NmeaParser.Tests var rmz = (NmeaParser.Nmea.Gps.Garmin.Pgrmz)msg; Assert.AreEqual(double.NaN, rmz.Altitude, "Altitude"); Assert.AreEqual(NmeaParser.Nmea.Gps.Garmin.Pgrmz.AltitudeUnit.Unknown, rmz.Unit, "Unit"); - Assert.AreEqual(NmeaParser.Nmea.Gps.Garmin.Pgrmz.PositionFixDimension.None, rmz.FixDimension, "FixDimension"); + Assert.AreEqual(NmeaParser.Nmea.Gps.Garmin.Pgrmz.PositionFixType.Unknown, rmz.FixType, "FixDimension"); } [TestMethod] @@ -330,7 +330,7 @@ namespace NmeaParser.Tests var rmz = (NmeaParser.Nmea.Gps.Garmin.Pgrmz)msg; Assert.AreEqual(93d, rmz.Altitude, "Altitude"); Assert.AreEqual(NmeaParser.Nmea.Gps.Garmin.Pgrmz.AltitudeUnit.Feet, rmz.Unit, "Unit"); - Assert.AreEqual(NmeaParser.Nmea.Gps.Garmin.Pgrmz.PositionFixDimension.GpsAltitude, rmz.FixDimension, "FixDimension"); + Assert.AreEqual(NmeaParser.Nmea.Gps.Garmin.Pgrmz.PositionFixType.Fix3D, rmz.FixType, "FixDimension"); } [TestMethod]