我在使用 National Instruments 和 Python 进行数据采集时遇到问题。我使用具有 3 个轴 x、y、z 的磁场传感器,并且我正在使用 National Instruments 库(Python)来获取数据。我设置为每 1 秒收集 100 个数据,它们每秒钟返回 3 个包含 100 个元素的列表。
time_memory = [k + i/100 for i in range(100)] # dividing 1 second into 100 intervals
x = [100 elements]
y = [100 elements]
z = [100 elements]
下面一个用于将数据写入文件。
for i in range(self.samples):
self.time_memory[i] = file_time + self.time_index[i]
f.write("{0} {1} {2} {3}\n".format(self.time_memory[i], x[i], y[i], z[i]))
因此,生成的数据文件必须如下所示。
time_value, x, y, z
time_value, x, y, z
1.01, 32, 36, 123
1.02, 32, 38, 123.4
...
所以我尝试尽可能长时间地获取数据,但在 8000 秒后,程序出现了如图所示的奇怪错误。
结果表明
The application is not able to keep up with the hardware acquisition.
Increasing the buffer size, reading the data more frequently,
or specifying a fixed number of samples to read instead of all available samples
might correct the problem. Property: DAQmx_Read_RelativeTo Corresponding Value:
DAQmx_Val_CurrReadPos Property: DAQmx_Read_Offset Corresponding Value: 0
Task Name: _unnamedTask<0> Status Code: -200279
为了解决这个错误,我google并询问了很多人,但我找不到真正的原因。其中最有说服力的答案是,对于一台有HDD的电脑,1秒内写入400条数据(在Python中使用for循环)远远超出了电脑的能力,但我仍然无法相信这个,也找不到解决这个问题的解决方案。
请帮帮我:(