using System.Collections.Generic;
namespace SHH.CameraSdk;
///
/// 帧追踪数据模型
/// 功能:记录单帧数据的生命周期关键信息,用于帧流转监控、丢帧分析与性能排查
/// 适用场景:配合全局遥测或调试工具,追溯帧的处理路径、耗时及最终状态
///
public class FrameTrace
{
#region --- 帧核心标识 (Frame Core Identification) ---
/// 帧唯一序列号(全局唯一,用于关联帧的全生命周期)
public long FrameId { get; set; }
/// 帧产生时间戳(单位:毫秒,通常为 Environment.TickCount64 或 UTC 时间戳)
public long Timestamp { get; set; }
#endregion
#region --- 帧状态信息 (Frame Status Information) ---
/// 帧是否被丢弃(true=已丢弃,false=正常处理/分发)
public bool IsDropped { get; set; }
/// 帧丢弃原因(仅 IsDropped 为 true 时有效)
/// 示例值:"NoSubscribers"(无订阅者)、"FpsLimit"(帧率限制)、"PipelineFull"(处理管道满)
public string DropReason { get; set; } = string.Empty;
/// 帧最终分发目标列表(记录该帧被发送到的订阅者/模块标识)
/// 示例值:["WPF_Display_Main", "AI_Behavior_Engine"]
public List Targets { get; set; } = new();
#endregion
#region --- 帧性能指标 (Frame Performance Metrics) ---
/// 帧处置总耗时(单位:毫秒)
/// 计算范围:从帧产生到最终处理完成/丢弃的总时间,用于性能瓶颈分析
public double ProcessDurationMs { get; set; }
#endregion
}