探测器XP.Hardware.Detector类库为了更好集成新的探测器,统一接口方法,DetectorService重构为通过统一接口;
新增暗场校正和亮场校正帧数配置属性(默认 64,范围 1-128),config 加载校正帧数; 修正探测器IsConnected连接状态的判断逻辑。
This commit is contained in:
@@ -386,6 +386,44 @@ namespace XP.Hardware.Detector.Abstractions
|
||||
/// </summary>
|
||||
public abstract DetectorInfo GetInfo();
|
||||
|
||||
/// <summary>
|
||||
/// 应用探测器参数 | Apply detector parameters
|
||||
/// </summary>
|
||||
public async Task<DetectorResult> ApplyParametersAsync(int binningIndex, int pga, decimal frameRate, CancellationToken cancellationToken = default)
|
||||
{
|
||||
if (Status != DetectorStatus.Ready)
|
||||
{
|
||||
return DetectorResult.Failure($"探测器状态不正确,当前状态:{Status} | Detector status incorrect, current status: {Status}");
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
return await ApplyParametersInternalAsync(binningIndex, pga, frameRate, cancellationToken);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
var errorResult = DetectorResult.Failure($"应用参数异常 | Apply parameters exception: {ex.Message}", ex);
|
||||
PublishError(errorResult);
|
||||
return errorResult;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取校正能力描述(子类可重写)| Get correction capabilities (subclass can override)
|
||||
/// </summary>
|
||||
public virtual CorrectionCapabilities GetCorrectionCapabilities()
|
||||
{
|
||||
return new CorrectionCapabilities();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 显式失效校正数据(子类可重写)| Explicitly invalidate correction data (subclass can override)
|
||||
/// </summary>
|
||||
public virtual void InvalidateCorrectionData()
|
||||
{
|
||||
// 默认空实现,子类按需重写 | Default empty implementation, subclass overrides as needed
|
||||
}
|
||||
|
||||
// 模板方法,由子类实现 | Template methods, implemented by derived classes
|
||||
protected abstract Task<DetectorResult> InitializeInternalAsync(CancellationToken cancellationToken);
|
||||
protected abstract Task<DetectorResult> StartAcquisitionInternalAsync(CancellationToken cancellationToken);
|
||||
@@ -395,6 +433,7 @@ namespace XP.Hardware.Detector.Abstractions
|
||||
protected abstract Task<DetectorResult> GainCorrectionInternalAsync(int frameCount, CancellationToken cancellationToken);
|
||||
protected abstract Task<DetectorResult> AutoCorrectionInternalAsync(int frameCount, CancellationToken cancellationToken);
|
||||
protected abstract Task<DetectorResult> BadPixelCorrectionInternalAsync(CancellationToken cancellationToken);
|
||||
protected abstract Task<DetectorResult> ApplyParametersInternalAsync(int binningIndex, int pga, decimal frameRate, CancellationToken cancellationToken);
|
||||
|
||||
/// <summary>
|
||||
/// 更新状态并发布事件 | Update status and publish event
|
||||
|
||||
Reference in New Issue
Block a user