awgtpman can generate a dead spot in a waveform when transitioning from an arbitrary stream to an arbitrary loop.
Using the awg.py bindings, an aborted arbitrary stream that is replaced by an arbitrary loop (defined in the bindings) leads to a 25 ms dead zone where the curve is zero just prior to a ramp down.
Note that the ramp down was not requested, and the aborted curve will typically fall off like a cliff if there is not an arbitrary loop starting after.
It's unclear if this is a problem with awg or with awg.py.
recreate with the following test code on dts1 at LLO:
#!/usr/bin/python3
import awg, time
chan = 'X2:ASC-SRC1_P_EXC'
def ExcTest(exc, name):
print("***************")
print("Starting %s" % name)
exc.start(ramptime=5)
time.sleep(5)
print("Stopping %s" % name)
exc.stop(ramptime=1)
print("Finished %s\n" % name)
time.sleep(2)
from random import uniform
random_data2 = [uniform(0, 20) for n in range(65536)]
stream2 = awg.ArbitraryStream(chan, rate=2048)
print("**********")
print("Starting long arbitrary stream")
stream2.append(random_data2)
time.sleep(1)
print("Aborting arbitrary stream\n")
stream2.abort()
random_data = [uniform(0, 20) for n in range(8192)]
loop = awg.ArbitraryLoop(chan, random_data, rate=2048)
ExcTest(loop, "loop")
print("Awg cleanup")
awg.awg_cleanup()
print("Cleanup finished\n")