diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Crestron/CrestronGenericBaseDevice.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Crestron/CrestronGenericBaseDevice.cs
index ae1fedde..6d6a5fb4 100644
--- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Crestron/CrestronGenericBaseDevice.cs
+++ b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Crestron/CrestronGenericBaseDevice.cs
@@ -1,35 +1,35 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using Crestron.SimplSharp;
-using Crestron.SimplSharpPro;
-using Crestron.SimplSharpPro.DeviceSupport;
-
-using PepperDash.Core;
-
-namespace PepperDash.Essentials.Core
-{
- ///
- /// A bridge class to cover the basic features of GenericBase hardware
- ///
- public class CrestronGenericBaseDevice : Device, IOnline, IHasFeedback, ICommunicationMonitor, IUsageTracking
- {
- public virtual GenericBase Hardware { get; protected set; }
-
- ///
- /// Returns a list containing the Outputs that we want to expose.
- ///
- public FeedbackCollection Feedbacks { get; private set; }
-
- public BoolFeedback IsOnline { get; private set; }
- public BoolFeedback IsRegistered { get; private set; }
- public StringFeedback IpConnectionsText { get; private set; }
-
- ///
- /// Used by implementing classes to prevent registration with Crestron TLDM. For
- /// devices like RMCs and TXs attached to a chassis.
- ///
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Crestron.SimplSharp;
+using Crestron.SimplSharpPro;
+using Crestron.SimplSharpPro.DeviceSupport;
+
+using PepperDash.Core;
+
+namespace PepperDash.Essentials.Core
+{
+ ///
+ /// A bridge class to cover the basic features of GenericBase hardware
+ ///
+ public class CrestronGenericBaseDevice : Device, IOnline, IHasFeedback, ICommunicationMonitor, IUsageTracking
+ {
+ public virtual GenericBase Hardware { get; protected set; }
+
+ ///
+ /// Returns a list containing the Outputs that we want to expose.
+ ///
+ public FeedbackCollection Feedbacks { get; private set; }
+
+ public BoolFeedback IsOnline { get; private set; }
+ public BoolFeedback IsRegistered { get; private set; }
+ public StringFeedback IpConnectionsText { get; private set; }
+
+ ///
+ /// Used by implementing classes to prevent registration with Crestron TLDM. For
+ /// devices like RMCs and TXs attached to a chassis.
+ ///
public bool PreventRegistration { get; protected set; }
public CrestronGenericBaseDevice(string key, string name, GenericBase hardware)
@@ -47,118 +47,123 @@ namespace PepperDash.Essentials.Core
else
return string.Empty;
});
- AddToFeedbackList(IsOnline, IsRegistered, IpConnectionsText);
+ AddToFeedbackList(IsOnline, IpConnectionsText);
CommunicationMonitor = new CrestronGenericBaseCommunicationMonitor(this, hardware, 120000, 300000);
- }
-
- ///
- /// Make sure that overriding classes call this!
- /// Registers the Crestron device, connects up to the base events, starts communication monitor
- ///
- public override bool CustomActivate()
- {
- Debug.Console(0, this, "Activating");
- if (!PreventRegistration)
- {
- //Debug.Console(1, this, " Does not require registration. Skipping");
-
- var response = Hardware.RegisterWithLogging(Key);
- if (response != eDeviceRegistrationUnRegistrationResponse.Success)
- {
- //Debug.Console(0, this, "ERROR: Cannot register Crestron device: {0}", response);
- return false;
- }
+ }
+
+ ///
+ /// Make sure that overriding classes call this!
+ /// Registers the Crestron device, connects up to the base events, starts communication monitor
+ ///
+ public override bool CustomActivate()
+ {
+ Debug.Console(0, this, "Activating");
+ if (!PreventRegistration)
+ {
+ //Debug.Console(1, this, " Does not require registration. Skipping");
+
+ var response = Hardware.RegisterWithLogging(Key);
+ if (response != eDeviceRegistrationUnRegistrationResponse.Success)
+ {
+ //Debug.Console(0, this, "ERROR: Cannot register Crestron device: {0}", response);
+ return false;
+ }
+
+ IsRegistered.FireUpdate();
}
+
foreach (var f in Feedbacks)
{
f.FireUpdate();
- }
-
- Hardware.OnlineStatusChange += new OnlineStatusChangeEventHandler(Hardware_OnlineStatusChange);
- CommunicationMonitor.Start();
-
- return true;
- }
-
- ///
- /// This disconnects events and unregisters the base hardware device.
- ///
- ///
- public override bool Deactivate()
- {
- CommunicationMonitor.Stop();
- Hardware.OnlineStatusChange -= Hardware_OnlineStatusChange;
-
- return Hardware.UnRegister() == eDeviceRegistrationUnRegistrationResponse.Success;
- }
-
- ///
- /// Adds feedback(s) to the list
- ///
- ///
- public void AddToFeedbackList(params Feedback[] newFbs)
- {
- foreach (var f in newFbs)
- {
- if (f != null)
- {
- if (!Feedbacks.Contains(f))
- {
+ }
+
+ Hardware.OnlineStatusChange += new OnlineStatusChangeEventHandler(Hardware_OnlineStatusChange);
+ CommunicationMonitor.Start();
+
+ return true;
+ }
+
+ ///
+ /// This disconnects events and unregisters the base hardware device.
+ ///
+ ///
+ public override bool Deactivate()
+ {
+ CommunicationMonitor.Stop();
+ Hardware.OnlineStatusChange -= Hardware_OnlineStatusChange;
+
+ var success = Hardware.UnRegister() == eDeviceRegistrationUnRegistrationResponse.Success;
+
+ IsRegistered.FireUpdate();
+
+ return success;
+ }
+
+ ///
+ /// Adds feedback(s) to the list
+ ///
+ ///
+ public void AddToFeedbackList(params Feedback[] newFbs)
+ {
+ foreach (var f in newFbs)
+ {
+ if (f != null)
+ {
+ if (!Feedbacks.Contains(f))
+ {
Feedbacks.Add(f);
- }
- }
- }
- }
-
- void Hardware_OnlineStatusChange(GenericBase currentDevice, OnlineOfflineEventArgs args)
- {
- //if (args.DeviceOnLine)
- //{
- foreach (var feedback in Feedbacks)
- {
- if (feedback != null)
- feedback.FireUpdate();
- }
- //}
- }
-
- #region IStatusMonitor Members
-
- public StatusMonitorBase CommunicationMonitor { get; private set; }
- #endregion
-
- #region IUsageTracking Members
-
- public UsageTracking UsageTracker { get; set; }
-
- #endregion
- }
-
- //***********************************************************************************
- public class CrestronGenericBaseDeviceEventIds
- {
- public const uint IsOnline = 1;
- public const uint IpConnectionsText =2;
- }
-
- ///
- /// Adds logging to Register() failure
- ///
- public static class GenericBaseExtensions
- {
- public static eDeviceRegistrationUnRegistrationResponse RegisterWithLogging(this GenericBase device, string key)
- {
- var result = device.Register();
- var level = result == eDeviceRegistrationUnRegistrationResponse.Success ?
- Debug.ErrorLogLevel.Notice : Debug.ErrorLogLevel.Error;
- Debug.Console(0, level, "Register device result: '{0}', type '{1}', result {2}", key, device, result);
- //if (result != eDeviceRegistrationUnRegistrationResponse.Success)
- //{
- // Debug.Console(0, Debug.ErrorLogLevel.Error, "Cannot register device '{0}': {1}", key, result);
- //}
- return result;
- }
-
- }
+ }
+ }
+ }
+ }
+
+ void Hardware_OnlineStatusChange(GenericBase currentDevice, OnlineOfflineEventArgs args)
+ {
+ Debug.Console(2, this, "OnlineStatusChange Event. Online = {0}", args.DeviceOnLine);
+ foreach (var feedback in Feedbacks)
+ {
+ if (feedback != null)
+ feedback.FireUpdate();
+ }
+ }
+
+ #region IStatusMonitor Members
+
+ public StatusMonitorBase CommunicationMonitor { get; private set; }
+ #endregion
+
+ #region IUsageTracking Members
+
+ public UsageTracking UsageTracker { get; set; }
+
+ #endregion
+ }
+
+ //***********************************************************************************
+ public class CrestronGenericBaseDeviceEventIds
+ {
+ public const uint IsOnline = 1;
+ public const uint IpConnectionsText =2;
+ }
+
+ ///
+ /// Adds logging to Register() failure
+ ///
+ public static class GenericBaseExtensions
+ {
+ public static eDeviceRegistrationUnRegistrationResponse RegisterWithLogging(this GenericBase device, string key)
+ {
+ var result = device.Register();
+ var level = result == eDeviceRegistrationUnRegistrationResponse.Success ?
+ Debug.ErrorLogLevel.Notice : Debug.ErrorLogLevel.Error;
+ Debug.Console(0, level, "Register device result: '{0}', type '{1}', result {2}", key, device, result);
+ //if (result != eDeviceRegistrationUnRegistrationResponse.Success)
+ //{
+ // Debug.Console(0, Debug.ErrorLogLevel.Error, "Cannot register device '{0}': {1}", key, result);
+ //}
+ return result;
+ }
+
+ }
}
\ No newline at end of file