diff --git a/PepperDashEssentials/Bridges/JoinMaps/CameraControllerJoinMap.cs b/PepperDashEssentials/Bridges/JoinMaps/CameraControllerJoinMap.cs index ce8b2f5e..b78ef472 100644 --- a/PepperDashEssentials/Bridges/JoinMaps/CameraControllerJoinMap.cs +++ b/PepperDashEssentials/Bridges/JoinMaps/CameraControllerJoinMap.cs @@ -23,20 +23,56 @@ namespace PepperDash.Essentials.Bridges public uint PresetSaveOffset { get; set; } public uint NumberOfPresets { get; set; } + public enum eCameraControllerJoinMapKey + { + IsOnline, + PowerOn, + PowerOff, + TiltUp, + TiltDown, + PanLeft, + PanRight, + ZoomIn, + ZoomOut, + PresetRecallStart, + PresetSaveStart, + PresetLabelStart, + NumberOfPresets + } + public CameraControllerJoinMap() { Joins = new Dictionary(); - Joins.Add("isOnline", new JoinMetadata() - { JoinNumber = 9, Label = "IsOnline", JoinCapabilities = eJoinCapabilities.Write, JoinSpan = 1, JoinType = eJoinType.Digital }); - Joins.Add("powerOn", new JoinMetadata() - { JoinNumber = 7, Label = "PowerOn", JoinCapabilities = eJoinCapabilities.Read | eJoinCapabilities.Write, JoinSpan = 1, JoinType = eJoinType.Digital }); - Joins.Add("powerOff", new JoinMetadata() - { JoinNumber = 8, Label = "PowerOff", JoinCapabilities = eJoinCapabilities.Read | eJoinCapabilities.Write, JoinSpan = 1, JoinType = eJoinType.Digital }); - Joins.Add("up", new JoinMetadata() - { JoinNumber = 1, Label = "TiltUp", JoinCapabilities = eJoinCapabilities.Write, JoinSpan = 1, JoinType = eJoinType.Digital }); + Joins.Add(eCameraControllerJoinMapKey.IsOnline.ToString(), new JoinMetadata() + { JoinNumber = 9, Label = "Is Online", JoinCapabilities = eJoinCapabilities.Read, JoinSpan = 1, JoinType = eJoinType.Digital }); + Joins.Add(eCameraControllerJoinMapKey.PowerOn.ToString(), new JoinMetadata() + { JoinNumber = 7, Label = "Power On", JoinCapabilities = eJoinCapabilities.Read | eJoinCapabilities.Write, JoinSpan = 1, JoinType = eJoinType.Digital }); + Joins.Add(eCameraControllerJoinMapKey.PowerOff.ToString(), new JoinMetadata() + { JoinNumber = 8, Label = "Power Off", JoinCapabilities = eJoinCapabilities.Read | eJoinCapabilities.Write, JoinSpan = 1, JoinType = eJoinType.Digital }); + Joins.Add(eCameraControllerJoinMapKey.TiltUp.ToString(), new JoinMetadata() + { JoinNumber = 1, Label = "Tilt Up", JoinCapabilities = eJoinCapabilities.Write, JoinSpan = 1, JoinType = eJoinType.Digital }); + Joins.Add(eCameraControllerJoinMapKey.TiltDown.ToString(), new JoinMetadata() + { JoinNumber = 2, Label = "TiltDown", JoinCapabilities = eJoinCapabilities.Write, JoinSpan = 1, JoinType = eJoinType.Digital }); + Joins.Add(eCameraControllerJoinMapKey.PanLeft.ToString(), new JoinMetadata() + { JoinNumber = 3, Label = "Pan Left", JoinCapabilities = eJoinCapabilities.Write, JoinSpan = 1, JoinType = eJoinType.Digital }); + Joins.Add(eCameraControllerJoinMapKey.PanRight.ToString(), new JoinMetadata() + { JoinNumber = 4, Label = "Pan Right", JoinCapabilities = eJoinCapabilities.Write, JoinSpan = 1, JoinType = eJoinType.Digital }); + Joins.Add(eCameraControllerJoinMapKey.ZoomIn.ToString(), new JoinMetadata() + { JoinNumber = 5, Label = "Zoom In", JoinCapabilities = eJoinCapabilities.Write, JoinSpan = 1, JoinType = eJoinType.Digital }); + Joins.Add(eCameraControllerJoinMapKey.ZoomOut.ToString(), new JoinMetadata() + { JoinNumber = 6, Label = "Zoom Out", JoinCapabilities = eJoinCapabilities.Write, JoinSpan = 1, JoinType = eJoinType.Digital }); + Joins.Add(eCameraControllerJoinMapKey.PresetRecallStart.ToString(), new JoinMetadata() + { JoinNumber = 11, Label = "Preset Recall Start", JoinCapabilities = eJoinCapabilities.Write, JoinSpan = 20, JoinType = eJoinType.Digital }); + Joins.Add(eCameraControllerJoinMapKey.PresetLabelStart.ToString(), new JoinMetadata() + { JoinNumber = 11, Label = "Preset Label Start", JoinCapabilities = eJoinCapabilities.Write, JoinSpan = 20, JoinType = eJoinType.Serial }); + Joins.Add(eCameraControllerJoinMapKey.PresetSaveStart.ToString(), new JoinMetadata() + { JoinNumber = 31, Label = "Preset Save Start", JoinCapabilities = eJoinCapabilities.Write, JoinSpan = 20, JoinType = eJoinType.Digital }); + + Joins.Add(eCameraControllerJoinMapKey.NumberOfPresets.ToString(), new JoinMetadata() + { JoinNumber = 5, Label = "Number of Presets", JoinCapabilities = eJoinCapabilities.Write, JoinSpan = 1, JoinType = eJoinType.Analog }); // Digital IsOnline = 9; diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/JoinMaps/JoinMapBase.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/JoinMaps/JoinMapBase.cs index cdba6c4d..a739511a 100644 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/JoinMaps/JoinMapBase.cs +++ b/essentials-framework/Essentials Core/PepperDashEssentialsBase/JoinMaps/JoinMapBase.cs @@ -6,6 +6,8 @@ using Crestron.SimplSharp; using PepperDash.Essentials.Core.Config; +using Newtonsoft.Json; + namespace PepperDash.Essentials.Core { public static class JoinMapHelper @@ -43,6 +45,10 @@ namespace PepperDash.Essentials.Core public Dictionary Joins { get; set; } } + /// + /// Read = Provides feedback to SIMPL + /// Write = Responds to sig values from SIMPL + /// public enum eJoinCapabilities { Read = 1, @@ -56,12 +62,35 @@ namespace PepperDash.Essentials.Core Serial = 4 } + /// + /// Data describing the join + /// public class JoinMetadata { + /// + /// A label for the join to better describe it's usage + /// + [JsonProperty("label")] public string Label { get; set; } + /// + /// Signal type(s) + /// + [JsonProperty("joinType")] public eJoinType JoinType { get; set; } + /// + /// Join number (based on join offset value) + /// + [JsonProperty("joinNumber")] public uint JoinNumber { get; set; } + /// + /// Join range span. If join indicates the start of a range of joins, this indicated the maximum number of joins in the range + /// + [JsonProperty("joinSpan")] public uint JoinSpan { get; set; } + /// + /// Indicates whether the join is read and/or write + /// + [JsonProperty("joinCapabilities")] public eJoinCapabilities JoinCapabilities { get; set; } }