Allow empty sat count, and assume '0' if missing

Fixes #94
This commit is contained in:
Morten Nielsen 2021-06-28 14:21:57 -07:00
parent 6fb1b709f4
commit 75646f49c5
2 changed files with 12 additions and 1 deletions

View file

@ -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];

View file

@ -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()
{