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