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;