Adds new JoinMap for CameraControllerJoinMap

This commit is contained in:
Neil Dorin
2019-12-17 10:58:17 -07:00
parent 16d5795267
commit 0d854270b6
2 changed files with 73 additions and 8 deletions

View File

@@ -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<string, JoinMetadata>();
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;

View File

@@ -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<string, JoinMetadata> Joins { get; set; }
}
/// <summary>
/// Read = Provides feedback to SIMPL
/// Write = Responds to sig values from SIMPL
/// </summary>
public enum eJoinCapabilities
{
Read = 1,
@@ -56,12 +62,35 @@ namespace PepperDash.Essentials.Core
Serial = 4
}
/// <summary>
/// Data describing the join
/// </summary>
public class JoinMetadata
{
/// <summary>
/// A label for the join to better describe it's usage
/// </summary>
[JsonProperty("label")]
public string Label { get; set; }
/// <summary>
/// Signal type(s)
/// </summary>
[JsonProperty("joinType")]
public eJoinType JoinType { get; set; }
/// <summary>
/// Join number (based on join offset value)
/// </summary>
[JsonProperty("joinNumber")]
public uint JoinNumber { get; set; }
/// <summary>
/// Join range span. If join indicates the start of a range of joins, this indicated the maximum number of joins in the range
/// </summary>
[JsonProperty("joinSpan")]
public uint JoinSpan { get; set; }
/// <summary>
/// Indicates whether the join is read and/or write
/// </summary>
[JsonProperty("joinCapabilities")]
public eJoinCapabilities JoinCapabilities { get; set; }
}