diff --git a/HDIntegratedCamera_InterfaceSpecifications-E.pdf b/HDIntegratedCamera_InterfaceSpecifications-E.pdf new file mode 100644 index 0000000..a379447 Binary files /dev/null and b/HDIntegratedCamera_InterfaceSpecifications-E.pdf differ diff --git a/PanasonicCameraEpi/PanasonicCamera.cs b/PanasonicCameraEpi/PanasonicCamera.cs index 3749da7..4bd4fcd 100644 --- a/PanasonicCameraEpi/PanasonicCamera.cs +++ b/PanasonicCameraEpi/PanasonicCamera.cs @@ -9,6 +9,8 @@ using PepperDash.Essentials.Core.Devices; using PepperDash.Essentials.Devices.Common.Cameras; using PepperDash.Core; +using Crestron.SimplSharp; + namespace PanasonicCameraEpi { @@ -28,7 +30,23 @@ public class PanasonicCamera : ReconfigurableDevice, IBridgeAdvanced, IHasCamera public BoolFeedback IsOnlineFeedback { get { return _monitor.IsOnlineFeedback; } } public IntFeedback PanSpeedFeedback { get; private set; } public IntFeedback ZoomSpeedFeedback { get; private set; } - public IntFeedback TiltSpeedFeedback { get; private set; } + public IntFeedback TiltSpeedFeedback { get; private set; } + public BoolFeedback PresetSavedFeedback { get; private set; } + public bool PresetSavedBool + { + get + { + return _PresetSavedBool; + } + set + { + _PresetSavedBool = value; + PresetSavedFeedback.FireUpdate(); + } + + + } + private bool _PresetSavedBool { get; set; } public PanasonicCamera(IBasicCommunication comms, DeviceConfig config) : base(config) @@ -133,6 +151,7 @@ private void SetupFeedbacks() PanSpeedFeedback = new IntFeedback(() => PanSpeed); TiltSpeedFeedback = new IntFeedback(() => TiltSpeed); ZoomSpeedFeedback = new IntFeedback(() => ZoomSpeed); + PresetSavedFeedback = new BoolFeedback(() => PresetSavedBool); PanSpeedFeedback.FireUpdate(); TiltSpeedFeedback.FireUpdate(); @@ -280,6 +299,8 @@ public void RecallPreset(int preset) public void SavePreset(int preset) { _queue.EnqueueCmd(_cmd.PresetSaveCommand(preset)); + PresetSavedBool = true; + new CTimer( (o) => PresetSavedBool = false, 5000); } /// @@ -371,6 +392,8 @@ public void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, E NameFeedback.LinkInputSig(trilist.StringInput[joinMap.DeviceName.JoinNumber]); NumberOfPresetsFeedback.LinkInputSig(trilist.UShortInput[joinMap.NumberOfPresets.JoinNumber]); + + PresetSavedFeedback.LinkInputSig(trilist.BooleanInput[joinMap.PresetSavedFeedback.JoinNumber]); CameraIsOffFeedback.LinkInputSig(trilist.BooleanInput[joinMap.PowerOff.JoinNumber]); CameraIsOffFeedback.LinkComplementInputSig(trilist.BooleanInput[joinMap.PowerOn.JoinNumber]); diff --git a/PanasonicCameraEpi/PanasonicCameraBridgeJoinMap.cs b/PanasonicCameraEpi/PanasonicCameraBridgeJoinMap.cs index 5359aea..9090ad8 100644 --- a/PanasonicCameraEpi/PanasonicCameraBridgeJoinMap.cs +++ b/PanasonicCameraEpi/PanasonicCameraBridgeJoinMap.cs @@ -193,6 +193,23 @@ public class PanasonicCameraBridgeJoinMap : JoinMapBaseAdvanced JoinType = eJoinType.Digital }); + /// + /// Camera preset saved + /// + [JoinName("PresetSavedFeedback")] + public JoinDataComplete PresetSavedFeedback = new JoinDataComplete( + new JoinData + { + JoinNumber = 30, + JoinSpan = 1 + }, + new JoinMetadata + { + Description = "Camera preset saved Feedback", + JoinCapabilities = eJoinCapabilities.ToSIMPL, + JoinType = eJoinType.Digital + }); + /// /// Camera preset save ///