docs: complete XML documentation for all projects with inheritdoc tags

Co-authored-by: andrew-welker <1765622+andrew-welker@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot]
2025-07-22 15:53:01 +00:00
parent 260677a37f
commit 7987eb8f9b
485 changed files with 8099 additions and 2490 deletions

View File

@@ -21,6 +21,9 @@ using Serilog.Events;
namespace PepperDash.Essentials.Devices.Common.Cameras
{
/// <summary>
/// Enumeration of eCameraCapabilities values
/// </summary>
public enum eCameraCapabilities
{
None = 0,
@@ -33,11 +36,17 @@ namespace PepperDash.Essentials.Devices.Common.Cameras
public abstract class CameraBase : ReconfigurableDevice, IRoutingOutputs
{
[JsonProperty("controlMode", NullValueHandling = NullValueHandling.Ignore)]
/// <summary>
/// Gets or sets the ControlMode
/// </summary>
public eCameraControlMode ControlMode { get; protected set; }
#region IRoutingOutputs Members
[JsonIgnore]
/// <summary>
/// Gets or sets the OutputPorts
/// </summary>
public RoutingPortCollection<RoutingOutputPort> OutputPorts { get; protected set; }
#endregion
@@ -271,6 +280,9 @@ namespace PepperDash.Essentials.Devices.Common.Cameras
}
/// <summary>
/// Represents a CameraPreset
/// </summary>
public class CameraPreset : PresetBase
{
public CameraPreset(int id, string description, bool isDefined, bool isDefinable)
@@ -281,19 +293,37 @@ namespace PepperDash.Essentials.Devices.Common.Cameras
}
/// <summary>
/// Represents a CameraPropertiesConfig
/// </summary>
public class CameraPropertiesConfig
{
/// <summary>
/// Gets or sets the CommunicationMonitorProperties
/// </summary>
public CommunicationMonitorConfig CommunicationMonitorProperties { get; set; }
/// <summary>
/// Gets or sets the Control
/// </summary>
public ControlPropertiesConfig Control { get; set; }
[JsonProperty("supportsAutoMode")]
/// <summary>
/// Gets or sets the SupportsAutoMode
/// </summary>
public bool SupportsAutoMode { get; set; }
[JsonProperty("supportsOffMode")]
/// <summary>
/// Gets or sets the SupportsOffMode
/// </summary>
public bool SupportsOffMode { get; set; }
[JsonProperty("presets")]
/// <summary>
/// Gets or sets the Presets
/// </summary>
public List<CameraPreset> Presets { get; set; }
}
}

View File

@@ -8,6 +8,9 @@ using PepperDash.Essentials.Core;
namespace PepperDash.Essentials.Devices.Common.Cameras
{
/// <summary>
/// Enumeration of eCameraControlMode values
/// </summary>
public enum eCameraControlMode
{
Manual = 0,
@@ -16,6 +19,9 @@ namespace PepperDash.Essentials.Devices.Common.Cameras
}
/// <summary>
/// Defines the contract for IHasCameras
/// </summary>
public interface IHasCameras
{
event EventHandler<CameraSelectedEventArgs> CameraSelected;
@@ -30,7 +36,7 @@ namespace PepperDash.Essentials.Devices.Common.Cameras
}
/// <summary>
/// Aggregates far end cameras with near end cameras
/// Defines the contract for IHasCodecCameras
/// </summary>
public interface IHasCodecCameras : IHasCameras, IHasFarEndCameraControl
{
@@ -62,8 +68,14 @@ namespace PepperDash.Essentials.Devices.Common.Cameras
event EventHandler VideoUnmuteRequested;
}
/// <summary>
/// Represents a CameraSelectedEventArgs
/// </summary>
public class CameraSelectedEventArgs : EventArgs
{
/// <summary>
/// Gets or sets the SelectedCamera
/// </summary>
public CameraBase SelectedCamera { get; private set; }
public CameraSelectedEventArgs(CameraBase camera)
@@ -72,6 +84,9 @@ namespace PepperDash.Essentials.Devices.Common.Cameras
}
}
/// <summary>
/// Defines the contract for IHasFarEndCameraControl
/// </summary>
public interface IHasFarEndCameraControl
{
CameraBase FarEndCamera { get; }
@@ -81,7 +96,7 @@ namespace PepperDash.Essentials.Devices.Common.Cameras
}
/// <summary>
/// Used to decorate a camera as a far end
/// Defines the contract for IAmFarEndCamera
/// </summary>
public interface IAmFarEndCamera
{
@@ -93,7 +108,7 @@ namespace PepperDash.Essentials.Devices.Common.Cameras
}
/// <summary>
/// Aggregates the pan, tilt and zoom interfaces
/// Defines the contract for IHasCameraPtzControl
/// </summary>
public interface IHasCameraPtzControl : IHasCameraPanControl, IHasCameraTiltControl, IHasCameraZoomControl
{
@@ -114,7 +129,7 @@ namespace PepperDash.Essentials.Devices.Common.Cameras
}
/// <summary>
/// Interface for camera tilt control
/// Defines the contract for IHasCameraTiltControl
/// </summary>
public interface IHasCameraTiltControl : IHasCameraControls
{
@@ -124,7 +139,7 @@ namespace PepperDash.Essentials.Devices.Common.Cameras
}
/// <summary>
/// Interface for camera zoom control
/// Defines the contract for IHasCameraZoomControl
/// </summary>
public interface IHasCameraZoomControl : IHasCameraControls
{
@@ -134,7 +149,7 @@ namespace PepperDash.Essentials.Devices.Common.Cameras
}
/// <summary>
/// Interface for camera focus control
/// Defines the contract for IHasCameraFocusControl
/// </summary>
public interface IHasCameraFocusControl : IHasCameraControls
{
@@ -152,6 +167,9 @@ namespace PepperDash.Essentials.Devices.Common.Cameras
void ToggleFocusMode();
}
/// <summary>
/// Defines the contract for IHasCameraAutoMode
/// </summary>
public interface IHasCameraAutoMode : IHasCameraControls
{
void CameraAutoModeOn();

View File

@@ -19,12 +19,21 @@ using Serilog.Events;
namespace PepperDash.Essentials.Devices.Common.Cameras
{
/// <summary>
/// Represents a CameraVisca
/// </summary>
public class CameraVisca : CameraBase, IHasCameraPtzControl, ICommunicationMonitor, IHasCameraPresets, IHasPowerControlWithFeedback, IBridgeAdvanced, IHasCameraFocusControl, IHasAutoFocusMode
{
private readonly CameraViscaPropertiesConfig PropertiesConfig;
/// <summary>
/// Gets or sets the Communication
/// </summary>
public IBasicCommunication Communication { get; private set; }
/// <summary>
/// Gets or sets the CommunicationMonitor
/// </summary>
public StatusMonitorBase CommunicationMonitor { get; private set; }
/// <summary>
@@ -156,6 +165,10 @@ namespace PepperDash.Essentials.Devices.Common.Cameras
}
}
/// <summary>
/// CustomActivate method
/// </summary>
/// <inheritdoc />
public override bool CustomActivate()
{
Communication.Connect();
@@ -169,6 +182,9 @@ namespace PepperDash.Essentials.Devices.Common.Cameras
return true;
}
/// <summary>
/// LinkToApi method
/// </summary>
public void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge)
{
LinkCameraToApi(this, trilist, joinStart, joinMapKey, bridge);
@@ -408,6 +424,9 @@ namespace PepperDash.Essentials.Devices.Common.Cameras
InquiryResponseQueue.Enqueue(HandlePowerResponse);
}
/// <summary>
/// PowerOn method
/// </summary>
public void PowerOn()
{
SendBytes(new byte[] { ID, 0x01, 0x04, 0x00, 0x02, 0xFF });
@@ -431,12 +450,18 @@ namespace PepperDash.Essentials.Devices.Common.Cameras
}
}
/// <summary>
/// PowerOff method
/// </summary>
public void PowerOff()
{
SendBytes(new byte[] {ID, 0x01, 0x04, 0x00, 0x03, 0xFF});
SendPowerQuery();
}
/// <summary>
/// PowerToggle method
/// </summary>
public void PowerToggle()
{
if (PowerIsOnFeedback.BoolValue)
@@ -445,30 +470,48 @@ namespace PepperDash.Essentials.Devices.Common.Cameras
PowerOn();
}
/// <summary>
/// PanLeft method
/// </summary>
public void PanLeft()
{
SendPanTiltCommand(new byte[] {0x01, 0x03}, false);
// IsMoving = true;
}
/// <summary>
/// PanRight method
/// </summary>
public void PanRight()
{
SendPanTiltCommand(new byte[] { 0x02, 0x03 }, false);
// IsMoving = true;
}
/// <summary>
/// PanStop method
/// </summary>
public void PanStop()
{
Stop();
}
/// <summary>
/// TiltDown method
/// </summary>
public void TiltDown()
{
SendPanTiltCommand(new byte[] { 0x03, 0x02 }, false);
// IsMoving = true;
}
/// <summary>
/// TiltUp method
/// </summary>
public void TiltUp()
{
SendPanTiltCommand(new byte[] { 0x03, 0x01 }, false);
// IsMoving = true;
}
/// <summary>
/// TiltStop method
/// </summary>
public void TiltStop()
{
Stop();
@@ -480,21 +523,33 @@ namespace PepperDash.Essentials.Devices.Common.Cameras
}
/// <summary>
/// ZoomIn method
/// </summary>
public void ZoomIn()
{
SendZoomCommand(ZoomInCmd);
IsZooming = true;
}
/// <summary>
/// ZoomOut method
/// </summary>
public void ZoomOut()
{
SendZoomCommand(ZoomOutCmd);
IsZooming = true;
}
/// <summary>
/// ZoomStop method
/// </summary>
public void ZoomStop()
{
Stop();
}
/// <summary>
/// Stop method
/// </summary>
public void Stop()
{
if (IsZooming)
@@ -509,15 +564,24 @@ namespace PepperDash.Essentials.Devices.Common.Cameras
// IsMoving = false;
}
}
/// <summary>
/// PositionHome method
/// </summary>
public void PositionHome()
{
SendBytes(new byte[] { ID, 0x01, 0x06, 0x02, PanSpeedFast, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF });
SendBytes(new byte[] { ID, 0x01, 0x04, 0x47, 0x00, 0x00, 0x00, 0x00, 0xFF });
}
/// <summary>
/// RecallPreset method
/// </summary>
public void RecallPreset(int presetNumber)
{
SendBytes(new byte[] {ID, 0x01, 0x04, 0x3F, 0x02, (byte)presetNumber, 0xFF} );
}
/// <summary>
/// SavePreset method
/// </summary>
public void SavePreset(int presetNumber)
{
SendBytes(new byte[] { ID, 0x01, 0x04, 0x3F, 0x01, (byte)presetNumber, 0xFF });
@@ -536,13 +600,22 @@ namespace PepperDash.Essentials.Devices.Common.Cameras
handler.Invoke(this, EventArgs.Empty);
}
/// <summary>
/// Gets or sets the Presets
/// </summary>
public List<CameraPreset> Presets { get; private set; }
/// <summary>
/// PresetSelect method
/// </summary>
public void PresetSelect(int preset)
{
RecallPreset(preset);
}
/// <summary>
/// PresetStore method
/// </summary>
public void PresetStore(int preset, string description)
{
SavePreset(preset);
@@ -553,21 +626,33 @@ namespace PepperDash.Essentials.Devices.Common.Cameras
#region IHasCameraFocusControl Members
/// <summary>
/// FocusNear method
/// </summary>
public void FocusNear()
{
SendBytes(new byte[] { ID, 0x01, 0x04, 0x08, 0x03, 0xFF });
}
/// <summary>
/// FocusFar method
/// </summary>
public void FocusFar()
{
SendBytes(new byte[] { ID, 0x01, 0x04, 0x08, 0x02, 0xFF });
}
/// <summary>
/// FocusStop method
/// </summary>
public void FocusStop()
{
SendBytes(new byte[] { ID, 0x01, 0x04, 0x08, 0x00, 0xFF });
}
/// <summary>
/// TriggerAutoFocus method
/// </summary>
public void TriggerAutoFocus()
{
SendBytes(new byte[] { ID, 0x01, 0x04, 0x18, 0x01, 0xFF });
@@ -578,18 +663,27 @@ namespace PepperDash.Essentials.Devices.Common.Cameras
#region IHasAutoFocus Members
/// <summary>
/// SetFocusModeAuto method
/// </summary>
public void SetFocusModeAuto()
{
SendBytes(new byte[] { ID, 0x01, 0x04, 0x38, 0x02, 0xFF });
SendAutoFocusQuery();
}
/// <summary>
/// SetFocusModeManual method
/// </summary>
public void SetFocusModeManual()
{
SendBytes(new byte[] { ID, 0x01, 0x04, 0x38, 0x03, 0xFF });
SendAutoFocusQuery();
}
/// <summary>
/// ToggleFocusMode method
/// </summary>
public void ToggleFocusMode()
{
SendBytes(new byte[] { ID, 0x01, 0x04, 0x38, 0x10, 0xFF });
@@ -625,9 +719,15 @@ namespace PepperDash.Essentials.Devices.Common.Cameras
#region IHasCameraOff Members
/// <summary>
/// Gets or sets the CameraIsOffFeedback
/// </summary>
public BoolFeedback CameraIsOffFeedback { get; private set; }
/// <summary>
/// CameraOff method
/// </summary>
public void CameraOff()
{
PowerOff();
@@ -636,6 +736,9 @@ namespace PepperDash.Essentials.Devices.Common.Cameras
#endregion
}
/// <summary>
/// Represents a CameraViscaFactory
/// </summary>
public class CameraViscaFactory : EssentialsDeviceFactory<CameraVisca>
{
public CameraViscaFactory()
@@ -643,6 +746,10 @@ namespace PepperDash.Essentials.Devices.Common.Cameras
TypeNames = new List<string>() { "cameravisca" };
}
/// <summary>
/// BuildDevice method
/// </summary>
/// <inheritdoc />
public override EssentialsDevice BuildDevice(DeviceConfig dc)
{
Debug.LogMessage(LogEventLevel.Debug, "Factory Attempting to create new CameraVisca Device");
@@ -654,12 +761,18 @@ namespace PepperDash.Essentials.Devices.Common.Cameras
}
/// <summary>
/// Represents a CameraViscaPropertiesConfig
/// </summary>
public class CameraViscaPropertiesConfig : CameraPropertiesConfig
{
/// <summary>
/// Control ID of the camera (1-7)
/// </summary>
[JsonProperty("id")]
/// <summary>
/// Gets or sets the Id
/// </summary>
public uint Id { get; set; }
/// <summary>