From 75646f49c59d8a0c17ded5a82f8a65941461373c Mon Sep 17 00:00:00 2001 From: Morten Nielsen Date: Mon, 28 Jun 2021 14:21:57 -0700 Subject: [PATCH] Allow empty sat count, and assume '0' if missing Fixes #94 --- src/NmeaParser/Nmea/Gga.cs | 3 ++- src/UnitTests/NmeaParser.Tests/NmeaMessages.cs | 10 ++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/NmeaParser/Nmea/Gga.cs b/src/NmeaParser/Nmea/Gga.cs index b191bd9..c0d32f4 100644 --- a/src/NmeaParser/Nmea/Gga.cs +++ b/src/NmeaParser/Nmea/Gga.cs @@ -41,7 +41,8 @@ namespace NmeaParser.Messages Latitude = NmeaMessage.StringToLatitude(message[1], message[2]); Longitude = NmeaMessage.StringToLongitude(message[3], message[4]); Quality = (Gga.FixQuality)int.Parse(message[5], CultureInfo.InvariantCulture); - NumberOfSatellites = int.Parse(message[6], CultureInfo.InvariantCulture); + if (!string.IsNullOrEmpty(message[6])) + NumberOfSatellites = int.Parse(message[6], CultureInfo.InvariantCulture); Hdop = NmeaMessage.StringToDouble(message[7]); Altitude = NmeaMessage.StringToDouble(message[8]); AltitudeUnits = message[9]; diff --git a/src/UnitTests/NmeaParser.Tests/NmeaMessages.cs b/src/UnitTests/NmeaParser.Tests/NmeaMessages.cs index 7119721..5c60c32 100644 --- a/src/UnitTests/NmeaParser.Tests/NmeaMessages.cs +++ b/src/UnitTests/NmeaParser.Tests/NmeaMessages.cs @@ -251,6 +251,16 @@ namespace NmeaParser.Tests Assert.AreEqual(TimeSpan.FromSeconds(1), gga.TimeSinceLastDgpsUpdate); } + [TestMethod] + public void TestGPGGA_NoSats() + { + string input = "$GPGGA,181651.98,3403.47163804,N,11711.80926595,W,0,,,,M,,M,,*6E"; + var msg = NmeaMessage.Parse(input); + Assert.IsInstanceOfType(msg, typeof(Gga)); + Gga gga = (Gga)msg; + Assert.AreEqual(0, gga.NumberOfSatellites); + } + [TestMethod] public void TestPtlna() {