diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Config/Comm and IR/GenericComm.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Config/Comm and IR/GenericComm.cs index 0b0e4d82..dd3a835a 100644 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Config/Comm and IR/GenericComm.cs +++ b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Config/Comm and IR/GenericComm.cs @@ -13,8 +13,6 @@ using PepperDash.Essentials.Core.Config; namespace PepperDash.Essentials.Core { - - /// /// Serves as a generic wrapper class for all styles of IBasicCommuncation ports /// @@ -62,21 +60,19 @@ namespace PepperDash.Essentials.Core ConfigWriter.UpdateDeviceConfig(config); } - public class Factory : Essentials.Core.Factory - { - #region IDeviceFactory Members - - List TypeNames = new List() { "genericComm" }; - - #endregion - - public override IKeyed BuildDevice(DeviceConfig dc) - { - Debug.Console(1, "Factory Attempting to create new Generic Comm Device"); - return new GenericComm(dc); - } - } } + public class GenericCommFactory : Essentials.Core.EssentialsDeviceFactory + { + public override EssentialsDevice BuildDevice(DeviceConfig dc) + { + Debug.Console(1, "Factory Attempting to create new Generic Comm Device"); + return new GenericComm(dc); + } + public GenericCommFactory() + { + TypeNames = new List() { "genericComm" }; + } + } } \ No newline at end of file diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Devices/EssentialsDevice.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Devices/EssentialsDevice.cs index 88c62f48..c3fd2460 100644 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Devices/EssentialsDevice.cs +++ b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Devices/EssentialsDevice.cs @@ -19,9 +19,18 @@ namespace PepperDash.Essentials.Core { } + + protected EssentialsDevice(string key, string name) + : base(key, name) + { + + } } - public abstract class Factory : IDeviceFactory + /// + /// Devices the basic needs for a Device Factory + /// + public abstract class EssentialsDeviceFactory : IDeviceFactory where T:EssentialsDevice { #region IDeviceFactory Members @@ -35,13 +44,16 @@ namespace PepperDash.Essentials.Core } } + public abstract EssentialsDevice BuildDevice(DeviceConfig dc); + #endregion + } - public abstract IKeyed BuildDevice(DeviceConfig dc); - - protected Factory() - { - TypeNames = new List(); - } + /// + /// Devices the basic needs for a Device Factory + /// + public abstract class EssentialsPluginDeviceFactory : EssentialsDeviceFactory, IPluginDeviceFactory where T : EssentialsDevice + { + public string MinimumEssentialsFrameworkVersion { get; protected set; } } } \ No newline at end of file diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Factory/DeviceFactory.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Factory/DeviceFactory.cs index 47947691..5b5af20b 100644 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Factory/DeviceFactory.cs +++ b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Factory/DeviceFactory.cs @@ -96,7 +96,7 @@ namespace PepperDash.Essentials.Core { public CoreDeviceFactory() { - var genComm = new GenericComm.Factory() as IDeviceFactory; + var genComm = new GenericCommFactory() as IDeviceFactory; genComm.LoadTypeFactories(); } } diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Factory/IDeviceFactory.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Factory/IDeviceFactory.cs index 0781d647..ef792868 100644 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Factory/IDeviceFactory.cs +++ b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Factory/IDeviceFactory.cs @@ -4,6 +4,9 @@ using System.Linq; using System.Text; using Crestron.SimplSharp; +using PepperDash.Core; +using PepperDash.Essentials.Core.Config; + namespace PepperDash.Essentials.Core { /// diff --git a/essentials-framework/pepperdashcore-builds b/essentials-framework/pepperdashcore-builds index 15206840..acebe6b4 160000 --- a/essentials-framework/pepperdashcore-builds +++ b/essentials-framework/pepperdashcore-builds @@ -1 +1 @@ -Subproject commit 15206840b3e6338f695e4ffba634a72e51ea1be5 +Subproject commit acebe6b43b28cc3a93f899e9714292a0cc1ab2cc