def relativeTo(task,newval=None): """ newval may be either DAQmx_Val_FirstSample 10424 or DAQmx_Val_CurrWritePos (10430) """ if not newval: val = mx.uInt64(0) mx.ni.DAQmxGetWriteRelativeTo(task, byref(val)) return val.value else: mx.CHK(mx.ni.DAQmxSetWriteRelativeTo(task,newval))
def getCurWritePos(task): cur_wp = mx.uInt64(0) mx.CHK(mx.ni.DAQmxGetWriteCurrWritePos(otask, byref(cur_wp))) return cur_wp.value
# get_regeneration otask = nidaqmx.AnalogOutputTask() otask.create_voltage_channel(analog_output_term, min_val=-10.0,max_val=10.0) otask.configure_timing_sample_clock(source=r'ai/SampleClock', rate=samplerate, sample_mode=samplemode, samples_per_channel=nsamples) otask.write(outputdata,auto_start=False) # start them both cur_wp = mx.uInt64(0) otask.start() itask.start() d1=itask.read(samples_per_channel=500) time.sleep(1.0) print "current read position", itask.get_read_current_position() mx.ni.DAQmxGetWriteCurrWritePos(otask, byref(cur_wp)) otask.write(output2) after = getCurWritePos(otask) time.sleep(0.1) # d2 = itask.read(samples_per_channel=500) # itask.wait_until_done(10.0) # print "otask.get_bufsize()",otask.get_bufsize() print "before cur_wp:",cur_wp.value, "and after:", after print "relativeTo:", relativeTo(otask) print "done"