FocusLayerRawConfig.cs 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. namespace IvfTl.AutoFocus.Layout
  2. {
  3. /// <summary>
  4. /// 两级原始配置值(可空),喂给 <see cref="PhotoLayerCalculator.Resolve"/> 做就近优先解析(§2.5)。
  5. /// 调用方(M2-03/M2-04/M2-07)从 DB 读 house_well_setting / tl_setting 填好后传入,取数与解析解耦。
  6. ///
  7. /// 字段对齐 sql/migrations/2026-06-17-autofocus-data-layer.sql:
  8. /// well 级(house_well_setting):focus_layer_spacing_pulse / focus_layer_count / move_down_layer(复用)
  9. /// 设备级(tl_setting):focus_layer_spacing_pulse / focus_layer_count / focus_layer_down
  10. ///
  11. /// ⚠ EEPROM 值不在此入参中(§2.5:EEPROM 仅参考,不进解析链),故天然不会被纳入解析。
  12. /// </summary>
  13. public sealed class FocusLayerRawConfig
  14. {
  15. // ---- well 级覆盖(house_well_setting,可空;空=继承设备级)----
  16. /// <summary>house_well_setting.focus_layer_spacing_pulse(well 级层间距覆盖)。</summary>
  17. public int? WellSpacingPulse { get; init; }
  18. /// <summary>house_well_setting.focus_layer_count(well 级层数覆盖)。</summary>
  19. public int? WellLayerCount { get; init; }
  20. /// <summary>house_well_setting.move_down_layer(well 级下移层数覆盖,复用既有列)。</summary>
  21. public int? WellMoveDownLayer { get; init; }
  22. // ---- 设备级(tl_setting)----
  23. /// <summary>tl_setting.focus_layer_spacing_pulse(工艺值,无 SQL 默认;缺失须报错)。</summary>
  24. public int? DeviceSpacingPulse { get; init; }
  25. /// <summary>tl_setting.focus_layer_count(SQL DEFAULT 5)。</summary>
  26. public int? DeviceLayerCount { get; init; }
  27. /// <summary>tl_setting.focus_layer_down(SQL DEFAULT 2)。</summary>
  28. public int? DeviceLayerDown { get; init; }
  29. // ---- 报错信息用(不参与计算)----
  30. /// <summary>设备 tl_sn,用于缺配置异常消息。</summary>
  31. public string TlSn { get; init; }
  32. /// <summary>仓室编号,用于异常定位。</summary>
  33. public int HouseSn { get; init; }
  34. /// <summary>well 编号,用于异常定位。</summary>
  35. public int WellSn { get; init; }
  36. }
  37. }