using System;
namespace IvfTl.Control.Entity.InitEntitys
{
///
/// 舱级故障类型。启动期 SerialBin 登记 + 运行期升级共用。
///
public enum HouseFaultType
{
CameraReadFailed = 0, // 相机 SN 读取异常(舱号未知)
CameraDuplicateSn = 1, // 两台相机报同一 SN,配对不明(舱号未知)
HouseSnDuplicate = 2, // 两个串口握手返回同一舱号
CcdSnMissing = 3, // 相机列表中不存在该舱 CCDSN(该舱相机半坏)
CcdSnDuplicate = 4, // 两个舱报同一 CCDSN
SerialReadException = 5, // 扫口过程串口读异常(舱号可能未知)
InitException = 6, // 舱构造/StartTask 抛异常
RuntimeFault = 7 // 运行期突发(第二阶段用)
}
///
/// 单条舱故障。HouseSn>0=已知具体舱(可被剔除);HouseSn=-1=相机/串口级故障(仅提示,不剔除某舱)。
/// 纯数据载体,无任何行为。
///
public class HouseFault
{
/// 舱号;-1 表示舱号未知(相机/串口级)。
public int HouseSn { get; set; } = -1;
/// 串口名(已知时)。
public string Port { get; set; }
public HouseFaultType Type { get; set; }
/// 人类可读原因(直接取自原 errorlist 文案)。
public string Reason { get; set; }
/// 发生阶段:相机枚举/扫口握手/舱初始化/运行期。
public string Stage { get; set; }
/// 发生时刻(UTC)。
public DateTime At { get; set; }
/// 是否已被隔离(该舱已从可跑清单剔除/已停)。
public bool Isolated { get; set; }
}
}