From 32b9a8b9ebaab0df73f0b3485adfc92711772d75 Mon Sep 17 00:00:00 2001 From: mort5161 Date: Fri, 14 Nov 2014 15:52:20 -0800 Subject: [PATCH] Completed xml doc comments --- src/NmeaParser.Shared/BufferedStreamDevice.cs | 1 - src/NmeaParser.Shared/Nmea/Gps/GPBOD.cs | 6 ++- src/NmeaParser.Shared/Nmea/Gps/GPGGA.cs | 18 ++++++- src/NmeaParser.Shared/Nmea/Gps/GPGLL.cs | 16 ++++-- src/NmeaParser.Shared/Nmea/Gps/GPGSA.cs | 27 +++++++++- src/NmeaParser.Shared/Nmea/Gps/GPGSV.cs | 17 ++++++- src/NmeaParser.Shared/Nmea/Gps/GPRMB.cs | 15 +++++- src/NmeaParser.Shared/Nmea/Gps/GPRMC.cs | 6 ++- src/NmeaParser.Shared/Nmea/Gps/GPRTE.cs | 33 ++++++++++-- .../Nmea/Gps/Garmin/PGRME.cs | 6 ++- .../Nmea/Gps/Garmin/PGRMZ.cs | 18 ++++++- .../Nmea/LaserRange/LaserRangeMessage.cs | 33 +++++++++++- .../Nmea/LaserRange/Trimble/PTNLB.cs | 24 ++++++++- src/NmeaParser.Shared/Nmea/NmeaMessage.cs | 50 +++++++++++++++++-- src/NmeaParser.Shared/Nmea/UnknownMessage.cs | 12 ++++- src/NmeaParser.Shared/StreamDevice.cs | 4 ++ .../NmeaParser.WinDesktop.csproj | 2 + .../NmeaParser.WinPhone.csproj | 2 + .../NmeaParser.WinStore.csproj | 2 + 19 files changed, 269 insertions(+), 23 deletions(-) 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