diff --git a/src/NmeaParser.Shared/BufferedStreamDevice.cs b/src/NmeaParser.Shared/BufferedStreamDevice.cs
index 829ccae..30b3209 100644
--- a/src/NmeaParser.Shared/BufferedStreamDevice.cs
+++ b/src/NmeaParser.Shared/BufferedStreamDevice.cs
@@ -34,7 +34,6 @@ namespace NmeaParser
///
///
///
- ///
/// The time to wait between each line being read in milliseconds
protected BufferedStreamDevice( int readSpeed = 200)
{
diff --git a/src/NmeaParser.Shared/Nmea/Gps/GPBOD.cs b/src/NmeaParser.Shared/Nmea/Gps/GPBOD.cs
index 73e20b3..b53d84b 100644
--- a/src/NmeaParser.Shared/Nmea/Gps/GPBOD.cs
+++ b/src/NmeaParser.Shared/Nmea/Gps/GPBOD.cs
@@ -29,7 +29,11 @@ namespace NmeaParser.Nmea.Gps
[NmeaMessageType(Type = "GPBOD")]
public class Gpbod : NmeaMessage
{
- protected override void LoadMessage(string[] message)
+ ///
+ /// Called when the message is being loaded.
+ ///
+ /// The NMEA message values.
+ protected override void OnLoadMessage(string[] message)
{
if (message[0].Length > 0)
TrueBearing = double.Parse(message[0], CultureInfo.InvariantCulture);
diff --git a/src/NmeaParser.Shared/Nmea/Gps/GPGGA.cs b/src/NmeaParser.Shared/Nmea/Gps/GPGGA.cs
index d25d25c..62b6420 100644
--- a/src/NmeaParser.Shared/Nmea/Gps/GPGGA.cs
+++ b/src/NmeaParser.Shared/Nmea/Gps/GPGGA.cs
@@ -29,20 +29,36 @@ namespace NmeaParser.Nmea.Gps
[NmeaMessageType(Type = "GPGGA")]
public class Gpgga : NmeaMessage
{
+ ///
+ /// Fix quality
+ ///
public enum FixQuality : int
{
+ /// Invalid
Invalid = 0,
+ /// GPS
GpsFix = 1,
+ /// Differential GPS
DgpsFix = 2,
+ /// Precise Positioning Service
PpsFix = 3,
+ /// Real Time Kinematic (Fixed)
Rtk = 4,
+ /// Real Time Kinematic (Floating)
FloatRtk = 5,
+ /// Estimated
Estimated = 6,
+ /// Manual input
ManualInput = 7,
+ /// Simulation
Simulation = 8
}
- protected override void LoadMessage(string[] message)
+ ///
+ /// Called when the message is being loaded.
+ ///
+ /// The NMEA message values.
+ protected override void OnLoadMessage(string[] message)
{
var time = message[0];
Latitude = NmeaMessage.StringToLatitude(message[1], message[2]);
diff --git a/src/NmeaParser.Shared/Nmea/Gps/GPGLL.cs b/src/NmeaParser.Shared/Nmea/Gps/GPGLL.cs
index e460e82..148974a 100644
--- a/src/NmeaParser.Shared/Nmea/Gps/GPGLL.cs
+++ b/src/NmeaParser.Shared/Nmea/Gps/GPGLL.cs
@@ -29,7 +29,11 @@ namespace NmeaParser.Nmea.Gps
[NmeaMessageType(Type = "GPGLL")]
public class Gpgll : NmeaMessage
{
- protected override void LoadMessage(string[] message)
+ ///
+ /// Called when the message is being loaded.
+ ///
+ /// The NMEA message values.
+ protected override void OnLoadMessage(string[] message)
{
var time = message[0];
Latitude = NmeaMessage.StringToLatitude(message[0], message[1]);
@@ -56,9 +60,15 @@ namespace NmeaParser.Nmea.Gps
///
/// Time since last DGPS update
///
- public TimeSpan FixTime { get; set; }
+ public TimeSpan FixTime { get; private set; }
- public bool DataActive { get; set; }
+ ///
+ /// Gets a value indicating whether data is active.
+ ///
+ ///
+ /// true if data is active; otherwise, false.
+ ///
+ public bool DataActive { get; private set; }
}
}
diff --git a/src/NmeaParser.Shared/Nmea/Gps/GPGSA.cs b/src/NmeaParser.Shared/Nmea/Gps/GPGSA.cs
index daaa956..f90d048 100644
--- a/src/NmeaParser.Shared/Nmea/Gps/GPGSA.cs
+++ b/src/NmeaParser.Shared/Nmea/Gps/GPGSA.cs
@@ -29,19 +29,44 @@ namespace NmeaParser.Nmea.Gps
[NmeaMessageType(Type = "GPGSA")]
public class Gpgsa : NmeaMessage
{
+ ///
+ /// Mode selection
+ ///
public enum ModeSelection
{
+ ///
+ /// Auto
+ ///
Auto,
+ ///
+ /// Manual mode
+ ///
Manual,
}
+ ///
+ /// Fix Mode
+ ///
public enum Mode : int
{
+ ///
+ /// Not available
+ ///
NotAvailable = 1,
+ ///
+ /// 2D Fix
+ ///
_2D = 2,
+ ///
+ /// 3D Fix
+ ///
_3D = 3
}
- protected override void LoadMessage(string[] message)
+ ///
+ /// Called when the message is being loaded.
+ ///
+ /// The NMEA message values.
+ protected override void OnLoadMessage(string[] message)
{
GpsMode = message[0] == "A" ? ModeSelection.Auto : ModeSelection.Manual;
FixMode = (Mode)int.Parse(message[1]);
diff --git a/src/NmeaParser.Shared/Nmea/Gps/GPGSV.cs b/src/NmeaParser.Shared/Nmea/Gps/GPGSV.cs
index e592a07..023fda8 100644
--- a/src/NmeaParser.Shared/Nmea/Gps/GPGSV.cs
+++ b/src/NmeaParser.Shared/Nmea/Gps/GPGSV.cs
@@ -29,7 +29,11 @@ namespace NmeaParser.Nmea.Gps
[NmeaMessageType(Type = "GPGSV")]
public sealed class Gpgsv : NmeaMessage, IMultiPartMessage
{
- protected override void LoadMessage(string[] message)
+ ///
+ /// Called when the message is being loaded.
+ ///
+ /// The NMEA message values.
+ protected override void OnLoadMessage(string[] message)
{
TotalMessages = int.Parse(message[0]);
MessageNumber = int.Parse(message[1]);
@@ -66,18 +70,29 @@ namespace NmeaParser.Nmea.Gps
///
public SatelitteVehicle[] SVs { get; private set; }
+ ///
+ /// Returns an enumerator that iterates through the collection.
+ ///
+ /// A System.Collections.Generic.IEnumerator{SatelitteVehicle} that can be used to iterate through the collection.
public IEnumerator GetEnumerator()
{
foreach(var sv in SVs)
yield return sv;
}
+ ///
+ /// Returns an enumerator that iterates through a collection.
+ ///
+ /// An System.Collections.IEnumerator object that can be used to iterate through the collection.
System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
}
+ ///
+ /// Satellite vehicle
+ ///
public sealed class SatelitteVehicle
{
internal SatelitteVehicle(string[] message, int startIndex)
diff --git a/src/NmeaParser.Shared/Nmea/Gps/GPRMB.cs b/src/NmeaParser.Shared/Nmea/Gps/GPRMB.cs
index b7ad118..86bd850 100644
--- a/src/NmeaParser.Shared/Nmea/Gps/GPRMB.cs
+++ b/src/NmeaParser.Shared/Nmea/Gps/GPRMB.cs
@@ -29,12 +29,25 @@ namespace NmeaParser.Nmea.Gps
[NmeaMessageType(Type = "GPRMB")]
public class Gprmb : NmeaMessage
{
+ ///
+ /// Data status
+ ///
public enum DataStatus
{
+ ///
+ /// OK
+ ///
OK,
+ ///
+ /// Warning
+ ///
Warning
}
- protected override void LoadMessage(string[] message)
+ ///
+ /// Called when the message is being loaded.
+ ///
+ /// The NMEA message values.
+ protected override void OnLoadMessage(string[] message)
{
Status = message[0] == "A" ? DataStatus.OK : Gprmb.DataStatus.Warning;
double tmp;
diff --git a/src/NmeaParser.Shared/Nmea/Gps/GPRMC.cs b/src/NmeaParser.Shared/Nmea/Gps/GPRMC.cs
index 8fadae0..b0d3291 100644
--- a/src/NmeaParser.Shared/Nmea/Gps/GPRMC.cs
+++ b/src/NmeaParser.Shared/Nmea/Gps/GPRMC.cs
@@ -29,7 +29,11 @@ namespace NmeaParser.Nmea.Gps
[NmeaMessageType(Type = "GPRMC")]
public class Gprmc : NmeaMessage
{
- protected override void LoadMessage(string[] message)
+ ///
+ /// Called when the message is being loaded.
+ ///
+ /// The NMEA message values.
+ protected override void OnLoadMessage(string[] message)
{
if (message[8].Length == 6 && message[0].Length == 6)
{
diff --git a/src/NmeaParser.Shared/Nmea/Gps/GPRTE.cs b/src/NmeaParser.Shared/Nmea/Gps/GPRTE.cs
index 2702489..0e874a6 100644
--- a/src/NmeaParser.Shared/Nmea/Gps/GPRTE.cs
+++ b/src/NmeaParser.Shared/Nmea/Gps/GPRTE.cs
@@ -29,12 +29,25 @@ namespace NmeaParser.Nmea.Gps
[NmeaMessageType(Type = "GPRTE")]
public sealed class Gprte : NmeaMessage, IMultiPartMessage
{
+ ///
+ /// Waypoint tpe
+ ///
public enum WaypointListType
{
+ ///
+ /// Complete list of waypoints
+ ///
CompleteWaypointsList,
+ ///
+ /// List of remaining waypoints
+ ///
RemainingWaypointsList
}
- protected override void LoadMessage(string[] message)
+ ///
+ /// Called when the message is being loaded.
+ ///
+ /// The NMEA message values.
+ protected override void OnLoadMessage(string[] message)
{
TotalMessages = int.Parse(message[0]);
MessageNumber = int.Parse(message[1]);
@@ -53,21 +66,35 @@ namespace NmeaParser.Nmea.Gps
///
public int MessageNumber { get; private set; }
+ ///
+ /// Gets the type of the list.
+ ///
public WaypointListType ListType { get; private set; }
-
- public string RouteID { get; set; }
+
+ ///
+ /// Gets the route identifier.
+ ///
+ public string RouteID { get; private set; }
///
/// Waypoints
///
public string[] Waypoints { get; private set; }
+ ///
+ /// Returns an enumerator that iterates through the collection.
+ ///
+ /// A System.Collections.Generic.IEnumerator{T} that can be used to iterate through the collection.
IEnumerator IEnumerable.GetEnumerator()
{
foreach (string waypoint in Waypoints)
yield return waypoint;
}
+ ///
+ /// Returns an enumerator that iterates through a collection.
+ ///
+ /// An System.Collections.IEnumerator object that can be used to iterate through the collection.
System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
{
return ((IEnumerable)this).GetEnumerator();
diff --git a/src/NmeaParser.Shared/Nmea/Gps/Garmin/PGRME.cs b/src/NmeaParser.Shared/Nmea/Gps/Garmin/PGRME.cs
index b0ae016..34fd7da 100644
--- a/src/NmeaParser.Shared/Nmea/Gps/Garmin/PGRME.cs
+++ b/src/NmeaParser.Shared/Nmea/Gps/Garmin/PGRME.cs
@@ -29,7 +29,11 @@ namespace NmeaParser.Nmea.Gps.Garmin
[NmeaMessageType(Type = "PGRME")]
public class Pgrme : NmeaMessage
{
- protected override void LoadMessage(string[] message)
+ ///
+ /// Called when the message is being loaded.
+ ///
+ /// The NMEA message values.
+ protected override void OnLoadMessage(string[] message)
{
HorizontalError = NmeaMessage.StringToDouble(message[0]);
HorizontalErrorUnits = message[1];
diff --git a/src/NmeaParser.Shared/Nmea/Gps/Garmin/PGRMZ.cs b/src/NmeaParser.Shared/Nmea/Gps/Garmin/PGRMZ.cs
index 1013d8c..afdb658 100644
--- a/src/NmeaParser.Shared/Nmea/Gps/Garmin/PGRMZ.cs
+++ b/src/NmeaParser.Shared/Nmea/Gps/Garmin/PGRMZ.cs
@@ -29,11 +29,23 @@ namespace NmeaParser.Nmea.Gps.Garmin
[NmeaMessageType(Type = "PGRMZ")]
public class Pgrmz : NmeaMessage
{
+ ///
+ /// Altitude unit
+ ///
public enum AltitudeUnit
{
+ ///
+ /// Unknown
+ ///
Unknown,
+ ///
+ /// Feet
+ ///
Feet
}
+ ///
+ /// Position Fix Dimension
+ ///
public enum PositionFixDimension : int
{
///
@@ -49,7 +61,11 @@ namespace NmeaParser.Nmea.Gps.Garmin
///
GpsAltitude = 3
}
- protected override void LoadMessage(string[] message)
+ ///
+ /// Called when the message is being loaded.
+ ///
+ /// The NMEA message values.
+ protected override void OnLoadMessage(string[] message)
{
if (message[0].Length > 0)
Altitude = double.Parse(message[0], CultureInfo.InvariantCulture);
diff --git a/src/NmeaParser.Shared/Nmea/LaserRange/LaserRangeMessage.cs b/src/NmeaParser.Shared/Nmea/LaserRange/LaserRangeMessage.cs
index feded4d..991625b 100644
--- a/src/NmeaParser.Shared/Nmea/LaserRange/LaserRangeMessage.cs
+++ b/src/NmeaParser.Shared/Nmea/LaserRange/LaserRangeMessage.cs
@@ -29,7 +29,11 @@ namespace NmeaParser.Nmea.LaserRange
///
public abstract class LaserRangeMessage : NmeaMessage
{
- protected override void LoadMessage(string[] message)
+ ///
+ /// Called when the message is being loaded.
+ ///
+ /// The NMEA message values.
+ protected override void OnLoadMessage(string[] message)
{
HorizontalVector = message[0];
HorizontalDistance = double.Parse(message[1], CultureInfo.InvariantCulture);
@@ -42,22 +46,49 @@ namespace NmeaParser.Nmea.LaserRange
SlopeDistanceUnits = message[8][0];
}
+ ///
+ /// Gets the horizontal vector.
+ ///
public string HorizontalVector { get; private set; }
+ ///
+ /// Gets the horizontal distance.
+ ///
public double HorizontalDistance { get; private set; }
+ ///
+ /// Gets the units of the value.
+ ///
public char HorizontalDistanceUnits { get; private set; }
+ ///
+ /// Gets the horizontal angle.
+ ///
public double HorizontalAngle { get; private set; }
+ ///
+ /// Gets the units of the value.
+ ///
public char HorizontalAngleUnits { get; private set; }
+ ///
+ /// Gets the vertical angle.
+ ///
public double VerticalAngle { get; private set; }
+ ///
+ /// Gets the units of the value.
+ ///
public char VerticalAngleUnits { get; private set; }
+ ///
+ /// Gets the slope distance.
+ ///
public double SlopeDistance { get; private set; }
+ ///
+ /// Gets the units of the value.
+ ///
public char SlopeDistanceUnits { get; private set; }
}
}
diff --git a/src/NmeaParser.Shared/Nmea/LaserRange/Trimble/PTNLB.cs b/src/NmeaParser.Shared/Nmea/LaserRange/Trimble/PTNLB.cs
index 4a1d348..e400b89 100644
--- a/src/NmeaParser.Shared/Nmea/LaserRange/Trimble/PTNLB.cs
+++ b/src/NmeaParser.Shared/Nmea/LaserRange/Trimble/PTNLB.cs
@@ -29,7 +29,11 @@ namespace NmeaParser.Nmea.LaserRange.Trimble
[NmeaMessageType(Type = "PTNLB")]
public class Ptnlb : NmeaMessage
{
- protected override void LoadMessage(string[] message)
+ ///
+ /// Called when the message is being loaded.
+ ///
+ /// The NMEA message values.
+ protected override void OnLoadMessage(string[] message)
{
TreeHeight = message[0];
MeasuredTreeHeight = double.Parse(message[1], CultureInfo.InvariantCulture);
@@ -39,16 +43,34 @@ namespace NmeaParser.Nmea.LaserRange.Trimble
MeasuredTreeDiameterUnits = message[5][0];
}
+ ///
+ /// Gets the height of the tree.
+ ///
public string TreeHeight { get; private set; }
+ ///
+ /// Gets the message height of the tree.
+ ///
public double MeasuredTreeHeight { get; private set; }
+ ///
+ /// Gets the units of the value.
+ ///
public char MeasuredTreeHeightUnits { get; private set; }
+ ///
+ /// Gets the tree diameter.
+ ///
public string TreeDiameter { get; private set; }
+ ///
+ /// Gets the measured tree diameter.
+ ///
public double MeasuredTreeDiameter { get; private set; }
+ ///
+ /// Gets the units of the value.
+ ///
public char MeasuredTreeDiameterUnits { get; private set; }
//more to do...
diff --git a/src/NmeaParser.Shared/Nmea/NmeaMessage.cs b/src/NmeaParser.Shared/Nmea/NmeaMessage.cs
index f769755..0dfe955 100644
--- a/src/NmeaParser.Shared/Nmea/NmeaMessage.cs
+++ b/src/NmeaParser.Shared/Nmea/NmeaMessage.cs
@@ -24,10 +24,31 @@ using System.Threading.Tasks;
namespace NmeaParser.Nmea
{
- public class NmeaMessageType : Attribute { public string Type { get; set; } }
-
+ ///
+ /// Nmea message attribute type used on concrete implementations.
+ ///
+ public class NmeaMessageTypeAttribute : Attribute
+ {
+ ///
+ /// Gets or sets the NMEA message type.
+ ///
+ public string Type { get; set; }
+ }
+
+ ///
+ /// NMEA Message base class.
+ ///
public abstract class NmeaMessage
{
+ ///
+ /// Parses the specified NMEA message.
+ ///
+ /// The NMEA message string.
+ ///
+ ///
+ /// Invalid nmea message: Missing starting character '$'
+ /// or checksum failure
+ ///
public static NmeaMessage Parse(string message)
{
int checksum = -1;
@@ -69,7 +90,7 @@ namespace NmeaParser.Nmea
}
msg.MessageType = MessageType;
msg.MessageParts = MessageParts;
- msg.LoadMessage(MessageParts);
+ msg.OnLoadMessage(MessageParts);
return msg;
}
@@ -79,7 +100,7 @@ namespace NmeaParser.Nmea
var typeinfo = typeof(NmeaMessage).GetTypeInfo();
foreach (var subclass in typeinfo.Assembly.DefinedTypes.Where(t => t.IsSubclassOf(typeof(NmeaMessage))))
{
- var attr = subclass.GetCustomAttribute(false);
+ var attr = subclass.GetCustomAttribute(false);
if (attr != null)
{
if (!subclass.IsAbstract)
@@ -100,12 +121,31 @@ namespace NmeaParser.Nmea
private static Dictionary messageTypes;
+ ///
+ /// Gets the NMEA message parts.
+ ///
protected string[] MessageParts { get; private set; }
+ ///
+ /// Gets the type id for the message.
+ ///
public string MessageType { get; private set; }
- protected virtual void LoadMessage(string[] message) { MessageParts = message; }
+ ///
+ /// Called when the message is being loaded.
+ ///
+ /// The NMEA message values.
+ ///
+ /// Implement this method to create a custom NMEA message.
+ ///
+ protected virtual void OnLoadMessage(string[] message) { MessageParts = message; }
+ ///
+ /// Returns a that represents this instance.
+ ///
+ ///
+ /// A that represents this instance.
+ ///
public override string ToString()
{
return string.Format("${0},{1}", MessageType, string.Join(",", MessageParts));
diff --git a/src/NmeaParser.Shared/Nmea/UnknownMessage.cs b/src/NmeaParser.Shared/Nmea/UnknownMessage.cs
index 137fcb8..bd228d8 100644
--- a/src/NmeaParser.Shared/Nmea/UnknownMessage.cs
+++ b/src/NmeaParser.Shared/Nmea/UnknownMessage.cs
@@ -22,10 +22,20 @@ using System.Threading.Tasks;
namespace NmeaParser.Nmea
{
+ ///
+ /// Represents an unknown message type
+ ///
public class UnknownMessage : NmeaMessage
{
+ ///
+ /// Gets the nmea value aarray.
+ ///
public string[] Values { get { return base.MessageParts; } }
- protected override void LoadMessage(string[] message)
+ ///
+ /// Called when the message is being loaded.
+ ///
+ /// The NMEA message values.
+ protected override void OnLoadMessage(string[] message)
{
}
}
diff --git a/src/NmeaParser.Shared/StreamDevice.cs b/src/NmeaParser.Shared/StreamDevice.cs
index 9592c99..f137ff6 100644
--- a/src/NmeaParser.Shared/StreamDevice.cs
+++ b/src/NmeaParser.Shared/StreamDevice.cs
@@ -56,6 +56,10 @@ namespace NmeaParser
return Task.FromResult(true); //do nothing
}
+ ///
+ /// Releases unmanaged and - optionally - managed resources.
+ ///
+ /// true to release both managed and unmanaged resources; false to release only unmanaged resources.
protected override void Dispose(bool force)
{
if (m_stream != null)
diff --git a/src/NmeaParser.WinDesktop/NmeaParser.WinDesktop.csproj b/src/NmeaParser.WinDesktop/NmeaParser.WinDesktop.csproj
index ab1c64b..7ba312e 100644
--- a/src/NmeaParser.WinDesktop/NmeaParser.WinDesktop.csproj
+++ b/src/NmeaParser.WinDesktop/NmeaParser.WinDesktop.csproj
@@ -20,6 +20,7 @@
DEBUG;TRACE
prompt
4
+ ..\Bin\Debug\NmeaParser.WinDesktop.xml
pdbonly
@@ -28,6 +29,7 @@
TRACE
prompt
4
+ ..\Bin\Release\NmeaParser.WinDesktop.xml
diff --git a/src/NmeaParser.WinPhone/NmeaParser.WinPhone.csproj b/src/NmeaParser.WinPhone/NmeaParser.WinPhone.csproj
index 9b48186..b59d822 100644
--- a/src/NmeaParser.WinPhone/NmeaParser.WinPhone.csproj
+++ b/src/NmeaParser.WinPhone/NmeaParser.WinPhone.csproj
@@ -25,6 +25,7 @@
DEBUG;TRACE;NETFX_CORE;WINDOWS_PHONE_APP
prompt
4
+ ..\bin\Debug\NmeaParser.WinPhone.xml
pdbonly
@@ -33,6 +34,7 @@
TRACE;NETFX_CORE;WINDOWS_PHONE_APP
prompt
4
+ ..\bin\Release\NmeaParser.WinPhone.xml
diff --git a/src/NmeaParser.WinStore/NmeaParser.WinStore.csproj b/src/NmeaParser.WinStore/NmeaParser.WinStore.csproj
index 0eb6f8f..787a262 100644
--- a/src/NmeaParser.WinStore/NmeaParser.WinStore.csproj
+++ b/src/NmeaParser.WinStore/NmeaParser.WinStore.csproj
@@ -25,6 +25,7 @@
DEBUG;TRACE;NETFX_CORE
prompt
4
+ ..\bin\Debug\NmeaParser.WinStore.xml
pdbonly
@@ -33,6 +34,7 @@
TRACE;NETFX_CORE
prompt
4
+ ..\bin\Release\NmeaParser.WinStore.xml