PyDAQmx将采集模式设置为按需

时间:2017-04-14 18:13:04

标签: python nidaqmx

我正在尝试在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

1 个答案:

答案 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