Qudi
|
Methods to control PulseStreamer. More...
Public Member Functions | |
def | __init__ (self, config, kwargs) |
def | on_activate (self) |
Establish connection to pulse streamer and tell it to cancel all operations. | |
def | on_deactivate (self) |
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 | upload_asset (self, asset_name=None) |
Upload an already hardware conform file to the device. More... | |
def | load_asset (self, asset_name, load_dict=None) |
Loads a sequence or waveform to the specified channel of the pulsing device. More... | |
def | clear_all (self) |
Clears all loaded waveforms from the pulse generators RAM. 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. More... | |
def | get_digital_level (self, low=None, high=None) |
Retrieve the digital low and high level of the provided 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) |
def | set_active_channels (self, ch=None) |
def | get_loaded_asset (self) |
Retrieve the currently loaded asset name of the device. More... | |
def | get_uploaded_asset_names (self) |
Retrieve the names of all uploaded assets on the device. More... | |
def | get_saved_asset_names (self) |
Retrieve the names of all sampled and saved assets on the host PC. More... | |
def | delete_asset (self, asset_name) |
Delete all files associated with an asset with the passed asset_name from the device memory. More... | |
def | set_asset_dir_on_device (self, dir_path) |
Change the directory where the assets are stored on the device. More... | |
def | get_asset_dir_on_device (self) |
Ask for the directory where the hardware conform files are stored on the device. 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 | tell (self, command) |
Sends a command string to the device. More... | |
def | ask (self, question) |
Asks the device a 'question' and receive and return an answer from it. More... | |
def | reset (self) |
Reset the device. More... | |
def | has_sequence_mode (self) |
Asks the pulse generator whether sequence mode exists. More... | |
![]() | |
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 | |
pulsed_file_dir | |
host_waveform_directory | |
current_status | |
sample_rate | |
current_loaded_asset | |
pulse_streamer | |
![]() | |
module_state | |
connectors | |
Methods to control PulseStreamer.
Example config for copy-paste:
pulse_streamer: module 'swabian_instruments.pulse_streamer.PulseStreamer' pulsestreamer_ip '192.168.1.100' laser_channel 0 uw_x_channel 2
def pulse_streamer.PulseStreamer.ask | ( | self, | |
question | |||
) |
Asks the device a 'question' and receive and return an answer from it.
a
string | question: string containing the command |
def pulse_streamer.PulseStreamer.clear_all | ( | self | ) |
Clears all loaded waveforms from the pulse generators RAM.
Unused for digital pulse generators without storage capability (PulseBlaster, FPGA).
def pulse_streamer.PulseStreamer.delete_asset | ( | self, | |
asset_name | |||
) |
Delete all files associated with an asset with the passed asset_name from the device memory.
str | asset_name: The name of the asset to be deleted Optionally a list of asset names can be passed. |
Unused for digital pulse generators without sequence storage capability (PulseBlaster, FPGA).
def pulse_streamer.PulseStreamer.get_analog_level | ( | self, | |
amplitude = None , |
|||
offset = None |
|||
) |
Retrieve the analog amplitude and offset of the provided channels.
list | amplitude: optional, if a specific amplitude value (in Volt peak to peak, i.e. the full amplitude) of a channel is desired. |
list | offset: optional, if a specific high value (in Volt) of a channel is desired. |
def pulse_streamer.PulseStreamer.get_asset_dir_on_device | ( | self | ) |
Ask for the directory where the hardware conform files are stored on the device.
Unused for digital pulse generators without changeable file structure (PulseBlaster, FPGA).
def pulse_streamer.PulseStreamer.get_constraints | ( | self | ) |
Retrieve the hardware constrains from the Pulsing device.
Provides all the constraints (e.g. sample_rate, amplitude, total_length_bins, channel_config, ...) related to the pulse generator hardware to the caller. The keys of the returned dictionary are the str name for the constraints (which are set in this method). No other keys should be invented. If you are not sure about the meaning, look in other hardware files to get an impression. If still additional constraints are needed, then they have to be add to all files containing this interface. The items of the keys are again dictionaries which have the generic dictionary form: {'min':
, 'max':
, 'step':
, 'unit': '
'}
Only the keys 'activation_config' and differs, since it contain the channel configuration/activation information.
If the constraints cannot be set in the pulsing hardware (because it might e.g. has no sequence mode) then write just zero to each generic dict. Note that there is a difference between float input (0.0) and integer input (0). ALL THE PRESENT KEYS OF THE CONSTRAINTS DICT MUST BE ASSIGNED!
def pulse_streamer.PulseStreamer.get_digital_level | ( | self, | |
low = None , |
|||
high = None |
|||
) |
Retrieve the digital low and high level of the provided channels.
list | low: optional, if a specific low value (in Volt) of a channel is desired. |
list | high: optional, if a specific high value (in Volt) of a channel is desired. |
If no entries provided then the levels of all channels where simply returned. If no digital channels provided, return just an empty dict.
Example of a possible input: low = [1,4] to obtain the low voltage values of digital channel 1 an 4. A possible answer might be {1: -0.5, 4: 2.0} {} since no high request was performed.
The major difference to analog signals is that digital signals are either ON or OFF, whereas analog channels have a varying amplitude range. In contrast to analog output levels, digital output levels are defined by a voltage, which corresponds to the ON status and a voltage which corresponds to the OFF status (both denoted in (absolute) voltage)
In general there is no bijective correspondence between (amplitude, offset) and (value high, value low)!
def pulse_streamer.PulseStreamer.get_interleave | ( | self | ) |
Check whether Interleave is ON or OFF in AWG.
Unused for pulse generator hardware other than an AWG.
def pulse_streamer.PulseStreamer.get_loaded_asset | ( | self | ) |
Retrieve the currently loaded asset name of the device.
def pulse_streamer.PulseStreamer.get_sample_rate | ( | self | ) |
Get the sample rate of the pulse generator hardware.
Do not return a saved sample rate in a class variable, but instead retrieve the current sample rate directly from the device.
def pulse_streamer.PulseStreamer.get_saved_asset_names | ( | self | ) |
Retrieve the names of all sampled and saved assets on the host PC.
This is no list of the file names.
def pulse_streamer.PulseStreamer.get_status | ( | self | ) |
Retrieves the status of the pulsing hardware.
def pulse_streamer.PulseStreamer.get_uploaded_asset_names | ( | self | ) |
Retrieve the names of all uploaded assets on the device.
Unused for digital pulse generators without sequence storage capability (PulseBlaster, FPGA).
def pulse_streamer.PulseStreamer.has_sequence_mode | ( | self | ) |
Asks the pulse generator whether sequence mode exists.
def pulse_streamer.PulseStreamer.load_asset | ( | self, | |
asset_name, | |||
load_dict = None |
|||
) |
Loads a sequence or waveform to the specified channel of the pulsing device.
str | asset_name: The name of the asset to be loaded |
dict | load_dict: a dictionary with keys being one of the available channel numbers and items being the name of the already sampled waveform/sequence files. Examples {1: rabi_Ch1, 2: rabi_Ch2} {1: rabi_Ch2, 2: rabi_Ch1} This parameter is optional. If none is given then the channel association is invoked from the sequence generation, i.e. the filename appendix (_Ch1, _Ch2 etc.) |
def pulse_streamer.PulseStreamer.pulser_off | ( | self | ) |
Switches the pulsing device off.
def pulse_streamer.PulseStreamer.pulser_on | ( | self | ) |
Switches the pulsing device on.
def pulse_streamer.PulseStreamer.reset | ( | self | ) |
Reset the device.
def pulse_streamer.PulseStreamer.set_analog_level | ( | self, | |
amplitude = None , |
|||
offset = None |
|||
) |
Set amplitude and/or offset value of the provided analog channel.
dict | amplitude: dictionary, with key being the channel 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 and items being the offset values (in absolute volt) for the desired channel. |
If nothing is passed then the command will return two empty dicts.
def pulse_streamer.PulseStreamer.set_asset_dir_on_device | ( | self, | |
dir_path | |||
) |
Change the directory where the assets are stored on the device.
str | dir_path: The target directory |
Unused for digital pulse generators without changeable file structure (PulseBlaster, FPGA).
def pulse_streamer.PulseStreamer.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 and items being the low values (in volt) for the desired channel. |
dict | high: dictionary, with key being the channel and items being the high values (in volt) for the desired channel. |
If nothing is passed then the command will return two empty dicts.
The major difference to analog signals is that digital signals are either ON or OFF, whereas analog channels have a varying amplitude range. In contrast to analog output levels, digital output levels are defined by a voltage, which corresponds to the ON status and a voltage which corresponds to the OFF status (both denoted in (absolute) voltage)
In general there is no bijective correspondence between (amplitude, offset) and (value high, value low)!
def pulse_streamer.PulseStreamer.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) |
Unused for pulse generator hardware other than an AWG.
def pulse_streamer.PulseStreamer.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 pulse_streamer.PulseStreamer.tell | ( | self, | |
command | |||
) |
Sends a command string to the device.
string | command: string containing the command |
def pulse_streamer.PulseStreamer.upload_asset | ( | self, | |
asset_name = None |
|||
) |
Upload an already hardware conform file to the device.
Does NOT load it into channels.
name | string, name of the ensemble/seqeunce to be uploaded |