From edf5189055f68d51b3ab788febc7ed45428b38ed Mon Sep 17 00:00:00 2001 From: Erik Meyer Date: Wed, 28 Jan 2026 10:19:57 -0500 Subject: [PATCH] wip: update XML comments --- .../Crestron/CrestronGenericBaseDevice.cs | 116 ++++++++++++------ .../CrestronIO/GenericRelayDevice.cs | 21 ++++ .../CrestronIO/IDigitalInput.cs | 3 + .../CrestronIO/IDigitalOutput.cs | 8 ++ .../CrestronIO/IHasCresnetBranches.cs | 3 + .../CrestronIO/ISwitchedOutput.cs | 16 +++ .../Device Info/DeviceInfoEventArgs.cs | 7 ++ .../Device Info/IDeviceInfoProvider.cs | 9 ++ .../Device Info/NetworkDeviceHelpers.cs | 10 ++ 9 files changed, 158 insertions(+), 35 deletions(-) diff --git a/src/PepperDash.Essentials.Core/Crestron/CrestronGenericBaseDevice.cs b/src/PepperDash.Essentials.Core/Crestron/CrestronGenericBaseDevice.cs index 28f840ee..bdb3e461 100644 --- a/src/PepperDash.Essentials.Core/Crestron/CrestronGenericBaseDevice.cs +++ b/src/PepperDash.Essentials.Core/Crestron/CrestronGenericBaseDevice.cs @@ -9,8 +9,14 @@ using Serilog.Events; namespace PepperDash.Essentials.Core { + /// + /// Abstract base class for Crestron GenericBase devices + /// public abstract class CrestronGenericBaseDevice : EssentialsDevice, IOnline, IHasFeedback, ICommunicationMonitor, IUsageTracking { + /// + /// Gets or sets the Hardware + /// protected GenericBase Hardware; /// @@ -18,24 +24,32 @@ namespace PepperDash.Essentials.Core /// public FeedbackCollection Feedbacks { get; private set; } - /// - /// Gets or sets the IsOnline - /// + /// + /// Gets or sets the IsOnline + /// public BoolFeedback IsOnline { get; private set; } - /// - /// Gets or sets the IsRegistered - /// + + /// + /// Gets or sets the IsRegistered + /// public BoolFeedback IsRegistered { get; private set; } - /// - /// Gets or sets the IpConnectionsText - /// + + /// + /// Gets or sets the IpConnectionsText + /// public StringFeedback IpConnectionsText { get; private set; } - /// - /// Gets or sets the PreventRegistration - /// + /// + /// Gets or sets the PreventRegistration + /// public bool PreventRegistration { get; protected set; } + /// + /// Constructor + /// + /// key of the device + /// name of the device + /// hardware instance protected CrestronGenericBaseDevice(string key, string name, GenericBase hardware) : base(key, name) { @@ -50,6 +64,11 @@ namespace PepperDash.Essentials.Core CommunicationMonitor = new CrestronGenericBaseCommunicationMonitor(this, hardware, 120000, 300000); } + /// + /// Constructor without hardware instance + /// + /// key of the device + /// name of the device protected CrestronGenericBaseDevice(string key, string name) : base(key, name) { @@ -57,6 +76,10 @@ namespace PepperDash.Essentials.Core } + /// + /// Registers the Crestron GenericBase hardware instance + /// + /// hardware instance protected void RegisterCrestronGenericBase(GenericBase hardware) { Hardware = hardware; @@ -68,10 +91,10 @@ namespace PepperDash.Essentials.Core CommunicationMonitor = new CrestronGenericBaseCommunicationMonitor(this, hardware, 120000, 300000); } - /// - /// CustomActivate method - /// - /// + /// + /// CustomActivate method + /// + /// public override bool CustomActivate() { Debug.LogMessage(LogEventLevel.Information, this, "Activating"); @@ -118,11 +141,7 @@ namespace PepperDash.Essentials.Core /// /// This disconnects events and unregisters the base hardware device. /// - /// - /// - /// Deactivate method - /// - /// + /// true if successful, otherwise false public override bool Deactivate() { CommunicationMonitor.Stop(); @@ -138,10 +157,7 @@ namespace PepperDash.Essentials.Core /// /// Adds feedback(s) to the list /// - /// - /// - /// AddToFeedbackList method - /// + /// feedback(s) to be added to the list public void AddToFeedbackList(params Feedback[] newFbs) { foreach (var f in newFbs) @@ -173,9 +189,9 @@ namespace PepperDash.Essentials.Core #region IStatusMonitor Members - /// - /// Gets or sets the CommunicationMonitor - /// + /// + /// Gets or sets the CommunicationMonitor + /// public StatusMonitorBase CommunicationMonitor { get; private set; } #endregion @@ -189,29 +205,57 @@ namespace PepperDash.Essentials.Core #endregion } + /// + /// Abstract base class for Crestron GenericBase devices that are bridgeable + /// public abstract class CrestronGenericBridgeableBaseDevice : CrestronGenericBaseDevice, IBridgeAdvanced { + + /// + /// Constructor + /// + /// key of the device + /// name of the device + /// hardware instance protected CrestronGenericBridgeableBaseDevice(string key, string name, GenericBase hardware) : base(key, name, hardware) { } + /// + /// Constructor without hardware instance + /// + /// key of the device + /// name of the device protected CrestronGenericBridgeableBaseDevice(string key, string name) : base(key, name) { } - + /// + /// Links to API + /// + /// the trilist + /// the starting join number + /// the join map key + /// the bridge instance public abstract void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge); } //*********************************************************************************** - /// - /// Represents a CrestronGenericBaseDeviceEventIds - /// + /// + /// Represents a CrestronGenericBaseDeviceEventIds + /// public class CrestronGenericBaseDeviceEventIds { + /// + /// IsOnline event ID + /// public const uint IsOnline = 1; + + /// + /// IpConnectionsText event ID + /// public const uint IpConnectionsText =2; } @@ -220,9 +264,11 @@ namespace PepperDash.Essentials.Core /// public static class GenericBaseExtensions { - /// - /// RegisterWithLogging method - /// + /// + /// RegisterWithLogging method + /// + /// the GenericBase device + /// the device key public static eDeviceRegistrationUnRegistrationResponse RegisterWithLogging(this GenericBase device, string key) { var result = device.Register(); diff --git a/src/PepperDash.Essentials.Core/CrestronIO/GenericRelayDevice.cs b/src/PepperDash.Essentials.Core/CrestronIO/GenericRelayDevice.cs index 63221fe7..a41e1411 100644 --- a/src/PepperDash.Essentials.Core/CrestronIO/GenericRelayDevice.cs +++ b/src/PepperDash.Essentials.Core/CrestronIO/GenericRelayDevice.cs @@ -21,11 +21,22 @@ namespace PepperDash.Essentials.Core.CrestronIO [Description("Wrapper class for a Relay")] public class GenericRelayDevice : EssentialsBridgeableDevice, ISwitchedOutput { + /// + /// The RelayOutput controlled by this device + /// public Relay RelayOutput { get; private set; } + /// + /// Feedback to indicate whether the output is on + /// public BoolFeedback OutputIsOnFeedback { get; private set; } //Maintained for compatibility with PepperDash.Essentials.Core.Devices.CrestronProcessor + /// + /// Constructor for GenericRelayDevice + /// + /// key of the device + /// Relay output controlled by this device public GenericRelayDevice(string key, Relay relay) : base(key) { @@ -37,6 +48,13 @@ namespace PepperDash.Essentials.Core.CrestronIO RelayOutput.StateChange += RelayOutput_StateChange; } + /// + /// Constructor for GenericRelayDevice + /// + /// key of the device + /// name of the device + /// function to get the relay output + /// IO port configuration public GenericRelayDevice(string key, string name, Func postActivationFunc, IOPortConfig config) : base(key, name) @@ -212,6 +230,9 @@ namespace PepperDash.Essentials.Core.CrestronIO /// public class GenericRelayDeviceFactory : EssentialsDeviceFactory { + /// + /// Constructor for GenericRelayDeviceFactory + /// public GenericRelayDeviceFactory() { TypeNames = new List() { "relayoutput" }; diff --git a/src/PepperDash.Essentials.Core/CrestronIO/IDigitalInput.cs b/src/PepperDash.Essentials.Core/CrestronIO/IDigitalInput.cs index 7c63b92c..8e1b4c18 100644 --- a/src/PepperDash.Essentials.Core/CrestronIO/IDigitalInput.cs +++ b/src/PepperDash.Essentials.Core/CrestronIO/IDigitalInput.cs @@ -11,6 +11,9 @@ namespace PepperDash.Essentials.Core.CrestronIO /// public interface IDigitalInput { + /// + /// Feedback to indicate the state of the input + /// BoolFeedback InputStateFeedback { get; } } } \ No newline at end of file diff --git a/src/PepperDash.Essentials.Core/CrestronIO/IDigitalOutput.cs b/src/PepperDash.Essentials.Core/CrestronIO/IDigitalOutput.cs index b4151941..82aa0686 100644 --- a/src/PepperDash.Essentials.Core/CrestronIO/IDigitalOutput.cs +++ b/src/PepperDash.Essentials.Core/CrestronIO/IDigitalOutput.cs @@ -11,7 +11,15 @@ namespace PepperDash.Essentials.Core.CrestronIO /// public interface IDigitalOutput { + /// + /// Feedback to indicate the state of the output + /// BoolFeedback OutputStateFeedback { get; } + + /// + /// Sets the output state + /// + /// The desired state of the output void SetOutput(bool state); } } \ No newline at end of file diff --git a/src/PepperDash.Essentials.Core/CrestronIO/IHasCresnetBranches.cs b/src/PepperDash.Essentials.Core/CrestronIO/IHasCresnetBranches.cs index 4f70f914..ee86b5fe 100644 --- a/src/PepperDash.Essentials.Core/CrestronIO/IHasCresnetBranches.cs +++ b/src/PepperDash.Essentials.Core/CrestronIO/IHasCresnetBranches.cs @@ -13,6 +13,9 @@ namespace PepperDash.Essentials.Core /// public interface IHasCresnetBranches { + /// + /// Collection of Cresnet branches + /// CrestronCollection CresnetBranches { get; } } } \ No newline at end of file diff --git a/src/PepperDash.Essentials.Core/CrestronIO/ISwitchedOutput.cs b/src/PepperDash.Essentials.Core/CrestronIO/ISwitchedOutput.cs index 19f8e0df..30b4b8f9 100644 --- a/src/PepperDash.Essentials.Core/CrestronIO/ISwitchedOutput.cs +++ b/src/PepperDash.Essentials.Core/CrestronIO/ISwitchedOutput.cs @@ -13,14 +13,30 @@ namespace PepperDash.Essentials.Core.CrestronIO /// public interface ISwitchedOutput { + /// + /// Feedback to indicate whether the output is on + /// BoolFeedback OutputIsOnFeedback {get;} + /// + /// Turns the output on + /// void On(); + + /// + /// Turns the output off + /// void Off(); } + /// + /// Describes a collection of switched outputs + /// public interface ISwitchedOutputCollection { + /// + /// Dictionary of switched outputs by their port number + /// Dictionary SwitchedOutputs { get; } } } \ No newline at end of file diff --git a/src/PepperDash.Essentials.Core/Device Info/DeviceInfoEventArgs.cs b/src/PepperDash.Essentials.Core/Device Info/DeviceInfoEventArgs.cs index 22cd3b0d..266b0d0b 100644 --- a/src/PepperDash.Essentials.Core/Device Info/DeviceInfoEventArgs.cs +++ b/src/PepperDash.Essentials.Core/Device Info/DeviceInfoEventArgs.cs @@ -12,11 +12,18 @@ namespace PepperDash.Essentials.Core.DeviceInfo /// public DeviceInfo DeviceInfo { get; set; } + /// + /// Constructor + /// public DeviceInfoEventArgs() { } + /// + /// Constructor with DeviceInfo + /// + /// the DeviceInfo instance public DeviceInfoEventArgs(DeviceInfo devInfo) { DeviceInfo = devInfo; diff --git a/src/PepperDash.Essentials.Core/Device Info/IDeviceInfoProvider.cs b/src/PepperDash.Essentials.Core/Device Info/IDeviceInfoProvider.cs index 4ac9e6c3..3f5a4735 100644 --- a/src/PepperDash.Essentials.Core/Device Info/IDeviceInfoProvider.cs +++ b/src/PepperDash.Essentials.Core/Device Info/IDeviceInfoProvider.cs @@ -8,10 +8,19 @@ namespace PepperDash.Essentials.Core.DeviceInfo /// public interface IDeviceInfoProvider:IKeyed { + /// + /// Gets the DeviceInfo + /// DeviceInfo DeviceInfo { get; } + /// + /// Event fired when DeviceInfo changes + /// event DeviceInfoChangeHandler DeviceInfoChanged; + /// + /// Updates the DeviceInfo + /// void UpdateDeviceInfo(); } diff --git a/src/PepperDash.Essentials.Core/Device Info/NetworkDeviceHelpers.cs b/src/PepperDash.Essentials.Core/Device Info/NetworkDeviceHelpers.cs index 32c987b3..79eaa018 100644 --- a/src/PepperDash.Essentials.Core/Device Info/NetworkDeviceHelpers.cs +++ b/src/PepperDash.Essentials.Core/Device Info/NetworkDeviceHelpers.cs @@ -8,6 +8,9 @@ using Serilog.Events; namespace PepperDash.Essentials.Core.DeviceInfo { + /// + /// Static class NetworkDeviceHelpers + /// public static class NetworkDeviceHelpers { /// @@ -167,7 +170,14 @@ namespace PepperDash.Essentials.Core.DeviceInfo /// public class ArpEntry { + /// + /// The IP Address of the ARP Entry + /// public readonly IPAddress IpAddress; + + /// + /// The MAC Address of the ARP Entry + /// public readonly string MacAddress; ///