45 lines
1.3 KiB
C#
45 lines
1.3 KiB
C#
|
|
using Pcie8586Probe.Hardware;
|
||
|
|
using Pcie8586Probe.Models;
|
||
|
|
|
||
|
|
using var digitizer = new Pcie8586Digitizer();
|
||
|
|
using var cancellation = new CancellationTokenSource(TimeSpan.FromSeconds(2));
|
||
|
|
|
||
|
|
var devices = await digitizer.EnumerateDevicesAsync(CancellationToken.None);
|
||
|
|
if (devices.Count == 0)
|
||
|
|
{
|
||
|
|
Console.Error.WriteLine("未发现设备。请确认板卡、厂商驱动和 ACTS1000_64.dll 均已正确安装。");
|
||
|
|
return 1;
|
||
|
|
}
|
||
|
|
|
||
|
|
var config = new AcquisitionConfig(
|
||
|
|
ChannelCount: 1,
|
||
|
|
InputRange: InputRange.PlusMinus5V,
|
||
|
|
ClockDivider: 100,
|
||
|
|
Mode: AcquisitionMode.Continuous,
|
||
|
|
FiniteSamplesPerChannel: 10_000);
|
||
|
|
|
||
|
|
try
|
||
|
|
{
|
||
|
|
await digitizer.OpenAsync(devices[0], CancellationToken.None);
|
||
|
|
await digitizer.ConfigureAsync(config, CancellationToken.None);
|
||
|
|
|
||
|
|
await foreach (var block in digitizer.StartAcquisitionAsync(cancellation.Token))
|
||
|
|
{
|
||
|
|
Console.WriteLine(
|
||
|
|
$"起始点={block.StartSampleIndex}, 每通道点数={block.SamplesPerChannel}, " +
|
||
|
|
$"通道数={block.ChannelCount}, 采样率={block.SampleRateHz:N0} Hz, " +
|
||
|
|
$"CH0首点={block.Channels[0][0]:F6} V");
|
||
|
|
}
|
||
|
|
}
|
||
|
|
catch (OperationCanceledException)
|
||
|
|
{
|
||
|
|
// 示例按预定时间结束。
|
||
|
|
}
|
||
|
|
finally
|
||
|
|
{
|
||
|
|
await digitizer.StopAsync();
|
||
|
|
await digitizer.CloseAsync();
|
||
|
|
}
|
||
|
|
|
||
|
|
return 0;
|