diff --git a/src/PepperDash.Essentials.Core/Fusion/FusionProcessorQueries.cs b/src/PepperDash.Essentials.Core/Fusion/FusionProcessorQueries.cs index 930483fb..86ed62f3 100644 --- a/src/PepperDash.Essentials.Core/Fusion/FusionProcessorQueries.cs +++ b/src/PepperDash.Essentials.Core/Fusion/FusionProcessorQueries.cs @@ -15,6 +15,10 @@ namespace PepperDash.Essentials.Core.Fusion { //public static Dictionary Programs { get; private set; } + /// + /// Gets the processor program registry + /// + /// public static Dictionary GetProcessorProgReg() { var programs = new Dictionary(); diff --git a/src/PepperDash.Essentials.Core/Fusion/FusionRviDataClasses.cs b/src/PepperDash.Essentials.Core/Fusion/FusionRviDataClasses.cs index da83d9d7..cef4926f 100644 --- a/src/PepperDash.Essentials.Core/Fusion/FusionRviDataClasses.cs +++ b/src/PepperDash.Essentials.Core/Fusion/FusionRviDataClasses.cs @@ -17,18 +17,47 @@ namespace PepperDash.Essentials.Core.Fusion /// public class FusionRoomGuids { + /// + /// Gets or sets the RoomName + /// public string RoomName { get; set; } + + /// + /// Gets or sets the IpId + /// public uint IpId { get; set; } + + /// + /// Gets or sets the RoomGuid + /// public string RoomGuid { get; set; } + + /// + /// Gets or sets the OccupancyAsset + /// public FusionOccupancySensorAsset OccupancyAsset { get; set; } + + /// + /// Gets or sets the StaticAssets + /// public Dictionary StaticAssets { get; set; } + /// + /// FusionRoomGuids constructor + /// public FusionRoomGuids() { StaticAssets = new Dictionary(); OccupancyAsset = new FusionOccupancySensorAsset(); } + /// + /// FusionRoomGuids constructor + /// + /// name of the fusion room + /// ipID of the fusion room + /// room GUID + /// dictionary of assets public FusionRoomGuids(string roomName, uint ipId, string roomGuid, Dictionary staticAssets) { RoomName = roomName; @@ -39,6 +68,14 @@ namespace PepperDash.Essentials.Core.Fusion OccupancyAsset = new FusionOccupancySensorAsset(); } + /// + /// FusionRoomGuids constructor + /// + /// name of the fusion room + /// ipID of the fusion room + /// room GUID + /// dictionary of assets + /// occupancy asset public FusionRoomGuids(string roomName, uint ipId, string roomGuid, Dictionary staticAssets, FusionOccupancySensorAsset occAsset) { RoomName = roomName; @@ -143,10 +180,17 @@ namespace PepperDash.Essentials.Core.Fusion /// public string InstanceId { get; set; } + /// + /// Default constructor + /// public FusionOccupancySensorAsset() { } + /// + /// FusionOccupancySensorAsset constructor + /// + /// asset type public FusionOccupancySensorAsset(eAssetType type) { Type = type; @@ -177,11 +221,21 @@ namespace PepperDash.Essentials.Core.Fusion /// public string InstanceId { get;set; } + /// + /// Default constructor + /// public FusionAsset() { } + /// + /// FusionAsset constructor + /// + /// slot number of asset + /// name of the asset + /// type of the asset + /// instance ID of the asset public FusionAsset(uint slotNum, string assetName, string type, string instanceId) { SlotNumber = slotNum; @@ -210,6 +264,9 @@ namespace PepperDash.Essentials.Core.Fusion /// public List Meetings { get; set; } + /// + /// RoomSchedule constructor + /// public RoomSchedule() { Meetings = new List(); @@ -224,6 +281,9 @@ namespace PepperDash.Essentials.Core.Fusion /// public class LocalTimeRequest { + /// + /// Gets or sets the RequestID + /// public string RequestID { get; set; } } @@ -238,13 +298,30 @@ namespace PepperDash.Essentials.Core.Fusion /// Gets or sets the RequestID /// public string RequestID { get; set; } + //[XmlElement(ElementName = "RoomID")] + /// + /// Gets or sets the RoomID + /// public string RoomID { get; set; } + //[XmlElement(ElementName = "Start")] + /// + /// Gets or sets the Start + /// public DateTime Start { get; set; } + //[XmlElement(ElementName = "HourSpan")] + /// + /// Gets or sets the HourSpan + /// public double HourSpan { get; set; } + /// + /// RequestSchedule constructor + /// + /// id of the request + /// id of the room public RequestSchedule(string requestID, string roomID) { RequestID = requestID; @@ -282,6 +359,12 @@ namespace PepperDash.Essentials.Core.Fusion /// public List Parameters { get; set; } + /// + /// RequestAction constructor + /// + /// id of the room + /// id of the action + /// list of parameters public RequestAction(string roomID, string actionID, List parameters) { RoomID = roomID; @@ -301,11 +384,13 @@ namespace PepperDash.Essentials.Core.Fusion /// Gets or sets the RequestID /// public string RequestID { get; set; } + //[XmlElement(ElementName = "ActionID")] /// /// Gets or sets the ActionID /// public string ActionID { get; set; } + //[XmlElement(ElementName = "Parameters")] /// /// Gets or sets the Parameters @@ -324,6 +409,7 @@ namespace PepperDash.Essentials.Core.Fusion /// Gets or sets the ID /// public string ID { get; set; } + //[XmlAttribute(AttributeName = "Value")] /// /// Gets or sets the Value @@ -345,14 +431,32 @@ namespace PepperDash.Essentials.Core.Fusion public class ScheduleResponse { //[XmlElement(ElementName = "RequestID")] + /// + /// Gets or sets the RequestID + /// public string RequestID { get; set; } + //[XmlElement(ElementName = "RoomID")] + /// + /// Gets or sets the RoomID + /// public string RoomID { get; set; } + //[XmlElement(ElementName = "RoomName")] + /// + /// Gets or sets the RoomName + /// public string RoomName { get; set; } + //[XmlElement("Event")] + /// + /// Gets or sets the Events + /// public List Events { get; set; } + /// + /// ScheduleResponse constructor + /// public ScheduleResponse() { Events = new List(); diff --git a/src/PepperDash.Essentials.Core/Global/Global.cs b/src/PepperDash.Essentials.Core/Global/Global.cs index 95773858..37d4472d 100644 --- a/src/PepperDash.Essentials.Core/Global/Global.cs +++ b/src/PepperDash.Essentials.Core/Global/Global.cs @@ -22,6 +22,9 @@ using Serilog.Events; namespace PepperDash.Essentials.Core { + /// + /// Global static class for Essentials + /// public static class Global { /// @@ -34,6 +37,9 @@ namespace PepperDash.Essentials.Core /// public static eDevicePlatform Platform { get { return CrestronEnvironment.DevicePlatform; } } + /// + /// Gets the collection of Ethernet Adapter Info + /// public static Dictionary EthernetAdapterInfoCollection { get; private set; } /// @@ -47,6 +53,9 @@ namespace PepperDash.Essentials.Core public static eCrestronSeries ProcessorSeries { get { return CrestronEnvironment.ProgramCompatibility; } } // TODO: consider making this configurable later + /// + /// The CultureInfo for formatting + /// public static IFormatProvider Culture = CultureInfo.CreateSpecificCulture("en-US"); /// @@ -182,6 +191,13 @@ namespace PepperDash.Essentials.Core AssemblyVersion = assemblyVersion; } + /// + /// Checks to see if the running version is in the list of development versions. If so, checks to see if it meets the minimum version requirement. + /// If not in the list, returns false. For beta versions (0.xx.yy), will always return true. + /// + /// list of development versions + /// minimum version + /// public static bool IsRunningDevelopmentVersion(List developmentVersions, string minimumVersion) { if (Regex.Match(AssemblyVersion, @"^(\d*).(\d*).(\d*).*").Groups[1].Value == "0") diff --git a/src/PepperDash.Essentials.Core/Global/JobTimer.cs b/src/PepperDash.Essentials.Core/Global/JobTimer.cs index 6a6fd683..55814368 100644 --- a/src/PepperDash.Essentials.Core/Global/JobTimer.cs +++ b/src/PepperDash.Essentials.Core/Global/JobTimer.cs @@ -6,6 +6,9 @@ using Crestron.SimplSharp; namespace PepperDash.Essentials.Core { + /// + /// Represents a JobTimer + /// public static class JobTimer { static CTimer MinuteTimer; @@ -13,25 +16,18 @@ namespace PepperDash.Essentials.Core static List Items = new List(); /// - /// - /// - /// - /// - /// AddAction method - /// + /// AddAction method + /// + /// action to add public static void AddAction(Action act) { } /// - /// + /// AddJobTimerItem method /// - /// - /// - /// - /// AddJobTimerItem method - /// + /// JobTimerItem to add public static void AddJobTimerItem(JobTimerItem item) { var existing = Items.FirstOrDefault(i => i.Key == item.Key); @@ -62,25 +58,61 @@ namespace PepperDash.Essentials.Core /// public class JobTimerItem { - public string Key { get; private set; } - public Action JobAction { get; private set; } - public eJobTimerCycleTypes CycleType { get; private set; } /// - /// + /// Key property + /// + public string Key { get; private set; } + + /// + /// JobAction property + /// + public Action JobAction { get; private set; } + + /// + /// CycleType property + /// + public eJobTimerCycleTypes CycleType { get; private set; } + + /// + /// RunNextAt property /// public DateTime RunNextAt { get; set; } + /// + /// Constructor + /// + /// item key + /// cycle type + /// action to run public JobTimerItem(string key, eJobTimerCycleTypes cycle, Action act) { } } + /// + /// JobTimerCycleTypes enum + /// public enum eJobTimerCycleTypes { + /// + /// RunEveryDay property + /// RunEveryDay, + + /// + /// RunEveryHour property + /// RunEveryHour, + + /// + /// RunEveryHalfHour property + /// RunEveryHalfHour, + + /// + /// RunEveryMinute property + /// RunEveryMinute } } \ No newline at end of file diff --git a/src/PepperDash.Essentials.Core/Global/Scheduler.cs b/src/PepperDash.Essentials.Core/Global/Scheduler.cs index aee40cff..d3641ffc 100644 --- a/src/PepperDash.Essentials.Core/Global/Scheduler.cs +++ b/src/PepperDash.Essentials.Core/Global/Scheduler.cs @@ -138,6 +138,11 @@ Recurrence Days: {evt.Value.Recurrence.RecurrenceDays} EventGroups.Remove(eventGroup.Name); } + /// + /// Gets the event group by key + /// + /// key of the event group + /// public static ScheduledEventGroup GetEventGroup(string key) { ScheduledEventGroup returnValue; @@ -146,6 +151,9 @@ Recurrence Days: {evt.Value.Recurrence.RecurrenceDays} } } + /// + /// SchedulerUtilities class + /// public static class SchedulerUtilities { /// diff --git a/src/PepperDash.Essentials.Core/InUseTracking/IInUseTracking.cs b/src/PepperDash.Essentials.Core/InUseTracking/IInUseTracking.cs index 97a7c7f6..59ea87b3 100644 --- a/src/PepperDash.Essentials.Core/InUseTracking/IInUseTracking.cs +++ b/src/PepperDash.Essentials.Core/InUseTracking/IInUseTracking.cs @@ -11,6 +11,9 @@ namespace PepperDash.Essentials.Core /// public interface IInUseTracking { + /// + /// Gets the InUseTracker + /// InUseTracking InUseTracker { get; } } } \ No newline at end of file diff --git a/src/PepperDash.Essentials.Core/InUseTracking/InUseTracking.cs b/src/PepperDash.Essentials.Core/InUseTracking/InUseTracking.cs index 177b1c22..c0fcdbf6 100644 --- a/src/PepperDash.Essentials.Core/InUseTracking/InUseTracking.cs +++ b/src/PepperDash.Essentials.Core/InUseTracking/InUseTracking.cs @@ -28,6 +28,9 @@ namespace PepperDash.Essentials.Core /// public IntFeedback InUseCountFeedback { get; private set; } + /// + /// Constructor + /// public InUseTracking() { InUseFeedback = new BoolFeedback(() => _Users.Count > 0); @@ -39,9 +42,7 @@ namespace PepperDash.Essentials.Core /// multiple times, provided that the label is different /// /// A label to identify the instance of the user. Treated like a "role", etc. - /// - /// AddUser method - /// + /// The object to add public void AddUser(object objectToAdd, string label) { // check if an exact object/label pair exists and ignore if so. No double-registers. @@ -56,9 +57,11 @@ namespace PepperDash.Essentials.Core InUseCountFeedback.FireUpdate(); } - /// - /// RemoveUser method - /// + /// + /// RemoveUser method + /// + /// The label of the user to remove + /// The object to remove public void RemoveUser(object objectToRemove, string label) { // Find the user object if exists and remove it @@ -73,14 +76,26 @@ namespace PepperDash.Essentials.Core } } - /// - /// Represents a InUseTrackingObject - /// + /// + /// Represents a InUseTrackingObject + /// public class InUseTrackingObject { + /// + /// The label of the user + /// public string Label { get; private set; } + + /// + /// The user object + /// public object User { get; private set; } + /// + /// Constructor + /// + /// user using the object + /// label for the object public InUseTrackingObject(object user, string label) { User = user; diff --git a/src/PepperDash.Essentials.Core/JoinMaps/JoinMapBase.cs b/src/PepperDash.Essentials.Core/JoinMaps/JoinMapBase.cs index 01f71098..d2e7d036 100644 --- a/src/PepperDash.Essentials.Core/JoinMaps/JoinMapBase.cs +++ b/src/PepperDash.Essentials.Core/JoinMaps/JoinMapBase.cs @@ -17,6 +17,9 @@ using Serilog.Events; namespace PepperDash.Essentials.Core { + /// + /// JoinMapHelper class + /// public static class JoinMapHelper { /// @@ -93,6 +96,9 @@ namespace PepperDash.Essentials.Core /// public abstract class JoinMapBaseAdvanced { + /// + /// The join offset + /// protected uint JoinOffset; /// @@ -100,6 +106,10 @@ namespace PepperDash.Essentials.Core /// public Dictionary Joins { get; private set; } + /// + /// Constructor + /// + /// join start offset protected JoinMapBaseAdvanced(uint joinStart) { Joins = new Dictionary(); @@ -107,11 +117,20 @@ namespace PepperDash.Essentials.Core JoinOffset = joinStart - 1; } + /// + /// Constructor + /// + /// join start offset + /// type of joinstart protected JoinMapBaseAdvanced(uint joinStart, Type type):this(joinStart) { AddJoins(type); } + /// + /// AddJoins method + /// + /// type of join to add protected void AddJoins(Type type) { var fields = @@ -303,18 +322,11 @@ namespace PepperDash.Essentials.Core PrintJoinMapInfo(); } - /// - /// Returns the join span for the join with the specified key - /// - /// - /// - - - /// - /// Returns the join span for the join with the specified key - /// - /// - /// + // /// + // /// Returns the join span for the join with the specified key + // /// + // /// + // /// //public uint GetJoinSpanForKey(string key) //{ // return Joins.ContainsKey(key) ? Joins[key].JoinSpan : 0; @@ -328,28 +340,86 @@ namespace PepperDash.Essentials.Core [Flags] public enum eJoinCapabilities { + /// + /// No capabilities + /// None = 0, + + /// + /// To SIMPL + /// ToSIMPL = 1, + + /// + /// From SIMPL + /// FromSIMPL = 2, + + /// + /// To and From SIMPL + /// ToFromSIMPL = ToSIMPL | FromSIMPL, + + /// + /// To Fusion + /// ToFusion = 4, + + /// + /// From Fusion + /// FromFusion = 8, + + /// + /// To and From Fusion + /// ToFromFusion = ToFusion | FromFusion, } - [Flags] /// /// Enumeration of eJoinType values /// + [Flags] public enum eJoinType { + /// + /// No join type + /// None = 0, + + /// + /// Digital join + /// Digital = 1, + + /// + /// Analog join + /// Analog = 2, + + /// + /// Serial join + /// Serial = 4, + + /// + /// Digital and Analog join + /// DigitalAnalog = Digital | Analog, + + /// + /// Digital and Serial join + /// DigitalSerial = Digital | Serial, + + /// + /// Analog and Serial join + /// AnalogSerial = Analog | Serial, + + /// + /// Digital, Analog and Serial join + /// DigitalAnalogSerial = Digital | Analog | Serial, } @@ -364,29 +434,23 @@ namespace PepperDash.Essentials.Core /// [JsonProperty("description")] public string Description { get { return _description; } set { _description = value; } } - /// - /// Signal type(s) - /// - [JsonProperty("joinType")] + /// /// Gets or sets the JoinType /// + [JsonProperty("joinType")] public eJoinType JoinType { get; set; } - /// - /// Indicates whether the join is read and/or write - /// - [JsonProperty("joinCapabilities")] + /// /// Gets or sets the JoinCapabilities /// + [JsonProperty("joinCapabilities")] public eJoinCapabilities JoinCapabilities { get; set; } - /// - /// Indicates a set of valid values (particularly if this translates to an enum - /// - [JsonProperty("validValues")] + /// /// Gets or sets the ValidValues /// + [JsonProperty("validValues")] public string[] ValidValues { get; set; } } @@ -401,18 +465,17 @@ namespace PepperDash.Essentials.Core /// [JsonProperty("joinNumber")] public uint JoinNumber { get; set; } + /// /// Join range span. If join indicates the start of a range of joins, this indicated the maximum number of joins in the range /// [JsonProperty("joinSpan")] public uint JoinSpan { get; set; } - /// - /// Fusion Attribute Name (optional) - /// - [JsonProperty("attributeName")] + /// /// Gets or sets the AttributeName /// + [JsonProperty("attributeName")] public string AttributeName { get; set; } } @@ -424,18 +487,34 @@ namespace PepperDash.Essentials.Core private uint _joinOffset; private JoinData _data; + + /// + /// Gets or sets the JoinMetadata + /// public JoinMetadata Metadata { get; set; } + /// /// To store some future information as you please /// public object UserObject { get; private set; } + /// + /// Constructor + /// + /// + /// public JoinDataComplete(JoinData data, JoinMetadata metadata) { _data = data; Metadata = metadata; } + /// + /// GetMarkdownFormattedData method + /// + /// formatter to use + /// length of the description + /// public string GetMarkdownFormattedData(string stringFormatter, int descriptionLen) { @@ -498,9 +577,6 @@ namespace PepperDash.Essentials.Core /// Sets the join offset value /// /// - /// - /// SetJoinOffset method - /// public void SetJoinOffset(uint joinOffset) { _joinOffset = joinOffset; @@ -515,11 +591,17 @@ namespace PepperDash.Essentials.Core set { _data.JoinNumber = value; } } + /// + /// The join span + /// public uint JoinSpan { get { return _data.JoinSpan; } } + /// + /// The attribute name + /// public string AttributeName { get { return _data.AttributeName; } @@ -551,20 +633,27 @@ namespace PepperDash.Essentials.Core - [AttributeUsage(AttributeTargets.All)] /// /// Represents a JoinNameAttribute /// + [AttributeUsage(AttributeTargets.All)] public class JoinNameAttribute : Attribute { private string _Name; + /// + /// Constructor + /// + /// name of the attribute public JoinNameAttribute(string name) { Debug.LogMessage(LogEventLevel.Verbose, "Setting Attribute Name: {0}",null, name); _Name = name; } + /// + /// Gets the Name + /// public string Name { get { return _Name; } diff --git a/src/PepperDash.Essentials.Core/Lighting/Lighting Interfaces.cs b/src/PepperDash.Essentials.Core/Lighting/Lighting Interfaces.cs index de581681..642ca6f8 100644 --- a/src/PepperDash.Essentials.Core/Lighting/Lighting Interfaces.cs +++ b/src/PepperDash.Essentials.Core/Lighting/Lighting Interfaces.cs @@ -8,12 +8,25 @@ namespace PepperDash.Essentials.Core.Lighting /// public interface ILightingScenes { + /// + /// Fires when the lighting scene changes + /// event EventHandler LightingSceneChange; + /// + /// Gets the list of LightingScenes + /// List LightingScenes { get; } + /// + /// Selects the given LightingScene + /// + /// scene to select void SelectScene(LightingScene scene); + /// + /// Gets the currently selected LightingScene + /// LightingScene CurrentLightingScene { get; } } @@ -23,6 +36,9 @@ namespace PepperDash.Essentials.Core.Lighting /// public interface ILightingScenesDynamic : ILightingScenes { + /// + /// Fires when the lighting scenes are updated + /// event EventHandler LightingScenesUpdated; } @@ -31,8 +47,19 @@ namespace PepperDash.Essentials.Core.Lighting /// public interface ILightingMasterRaiseLower { + /// + /// Raises the master level + /// void MasterRaise(); + + /// + /// Lowers the master level + /// void MasterLower(); + + /// + /// Stops raising or lowering the master level + /// void MasterRaiseLowerStop(); } @@ -41,11 +68,30 @@ namespace PepperDash.Essentials.Core.Lighting /// public interface ILightingLoad { + /// + /// Sets the load level + /// + /// level to set void SetLoadLevel(int level); + + /// + /// Raises the load level + /// void Raise(); + + /// + /// Lowers the load level + /// void Lower(); + /// + /// feedback of the current load level + /// IntFeedback LoadLevelFeedback { get; } + + /// + /// feedback of whether the load is on + /// BoolFeedback LoadIsOnFeedback { get; } } @@ -59,6 +105,10 @@ namespace PepperDash.Essentials.Core.Lighting /// public LightingScene CurrentLightingScene { get; private set; } + /// + /// Constructor for LightingSceneChangeEventArgs + /// + /// The lighting scene that changed public LightingSceneChangeEventArgs(LightingScene scene) { CurrentLightingScene = scene; diff --git a/src/PepperDash.Essentials.Core/Lighting/LightingScene.cs b/src/PepperDash.Essentials.Core/Lighting/LightingScene.cs index 788dbb35..15afb8c1 100644 --- a/src/PepperDash.Essentials.Core/Lighting/LightingScene.cs +++ b/src/PepperDash.Essentials.Core/Lighting/LightingScene.cs @@ -10,17 +10,23 @@ namespace PepperDash.Essentials.Core.Lighting /// public class LightingScene { - [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] /// /// Gets or sets the Name /// + [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] public string Name { get; set; } - [JsonProperty("id", NullValueHandling = NullValueHandling.Ignore)] + /// /// Gets or sets the ID /// + [JsonProperty("id", NullValueHandling = NullValueHandling.Ignore)] public string ID { get; set; } + bool _IsActive; + + /// + /// Gets or sets whether the scene is active + /// [JsonProperty("isActive", NullValueHandling = NullValueHandling.Ignore)] public bool IsActive { @@ -35,18 +41,22 @@ namespace PepperDash.Essentials.Core.Lighting } } - [JsonProperty("sortOrder", NullValueHandling = NullValueHandling.Ignore)] /// /// Gets or sets the SortOrder /// + [JsonProperty("sortOrder", NullValueHandling = NullValueHandling.Ignore)] public int SortOrder { get; set; } - [JsonIgnore] + /// /// Gets or sets the IsActiveFeedback /// + [JsonIgnore] public BoolFeedback IsActiveFeedback { get; set; } + /// + /// Constructor for LightingScene + /// public LightingScene() { IsActiveFeedback = new BoolFeedback(new Func(() => IsActive)); diff --git a/src/PepperDash.Essentials.Core/Microphone Privacy/MicrophonePrivacyController.cs b/src/PepperDash.Essentials.Core/Microphone Privacy/MicrophonePrivacyController.cs index 203d75ed..a15e0dc4 100644 --- a/src/PepperDash.Essentials.Core/Microphone Privacy/MicrophonePrivacyController.cs +++ b/src/PepperDash.Essentials.Core/Microphone Privacy/MicrophonePrivacyController.cs @@ -23,6 +23,9 @@ namespace PepperDash.Essentials.Core.Privacy bool initialized; + /// + /// Gets or sets whether LED control is enabled + /// public bool EnableLeds { get @@ -69,6 +72,11 @@ namespace PepperDash.Essentials.Core.Privacy /// public IPrivacy PrivacyDevice { get; private set; } + /// + /// Constructor for MicrophonePrivacyController + /// + /// key of the controller device + /// configuration for the controller device public MicrophonePrivacyController(string key, MicrophonePrivacyControllerConfig config) : base(key) { @@ -264,6 +272,9 @@ namespace PepperDash.Essentials.Core.Privacy /// public class MicrophonePrivacyControllerFactory : EssentialsDeviceFactory { + /// + /// Constructor for MicrophonePrivacyControllerFactory + /// public MicrophonePrivacyControllerFactory() { TypeNames = new List() { "microphoneprivacycontroller" }; diff --git a/src/PepperDash.Essentials.Core/Monitoring/CrestronGenericBaseCommunicationMonitor.cs b/src/PepperDash.Essentials.Core/Monitoring/CrestronGenericBaseCommunicationMonitor.cs index b10be947..dc9406a3 100644 --- a/src/PepperDash.Essentials.Core/Monitoring/CrestronGenericBaseCommunicationMonitor.cs +++ b/src/PepperDash.Essentials.Core/Monitoring/CrestronGenericBaseCommunicationMonitor.cs @@ -20,6 +20,13 @@ namespace PepperDash.Essentials.Core { GenericBase Device; + /// + /// Constructor for CrestronGenericBaseCommunicationMonitor + /// + /// parent device + /// device to monitor + /// time before warning status + /// time before error status public CrestronGenericBaseCommunicationMonitor(IKeyed parent, GenericBase device, long warningTime, long errorTime) : base(parent, warningTime, errorTime) { diff --git a/src/PepperDash.Essentials.Core/Monitoring/GenericCommunicationMonitor.cs b/src/PepperDash.Essentials.Core/Monitoring/GenericCommunicationMonitor.cs index eca013c5..34f074d9 100644 --- a/src/PepperDash.Essentials.Core/Monitoring/GenericCommunicationMonitor.cs +++ b/src/PepperDash.Essentials.Core/Monitoring/GenericCommunicationMonitor.cs @@ -12,6 +12,9 @@ namespace PepperDash.Essentials.Core /// public class GenericCommunicationMonitor : StatusMonitorBase { + /// + /// Gets the Client being monitored + /// public IBasicCommunication Client { get; private set; } /// @@ -281,17 +284,29 @@ namespace PepperDash.Essentials.Core } } - /// - /// Represents a CommunicationMonitorConfig - /// + /// + /// Represents a CommunicationMonitorConfig + /// public class CommunicationMonitorConfig { - /// - /// Gets or sets the PollInterval - /// + /// + /// Gets or sets the PollInterval + /// public int PollInterval { get; set; } + + /// + /// Gets or sets the TimeToWarning + /// public int TimeToWarning { get; set; } + + /// + /// Gets or sets the TimeToError + /// public int TimeToError { get; set; } + + /// + /// Gets or sets the PollString + /// public string PollString { get; set; } /// diff --git a/src/PepperDash.Essentials.Core/Monitoring/Interfaces.cs b/src/PepperDash.Essentials.Core/Monitoring/Interfaces.cs index a4d8d2ae..4a3303fe 100644 --- a/src/PepperDash.Essentials.Core/Monitoring/Interfaces.cs +++ b/src/PepperDash.Essentials.Core/Monitoring/Interfaces.cs @@ -11,12 +11,39 @@ namespace PepperDash.Essentials.Core /// public interface IStatusMonitor { + /// + /// Gets the Parent + /// IKeyed Parent { get; } + + /// + /// Fires when the status changes + /// event EventHandler StatusChange; + + /// + /// Gets the Status + /// MonitorStatus Status { get; } + + /// + /// Gets the Message + /// string Message { get; } + + /// + /// Gets or sets the IsOnlineFeedback + /// BoolFeedback IsOnlineFeedback { get; set; } + + /// + /// Start method + /// void Start(); + + /// + /// Stop method + /// void Stop(); } @@ -26,6 +53,9 @@ namespace PepperDash.Essentials.Core /// public interface ICommunicationMonitor { + /// + /// Gets the CommunicationMonitor + /// StatusMonitorBase CommunicationMonitor { get; } } @@ -34,29 +64,57 @@ namespace PepperDash.Essentials.Core /// public enum MonitorStatus { + /// + /// Status Unknown + /// StatusUnknown = 0, - IsOk = 1, - InWarning = 2, + + /// + /// Is Ok + /// + IsOk = 1, + + /// + /// In Warning + /// + InWarning = 2, + + /// + /// In Error + /// InError = 3 } + /// + /// Represents a MonitorStatusChangeEventArgs + /// public class MonitorStatusChangeEventArgs : EventArgs { - /// - /// Gets or sets the Status - /// + /// + /// Gets or sets the Status + /// public MonitorStatus Status { get; private set; } - /// - /// Gets or sets the Message - /// + + /// + /// Gets or sets the Message + /// public string Message { get; private set; } + /// + /// Constructor for MonitorStatusChangeEventArgs + /// + /// monitor status public MonitorStatusChangeEventArgs(MonitorStatus status) { Status = status; Message = status == MonitorStatus.IsOk ? "" : status.ToString(); } + /// + /// Constructor for MonitorStatusChangeEventArgs + /// + /// monitor status + /// status message public MonitorStatusChangeEventArgs(MonitorStatus status, string message) { Status = status; diff --git a/src/PepperDash.Essentials.Core/Monitoring/StatusMonitorBase.cs b/src/PepperDash.Essentials.Core/Monitoring/StatusMonitorBase.cs index 1934f945..7f44fa0f 100644 --- a/src/PepperDash.Essentials.Core/Monitoring/StatusMonitorBase.cs +++ b/src/PepperDash.Essentials.Core/Monitoring/StatusMonitorBase.cs @@ -13,8 +13,14 @@ using PepperDash.Core; namespace PepperDash.Essentials.Core { + /// + /// Base class for status monitors + /// public abstract class StatusMonitorBase : IStatusMonitor, IKeyName { + /// + /// Event fired when status changes + /// public event EventHandler StatusChange; /// @@ -27,15 +33,24 @@ namespace PepperDash.Essentials.Core /// public string Name { get { return "Comm. monitor"; } } - /// - /// Gets or sets the Parent - /// + /// + /// Gets or sets the Parent + /// public IKeyed Parent { get; private set; } + /// + /// Bool feedback for online status + /// public BoolFeedback IsOnlineFeedback { get; set; } + /// + /// Indicates whether the monitored device is online + /// public bool IsOnline; + /// + /// Current monitor status + /// public MonitorStatus Status { get { return _Status; } @@ -51,6 +66,9 @@ namespace PepperDash.Essentials.Core } MonitorStatus _Status; + /// + /// Current status message + /// public string Message { get { return _Message; } @@ -69,6 +87,12 @@ namespace PepperDash.Essentials.Core CTimer WarningTimer; CTimer ErrorTimer; + /// + /// Constructor + /// + /// parent device + /// time in milliseconds before warning status + /// time in milliseconds before error status public StatusMonitorBase(IKeyed parent, long warningTime, long errorTime) { Parent = parent; @@ -83,9 +107,20 @@ namespace PepperDash.Essentials.Core ErrorTime = errorTime; } + /// + /// Starts the monitor + /// public abstract void Start(); + + /// + /// Stops the monitor + /// public abstract void Stop(); + /// + /// Fires the StatusChange event + /// + /// monitor status protected void OnStatusChange(MonitorStatus status) { if (_Status == MonitorStatus.IsOk) @@ -98,6 +133,11 @@ namespace PepperDash.Essentials.Core handler(this, new MonitorStatusChangeEventArgs(status)); } + /// + /// Fires the StatusChange event with message + /// + /// monitor status + /// status message protected void OnStatusChange(MonitorStatus status, string message) { if (_Status == MonitorStatus.IsOk) @@ -110,12 +150,18 @@ namespace PepperDash.Essentials.Core handler(this, new MonitorStatusChangeEventArgs(status, message)); } + /// + /// Starts the error timers + /// protected void StartErrorTimers() { if (WarningTimer == null) WarningTimer = new CTimer(o => { Status = MonitorStatus.InWarning; }, WarningTime); if (ErrorTimer == null) ErrorTimer = new CTimer(o => { Status = MonitorStatus.InError; }, ErrorTime); } + /// + /// Stops the error timers + /// protected void StopErrorTimers() { if (WarningTimer != null) WarningTimer.Stop(); @@ -124,6 +170,9 @@ namespace PepperDash.Essentials.Core ErrorTimer = null; } + /// + /// Resets the error timers + /// protected void ResetErrorTimers() { if(WarningTimer != null) diff --git a/src/PepperDash.Essentials.Core/Monitoring/StatusMonitorCollection.cs b/src/PepperDash.Essentials.Core/Monitoring/StatusMonitorCollection.cs index a517e5d0..4dd1d93a 100644 --- a/src/PepperDash.Essentials.Core/Monitoring/StatusMonitorCollection.cs +++ b/src/PepperDash.Essentials.Core/Monitoring/StatusMonitorCollection.cs @@ -14,41 +14,51 @@ using PepperDash.Core; namespace PepperDash.Essentials.Core { /// - /// + /// Collection class for multiple status monitors /// public class StatusMonitorCollection : IStatusMonitor { + /// + /// Gets or sets the Parent + /// public IKeyed Parent { get; private set; } List Monitors = new List(); #region IStatusMonitor Members + /// + /// Event fired when status changes + /// public event EventHandler StatusChange; - /// - /// Gets or sets the Status - /// + /// + /// Gets or sets the Status + /// public MonitorStatus Status { get; protected set; } - /// - /// Gets or sets the Message - /// + /// + /// Gets or sets the Message + /// public string Message { get; private set; } - /// - /// Gets or sets the IsOnlineFeedback - /// + /// + /// Gets or sets the IsOnlineFeedback + /// public BoolFeedback IsOnlineFeedback { get; set; } + /// + /// Constructor + /// + /// parent device public StatusMonitorCollection(IKeyed parent) { Parent = parent; } - /// - /// Start method - /// + /// + /// Start method + /// public void Start() { foreach (var mon in Monitors) @@ -135,7 +145,11 @@ namespace PepperDash.Essentials.Core Monitors.Add(monitor); } - + /// + /// Fires the StatusChange event + /// + /// monitor status + /// status message protected void OnStatusChange(MonitorStatus status, string message) { var handler = StatusChange; diff --git a/src/PepperDash.Essentials.Core/PartitionSensor/EssentialsPartitionController.cs b/src/PepperDash.Essentials.Core/PartitionSensor/EssentialsPartitionController.cs index f2043dbc..ee20a22a 100644 --- a/src/PepperDash.Essentials.Core/PartitionSensor/EssentialsPartitionController.cs +++ b/src/PepperDash.Essentials.Core/PartitionSensor/EssentialsPartitionController.cs @@ -14,10 +14,16 @@ namespace PepperDash.Essentials.Core { private IPartitionStateProvider _partitionSensor; + /// + /// Indicates whether the controller is in Auto mode or Manual mode + /// public bool IsInAutoMode { get; private set; } private bool _partitionPresent; + /// + /// Gets or sets the PartitionPresent state + /// public bool PartitionPresent { get @@ -45,6 +51,14 @@ namespace PepperDash.Essentials.Core } } + /// + /// Constructor + /// + /// key for the partition controller + /// name of the partition controller + /// partition state provider sensor + /// whether to default to manual mode + /// list of adjacent room keys public EssentialsPartitionController(string key, string name, IPartitionStateProvider sensor, bool defaultToManualMode, List adjacentRoomKeys) { Key = key; diff --git a/src/PepperDash.Essentials.Core/PartitionSensor/IPartitionStateProvider.cs b/src/PepperDash.Essentials.Core/PartitionSensor/IPartitionStateProvider.cs index f41a3f35..5bf40345 100644 --- a/src/PepperDash.Essentials.Core/PartitionSensor/IPartitionStateProvider.cs +++ b/src/PepperDash.Essentials.Core/PartitionSensor/IPartitionStateProvider.cs @@ -9,9 +9,15 @@ namespace PepperDash.Essentials.Core /// public interface IPartitionStateProvider : IKeyName { + /// + /// Feedback indicating whether the partition is present + /// [JsonIgnore] BoolFeedback PartitionPresentFeedback { get; } + /// + /// Indicates whether the partition is present + /// [JsonProperty("partitionPresent")] bool PartitionPresent { get; } } @@ -21,20 +27,41 @@ namespace PepperDash.Essentials.Core /// public interface IPartitionController : IPartitionStateProvider { + /// + /// List of adjacent room keys + /// [JsonProperty("adjacentRoomKeys")] List AdjacentRoomKeys { get; } + /// + /// Indicates whether the controller is in Auto mode or Manual mode + /// [JsonProperty("isInAutoMode")] bool IsInAutoMode { get; } + /// + /// Sets the PartitionPresent state + /// void SetPartitionStatePresent(); + /// + /// Sets the PartitionPresent state to not present + /// void SetPartitionStateNotPresent(); + /// + /// Toggles the PartitionPresent state + /// void ToggglePartitionState(); + /// + /// Sets the controller to Manual mode + /// void SetManualMode(); + /// + /// Sets the controller to Auto mode + /// void SetAutoMode(); } } \ No newline at end of file diff --git a/src/PepperDash.Essentials.Core/Presets/DevicePresets.cs b/src/PepperDash.Essentials.Core/Presets/DevicePresets.cs index 81612e92..253a19e1 100644 --- a/src/PepperDash.Essentials.Core/Presets/DevicePresets.cs +++ b/src/PepperDash.Essentials.Core/Presets/DevicePresets.cs @@ -19,8 +19,17 @@ namespace PepperDash.Essentials.Core.Presets /// public class DevicePresetsModel : Device { + /// + /// Delegate for preset recalled event + /// + /// device that recalled a preset + /// channel that was recalled public delegate void PresetRecalledCallback(ISetTopBoxNumericKeypad device, string channel); + /// + /// Delegate for presets saved event + /// + /// list of presets that were saved public delegate void PresetsSavedCallback(List presets); private readonly CCriticalSection _fileOps = new CCriticalSection(); @@ -37,6 +46,12 @@ namespace PepperDash.Essentials.Core.Presets private Action _enterFunction; private string _filePath; + /// + /// Constructor + /// + /// key for the device + /// set top box device + /// file name for presets public DevicePresetsModel(string key, ISetTopBoxNumericKeypad setTopBox, string fileName) : this(key, fileName) { @@ -71,6 +86,11 @@ namespace PepperDash.Essentials.Core.Presets _enterFunction = setTopBox.KeypadEnter; } + /// + /// Constructor + /// + /// key for the device + /// file name for presets public DevicePresetsModel(string key, string fileName) : base(key) { PulseTime = 150; @@ -88,17 +108,26 @@ namespace PepperDash.Essentials.Core.Presets _initSuccess = true; } + /// + /// Event fired when a preset is recalled + /// public event PresetRecalledCallback PresetRecalled; + + /// + /// Event fired when presets are saved + /// public event PresetsSavedCallback PresetsSaved; /// /// Gets or sets the PulseTime /// public int PulseTime { get; set; } + /// /// Gets or sets the DigitSpacingMs /// public int DigitSpacingMs { get; set; } + /// /// Gets or sets the PresetsAreLoaded /// @@ -109,6 +138,9 @@ namespace PepperDash.Essentials.Core.Presets /// public List PresetsList { get; private set; } + /// + /// Gets the Count of presets + /// public int Count { get { return PresetsList != null ? PresetsList.Count : 0; } @@ -118,18 +150,25 @@ namespace PepperDash.Essentials.Core.Presets /// Gets or sets the UseLocalImageStorage /// public bool UseLocalImageStorage { get; set; } + /// /// Gets or sets the ImagesLocalHostPrefix /// public string ImagesLocalHostPrefix { get; set; } + /// /// Gets or sets the ImagesPathPrefix /// public string ImagesPathPrefix { get; set; } + /// /// Gets or sets the ListPathPrefix /// public string ListPathPrefix { get; set; } + + /// + /// Event fired when presets are loaded + /// public event EventHandler PresetsLoaded; diff --git a/src/PepperDash.Essentials.Core/Presets/PresetBase.cs b/src/PepperDash.Essentials.Core/Presets/PresetBase.cs index 3e42dd66..84af0bb9 100644 --- a/src/PepperDash.Essentials.Core/Presets/PresetBase.cs +++ b/src/PepperDash.Essentials.Core/Presets/PresetBase.cs @@ -15,36 +15,37 @@ namespace PepperDash.Essentials.Core.Presets /// public class PresetBase { - [JsonProperty("id")] /// /// Gets or sets the ID /// + [JsonProperty("id")] public int ID { get; set; } - /// - /// Used to store the name of the preset - /// - [JsonProperty("description")] + /// /// Gets or sets the Description /// + [JsonProperty("description")] public string Description { get; set; } + /// - /// Indicates if the preset is defined(stored) in the codec + /// Gets or sets Defined /// [JsonProperty("defined")] - /// - /// Gets or sets the Defined - /// public bool Defined { get; set; } - /// - /// Indicates if the preset has the capability to be defined - /// - [JsonProperty("isDefinable")] + /// /// Gets or sets the IsDefinable /// + [JsonProperty("isDefinable")] public bool IsDefinable { get; set; } + /// + /// Constructor + /// + /// id of the preset + /// description of the preset + /// whether the preset is defined + /// whether the preset is definable public PresetBase(int id, string description, bool def, bool isDef) { ID = id; diff --git a/src/PepperDash.Essentials.Core/Presets/PresetChannel.cs b/src/PepperDash.Essentials.Core/Presets/PresetChannel.cs index b3b885eb..8fd15105 100644 --- a/src/PepperDash.Essentials.Core/Presets/PresetChannel.cs +++ b/src/PepperDash.Essentials.Core/Presets/PresetChannel.cs @@ -15,40 +15,40 @@ namespace PepperDash.Essentials.Core.Presets public class PresetChannel { + /// + /// Gets or sets the Name + /// [JsonProperty(Required = Required.Always,PropertyName = "name")] - /// - /// Gets or sets the Name - /// public string Name { get; set; } + /// + /// Gets or sets the IconUrl + /// [JsonProperty(Required = Required.Always, PropertyName = "iconUrl")] - /// - /// Gets or sets the IconUrl - /// public string IconUrl { get; set; } + /// + /// Gets or sets the Channel + /// [JsonProperty(Required = Required.Always, PropertyName = "channel")] - /// - /// Gets or sets the Channel - /// public string Channel { get; set; } } - /// - /// Represents a PresetsList - /// + /// + /// Represents a PresetsList + /// public class PresetsList { + /// + /// Gets or sets the Name + /// [JsonProperty(Required=Required.Always,PropertyName = "name")] - /// - /// Gets or sets the Name - /// public string Name { get; set; } + /// + /// Gets or sets the Channels + /// [JsonProperty(Required = Required.Always, PropertyName = "channels")] - /// - /// Gets or sets the Channels - /// public List Channels { get; set; } } } \ No newline at end of file diff --git a/src/PepperDash.Essentials.Core/Presets/PresetsListSubpageReferenceListItem.cs b/src/PepperDash.Essentials.Core/Presets/PresetsListSubpageReferenceListItem.cs index 826098d1..f7bfa3bd 100644 --- a/src/PepperDash.Essentials.Core/Presets/PresetsListSubpageReferenceListItem.cs +++ b/src/PepperDash.Essentials.Core/Presets/PresetsListSubpageReferenceListItem.cs @@ -20,6 +20,13 @@ namespace PepperDash.Essentials.Core.Presets DevicePresetsView View; PresetChannel Channel; + /// + /// Constructor + /// + /// preset channel + /// index of the preset + /// owner of the subpage reference list item + /// device presets view public PresetsListSubpageReferenceListItem(PresetChannel chan, uint index, SubpageReferenceList owner, DevicePresetsView view) : base(index, owner) @@ -30,10 +37,10 @@ namespace PepperDash.Essentials.Core.Presets Refresh(); } - /// - /// Clear method - /// - /// + /// + /// Clear method + /// + /// public override void Clear() { Owner.GetBoolFeedbackSig(Index, 1).UserObject = null; @@ -42,10 +49,10 @@ namespace PepperDash.Essentials.Core.Presets Owner.StringInputSig(Index, 3).StringValue = ""; } - /// - /// Refresh method - /// - /// + /// + /// Refresh method + /// + /// public override void Refresh() { var name = View.ShowName ? Channel.Name : ""; diff --git a/src/PepperDash.Essentials.Core/Queues/GenericQueue.cs b/src/PepperDash.Essentials.Core/Queues/GenericQueue.cs index ab1b53e0..af76f10f 100644 --- a/src/PepperDash.Essentials.Core/Queues/GenericQueue.cs +++ b/src/PepperDash.Essentials.Core/Queues/GenericQueue.cs @@ -14,8 +14,20 @@ namespace PepperDash.Essentials.Core.Queues public class GenericQueue : IQueue { private readonly string _key; + + /// + /// The internal queue + /// protected readonly ConcurrentQueue _queue; + + /// + /// The worker thread + /// protected readonly Thread _worker; + + /// + /// The wait handle for the queue + /// protected readonly CEvent _waitHandle = new CEvent(); private bool _delayEnabled; @@ -256,6 +268,9 @@ namespace PepperDash.Essentials.Core.Queues Disposed = true; } + /// + /// Finalizer + /// ~GenericQueue() { Dispose(true); diff --git a/src/PepperDash.Essentials.Core/Queues/IQueue.cs b/src/PepperDash.Essentials.Core/Queues/IQueue.cs index 502fd0ef..a8cbbf6a 100644 --- a/src/PepperDash.Essentials.Core/Queues/IQueue.cs +++ b/src/PepperDash.Essentials.Core/Queues/IQueue.cs @@ -8,7 +8,15 @@ namespace PepperDash.Essentials.Core.Queues /// public interface IQueue : IKeyed, IDisposable where T : class { + /// + /// Enqueues an item + /// + /// item to be queued void Enqueue(T item); + + /// + /// gets the disposed status of the queue + /// bool Disposed { get; } } } diff --git a/src/PepperDash.Essentials.Core/Queues/IQueueMessage.cs b/src/PepperDash.Essentials.Core/Queues/IQueueMessage.cs index 72463da8..2a050a3b 100644 --- a/src/PepperDash.Essentials.Core/Queues/IQueueMessage.cs +++ b/src/PepperDash.Essentials.Core/Queues/IQueueMessage.cs @@ -7,6 +7,9 @@ namespace PepperDash.Essentials.Core.Queues /// public interface IQueueMessage { + /// + /// Dispatches the message + /// void Dispatch(); } } \ No newline at end of file diff --git a/src/PepperDash.Essentials.Core/Queues/StringResponseProcessor.cs b/src/PepperDash.Essentials.Core/Queues/StringResponseProcessor.cs index 2f03a9d4..207fd597 100644 --- a/src/PepperDash.Essentials.Core/Queues/StringResponseProcessor.cs +++ b/src/PepperDash.Essentials.Core/Queues/StringResponseProcessor.cs @@ -4,6 +4,9 @@ using PepperDash.Core; namespace PepperDash.Essentials.Core.Queues { + /// + /// Processes string responses from a communication port or gather using a queue to ensure thread safety + /// public sealed class StringResponseProcessor : IKeyed, IDisposable { private readonly Action _processStringAction; @@ -98,6 +101,9 @@ namespace PepperDash.Essentials.Core.Queues /// public bool Disposed { get; private set; } + /// + /// Finalizer + /// ~StringResponseProcessor() { Dispose(false); diff --git a/src/PepperDash.Essentials.Core/Ramps and Increments/ActionIncrementer.cs b/src/PepperDash.Essentials.Core/Ramps and Increments/ActionIncrementer.cs index 630aa4e9..544e7d94 100644 --- a/src/PepperDash.Essentials.Core/Ramps and Increments/ActionIncrementer.cs +++ b/src/PepperDash.Essentials.Core/Ramps and Increments/ActionIncrementer.cs @@ -15,10 +15,29 @@ namespace PepperDash.Essentials.Core /// public class ActionIncrementer { + /// + /// The amount to change the value by each increment + /// public int ChangeAmount { get; set; } + + /// + /// The maximum value for the incrementer + /// public int MaxValue { get; set; } + + /// + /// The minimum value for the incrementer + /// public int MinValue { get; set; } + + /// + /// The delay before repeating starts + /// public uint RepeatDelay { get; set; } + + /// + /// The time between repeats + /// public uint RepeatTime { get; set; } Action SetAction; diff --git a/src/PepperDash.Essentials.Core/Ramps and Increments/UshortSigIncrementer.cs b/src/PepperDash.Essentials.Core/Ramps and Increments/UshortSigIncrementer.cs index b516d17a..02c40f69 100644 --- a/src/PepperDash.Essentials.Core/Ramps and Increments/UshortSigIncrementer.cs +++ b/src/PepperDash.Essentials.Core/Ramps and Increments/UshortSigIncrementer.cs @@ -16,14 +16,44 @@ namespace PepperDash.Essentials.Core public class UshortSigIncrementer { UShortInputSig TheSig; + + /// + /// The amount to change the value by each increment + /// public ushort ChangeAmount { get; set; } + + /// + /// The maximum value for the incrementer + /// public int MaxValue { get; set; } + + /// + /// The minimum value for the incrementer + /// public int MinValue { get; set; } + + /// + /// The delay before repeating starts + /// public uint RepeatDelay { get; set; } + + /// + /// The time between repeats + /// public uint RepeatTime { get; set; } + bool SignedMode; CTimer Timer; + /// + /// Constructor + /// + /// the signal toi be incremented + /// the amount to increment by + /// the minimum value of the signal + /// the maximum value of the signal + /// the delay before repeating starts + /// the time between repeats public UshortSigIncrementer(UShortInputSig sig, ushort changeAmount, int minValue, int maxValue, uint repeatDelay, uint repeatTime) { TheSig = sig;