Thanks Attila. I have something running but I'm not sure how to implement that hold function properly ... In this code example it seems that the hold function works, but then when I play the next waveform there is a 200us glitch before it plays my samples (see the scope shot).
def play_waveform(y):
ts = 1/fs
hzFreq = 1 / (len(y)*ts)
cSamples = len(y)
channel = c_int(0)
rgdSamples = (c_double * len(y))(*y)
dwf.FDwfDeviceAutoConfigureSet(hdwf, c_int(0))
dwf.FDwfAnalogOutModeSet(hdwf, channel, DwfAnalogOutIdleHold)
dwf.FDwfAnalogOutIdleSet(hdwf, c_int(0), DwfAnalogOutIdleHold)
dwf.FDwfAnalogOutNodeEnableSet(hdwf, channel, AnalogOutNodeCarrier, c_int(1))
dwf.FDwfAnalogOutNodeFunctionSet(hdwf, channel, AnalogOutNodeCarrier, funcCustom)
dwf.FDwfAnalogOutNodeDataSet(hdwf, channel, AnalogOutNodeCarrier, rgdSamples, c_int(cSamples))
dwf.FDwfAnalogOutNodeFrequencySet(hdwf, channel, AnalogOutNodeCarrier, c_double(hzFreq))
dwf.FDwfAnalogOutNodeAmplitudeSet(hdwf, channel, AnalogOutNodeCarrier, c_double(3.3))
dwf.FDwfAnalogOutRunSet(hdwf, channel, c_double(1.0/hzFreq))
dwf.FDwfAnalogOutConfigure(hdwf, channel, c_int(1))
ramp_test.py