| Line 100: |
Line 100: |
| | | | |
| | == Python software == | | == Python software == |
| | + | |
| | + | from PyDAQmx import Task |
| | + | from PyDAQmx.DAQmxConstants import * |
| | + | from PyDAQmx.DAQmxTypes import * |
| | + | import numpy |
| | + | import msvcrt |
| | + | import time |
| | + | |
| | + | times = [] |
| | + | try : |
| | + | freq = 100.0 # Hz |
| | + | numinputs = 4 |
| | + | |
| | + | analog_input = Task() |
| | + | read = int32() |
| | + | timer= time.clock() |
| | + | running = True |
| | + | |
| | + | data = numpy.zeros((numinputs,), dtype=numpy.float64) |
| | + | |
| | + | #DAQmx Configure Code |
| | + | analog_input.CreateAIVoltageChan("Dev1/ai0:%i" % (numinputs - 1), None, DAQmx_Val_RSE, -10.0,10.0,DAQmx_Val_Volts,None) |
| | + | #analog_input.CfgInputBuffer(0) |
| | + | #analog_input.CfgSampClkTiming("",freq,DAQmx_Val_Rising,DAQmx_Val_ContSamps,1000) |
| | + | |
| | + | analog_input.StartTask() |
| | + | datalist = [] |
| | + | while running: |
| | + | #DAQmx Start Code |
| | + | |
| | + | |
| | + | |
| | + | timeBeforeRead = time.clock() |
| | + | analog_input.ReadAnalogF64(-1,10.0,DAQmx_Val_GroupByChannel,data,numinputs*2,byref(read),None) |
| | + | ser.write('S') |
| | + | line = ser.readline() |
| | + | |
| | + | time.sleep((1 / freq) - (time.clock()- timeBeforeRead)) |
| | + | |
| | + | times.append(timeBeforeRead - time.clock()) |
| | + | |
| | + | |
| | + | if msvcrt.kbhit(): |
| | + | running = False |
| | + | |
| | + | |
| | + | finally : |
| | + | print "Stop" |
| | + | t = numpy.array(times) |
| | + | afwijking = numpy.mean(abs(t - numpy.mean(t))) |
| | + | maxafwijking = max(abs(t-numpy.mean(t))) |
| | + | |
| | + | print numpy.mean(t), afwijking, maxafwijking |
| | + | |
| | + | |
| | + | analog_input.StopTask(); |