mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-02-16 13:15:03 +00:00
Adds CameraContorllerBridge
This commit is contained in:
187
PepperDashEssentials/Bridges/CameraControllerBridge.cs
Normal file
187
PepperDashEssentials/Bridges/CameraControllerBridge.cs
Normal file
@@ -0,0 +1,187 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using Crestron.SimplSharp;
|
||||||
|
using Crestron.SimplSharpPro.DeviceSupport;
|
||||||
|
using PepperDash.Core;
|
||||||
|
using PepperDash.Essentials.Core;
|
||||||
|
using PepperDash.Essentials.Devices.Common;
|
||||||
|
|
||||||
|
namespace PepperDash.Essentials.Bridges
|
||||||
|
{
|
||||||
|
public static class CameraControllerApiExtensions
|
||||||
|
{
|
||||||
|
|
||||||
|
public static BasicTriList _TriList;
|
||||||
|
public static CameraControllerJoinMap JoinMap;
|
||||||
|
public static void LinkToApi(this PepperDash.Essentials.Devices.Common.Cameras.CameraBase cameraDevice, BasicTriList trilist, uint joinStart, string joinMapKey)
|
||||||
|
{
|
||||||
|
JoinMap = JoinMapHelper.GetJoinMapForDevice(joinMapKey) as CameraControllerJoinMap;
|
||||||
|
|
||||||
|
_TriList = trilist;
|
||||||
|
if (JoinMap == null)
|
||||||
|
{
|
||||||
|
JoinMap = new CameraControllerJoinMap();
|
||||||
|
}
|
||||||
|
|
||||||
|
JoinMap.OffsetJoinNumbers(joinStart);
|
||||||
|
Debug.Console(1, "Linking to Trilist '{0}'", trilist.ID.ToString("X"));
|
||||||
|
Debug.Console(0, "Linking to Bridge Type {0}", cameraDevice.GetType().Name.ToString());
|
||||||
|
|
||||||
|
var commMonitor = cameraDevice as ICommunicationMonitor;
|
||||||
|
commMonitor.CommunicationMonitor.IsOnlineFeedback.LinkInputSig(trilist.BooleanInput[JoinMap.IsOnline]);
|
||||||
|
|
||||||
|
|
||||||
|
trilist.SetBoolSigAction(JoinMap.Left, (b) =>
|
||||||
|
{
|
||||||
|
if (b)
|
||||||
|
{
|
||||||
|
cameraDevice.PanLeft();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
cameraDevice.Stop();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
trilist.SetBoolSigAction(JoinMap.Right, (b) =>
|
||||||
|
{
|
||||||
|
if (b)
|
||||||
|
{
|
||||||
|
cameraDevice.PanRight();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
cameraDevice.Stop();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
trilist.SetBoolSigAction(JoinMap.Up, (b) =>
|
||||||
|
{
|
||||||
|
if (b)
|
||||||
|
{
|
||||||
|
cameraDevice.TiltUp();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
cameraDevice.Stop();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
trilist.SetBoolSigAction(JoinMap.Down, (b) =>
|
||||||
|
{
|
||||||
|
if (b)
|
||||||
|
{
|
||||||
|
cameraDevice.TiltDown();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
cameraDevice.Stop();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
trilist.SetBoolSigAction(JoinMap.ZoomIn, (b) =>
|
||||||
|
{
|
||||||
|
if (b)
|
||||||
|
{
|
||||||
|
cameraDevice.ZoomIn();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
cameraDevice.Stop();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
trilist.SetBoolSigAction(JoinMap.ZoomOut, (b) =>
|
||||||
|
{
|
||||||
|
if (b)
|
||||||
|
{
|
||||||
|
cameraDevice.ZoomOut();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
cameraDevice.Stop();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
if (cameraDevice.GetType().Name.ToString().ToLower() == "cameravisca")
|
||||||
|
{
|
||||||
|
var viscaCamera = cameraDevice as PepperDash.Essentials.Devices.Common.Cameras.CameraVisca;
|
||||||
|
trilist.SetSigTrueAction(JoinMap.PowerOn, () => viscaCamera.PowerOn());
|
||||||
|
trilist.SetSigTrueAction(JoinMap.PowerOff, () => viscaCamera.PowerOff());
|
||||||
|
|
||||||
|
viscaCamera.PowerIsOnFeedback.LinkInputSig(trilist.BooleanInput[JoinMap.PowerOn]);
|
||||||
|
viscaCamera.PowerIsOnFeedback.LinkComplementInputSig(trilist.BooleanInput[JoinMap.PowerOff]);
|
||||||
|
|
||||||
|
viscaCamera.CommunicationMonitor.IsOnlineFeedback.LinkInputSig(trilist.BooleanInput[JoinMap.IsOnline]);
|
||||||
|
for (int i = 0; i < JoinMap.NumberOfPresets; i++)
|
||||||
|
{
|
||||||
|
int tempNum = i;
|
||||||
|
trilist.SetSigTrueAction((ushort)(JoinMap.PresetRecallOffset + tempNum), () =>
|
||||||
|
{
|
||||||
|
viscaCamera.RecallPreset(tempNum);
|
||||||
|
});
|
||||||
|
trilist.SetSigTrueAction((ushort)(JoinMap.PresetSaveOffset + tempNum), () =>
|
||||||
|
{
|
||||||
|
viscaCamera.SavePreset(tempNum);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
public class CameraControllerJoinMap : JoinMapBase
|
||||||
|
{
|
||||||
|
public uint IsOnline { get; set; }
|
||||||
|
public uint PowerOff { get; set; }
|
||||||
|
public uint PowerOn { get; set; }
|
||||||
|
public uint Up { get; set; }
|
||||||
|
public uint Down { get; set; }
|
||||||
|
public uint Left { get; set; }
|
||||||
|
public uint Right { get; set; }
|
||||||
|
public uint ZoomIn { get; set; }
|
||||||
|
public uint ZoomOut { get; set; }
|
||||||
|
public uint PresetRecallOffset { get; set; }
|
||||||
|
public uint PresetSaveOffset { get; set; }
|
||||||
|
public uint NumberOfPresets { get; set; }
|
||||||
|
|
||||||
|
public CameraControllerJoinMap()
|
||||||
|
{
|
||||||
|
// Digital
|
||||||
|
IsOnline = 9;
|
||||||
|
PowerOff = 8;
|
||||||
|
PowerOn = 7;
|
||||||
|
Up = 1;
|
||||||
|
Down = 2;
|
||||||
|
Left = 3;
|
||||||
|
Right = 4;
|
||||||
|
ZoomIn = 5;
|
||||||
|
ZoomOut = 6;
|
||||||
|
PresetRecallOffset = 10;
|
||||||
|
PresetSaveOffset = 30;
|
||||||
|
NumberOfPresets = 5;
|
||||||
|
// Analog
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void OffsetJoinNumbers(uint joinStart)
|
||||||
|
{
|
||||||
|
var joinOffset = joinStart - 1;
|
||||||
|
|
||||||
|
IsOnline = IsOnline + joinOffset;
|
||||||
|
PowerOff = PowerOff + joinOffset;
|
||||||
|
PowerOn = PowerOn + joinOffset;
|
||||||
|
Up = Up + joinOffset;
|
||||||
|
Down = Down + joinOffset;
|
||||||
|
Left = Left + joinOffset;
|
||||||
|
Right = Right + joinOffset;
|
||||||
|
ZoomIn = ZoomIn + joinOffset;
|
||||||
|
ZoomOut = ZoomOut + joinOffset;
|
||||||
|
PresetRecallOffset = PresetRecallOffset + joinOffset;
|
||||||
|
PresetSaveOffset = PresetSaveOffset + joinOffset;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -116,6 +116,7 @@
|
|||||||
<Compile Include="Audio\EssentialsVolumeLevelConfig.cs" />
|
<Compile Include="Audio\EssentialsVolumeLevelConfig.cs" />
|
||||||
<Compile Include="Bridges\BridgeBase.cs" />
|
<Compile Include="Bridges\BridgeBase.cs" />
|
||||||
<Compile Include="Bridges\BridgeFactory.cs" />
|
<Compile Include="Bridges\BridgeFactory.cs" />
|
||||||
|
<Compile Include="Bridges\CameraControllerBridge.cs" />
|
||||||
<Compile Include="Bridges\DisplayControllerBridge.cs" />
|
<Compile Include="Bridges\DisplayControllerBridge.cs" />
|
||||||
<Compile Include="Bridges\DigitalLoggerBridge.cs" />
|
<Compile Include="Bridges\DigitalLoggerBridge.cs" />
|
||||||
<Compile Include="Bridges\DmChassisControllerBridge.cs" />
|
<Compile Include="Bridges\DmChassisControllerBridge.cs" />
|
||||||
|
|||||||
Submodule essentials-framework updated: 2cfdc4f266...4cfd0abff1
Reference in New Issue
Block a user