Qudi
|
Qudi module for the Keysight M3202A PXIe AWG card (1GHz sampling frequency) More...
Public Member Functions | |
def | on_activate (self) |
def | on_deactivate (self) |
def | reset (self) |
Reset the device. More... | |
def | get_constraints (self) |
Retrieve the hardware constrains from the Pulsing device. More... | |
def | pulser_on (self) |
Switches the pulsing device on. More... | |
def | pulser_off (self) |
Switches the pulsing device off. More... | |
def | load_waveform (self, load_dict) |
Loads a waveform to the specified channel of the pulsing device. More... | |
def | load_sequence (self, sequence_name) |
Loads a sequence to the channels of the device in order to be ready for playback. More... | |
def | get_loaded_assets (self) |
Retrieve the currently loaded asset names for each active channel of the device. More... | |
def | clear_all (self) |
Clears all loaded waveforms from the pulse generators RAM/workspace. More... | |
def | get_status (self) |
Retrieves the status of the pulsing hardware. More... | |
def | get_sample_rate (self) |
Get the sample rate of the pulse generator hardware. More... | |
def | set_sample_rate (self, sample_rate) |
Set the sample rate of the pulse generator hardware. More... | |
def | get_analog_level (self, amplitude=None, offset=None) |
Retrieve the analog amplitude and offset of the provided channels. More... | |
def | set_analog_level (self, amplitude=None, offset=None) |
Set amplitude and/or offset value of the provided analog channel(s). More... | |
def | get_digital_level (self, low=None, high=None) |
Retrieve the digital low and high level of the provided/all channels. More... | |
def | set_digital_level (self, low=None, high=None) |
Set low and/or high value of the provided digital channel. More... | |
def | get_active_channels (self, ch=None) |
Get the active channels of the pulse generator hardware. More... | |
def | set_active_channels (self, ch=None) |
Set the active channels for the pulse generator hardware. More... | |
def | write_waveform (self, name, analog_samples, digital_samples, is_first_chunk, is_last_chunk, total_number_of_samples) |
Write a new waveform or append samples to an already existing waveform on the device memory. More... | |
def | write_sequence (self, name, sequence_parameter_list) |
Write a new sequence on the device memory. More... | |
def | get_waveform_names (self) |
Retrieve the names of all uploaded waveforms on the device. More... | |
def | get_sequence_names (self) |
Retrieve the names of all uploaded sequence on the device. More... | |
def | delete_waveform (self, waveform_name) |
Delete the waveform with name "waveform_name" from the device memory. More... | |
def | delete_sequence (self, sequence_name) |
Delete the sequence with name "sequence_name" from the device memory. More... | |
def | get_interleave (self) |
Check whether Interleave is ON or OFF in AWG. More... | |
def | set_interleave (self, state=False) |
Turns the interleave of an AWG on or off. More... | |
def | write (self, command) |
Sends a command string to the device. More... | |
def | query (self, question) |
Asks the device a 'question' and receive and return an answer from it. More... | |
def | has_sequence_mode (self) |
Asks the pulse generator whether sequence mode exists. More... | |
def | set_channel_triggers (self, active_channels, sequence_parameter_list) |
:return: | |
def | sync_clock (self) |
![]() | |
def | __init__ (self, manager, name, config=None, callbacks=None, kwargs) |
Initialise Base class object and set up its state machine. More... | |
def | log (self) |
Returns a logger object. | |
def | is_module_threaded (self) |
Returns whether the module shall be started in a thread. | |
def | on_activate (self) |
Method called when module is activated. More... | |
def | on_deactivate (self) |
Method called when module is deactivated. More... | |
def | getStatusVariables (self) |
Return a dict of variable names and their content representing the module state for saving. More... | |
def | setStatusVariables (self, variableDict) |
Give a module a dict of variable names and their content representing the module state. More... | |
def | getConfiguration (self) |
Return the configration dictionary for this module. More... | |
def | get_connector (self, connector_name) |
Return module connected to the given named connector. More... | |
![]() | |
def | __new__ (cls, name, bases, attrs) |
Collect declared Connectors, ConfigOptions and StatusVars into dictionaries. More... | |
Public Attributes | |
analog_amplitudes | |
analog_offsets | |
last_sequence | |
loaded_waveforms | |
written_waveforms | |
chcfg | |
awg | |
ser | |
model | |
fwver | |
hwver | |
chassis | |
ch_slot | |
![]() | |
module_state | |
connectors | |
Static Public Attributes | |
serial = ConfigOption(name='awg_serial', missing='error') | |
Qudi module for the Keysight M3202A PXIe AWG card (1GHz sampling frequency)
Example config for copy-paste:
keysight_m3202a: module 'awg.keysight_M3202A.M3202A' awg_serial 0000000000 # here the serial number of current AWG
def keysight_M3202A.M3202A.clear_all | ( | self | ) |
Clears all loaded waveforms from the pulse generators RAM/workspace.
def keysight_M3202A.M3202A.delete_sequence | ( | self, | |
sequence_name | |||
) |
Delete the sequence with name "sequence_name" from the device memory.
str | sequence_name: The name of the sequence to be deleted Optionally a list of sequence names can be passed. |
def keysight_M3202A.M3202A.delete_waveform | ( | self, | |
waveform_name | |||
) |
Delete the waveform with name "waveform_name" from the device memory.
str | waveform_name: The name of the waveform to be deleted Optionally a list of waveform names can be passed. |
def keysight_M3202A.M3202A.get_active_channels | ( | self, | |
ch = None |
|||
) |
Get the active channels of the pulse generator hardware.
list | ch: optional, if specific analog or digital channels are needed to be asked without obtaining all the channels. |
def keysight_M3202A.M3202A.get_analog_level | ( | self, | |
amplitude = None , |
|||
offset = None |
|||
) |
Retrieve the analog amplitude and offset of the provided channels.
list | amplitude: optional, if the amplitude value (in Volt peak to peak, i.e. the full amplitude) of a specific channel is desired. |
list | offset: optional, if the offset value (in Volt) of a specific channel is desired. |
def keysight_M3202A.M3202A.get_constraints | ( | self | ) |
Retrieve the hardware constrains from the Pulsing device.
def keysight_M3202A.M3202A.get_digital_level | ( | self, | |
low = None , |
|||
high = None |
|||
) |
Retrieve the digital low and high level of the provided/all channels.
list | low: optional, if the low value (in Volt) of a specific channel is desired. |
list | high: optional, if the high value (in Volt) of a specific channel is desired. |
def keysight_M3202A.M3202A.get_interleave | ( | self | ) |
Check whether Interleave is ON or OFF in AWG.
Will always return False for pulse generator hardware without interleave.
def keysight_M3202A.M3202A.get_loaded_assets | ( | self | ) |
Retrieve the currently loaded asset names for each active channel of the device.
def keysight_M3202A.M3202A.get_sample_rate | ( | self | ) |
Get the sample rate of the pulse generator hardware.
Do not return a saved sample rate from an attribute, but instead retrieve the current sample rate directly from the device.
def keysight_M3202A.M3202A.get_sequence_names | ( | self | ) |
Retrieve the names of all uploaded sequence on the device.
def keysight_M3202A.M3202A.get_status | ( | self | ) |
Retrieves the status of the pulsing hardware.
def keysight_M3202A.M3202A.get_waveform_names | ( | self | ) |
Retrieve the names of all uploaded waveforms on the device.
def keysight_M3202A.M3202A.has_sequence_mode | ( | self | ) |
Asks the pulse generator whether sequence mode exists.
def keysight_M3202A.M3202A.load_sequence | ( | self, | |
sequence_name | |||
) |
Loads a sequence to the channels of the device in order to be ready for playback.
sequence_name | dict|list, a dictionary with keys being one of the available channel |
def keysight_M3202A.M3202A.load_waveform | ( | self, | |
load_dict | |||
) |
Loads a waveform to the specified channel of the pulsing device.
load_dict | dict|list, a dictionary with keys being one of the available channel |
def keysight_M3202A.M3202A.pulser_off | ( | self | ) |
Switches the pulsing device off.
def keysight_M3202A.M3202A.pulser_on | ( | self | ) |
Switches the pulsing device on.
def keysight_M3202A.M3202A.query | ( | self, | |
question | |||
) |
Asks the device a 'question' and receive and return an answer from it.
string | question: string containing the command |
def keysight_M3202A.M3202A.reset | ( | self | ) |
Reset the device.
def keysight_M3202A.M3202A.set_active_channels | ( | self, | |
ch = None |
|||
) |
Set the active channels for the pulse generator hardware.
dict | ch: dictionary with keys being the analog or digital string generic names for the channels (i.e. 'd_ch1', 'a_ch2') with items being a boolean value. True Activate channel, False: Deactivate channel @return dict: with the actual set values for ALL active analog and digital channels |
def keysight_M3202A.M3202A.set_analog_level | ( | self, | |
amplitude = None , |
|||
offset = None |
|||
) |
Set amplitude and/or offset value of the provided analog channel(s).
dict | amplitude: dictionary, with key being the channel descriptor string (i.e. 'a_ch1', 'a_ch2') and items being the amplitude values (in Volt peak to peak, i.e. the full amplitude) for the desired channel. |
dict | offset: dictionary, with key being the channel descriptor string (i.e. 'a_ch1', 'a_ch2') and items being the offset values (in absolute volt) for the desired channel. |
def keysight_M3202A.M3202A.set_digital_level | ( | self, | |
low = None , |
|||
high = None |
|||
) |
Set low and/or high value of the provided digital channel.
dict | low: dictionary, with key being the channel descriptor string (i.e. 'd_ch1', 'd_ch2') and items being the low values (in volt) for the desired channel. |
dict | high: dictionary, with key being the channel descriptor string (i.e. 'd_ch1', 'd_ch2') and items being the high values (in volt) for the desired channel. |
def keysight_M3202A.M3202A.set_interleave | ( | self, | |
state = False |
|||
) |
Turns the interleave of an AWG on or off.
bool | state: The state the interleave should be set to (True: ON, False: OFF) |
def keysight_M3202A.M3202A.set_sample_rate | ( | self, | |
sample_rate | |||
) |
Set the sample rate of the pulse generator hardware.
float | sample_rate: The sampling rate to be set (in Hz) |
def keysight_M3202A.M3202A.write | ( | self, | |
command | |||
) |
Sends a command string to the device.
string | command: string containing the command |
def keysight_M3202A.M3202A.write_sequence | ( | self, | |
name, | |||
sequence_parameter_list | |||
) |
Write a new sequence on the device memory.
name | str, the name of the waveform to be created/append to |
sequence_parameter_list | list, contains the parameters for each sequence step and the according waveform names. |
def keysight_M3202A.M3202A.write_waveform | ( | self, | |
name, | |||
analog_samples, | |||
digital_samples, | |||
is_first_chunk, | |||
is_last_chunk, | |||
total_number_of_samples | |||
) |
Write a new waveform or append samples to an already existing waveform on the device memory.
name | str, waveform name, human readabla |
analog_samples | numpy.ndarray of type float32 containing the voltage samples |
digital_samples | numpy.ndarray of type bool containing the marker states (if analog channels are active, this must be the same length as analog_samples) |
is_first_chunk | bool, flag indicating if it is the first chunk to write. If True this method will create a new empty wavveform. If False the samples are appended to the existing waveform. |
is_last_chunk | bool, flag indicating if it is the last chunk to write. Some devices may need to know when to close the appending wfm. |
total_number_of_samples | int, The number of sample points for the entire waveform (not only the currently written chunk) |