In [1]:
from PyDAQmx import *
import numpy
In [29]:
# Declaration of variable passed by reference
taskHandle = TaskHandle()
data = numpy.zeros((1000,), dtype=numpy.float64)
dev, port, line = 1,0,4
grabChan = "Dev%s/port%s/line%s" % (dev,port,line)
risingEdgeChan = grabChan
fallingEdgeChan = grabChan
samplesPerRead = 1
numLines = c_int(1)
try:
# DAQmx Configure Code
DAQmxCreateTask("",byref(taskHandle))
DAQmxCreateDIChan(taskHandle,grabChan,"",DAQmx_Val_ChanPerLine)
DAQmxCfgChangeDetectionTiming(taskHandle,risingEdgeChan,fallingEdgeChan,DAQmx_Val_FiniteSamps,samplesPerRead);
DAQmxGetTaskAttribute(taskHandle,DAQmx_Task_NumChans,byref(numLines));
# DAQmx Start Code
DAQmxStartTask(taskHandle)
# DAQmx Read Code
DAQmxReadDigitalLines(taskHandle,samplesPerRead,10.0,DAQmx_Val_GroupByScanNumber,data,samplesPerRead*numLines,byref(numRead),byref(bytesPerSamp),NULL);
print "Acquired %d points"%read.value
except DAQError as err:
print "DAQmx Error: %s"%err
finally:
if taskHandle:
# DAQmx Stop Code
DAQmxStopTask(taskHandle)
DAQmxClearTask(taskHandle)
In [38]:
DAQmx_Sys_DevNames
Out[38]:
In [30]:
devicenames = ctypes.create_string_buffer(256)
DAQmxGetSystemInfoAttribute(DAQmx_Sys_DevNames,byref(devicenames))
Out[30]:
In [39]:
devicenames.raw
Out[39]:
In [5]:
p = ctypes.create_unicode_buffer(256)
In [6]:
p.value
Out[6]: