using System.Collections.Generic; using XP.Hardware.Detector.Abstractions.Enums; namespace XP.Hardware.Detector.Config { /// /// Varex 探测器配置类 | Varex detector configuration class /// 包含 Varex 专属的配置参数 /// public class VarexDetectorConfig : DetectorConfig { /// /// Binning 模式 | Binning mode /// public BinningMode BinningMode { get; set; } = BinningMode.Bin1x1; /// /// 增益模式 | Gain mode /// public GainMode GainMode { get; set; } = GainMode.Low; /// /// 曝光时间(毫秒)| Exposure time (milliseconds) /// public uint ExposureTime { get; set; } = 100; /// /// ROI 起始 X 坐标 | ROI start X coordinate /// public uint RoiX { get; set; } = 0; /// /// ROI 起始 Y 坐标 | ROI start Y coordinate /// public uint RoiY { get; set; } = 0; /// /// ROI 宽度 | ROI width /// public uint RoiWidth { get; set; } = 0; /// /// ROI 高度 | ROI height /// public uint RoiHeight { get; set; } = 0; /// /// Varex 支持 1×1、2×2、4×4 三种 Binning | Varex supports 1×1, 2×2, 4×4 binning /// public override List GetSupportedBinnings() { return new List { new BinningOption("1×1", 0), new BinningOption("2×2", 1), new BinningOption("3×3", 2), new BinningOption("4×4", 3), }; } /// /// Varex PGA 范围 2-7 | Varex PGA range 2-7 /// public override List GetSupportedPgaValues() { return new List { 2, 3, 4, 5, 6, 7 }; } /// /// Varex 各 Binning 模式最大帧率 | Varex max frame rate per binning mode /// public override decimal GetMaxFrameRate(int binningIndex) => binningIndex switch { 0 => 15m, // 1×1 1 => 30m, // 2×2 2 => 45m, // 3×3 3 => 60m, // 4×4 _ => 15m }; /// /// Varex 4343N 各 Binning 模式的图像规格 | Varex 4343N image spec per binning mode /// 像素尺寸和分辨率映射关系,供重建 PC 使用 /// public override BinningImageSpec GetImageSpec(int binningIndex) => binningIndex switch { 0 => new BinningImageSpec(0.139, 0.139, 3072, 3060), // 1×1 1 => new BinningImageSpec(0.278, 0.278, 1536, 1530), // 2×2 2 => new BinningImageSpec(0.417, 0.417, 1024, 1020), // 3×3 3 => new BinningImageSpec(0.556, 0.556, 768, 765), // 4×4 _ => new BinningImageSpec(0.139, 0.139, 3072, 3060) }; } }