SSPC-Tester/SSPCTester.Devices/Interfaces/IDaq.cs

36 lines
1.2 KiB
C#
Raw Permalink Normal View History

namespace SSPCTester.Devices.Interfaces;
/// <summary>
/// 高速数据采集卡PCIe8586抽象接口。
/// </summary>
public interface IDaq : IDeviceConnection
{
Task<IReadOnlyList<DaqDeviceDescriptor>> EnumerateDevicesAsync(CancellationToken ct = default);
/// <summary>
/// 高速采集一段波形。
/// </summary>
/// <param name="channels">采集通道索引数组。</param>
/// <param name="sampleRateHz">采样率Hz。</param>
/// <param name="durationSec">总时长(秒)。</param>
Task<CurveData> CaptureAsync(
int[] channels,
int sampleRateHz,
double durationSec,
CancellationToken ct = default);
/// <summary>
/// 读取瞬时值(功率损耗页/基础测试页用)。
/// 返回数组与传入 channels 一一对应。
/// </summary>
Task<double[]> ReadInstantAsync(int[] channels, CancellationToken ct = default);
Task<CurveData> CaptureAroundActionAsync(
DaqActionCaptureRequest request,
Func<CancellationToken, Task> action,
CancellationToken ct = default);
/// <summary>流式采集事件(可选实现)。</summary>
event EventHandler<CurveSample>? SampleReceived;
}