mirror of
https://github.com/dotMorten/NmeaParser.git
synced 2026-01-29 03:44:25 +01:00
Cleanup of fix and add unit test to verify
This commit is contained in:
parent
8e19dfebe6
commit
333e9000b3
|
|
@ -42,15 +42,13 @@ namespace NmeaParser.Messages
|
|||
|
||||
if (message[8].Length == 6 && message[0].Length >= 6)
|
||||
{
|
||||
var year = int.Parse(message[8].Substring(4, 2), CultureInfo.InvariantCulture) + 2000;
|
||||
var month = int.Parse(message[8].Substring(2, 2), CultureInfo.InvariantCulture);
|
||||
var day = int.Parse(message[8].Substring(0, 2), CultureInfo.InvariantCulture);
|
||||
var hour = int.Parse(message[0].Substring(0, 2), CultureInfo.InvariantCulture);
|
||||
var minute = int.Parse(message[0].Substring(2, 2), CultureInfo.InvariantCulture);
|
||||
var secondTicks = (long)(decimal.Parse(message[0].Substring(4), CultureInfo.InvariantCulture) * TimeSpan.TicksPerSecond);
|
||||
|
||||
FixTime = new DateTimeOffset(year, month, day, hour, minute, 0, TimeSpan.Zero)
|
||||
.AddTicks(secondTicks);
|
||||
FixTime = new DateTimeOffset(int.Parse(message[8].Substring(4, 2), CultureInfo.InvariantCulture) + 2000,
|
||||
int.Parse(message[8].Substring(2, 2), CultureInfo.InvariantCulture),
|
||||
int.Parse(message[8].Substring(0, 2), CultureInfo.InvariantCulture),
|
||||
int.Parse(message[0].Substring(0, 2), CultureInfo.InvariantCulture),
|
||||
int.Parse(message[0].Substring(2, 2), CultureInfo.InvariantCulture),
|
||||
0, TimeSpan.Zero).
|
||||
AddTicks((long)(double.Parse(message[0].Substring(4), CultureInfo.InvariantCulture) * TimeSpan.TicksPerSecond));
|
||||
}
|
||||
Active = (message[1] == "A");
|
||||
Latitude = NmeaMessage.StringToLatitude(message[2], message[3]);
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<Project Sdk="MSBuild.Sdk.Extras/3.0.22">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFrameworks>net472;net6.0</TargetFrameworks>
|
||||
<TargetFrameworks>net472;net6.0;net7.0;net8.0</TargetFrameworks>
|
||||
<IsPackable>false</IsPackable>
|
||||
<LangVersion>8.0</LangVersion>
|
||||
</PropertyGroup>
|
||||
|
|
|
|||
|
|
@ -209,6 +209,19 @@ namespace NmeaParser.Tests
|
|||
Assert.AreEqual(0.019, rmc.Speed);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
[WorkItem(116)]
|
||||
public void TestGprmc_DateCheck()
|
||||
{
|
||||
// Tests a behavior change in TimeSpan.AddSeconds introduced in .NET 7
|
||||
string input = "$GPRMC,141825.2,A,4249.92297,N,08548.52186,W,000.01,227.1,040322,005.5,W*54";
|
||||
var msg = NmeaMessage.Parse(input);
|
||||
Assert.IsInstanceOfType(msg, typeof(Rmc));
|
||||
Rmc rmc = (Rmc)msg;
|
||||
Assert.AreEqual("GPRMC", rmc.MessageType);
|
||||
Assert.AreEqual(new DateTimeOffset(2022, 3, 4, 14, 18, 25, 200, TimeSpan.Zero), rmc.FixTime);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void TestGpgga()
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in a new issue