diff --git a/PepperDashEssentials/Bridges/BridgeBase.cs b/PepperDashEssentials/Bridges/BridgeBase.cs index cf2d2f27..b8cf0fc0 100644 --- a/PepperDashEssentials/Bridges/BridgeBase.cs +++ b/PepperDashEssentials/Bridges/BridgeBase.cs @@ -5,6 +5,8 @@ using System.Text; using Crestron.SimplSharp; using Crestron.SimplSharpPro.EthernetCommunication; +using Newtonsoft.Json; + using PepperDash.Core; using PepperDash.Essentials.Core; using PepperDash.Essentials.Core.Devices; @@ -76,20 +78,24 @@ namespace PepperDash.Essentials.Bridges } } - - - - /// - /// Defines each type and it's matching API type - /// - public static class DeviceApiFactory + public class EiscApiPropertiesConfig { - public static Dictionary TypeMap = new Dictionary + [JsonProperty("control")] + public EssentialsControlPropertiesConfig Control { get; set; } + + + [JsonProperty("devices")] + public List Devices { get; set; } + + public class ApiDevice { - { typeof(DmChassisController), typeof(DmChassisControllerApi) }, - { typeof(IBasicCommunication), typeof(IBasicCommunicationApi) } - //{ typeof(SomeShittyDisplayController), typeof(SomeShittyDisplayControllerApi) } - }; + [JsonProperty("deviceKey")] + public string DeviceKey { get; set; } + + [JsonProperty("joinStart")] + public int JoinStart { get; set; } + } + } @@ -159,20 +165,6 @@ namespace PepperDash.Essentials.Bridges - public class DmChassisController : Device - { - public DmChassisController(string key) - : base(key) - { - - } - - public void SetInput(int input) - { - Debug.Console(2, this, "Dm Chassis {0}, input {1}", Key, input); - } - } - /// /// Each flavor of API is a static class with static properties and a static constructor that /// links up the things to do. diff --git a/PepperDashEssentials/Bridges/IBasicCommunicationBridgeMap.cs b/PepperDashEssentials/Bridges/IBasicCommunicationBridgeMap.cs index 5b7998cd..69806109 100644 --- a/PepperDashEssentials/Bridges/IBasicCommunicationBridgeMap.cs +++ b/PepperDashEssentials/Bridges/IBasicCommunicationBridgeMap.cs @@ -15,9 +15,9 @@ namespace PepperDash.Essentials.Bridges.TEST /// /// /// - public static class DmChassisControllerTrilistBridgeExtensions + public static class DmChassisControllerApiExtensions { - public static void LinkMeToTrilist(this PepperDash.Essentials.DM.DmChassisController chassis, + public static void LinkToApi(this PepperDash.Essentials.DM.DmChassisController chassis, BasicTriList trilist, Dictionary map, uint joinstart) { uint joinOffset = joinstart - 1; @@ -48,7 +48,7 @@ namespace PepperDash.Essentials.Bridges.TEST /// /// For trilists to com sockets only /// - public static class IBasicCommunicationTrilistBridgeExtensions + public static class IBasicCommunicationApiExtensions { /// /// @@ -56,11 +56,12 @@ namespace PepperDash.Essentials.Bridges.TEST /// /// /// - public static void LinkMeToTrilist(this IBasicCommunication comm, BasicTriList trilist, uint joinStart) + public static void LinkToApi(this IBasicCommunication comm, BasicTriList trilist, uint joinStart) { // this is a permanent event handler. This cannot be -= from event comm.TextReceived += (s, a) => trilist.SetString(joinStart, a.Text); trilist.SetStringSigAction(joinStart, new Action(s => comm.SendText(s))); + var sComm = comm as ISocketStatus; if (sComm != null) { diff --git a/PepperDashEssentials/ControlSystem.cs b/PepperDashEssentials/ControlSystem.cs index f33537ae..02a95d85 100644 --- a/PepperDashEssentials/ControlSystem.cs +++ b/PepperDashEssentials/ControlSystem.cs @@ -235,6 +235,8 @@ namespace PepperDash.Essentials var newDev = DeviceFactory.GetDevice(devConf); // Then associated library factories + if (newDev == null) + newDev = PepperDash.Essentials.Core.DeviceFactory.GetDevice(devConf); if (newDev == null) newDev = PepperDash.Essentials.Devices.Common.DeviceFactory.GetDevice(devConf); if (newDev == null) diff --git a/Release Package/PepperDashEssentials.cpz b/Release Package/PepperDashEssentials.cpz index 47114c83..7da84300 100644 Binary files a/Release Package/PepperDashEssentials.cpz and b/Release Package/PepperDashEssentials.cpz differ diff --git a/Release Package/PepperDashEssentials.dll b/Release Package/PepperDashEssentials.dll index b888de8f..40f3f54b 100644 Binary files a/Release Package/PepperDashEssentials.dll and b/Release Package/PepperDashEssentials.dll differ diff --git a/essentials-framework b/essentials-framework index 5f438394..ae1719ee 160000 --- a/essentials-framework +++ b/essentials-framework @@ -1 +1 @@ -Subproject commit 5f438394e02474347ed8c18c47e98b4e95bef3af +Subproject commit ae1719ee9b2864c91b42be05874d0d5b13e27ed5