diff --git a/src/NmeaParser/Nmea/Gga.cs b/src/NmeaParser/Nmea/Gga.cs
index bd75c56..831737e 100644
--- a/src/NmeaParser/Nmea/Gga.cs
+++ b/src/NmeaParser/Nmea/Gga.cs
@@ -26,7 +26,7 @@ namespace NmeaParser.Messages
///
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Gpgga")]
[NmeaMessageType("--GGA")]
- public class Gga : NmeaMessage
+ public class Gga : NmeaMessage, ITimestampedMessage
{
///
/// Initializes a new instance of the class.
@@ -123,6 +123,8 @@ namespace NmeaParser.Messages
///
public int DgpsStationId { get; }
+ TimeSpan ITimestampedMessage.Timestamp => FixTime;
+
///
/// Fix quality indicater
///
diff --git a/src/NmeaParser/Nmea/Gll.cs b/src/NmeaParser/Nmea/Gll.cs
index 625d0dd..52fe6e1 100644
--- a/src/NmeaParser/Nmea/Gll.cs
+++ b/src/NmeaParser/Nmea/Gll.cs
@@ -24,7 +24,7 @@ namespace NmeaParser.Messages
///
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Gll")]
[NmeaMessageType("--GLL")]
- public class Gll : NmeaMessage
+ public class Gll : NmeaMessage, ITimestampedMessage
{
///
/// Initializes a new instance of the class.
@@ -85,6 +85,8 @@ namespace NmeaParser.Messages
///
public Mode ModeIndicator { get; }
+ TimeSpan ITimestampedMessage.Timestamp => FixTime;
+
///
/// Positioning system Mode Indicator
///
diff --git a/src/NmeaParser/Nmea/Gns.cs b/src/NmeaParser/Nmea/Gns.cs
index 4afc73e..a2183eb 100644
--- a/src/NmeaParser/Nmea/Gns.cs
+++ b/src/NmeaParser/Nmea/Gns.cs
@@ -38,7 +38,7 @@ namespace NmeaParser.Messages
///
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Gns")]
[NmeaMessageType("--GNS")]
- public class Gns : NmeaMessage
+ public class Gns : NmeaMessage, ITimestampedMessage
{
/*
* Example of GNS messages:
@@ -258,5 +258,7 @@ namespace NmeaParser.Messages
/// Navigational status
///
public NavigationalStatus Status { get; }
+
+ TimeSpan ITimestampedMessage.Timestamp => FixTime;
}
}
diff --git a/src/NmeaParser/Nmea/Gst.cs b/src/NmeaParser/Nmea/Gst.cs
index bf0f7a1..f3e09e0 100644
--- a/src/NmeaParser/Nmea/Gst.cs
+++ b/src/NmeaParser/Nmea/Gst.cs
@@ -21,7 +21,7 @@ namespace NmeaParser.Messages
///
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Gpgst")]
[NmeaMessageType("--GST")]
- public class Gst : NmeaMessage
+ public class Gst : NmeaMessage, ITimestampedMessage
{
///
/// Initializes a new instance of the class.
@@ -82,5 +82,7 @@ namespace NmeaParser.Messages
/// Standard deviation of altitude error in meters.
///
public double SigmaHeightError { get; }
+
+ TimeSpan ITimestampedMessage.Timestamp => FixTime;
}
}
diff --git a/src/NmeaParser/Nmea/ITimestampedMessage.cs b/src/NmeaParser/Nmea/ITimestampedMessage.cs
new file mode 100644
index 0000000..1911309
--- /dev/null
+++ b/src/NmeaParser/Nmea/ITimestampedMessage.cs
@@ -0,0 +1,17 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace NmeaParser.Messages
+{
+ ///
+ /// Indicates this message has a time stamp
+ ///
+ public interface ITimestampedMessage
+ {
+ ///
+ /// Gets the time of day for the message
+ ///
+ TimeSpan Timestamp { get; }
+ }
+}
diff --git a/src/NmeaParser/Nmea/Rmc.cs b/src/NmeaParser/Nmea/Rmc.cs
index df2cadf..e4c0c4a 100644
--- a/src/NmeaParser/Nmea/Rmc.cs
+++ b/src/NmeaParser/Nmea/Rmc.cs
@@ -28,7 +28,7 @@ namespace NmeaParser.Messages
///
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Gprmc")]
[NmeaMessageType("--RMC")]
- public class Rmc : NmeaMessage
+ public class Rmc : NmeaMessage, ITimestampedMessage
{
///
/// Initializes a new instance of the class.
@@ -93,5 +93,7 @@ namespace NmeaParser.Messages
/// Magnetic Variation
///
public double MagneticVariation { get; }
+
+ TimeSpan ITimestampedMessage.Timestamp => FixTime.TimeOfDay;
}
}
diff --git a/src/NmeaParser/Nmea/Zda.cs b/src/NmeaParser/Nmea/Zda.cs
index 0d95eb1..91c306e 100644
--- a/src/NmeaParser/Nmea/Zda.cs
+++ b/src/NmeaParser/Nmea/Zda.cs
@@ -22,7 +22,7 @@ namespace NmeaParser.Messages
///
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Zda")]
[NmeaMessageType("--ZDA")]
- public class Zda : NmeaMessage
+ public class Zda : NmeaMessage, ITimestampedMessage
{
///
/// Initializes a new instance of the class.
@@ -53,5 +53,7 @@ namespace NmeaParser.Messages
/// Gets the time of fix
///
public DateTimeOffset FixDateTime { get; }
+
+ TimeSpan ITimestampedMessage.Timestamp => FixDateTime.TimeOfDay;
}
}
diff --git a/src/NmeaParser/NmeaParser.csproj b/src/NmeaParser/NmeaParser.csproj
index 34d1c0f..c2fabfd 100644
--- a/src/NmeaParser/NmeaParser.csproj
+++ b/src/NmeaParser/NmeaParser.csproj
@@ -11,7 +11,7 @@
An NMEA stream parser for serial port, bluetooth and file-based nmea simulation.
nmea winrt wpf uwp xamarin gps serialport bluetooth
SharpGIS.NmeaParser
- 2.0
+ 2.1
NMEA Parser
Apache-2.0
https://dotmorten.github.io/NmeaParser/
@@ -20,7 +20,7 @@
Copyright © Morten Nielsen 2015-2020
$(MSBuildThisFileDirectory)..\..\artifacts\NmeaParser\$(Configuration)
..\..\artifacts\NuGet\$(Configuration)\
- New refined and easier to use v2 API
+ Added ITimestampedMessage interface to easily get time stamps from any message that supports it
true
true
$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb
@@ -30,6 +30,7 @@
enable
logo.png
+ 2.1.0.0