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]