Thank you for your work!
Look, I detected something that caused me a malfunction in "AgilentGenerator.py" on line 195 (def convert_list_to_dac_str).
I solved it this way, I clarify that I am taking the first steps in Python.
dac_val = lambda val: round(val * dac_steps / v_steps)
#dac_val = lambda val: round(dac_low + val * dac_steps / v_steps).
The error occurred because the function generates values outside the DAC range (outside the range -8191 to 8191), when the list has positive and negative values.
test code:
...
NN=10000
nn=np.arange(NN)
signal=np.zeros(NN)
signal=np.sin(2 * np.pi * nn/NN )
generator_points=signal.tolist()
device = AgilentGenerator33220A()
device.reset()
frequency = 2100
low_limit = np.min(signal)
high_limit = np.max(signal)
device.set_custom_waveform(generator_points, frequency, low_limit, high_limit)