50 lines
2.1 KiB
C#
50 lines
2.1 KiB
C#
namespace SHH.CameraSdk;
|
||
|
||
/// <summary>
|
||
/// 相机健康度报告
|
||
/// 功能:封装相机的详细运行健康数据,包含状态、性能、故障统计等信息
|
||
/// 用途:用于运维分析、故障排查、设备健康度评估,提供比遥测快照更细致的健康指标
|
||
/// </summary>
|
||
public class CameraHealthReport
|
||
{
|
||
#region --- 设备核心标识 (Device Core Identification) ---
|
||
|
||
/// <summary> 设备唯一业务标识(对应数据库ID或配置中的设备ID) </summary>
|
||
public long DeviceId { get; set; }
|
||
|
||
/// <summary> 设备IP地址(用于定位具体设备) </summary>
|
||
public string Ip { get; set; } = string.Empty;
|
||
|
||
#endregion
|
||
|
||
#region --- 设备运行状态 (Device Operation Status) ---
|
||
|
||
/// <summary> 设备当前运行状态(字符串形式,对应 VideoSourceStatus 枚举值,如 "Streaming"/"Faulted"/"Reconnecting") </summary>
|
||
public string Status { get; set; } = string.Empty;
|
||
|
||
/// <summary> 最后一次错误信息(无错误时建议设为空字符串,记录设备最近一次故障原因) </summary>
|
||
public string LastError { get; set; } = string.Empty;
|
||
|
||
#endregion
|
||
|
||
#region --- 性能与延迟指标 (Performance & Latency Metrics) ---
|
||
|
||
/// <summary> 实时帧率(单位:fps,反映相机实际输出的有效帧率) </summary>
|
||
/// <remarks> 统计逻辑:需在 RaiseFrameReceived 事件中增加计数器,按时间窗口计算实时值 </remarks>
|
||
public double RealFps { get; set; }
|
||
|
||
/// <summary> 推流延迟(单位:毫秒,记录从相机推流到接收端成功接收的总延迟) </summary>
|
||
public double LatencyMs { get; set; }
|
||
|
||
#endregion
|
||
|
||
#region --- 故障与恢复统计 (Fault & Recovery Statistics) ---
|
||
|
||
/// <summary> 丢帧计数(因渲染过慢、缓冲区溢出等原因导致的丢弃帧数累计值) </summary>
|
||
public long DropFrames { get; set; }
|
||
|
||
/// <summary> 重连次数(哨兵机制触发的自动重连累计次数,反映设备网络稳定性) </summary>
|
||
public int ReconnectCount { get; set; }
|
||
|
||
#endregion
|
||
} |