using MessagePack; using System.Collections.Generic; namespace SHH.Contracts { /// /// [控制面] 状态全量快照包 /// [MessagePackObject] public class StatusBatchPayload { // [新增] 协议类型标识 (人工可读) // 建议值: "STATUS_BATCH" 或 "设备状态全量包" [Key(0)] public string Protocol { get; set; } = "STATUS_BATCH"; [Key(1)] public List Items { get; set; } = new List(); [Key(2)] public long Timestamp { get; set; } } /// /// [控制面] 设备状态变更通知包 /// [MessagePackObject] public class StatusEventPayload { [Key(0)] public string CameraId { get; set; } /// /// true: 上线/活跃, false: 离线/超时 /// [Key(1)] public bool IsOnline { get; set; } /// /// 变更原因 (e.g. "Ping Success", "Frame Timeout") /// [Key(2)] public string Reason { get; set; } [Key(3)] public long Timestamp { get; set; } } }