HouseFault.cs 1.8 KB

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