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(); |