using System; using System.Threading; using System.Threading.Tasks; using XP.Hardware.Detector.Abstractions.Enums; namespace XP.Hardware.Detector.Abstractions { /// /// 面阵探测器通用接口 | Area detector common interface /// 定义所有探测器必须实现的核心能力 /// public interface IAreaDetector : IDisposable { /// /// 探测器状态 | Detector status /// DetectorStatus Status { get; } /// /// 探测器类型 | Detector type /// DetectorType Type { get; } /// /// 初始化探测器 | Initialize detector /// /// 取消令牌 | Cancellation token /// 操作结果 | Operation result Task InitializeAsync(CancellationToken cancellationToken = default); /// /// 启动连续采集 | Start continuous acquisition /// /// 取消令牌 | Cancellation token /// 操作结果 | Operation result Task StartAcquisitionAsync(CancellationToken cancellationToken = default); /// /// 停止采集 | Stop acquisition /// /// 取消令牌 | Cancellation token /// 操作结果 | Operation result Task StopAcquisitionAsync(CancellationToken cancellationToken = default); /// /// 单帧采集 | Single frame acquisition /// /// 取消令牌 | Cancellation token /// 操作结果 | Operation result Task AcquireSingleFrameAsync(CancellationToken cancellationToken = default); /// /// 暗场校正 | Dark field correction /// /// 采集帧数 | Frame count /// 取消令牌 | Cancellation token /// 操作结果 | Operation result Task DarkCorrectionAsync(int frameCount, CancellationToken cancellationToken = default); /// /// 增益校正(亮场校正)| Gain correction (bright field correction) /// /// 采集帧数 | Frame count /// 取消令牌 | Cancellation token /// 操作结果 | Operation result Task GainCorrectionAsync(int frameCount, CancellationToken cancellationToken = default); /// /// 自动校正(暗场+增益+坏像素)| Auto correction (dark + gain + bad pixel) /// /// 采集帧数 | Frame count /// 取消令牌 | Cancellation token /// 操作结果 | Operation result Task AutoCorrectionAsync(int frameCount, CancellationToken cancellationToken = default); /// /// 坏像素校正 | Bad pixel correction /// /// 取消令牌 | Cancellation token /// 操作结果 | Operation result Task BadPixelCorrectionAsync(CancellationToken cancellationToken = default); /// /// 获取探测器信息 | Get detector information /// /// 探测器信息 | Detector information DetectorInfo GetInfo(); } }