我正在尝试在PyDAQmx中编写一个程序来计算数字边沿并在每第n个边沿输出一个TTL信号。我在PyDAQmx中将采集模式设置为" 1样本(按需)"这是我在使用LabVIEW时设置的。我正在使用NI USB6210 DAQ设备。
这是我第一次使用NIDAQ / PyDAQMX / etc进行编码,所以我根据PyDAQmx页面上的一个例子来展示如何将C程序翻译成Python,相关的代码片段如下所示:
read = int32()
data = numpy.zeros((1000,), dtype=numpy.uint32)
try:
DAQmxCreateTask("",byref(taskHandle))
DAQmxCreateCICountEdgesChan(taskHandle,"Dev6/ctr0","",DAQmx_Val_Rising,0,DAQmx_Val_CountUp)
#Somehow set acquisition mode here
DAQmxStartTask(taskHandle)
while True:
DAQmxReadCounterScalarU32 (taskHandle, 1000, None, read)
print "Acquired %d samples"%read.value
print "result is %s " %result
答案 0 :(得分:0)
我的期望是这是计数器输入任务的默认计时模式,您可以通过DAQmx C API的Sample Timing Type参数询问驱动程序来确认:
@Override
public boolean onSupportNavigateUp(){
finish();
return true;
}
如果DAQmxCreateTask("",byref(taskHandle))
DAQmxCreateCICountEdgesChan(taskHandle,"Dev6/ctr0","",DAQmx_Val_Rising,0,DAQmx_Val_CountUp)
timingType = int32()
DAQmxGetSampTimingType(taskHandle, byref(timingType))
print(timingType)
的值为timingType
,那么您就会进行按需抽样。
通常,如果没有function可以执行您想要的操作(在这种情况下,没有10390
函数),您可以假设这是默认配置。此外,DAQmx函数不会公开所有设备的设置,因此对于非常专业的行为,您必须明确获取并设置所需的properties。