2017-04-14 13 views
0

デジタルエッジをカウントし、n番目のエッジごとにTTL信号を出力するPyDAQmxでプログラムを書き込もうとしています。私は、PyDAQmxのAcquisition ModeをLabVIEWを使って設定した "1サンプル(オンデマンド)"に設定するのに問題があります。 NI USB6210 DAQデバイスを使用しています。PyDAQmx取得モードをオンデマンドに設定

これはので、私は、PythonにCプログラムを変換する方法を示しPyDAQmxページ上の例でこれをベースなど/ PyDAQMX/NIDAQと私の初めてのコーディングで、コードの関連部分は次のようになります。

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

私の期待は、これはカウンタ入力タスクのデフォルト・タイミング・モードであり、あなたがDAQmxのC APIのSample Timing Typeパラメータを介してドライバを尋ねることであることを確認できるということです。

DAQmxCreateTask("",byref(taskHandle)) 
DAQmxCreateCICountEdgesChan(taskHandle,"Dev6/ctr0","",DAQmx_Val_Rising,0,DAQmx_Val_CountUp) 

timingType = int32() 
DAQmxGetSampTimingType(taskHandle, byref(timingType)) 
print(timingType) 

timingTypeが値を持っている場合10390では、オンデマンドサンプリングが可能です。

一般に、functionが必要な場合(この場合は、DAQmxCfgOnDemandTiming()機能はありません)、これがデフォルトの設定であるとみなすことができます。さらに、DAQmx関数はすべてのデバイス設定を公開しないため、非常に特殊な動作の場合は、明示的に必要なpropertiesを取得して設定する必要があります。

+0

ありがとうございます。あなたのコードを使用して、私はオンデマンドサンプリングのように見えるようにデフォルトが10390であることがわかりました。 –

関連する問題