From be96adcc0667ac38f2cb212666a4aab42ec85f55 Mon Sep 17 00:00:00 2001 From: jkdevito Date: Tue, 19 Dec 2023 10:50:55 -0600 Subject: [PATCH 1/3] feat: add cen-io-com102 and cen-io-com202 support --- .../CenIoCom/CenIoComController.cs | 85 +++++++++++++++++++ .../PepperDash_Essentials_Core.csproj | 1 + 2 files changed, 86 insertions(+) create mode 100644 essentials-framework/Essentials Core/PepperDashEssentialsBase/Crestron IO/CenIoCom/CenIoComController.cs diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Crestron IO/CenIoCom/CenIoComController.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Crestron IO/CenIoCom/CenIoComController.cs new file mode 100644 index 00000000..bbd496b4 --- /dev/null +++ b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Crestron IO/CenIoCom/CenIoComController.cs @@ -0,0 +1,85 @@ +using System.Collections.Generic; +using Crestron.SimplSharpPro; +using Crestron.SimplSharpPro.GeneralIO; +using PepperDash.Core; +using PepperDash.Essentials.Core.Config; + +namespace PepperDash.Essentials.Core.CrestronIO +{ + /// + /// Wrapper class for CEN-IO-COM-Xxx expander module + /// + [Description("Wrapper class for the CEN-IO-COM-102 & CEN-IO-COM-202 expander module")] + public class CenIoComController : CrestronGenericBaseDevice, IComPorts + { + private readonly CenIoCom _cenIoCom; + + public CenIoComController(string key, string name, CenIoCom cenIo) + :base(key, name, cenIo) + { + _cenIoCom = cenIo; + } + + #region Implementation of IComPorts + + public CrestronCollection ComPorts + { + get { return _cenIoCom.ComPorts; } + } + + public int NumberOfComPorts + { + get { return _cenIoCom.NumberOfComPorts; } + } + + #endregion + + } + + public class CenIoCom102ControllerFactory : EssentialsDeviceFactory + { + private const string CenIoCom102Type = "ceniocom102"; + private const string CenIoCom202Type = "ceniocom202"; + + public CenIoCom102ControllerFactory() + { + TypeNames = new List { CenIoCom102Type, CenIoCom202Type }; + } + + public override EssentialsDevice BuildDevice(DeviceConfig dc) + { + Debug.Console(1, "Factory Attempting to create new CEN-IO-COM-Xxx Device"); + + var control = CommFactory.GetControlPropertiesConfig(dc); + if (control == null) + { + Debug.Console(1, "Factory failed to create a new CEN-IO-COM-Xxx Device, control properties not found"); + return null; + } + + var ipid = control.IpIdInt; + if (ipid < 2) + { + Debug.Console(1, "Factory failed to create a new CEN-IO-COM-Xxx Device, invalid IP-ID found"); + return null; + } + + switch (dc.Type) + { + case CenIoCom102Type: + { + return new CenIoComController(dc.Key, dc.Name, new CenIoCom102(ipid, Global.ControlSystem)); + } + case CenIoCom202Type: + { + return new CenIoComController(dc.Key, dc.Name, new CenIoCom202(ipid, Global.ControlSystem)); + } + default: + { + Debug.Console(1, "Factory failed to create a new CEN-IO-COM-Xxx Device, invalid type '{0}'", dc.Type); + return null; + } + } + } + } +} \ No newline at end of file diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/PepperDash_Essentials_Core.csproj b/essentials-framework/Essentials Core/PepperDashEssentialsBase/PepperDash_Essentials_Core.csproj index c1445edb..4c01cc6a 100644 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/PepperDash_Essentials_Core.csproj +++ b/essentials-framework/Essentials Core/PepperDashEssentialsBase/PepperDash_Essentials_Core.csproj @@ -184,6 +184,7 @@ + From 26f9118154b6b0ccb65a16097b89de1e2ff43c06 Mon Sep 17 00:00:00 2001 From: jtalborough Date: Thu, 25 Jan 2024 13:15:12 -0500 Subject: [PATCH 2/3] chore: update PepperDashCore package version --- packages.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages.config b/packages.config index 761b11cb..649b9bdb 100644 --- a/packages.config +++ b/packages.config @@ -1,3 +1,3 @@ - + From b52c13d8e877eda359c9d8d6bc87abf27ff30b49 Mon Sep 17 00:00:00 2001 From: jtalborough Date: Thu, 25 Jan 2024 13:50:44 -0500 Subject: [PATCH 3/3] fix: Update PepperDashCore package version to 1.3.2 --- packages.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages.config b/packages.config index 649b9bdb..fa36e07d 100644 --- a/packages.config +++ b/packages.config @@ -1,3 +1,3 @@ - +