Source code for qcodes_contrib_drivers.drivers.Keysight.M3202A
from .SD_common.SD_AWG_Async import SD_AWG_Async
[docs]
class M3202A(SD_AWG_Async):
"""
qcodes driver for the Keysight M3202A AWG PXIe card.
M3202A channel numbers start with 1.
This driver is derived from SD_AWG_Async which uses a thread per module to
upload waveforms concurrently. The sychronous methods like load_waveform are
not available in this class.
Example:
awg1 = M3202A('awg1', 0, 2)
ref_1 = awg1.upload_waveform(wave1)
trigger_mode = keysightSD1.SD_TriggerModes.EXTTRIG
awg1.awg_queue_waveform(1, ref_1, trigger_mode, 0, 1, 0)
If you want to test M3202A based on the synchronous SD_AWG, then you can
instantiate SD_AWG directly.
Example:
m3202a_sync = SD_AWG(name, chassis, slot, channels=4, triggers=8,
legacy_channel_numbering=False)
Args:
name: name for this instrument, passed to the base instrument
chassis: chassis number where the device is located
slot: slot number where the device is plugged in
"""
def __init__(self, name: str, chassis: int, slot: int, **kwargs):
super().__init__(name, chassis, slot, channels=4, triggers=8,
legacy_channel_numbering=False, **kwargs)
module_name = 'M3202A'
if self.module_name != module_name:
raise Exception(f"Found module '{self.module_name}' in chassis "
f"{chassis} slot {slot}; expected '{module_name}'")