【发布时间】:2023-01-27 10:52:48
【问题描述】:
我想要做的是设置 16 个模拟输入通道,以给定的速率不断对其进行采样,并在调用读取函数时从每个通道读取 1 个样本。理想情况下,我想阅读最新的示例,这样我就可以在阅读时为其添加时间戳。
问题是读数不会在读取之间发生变化,只是在几秒钟之后。如果我调整采样速度,我可能会遇到错误,提示软件跟不上硬件采样率。
我的代码的哪一部分是错误的?
import numpy
import nidaqmx
from nidaqmx.stream_readers import AnalogSingleChannelReader, AnalogMultiChannelReader
from nidaqmx.constants import Edge, AcquisitionType
# Create a task and a reader
task = nidaqmx.Task()
values_read = numpy.zeros(16, dtype = numpy.float64)
task.ai_channels.add_ai_current_chan('cDAQ1Mod2/ai0:15')
task.timing.cfg_samp_clk_timing(rate = 1000, active_edge = Edge.RISING, sample_mode = AcquisitionType.CONTINUOUS, samps_per_chan = 1)
reader = AnalogMultiChannelReader(task.in_stream)
task.start()
while 1:
reader.read_one_sample(values_read)
print(values_read)
【问题讨论】: