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