using System.Threading.Tasks;
using XP.Hardware.Detector.Abstractions.Enums;
namespace XP.Hardware.Detector.Abstractions
{
///
/// Varex 探测器专属接口 | Varex detector specific interface
/// 扩展 Varex 特有的功能
///
public interface IVarexDetector : IAreaDetector
{
///
/// 设置 Binning 模式 | Set binning mode
///
/// Binning 模式 | Binning mode
/// 操作结果 | Operation result
Task SetBinningModeAsync(BinningMode mode);
///
/// 获取 Binning 模式 | Get binning mode
///
/// 当前 Binning 模式 | Current binning mode
BinningMode GetBinningMode();
///
/// 设置增益模式 | Set gain mode
///
/// 增益模式 | Gain mode
/// 操作结果 | Operation result
Task SetGainModeAsync(GainMode mode);
///
/// 获取增益模式 | Get gain mode
///
/// 当前增益模式 | Current gain mode
GainMode GetGainMode();
///
/// 设置曝光时间 | Set exposure time
///
/// 曝光时间(毫秒)| Exposure time (milliseconds)
/// 操作结果 | Operation result
Task SetExposureTimeAsync(uint milliseconds);
///
/// 获取曝光时间 | Get exposure time
///
/// 曝光时间(毫秒)| Exposure time (milliseconds)
uint GetExposureTime();
///
/// 设置 ROI 区域 | Set ROI region
///
/// 起始 X 坐标 | Start X coordinate
/// 起始 Y 坐标 | Start Y coordinate
/// 宽度 | Width
/// 高度 | Height
/// 操作结果 | Operation result
Task SetROIAsync(uint x, uint y, uint width, uint height);
///
/// 获取 ROI 区域 | Get ROI region
///
/// ROI 参数 | ROI parameters
(uint x, uint y, uint width, uint height) GetROI();
}
}