3.3.1.2. qupulse.hardware.awgs.tabor

Functions

with_configuration_guard(function_object)

This decorator assures that the AWG is in configuration mode while the decorated method runs.

with_select(function_object)

Asserts the channel pair is selected when the wrapped function is called

Classes

TaborAWGRepresentation([instr_addr, ...])

param instr_addr

Instrument address that is forwarded to tabor_control

TaborChannelPair(tabor_device, channels, ...)

TaborProgramMemory(waveform_to_segment, program)

Create new instance of TaborProgramMemory(waveform_to_segment, program)

Exceptions

TaborUndefinedState(*args, device)

If this exception is raised the attached tabor device is in an undefined state.

class qupulse.hardware.awgs.tabor.TaborAWGRepresentation(instr_addr=None, paranoia_level=1, external_trigger=False, reset=False, mirror_addresses=())[source]

Bases: object

Parameters
  • instr_addr – Instrument address that is forwarded to tabor_control

  • paranoia_level – Paranoia level that is forwarded to tabor_control

  • external_trigger – Not supported yet

  • reset

  • mirror_addresses

__init__(instr_addr=None, paranoia_level=1, external_trigger=False, reset=False, mirror_addresses=())[source]
Parameters
  • instr_addr – Instrument address that is forwarded to tabor_control

  • paranoia_level – Paranoia level that is forwarded to tabor_control

  • external_trigger – Not supported yet

  • reset

  • mirror_addresses

abort() None[source]
property all_devices: Sequence[tabor_control.device.TEWXAwg]
amplitude(channel) float[source]
property channel_pair_AB: qupulse.hardware.awgs.tabor.TaborChannelPair
property channel_pair_CD: qupulse.hardware.awgs.tabor.TaborChannelPair
property dev_properties: dict
download_adv_seq_table(seq_table, pref=':ASEQ:DATA', paranoia_level=None)[source]
download_segment_lengths(seg_len_list, pref=':SEGM:DATA', paranoia_level=None)[source]
download_sequencer_table(seq_table, pref=':SEQ:DATA', paranoia_level=None)[source]
enable() None[source]
get_readable_device(simulator=True) tabor_control.device.TEWXAwg[source]
get_status_table() Dict[str, Union[str, float, int]][source]

Send a lot of queries to the AWG about its settings. A good way to visualize is using pandas.DataFrame

Returns

An ordered dictionary with the results

initialize() None[source]
is_coupled() bool[source]
property is_open: bool
property main_instrument: tabor_control.device.TEWXAwg
property mirrored_instruments: Sequence[tabor_control.device.TEWXAwg]
offset(channel: int) float[source]
property paranoia_level: int
reset() None[source]
sample_rate(channel) int[source]
select_channel(channel) None[source]
select_marker(marker: int) None[source]

Select marker 1 or 2 of the currently active channel pair.

send_binary_data(pref, bin_dat, paranoia_level=None)[source]
send_cmd(cmd_str, paranoia_level=None)[source]
send_query(query_str, query_mirrors=False) Any[source]
trigger() None[source]
class qupulse.hardware.awgs.tabor.TaborChannelPair(tabor_device: qupulse.hardware.awgs.tabor.TaborAWGRepresentation, channels: Tuple[int, int], identifier: str)[source]

Bases: qupulse.hardware.awgs.base.AWG

CONFIG_MODE_PARANOIA_LEVEL = None
arm(name: str) None[source]

Implements arm().

change_armed_program(name: Optional[str]) None[source]
cleanup() None[source]

Discard all segments after the last which is still referenced

clear() None[source]

Delete all segments and clear memory

property device: qupulse.hardware.awgs.tabor.TaborAWGRepresentation
free_program(name: str) qupulse.hardware.awgs.tabor.TaborProgramMemory[source]
property internal_paranoia_level: Optional[int]
property logger
property num_channels: int

Implements num_channels.

property num_markers: int

Implements num_markers.

property programs: Set[str]

The set of program names that can currently be executed on the hardware AWG.

read_advanced_sequencer_table() Tuple[numpy.ndarray, numpy.ndarray, numpy.ndarray][source]
read_complete_program() qupulse._program.tabor.PlottableProgram[source]
read_sequence_tables() List[Tuple[numpy.ndarray, numpy.ndarray, numpy.ndarray]][source]
read_waveforms() List[numpy.ndarray][source]
remove(name: str) None[source]

Remove a program from the AWG.

Also discards all waveforms referenced only by the program identified by name.

Parameters

name (str) – The name of the program to remove.

run_current_program() None[source]
property sample_rate: float

Implements sample_rate.

select() None[source]
set_channel_state(channel, active) None[source]
set_marker_state(marker: int, active: bool) None[source]

Sets the marker state of this channel pair. According to the manual one cannot turn them off/on separately.

set_program_advanced_sequence_table(name, new_advanced_sequence_table)[source]
set_program_sequence_table(name, new_sequence_table)[source]
set_volatile_parameters(program_name: str, parameters: Mapping[str, numbers.Number]) None[source]

Set the values of parameters which were marked as volatile on program creation. Sets volatile parameters in program memory and device’s (adv.) sequence tables if program is current program.

If set_volatile_parameters needs to run faster, set CONFIG_MODE_PARANOIA_LEVEL to 0 which causes the device to enter the configuration mode with paranoia level 0 (Note: paranoia level 0 does not work for the simulator) and set device._is_coupled.

Parameters
  • program_name – Name of program which should be changed.

  • parameters – Names of volatile parameters and respective values to which they should be set.

property total_capacity: int
upload(name: str, program: qupulse.program.loop.Loop, channels: Tuple[Optional[Union[str, int]], Optional[Union[str, int]]], markers: Tuple[Optional[Union[str, int]], Optional[Union[str, int]]], voltage_transformation: Tuple[Callable, Callable], force: bool = False) None[source]

Upload a program to the AWG.

The policy is to prefer amending the unknown waveforms to overwriting old ones.