diff --git a/PepperDashEssentials/Bridges/BridgeBase.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Bridges/BridgeBase.cs
similarity index 55%
rename from PepperDashEssentials/Bridges/BridgeBase.cs
rename to essentials-framework/Essentials Core/PepperDashEssentialsBase/Bridges/BridgeBase.cs
index b3f131c3..b71aab01 100644
--- a/PepperDashEssentials/Bridges/BridgeBase.cs
+++ b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Bridges/BridgeBase.cs
@@ -1,407 +1,406 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using Crestron.SimplSharp;
-using Crestron.SimplSharpPro.EthernetCommunication;
-
-using Newtonsoft.Json;
-
-using PepperDash.Core;
-using PepperDash.Essentials.Core;
-using PepperDash.Essentials.Core.Lighting;
-using PepperDash.Essentials.Core.Devices;
-using PepperDash.Essentials.Devices.Common;
-using PepperDash.Essentials.Devices.Common.Cameras;
-using PepperDash.Essentials.Core.Config;
-using PepperDash.Essentials.Core.CrestronIO;
-using PepperDash.Essentials.DM;
-//using PepperDash.Essentials.Devices.Common.Cameras;
-
-namespace PepperDash.Essentials.Bridges
-{
- ///
- /// Helper methods for bridges
- ///
- public static class BridgeHelper
- {
- public static void PrintJoinMap(string command)
- {
- string bridgeKey = "";
- string deviceKey = "";
-
- var targets = command.Split(' ');
-
- bridgeKey = targets[0].Trim();
-
- var bridge = DeviceManager.GetDeviceForKey(bridgeKey) as EiscApi;
-
- if (bridge == null)
- {
- Debug.Console(0, "Unable to find bridge with key: '{0}'", bridgeKey);
- return;
- }
-
- if (targets.Length > 1)
- {
- deviceKey = targets[1].Trim();
-
- if (!string.IsNullOrEmpty(deviceKey))
- {
- bridge.PrintJoinMapForDevice(deviceKey);
- return;
- }
- }
- else
- {
- bridge.PrintJoinMaps();
- }
- }
- }
-
-
- ///
- /// Base class for all bridge class variants
- ///
- public class BridgeBase : Device
- {
- public BridgeApi Api { get; private set; }
-
- public BridgeBase(string key) :
- base(key)
- {
-
- }
-
- }
-
- ///
- /// Base class for bridge API variants
- ///
- public abstract class BridgeApi : Device
- {
- public BridgeApi(string key) :
- base(key)
- {
-
- }
- }
-
- ///
- /// Bridge API using EISC
- ///
- public class EiscApi : BridgeApi
- {
- public EiscApiPropertiesConfig PropertiesConfig { get; private set; }
-
- protected Dictionary JoinMaps { get; private set; }
-
- public ThreeSeriesTcpIpEthernetIntersystemCommunications Eisc { get; private set; }
-
- public EiscApi(DeviceConfig dc) :
- base(dc.Key)
- {
- JoinMaps = new Dictionary();
-
- PropertiesConfig = JsonConvert.DeserializeObject(dc.Properties.ToString());
-
- Eisc = new ThreeSeriesTcpIpEthernetIntersystemCommunications(PropertiesConfig.Control.IpIdInt, PropertiesConfig.Control.TcpSshProperties.Address, Global.ControlSystem);
-
- Eisc.SigChange += new Crestron.SimplSharpPro.DeviceSupport.SigEventHandler(Eisc_SigChange);
-
- Eisc.Register();
-
- AddPostActivationAction( () =>
- {
- Debug.Console(1, this, "Linking Devices...");
-
- foreach (var d in PropertiesConfig.Devices)
- {
- var device = DeviceManager.GetDeviceForKey(d.DeviceKey);
-
- if (device != null)
- {
- Debug.Console(1, this, "Linking Device: '{0}'", device.Key);
-
-
- if (device is IBridge) // Check for this first to allow bridges in plugins to override existing bridges that apply to the same type.
- {
- (device as IBridge).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey);
- continue;
- }
- else if (device is IBridgeAdvanced)
- {
- Debug.Console(2, this, "'{0}' is IBridgeAdvanced", device.Key);
- (device as IBridgeAdvanced).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey, this);
- }
- else if (device is PepperDash.Essentials.Core.Monitoring.SystemMonitorController)
- {
- (device as PepperDash.Essentials.Core.Monitoring.SystemMonitorController).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey);
- continue;
- }
- else if (device is GenericComm)
- {
- (device as GenericComm).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey);
- continue;
- }
- else if (device is CameraBase)
- {
- (device as CameraBase).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey, this);
- continue;
- }
- else if (device is PepperDash.Essentials.Core.DisplayBase)
- {
- (device as DisplayBase).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey);
- continue;
- }
- else if (device is DmChassisController)
- {
- (device as DmChassisController).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey);
- continue;
- }
- else if (device is DmBladeChassisController)
- {
- (device as DmBladeChassisController).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey);
- continue;
- }
- else if (device is DmpsRoutingController)
- {
- (device as DmpsRoutingController).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey);
- continue;
- }
- else if (device is DmpsAudioOutputController)
- {
- (device as DmpsAudioOutputController).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey);
- continue;
- }
- else if (device is DmTxControllerBase)
- {
- (device as DmTxControllerBase).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey);
- continue;
- }
- else if (device is DmRmcControllerBase)
- {
- (device as DmRmcControllerBase).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey);
- continue;
- }
- else if (device is GenericRelayDevice)
- {
- (device as GenericRelayDevice).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey);
- continue;
- }
- else if (device is IRSetTopBoxBase)
- {
- (device as IRSetTopBoxBase).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey);
- continue;
- }
- else if (device is IDigitalInput)
- {
- (device as IDigitalInput).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey);
- continue;
- }
- else if (device is AppleTV)
- {
- (device as AppleTV).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey);
- continue;
- }
- else if (device is HdMdxxxCEController)
- {
- (device as HdMdxxxCEController).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey);
- continue;
- }
- else if (device is LightingBase)
- {
- (device as LightingBase).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey);
- continue;
- }
- else if (device is DigitalLogger)
- {
- (device as DigitalLogger).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey);
- continue;
- }
- else if (device is PepperDash.Essentials.Devices.Common.Occupancy.GlsOccupancySensorBaseController)
- {
- (device as PepperDash.Essentials.Devices.Common.Occupancy.GlsOccupancySensorBaseController).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey);
- continue;
- }
- else if (device is StatusSignController)
- {
- (device as StatusSignController).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey);
- continue;
- }
- else if (device is C2nRthsController)
- {
- (device as C2nRthsController).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey);
- continue;
- }
- }
- }
-
- Debug.Console(1, this, "Devices Linked.");
- });
- }
-
- ///
- /// Adds a join map
- ///
- ///
- ///
- public void AddJoinMap(string deviceKey, JoinMapBaseAdvanced joinMap)
- {
- if (!JoinMaps.ContainsKey(deviceKey))
- {
- JoinMaps.Add(deviceKey, joinMap);
- }
- else
- {
- Debug.Console(2, this, "Unable to add join map with key '{0}'. Key already exists in JoinMaps dictionary", deviceKey);
- }
- }
-
- ///
- /// Prints all the join maps on this bridge
- ///
- public void PrintJoinMaps()
- {
- Debug.Console(0, this, "Join Maps for EISC IPID: {0}", Eisc.ID.ToString("X"));
-
- foreach (var joinMap in JoinMaps)
- {
- Debug.Console(0, "Join map for device '{0}':", joinMap.Key);
- joinMap.Value.PrintJoinMapInfo();
- }
- }
-
- ///
- /// Prints the join map for a device by key
- ///
- ///
- public void PrintJoinMapForDevice(string deviceKey)
- {
- var joinMap = JoinMaps[deviceKey];
-
- if (joinMap == null)
- {
- Debug.Console(0, this, "Unable to find joinMap for device with key: '{0}'", deviceKey);
- return;
- }
-
- Debug.Console(0, "Join map for device '{0}' on EISC '{1}':", deviceKey, this.Key);
- joinMap.PrintJoinMapInfo();
- }
-
- ///
- /// Used for debugging to trigger an action based on a join number and type
- ///
- ///
- ///
- public void ExecuteJoinAction(uint join, string type, object state)
- {
- try
- {
- switch (type.ToLower())
- {
- case "digital":
- {
- var uo = Eisc.BooleanOutput[join].UserObject as Action;
- if (uo != null)
- {
- Debug.Console(1, this, "Executing Action: {0}", uo.ToString());
- uo(Convert.ToBoolean(state));
- }
- else
- Debug.Console(1, this, "User Action is null. Nothing to Execute");
- break;
- }
- case "analog":
- {
- var uo = Eisc.BooleanOutput[join].UserObject as Action;
- if (uo != null)
- {
- Debug.Console(1, this, "Executing Action: {0}", uo.ToString());
- uo(Convert.ToUInt16(state));
- }
- else
- Debug.Console(1, this, "User Action is null. Nothing to Execute"); break;
- }
- case "serial":
- {
- var uo = Eisc.BooleanOutput[join].UserObject as Action;
- if (uo != null)
- {
- Debug.Console(1, this, "Executing Action: {0}", uo.ToString());
- uo(Convert.ToString(state));
- }
- else
- Debug.Console(1, this, "User Action is null. Nothing to Execute");
- break;
- }
- default:
- {
- Debug.Console(1, "Unknown join type. Use digital/serial/analog");
- break;
- }
- }
- }
- catch (Exception e)
- {
- Debug.Console(1, this, "Error: {0}", e);
- }
-
- }
-
- ///
- /// Handles incoming sig changes
- ///
- ///
- ///
- void Eisc_SigChange(object currentDevice, Crestron.SimplSharpPro.SigEventArgs args)
- {
- try
- {
- if (Debug.Level >= 1)
- Debug.Console(1, this, "EiscApi change: {0} {1}={2}", args.Sig.Type, args.Sig.Number, args.Sig.StringValue);
- var uo = args.Sig.UserObject;
- if (uo != null)
- {
- Debug.Console(1, this, "Executing Action: {0}", uo.ToString());
- if (uo is Action)
- (uo as Action)(args.Sig.BoolValue);
- else if (uo is Action)
- (uo as Action)(args.Sig.UShortValue);
- else if (uo is Action)
- (uo as Action)(args.Sig.StringValue);
- }
- }
- catch (Exception e)
- {
- Debug.Console(2, this, "Error in Eisc_SigChange handler: {0}", e);
- }
- }
- }
-
- public class EiscApiPropertiesConfig
- {
- [JsonProperty("control")]
- public EssentialsControlPropertiesConfig Control { get; set; }
-
- [JsonProperty("devices")]
- public List Devices { get; set; }
-
-
- public class ApiDevicePropertiesConfig
- {
- [JsonProperty("deviceKey")]
- public string DeviceKey { get; set; }
-
- [JsonProperty("joinStart")]
- public uint JoinStart { get; set; }
-
- [JsonProperty("joinMapKey")]
- public string JoinMapKey { get; set; }
- }
-
- }
-
-
+using System;
+using System.Collections.Generic;
+using Crestron.SimplSharp.Reflection;
+using Crestron.SimplSharpPro.EthernetCommunication;
+
+using Newtonsoft.Json;
+
+using PepperDash.Core;
+using PepperDash.Essentials.Core.Lighting;
+using PepperDash.Essentials.Core.Config;
+using PepperDash.Essentials.Core.CrestronIO;
+
+//using PepperDash.Essentials.Devices.Common.Cameras;
+
+namespace PepperDash.Essentials.Core.Bridges
+{
+ ///
+ /// Helper methods for bridges
+ ///
+ public static class BridgeHelper
+ {
+ public static void PrintJoinMap(string command)
+ {
+ var targets = command.Split(' ');
+
+ var bridgeKey = targets[0].Trim();
+
+ var bridge = DeviceManager.GetDeviceForKey(bridgeKey) as EiscApi;
+
+ if (bridge == null)
+ {
+ Debug.Console(0, "Unable to find bridge with key: '{0}'", bridgeKey);
+ return;
+ }
+
+ if (targets.Length > 1)
+ {
+ var deviceKey = targets[1].Trim();
+
+ if (string.IsNullOrEmpty(deviceKey)) return;
+ bridge.PrintJoinMapForDevice(deviceKey);
+ }
+ else
+ {
+ bridge.PrintJoinMaps();
+ }
+ }
+ }
+
+
+ ///
+ /// Base class for all bridge class variants
+ ///
+ public class BridgeBase : EssentialsDevice
+ {
+ public BridgeApi Api { get; protected set; }
+
+ public BridgeBase(string key) :
+ base(key)
+ {
+
+ }
+ }
+
+ ///
+ /// Base class for bridge API variants
+ ///
+ public abstract class BridgeApi : EssentialsDevice
+ {
+ protected BridgeApi(string key) :
+ base(key)
+ {
+
+ }
+ }
+
+ ///
+ /// Bridge API using EISC
+ ///
+ public class EiscApi : BridgeApi
+ {
+ public EiscApiPropertiesConfig PropertiesConfig { get; private set; }
+
+ protected Dictionary JoinMaps { get; private set; }
+
+ public ThreeSeriesTcpIpEthernetIntersystemCommunications Eisc { get; private set; }
+
+ public EiscApi(DeviceConfig dc) :
+ base(dc.Key)
+ {
+ JoinMaps = new Dictionary();
+
+ PropertiesConfig = JsonConvert.DeserializeObject(dc.Properties.ToString());
+
+ Eisc = new ThreeSeriesTcpIpEthernetIntersystemCommunications(PropertiesConfig.Control.IpIdInt, PropertiesConfig.Control.TcpSshProperties.Address, Global.ControlSystem);
+
+ Eisc.SigChange += Eisc_SigChange;
+
+ Eisc.Register();
+
+ AddPostActivationAction( () =>
+ {
+ Debug.Console(1, this, "Linking Devices...");
+
+ foreach (var d in PropertiesConfig.Devices)
+ {
+ var device = DeviceManager.GetDeviceForKey(d.DeviceKey);
+
+ if (device == null) continue;
+
+ Debug.Console(1, this, "Linking Device: '{0}'", device.Key);
+
+ if (device.GetType().GetCType().IsAssignableFrom(typeof (IBridge)))
+ {
+ var bridge = device as IBridge;
+
+ if (bridge != null) bridge.LinkToApi(Eisc, d.JoinStart, d.JoinMapKey);
+ continue;
+ }
+
+ if (device.GetType().GetCType().IsAssignableFrom(typeof (IBridgeAdvanced)))
+ {
+ var bridge = device as IBridgeAdvanced;
+ if (bridge != null) bridge.LinkToApi(Eisc, d.JoinStart, d.JoinMapKey, this);
+ }
+
+ //if (device is IBridge) // Check for this first to allow bridges in plugins to override existing bridges that apply to the same type.
+ //{
+ // (device as IBridge).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey);
+ // continue;
+ //}
+ //else if (device is IBridgeAdvanced)
+ //{
+ // Debug.Console(2, this, "'{0}' is IBridgeAdvanced", device.Key);
+ // (device as IBridgeAdvanced).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey, this);
+ //}
+ //else if (device is PepperDash.Essentials.Core.Monitoring.SystemMonitorController)
+ //{
+ // (device as PepperDash.Essentials.Core.Monitoring.SystemMonitorController).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey);
+ // continue;
+ //}
+ //else if (device is GenericComm)
+ //{
+ // (device as GenericComm).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey);
+ // continue;
+ //}
+ //else if (device is CameraBase)
+ //{
+ // (device as CameraBase).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey, this);
+ // continue;
+ //}
+ //else if (device is PepperDash.Essentials.Core.DisplayBase)
+ //{
+ // (device as DisplayBase).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey);
+ // continue;
+ //}
+ //else if (device is DmChassisController)
+ //{
+ // (device as DmChassisController).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey);
+ // continue;
+ //}
+ //else if (device is DmBladeChassisController)
+ //{
+ // (device as DmBladeChassisController).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey);
+ // continue;
+ //}
+ //else if (device is DmpsRoutingController)
+ //{
+ // (device as DmpsRoutingController).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey);
+ // continue;
+ //}
+ //else if (device is DmpsAudioOutputController)
+ //{
+ // (device as DmpsAudioOutputController).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey);
+ // continue;
+ //}
+ //else if (device is DmTxControllerBase)
+ //{
+ // (device as DmTxControllerBase).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey);
+ // continue;
+ //}
+ //else if (device is DmRmcControllerBase)
+ //{
+ // (device as DmRmcControllerBase).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey);
+ // continue;
+ //}
+ //else if (device is GenericRelayDevice)
+ //{
+ // (device as GenericRelayDevice).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey);
+ // continue;
+ //}
+ //else if (device is IRSetTopBoxBase)
+ //{
+ // (device as IRSetTopBoxBase).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey);
+ // continue;
+ //}
+ //else if (device is IDigitalInput)
+ //{
+ // (device as IDigitalInput).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey);
+ // continue;
+ //}
+ //else if (device is AppleTV)
+ //{
+ // (device as AppleTV).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey);
+ // continue;
+ //}
+ //else if (device is HdMdxxxCEController)
+ //{
+ // (device as HdMdxxxCEController).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey);
+ // continue;
+ //}
+ //else if (device is LightingBase)
+ //{
+ // (device as LightingBase).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey);
+ // continue;
+ //}
+ //else if (device is DigitalLogger)
+ //{
+ // (device as DigitalLogger).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey);
+ // continue;
+ //}
+ //else if (device is PepperDash.Essentials.Devices.Common.Occupancy.GlsOccupancySensorBaseController)
+ //{
+ // (device as PepperDash.Essentials.Devices.Common.Occupancy.GlsOccupancySensorBaseController).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey);
+ // continue;
+ //}
+ //else if (device is StatusSignController)
+ //{
+ // (device as StatusSignController).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey);
+ // continue;
+ //}
+ //else if (device is C2nRthsController)
+ //{
+ // (device as C2nRthsController).LinkToApi(Eisc, d.JoinStart, d.JoinMapKey);
+ // continue;
+ //}
+ }
+
+ Debug.Console(1, this, "Devices Linked.");
+ });
+ }
+
+ ///
+ /// Adds a join map
+ ///
+ ///
+ ///
+ public void AddJoinMap(string deviceKey, JoinMapBaseAdvanced joinMap)
+ {
+ if (!JoinMaps.ContainsKey(deviceKey))
+ {
+ JoinMaps.Add(deviceKey, joinMap);
+ }
+ else
+ {
+ Debug.Console(2, this, "Unable to add join map with key '{0}'. Key already exists in JoinMaps dictionary", deviceKey);
+ }
+ }
+
+ ///
+ /// Prints all the join maps on this bridge
+ ///
+ public void PrintJoinMaps()
+ {
+ Debug.Console(0, this, "Join Maps for EISC IPID: {0}", Eisc.ID.ToString("X"));
+
+ foreach (var joinMap in JoinMaps)
+ {
+ Debug.Console(0, "Join map for device '{0}':", joinMap.Key);
+ joinMap.Value.PrintJoinMapInfo();
+ }
+ }
+
+ ///
+ /// Prints the join map for a device by key
+ ///
+ ///
+ public void PrintJoinMapForDevice(string deviceKey)
+ {
+ var joinMap = JoinMaps[deviceKey];
+
+ if (joinMap == null)
+ {
+ Debug.Console(0, this, "Unable to find joinMap for device with key: '{0}'", deviceKey);
+ return;
+ }
+
+ Debug.Console(0, "Join map for device '{0}' on EISC '{1}':", deviceKey, this.Key);
+ joinMap.PrintJoinMapInfo();
+ }
+
+ ///
+ /// Used for debugging to trigger an action based on a join number and type
+ ///
+ ///
+ ///
+ public void ExecuteJoinAction(uint join, string type, object state)
+ {
+ try
+ {
+ switch (type.ToLower())
+ {
+ case "digital":
+ {
+ var uo = Eisc.BooleanOutput[join].UserObject as Action;
+ if (uo != null)
+ {
+ Debug.Console(1, this, "Executing Action: {0}", uo.ToString());
+ uo(Convert.ToBoolean(state));
+ }
+ else
+ Debug.Console(1, this, "User Action is null. Nothing to Execute");
+ break;
+ }
+ case "analog":
+ {
+ var uo = Eisc.BooleanOutput[join].UserObject as Action;
+ if (uo != null)
+ {
+ Debug.Console(1, this, "Executing Action: {0}", uo.ToString());
+ uo(Convert.ToUInt16(state));
+ }
+ else
+ Debug.Console(1, this, "User Action is null. Nothing to Execute"); break;
+ }
+ case "serial":
+ {
+ var uo = Eisc.BooleanOutput[join].UserObject as Action;
+ if (uo != null)
+ {
+ Debug.Console(1, this, "Executing Action: {0}", uo.ToString());
+ uo(Convert.ToString(state));
+ }
+ else
+ Debug.Console(1, this, "User Action is null. Nothing to Execute");
+ break;
+ }
+ default:
+ {
+ Debug.Console(1, "Unknown join type. Use digital/serial/analog");
+ break;
+ }
+ }
+ }
+ catch (Exception e)
+ {
+ Debug.Console(1, this, "Error: {0}", e);
+ }
+
+ }
+
+ ///
+ /// Handles incoming sig changes
+ ///
+ ///
+ ///
+ void Eisc_SigChange(object currentDevice, Crestron.SimplSharpPro.SigEventArgs args)
+ {
+ try
+ {
+ if (Debug.Level >= 1)
+ Debug.Console(1, this, "EiscApi change: {0} {1}={2}", args.Sig.Type, args.Sig.Number, args.Sig.StringValue);
+ var uo = args.Sig.UserObject;
+ if (uo != null)
+ {
+ Debug.Console(1, this, "Executing Action: {0}", uo.ToString());
+ if (uo is Action)
+ (uo as Action)(args.Sig.BoolValue);
+ else if (uo is Action)
+ (uo as Action)(args.Sig.UShortValue);
+ else if (uo is Action)
+ (uo as Action)(args.Sig.StringValue);
+ }
+ }
+ catch (Exception e)
+ {
+ Debug.Console(2, this, "Error in Eisc_SigChange handler: {0}", e);
+ }
+ }
+ }
+
+ public class EiscApiPropertiesConfig
+ {
+ [JsonProperty("control")]
+ public EssentialsControlPropertiesConfig Control { get; set; }
+
+ [JsonProperty("devices")]
+ public List Devices { get; set; }
+
+
+ public class ApiDevicePropertiesConfig
+ {
+ [JsonProperty("deviceKey")]
+ public string DeviceKey { get; set; }
+
+ [JsonProperty("joinStart")]
+ public uint JoinStart { get; set; }
+
+ [JsonProperty("joinMapKey")]
+ public string JoinMapKey { get; set; }
+ }
+
+ }
+
+
}
\ No newline at end of file
diff --git a/PepperDashEssentials/Bridges/IBridge.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Bridges/IBridge.cs
similarity index 82%
rename from PepperDashEssentials/Bridges/IBridge.cs
rename to essentials-framework/Essentials Core/PepperDashEssentialsBase/Bridges/IBridge.cs
index f2b959ed..a4e09c8e 100644
--- a/PepperDashEssentials/Bridges/IBridge.cs
+++ b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Bridges/IBridge.cs
@@ -1,11 +1,7 @@
using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using Crestron.SimplSharp;
using Crestron.SimplSharpPro.DeviceSupport;
-namespace PepperDash.Essentials.Bridges
+namespace PepperDash.Essentials.Core.Bridges
{
///
/// Defines a device that uses the legacy JoinMapBase for its join map