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;
///