namespace SHH.CameraSdk; /// /// 相机实时遥测数据快照 /// 功能:封装单台相机的实时运行状态、性能指标与健康度信息,用于监控面板展示、运维告警与数据分析 /// 特性:数据为瞬时快照,通常定期(如1秒/次)更新,反映相机当前运行状况 /// public class CameraTelemetryInfo { #region --- 设备核心标识 (Device Core Identification) --- /// 设备唯一业务标识(对应数据库ID或配置中的设备ID) public long DeviceId { get; set; } /// 设备显示名称(如“北大门-枪机01”,用于UI展示) public string Name { get; set; } = string.Empty; /// 设备IP地址(用于网络连通性校验与远程访问) public string IpAddress { get; set; } = string.Empty; #endregion #region --- 设备运行状态 (Device Operation Status) --- /// 相机当前运行状态(字符串形式,对应 VideoSourceStatus 枚举值,如 "Playing"/"Faulted"/"Connecting") public string Status { get; set; } = string.Empty; /// 设备物理连接状态(通过 Ping/TCP 探测判定,true=在线,false=离线) public bool IsOnline { get; set; } /// 最后一次报错信息(无错误时为 null,用于快速定位故障原因) public string? LastErrorMessage { get; set; } #endregion #region --- 性能指标 (Performance Metrics) --- /// 实时帧率(单位:fps,反映相机取流与处理的实时速度) public double Fps { get; set; } /// 累计接收帧数(相机启动后接收的总帧数,用于统计数据完整性) public long TotalFrames { get; set; } /// 实时码率 (Mbps) public double Bitrate { get; set; } #endregion #region --- 健康度与统计 (Health & Statistics) --- /// 设备健康度评分(0-100分,分数越高健康状态越好) /// 计算逻辑:结合是否断线、实时FPS是否在正常范围、是否有报错等因素综合判定 public int HealthScore { get; set; } /// 遥测数据统计时间戳(记录当前快照的生成时间,默认当前时间) public DateTime Timestamp { get; set; } = DateTime.Now; #endregion }