3.3.3.4. qupulse.hardware.feature_awg.features

Classes

ActivatableChannels()

AmplitudeOffsetHandling(value)

An enumeration.

ChannelSynchronization()

This Feature is used to synchronise a certain ammount of channels

DeviceControl()

This feature is used for basic communication with a AWG

ProgramManagement(channel_tuple)

ReadProgram(channel_tuple)

Read the currently armed and uploaded program from the device.

RepetitionMode(value)

Some devices support playing a program indefinitely or only once.

SCPI(visa)

Represents the ability to communicate via SCPI.

StatusTable()

VolatileParameters(channel_tuple)

Ability to set the values of parameters which were marked as volatile on program creation.

VoltageRange()

class qupulse.hardware.feature_awg.features.ActivatableChannels[source]

Bases: qupulse.hardware.feature_awg.base.AWGChannelFeature

abstract disable()[source]

Disables the output of a certain channel

abstract enable()[source]

Enables the output of a certain channel

abstract property enabled: bool

Returns the the state a channel has at the moment. A channel is either activated or deactivated

class qupulse.hardware.feature_awg.features.AmplitudeOffsetHandling(value)[source]

Bases: enum.Enum

An enumeration.

CONSIDER_OFFSET = 'consider_offset'
IGNORE_OFFSET = 'ignore_offset'
class qupulse.hardware.feature_awg.features.ChannelSynchronization[source]

Bases: qupulse.hardware.feature_awg.base.AWGDeviceFeature, abc.ABC

This Feature is used to synchronise a certain ammount of channels

abstract synchronize_channels(group_size: int) None[source]

Synchronize in groups of group_size channels. Groups of synchronized channels will be provided as AWGChannelTuples.

Parameters

group_size – Number of channels per channel tuple

class qupulse.hardware.feature_awg.features.DeviceControl[source]

Bases: qupulse.hardware.feature_awg.base.AWGDeviceFeature, abc.ABC

This feature is used for basic communication with a AWG

abstract reset() None[source]

Resetting the whole device. A command for resetting is send to the Device, the device is initialized again and all channel tuples are cleared.

abstract trigger() None[source]

This method triggers a device remotely.

class qupulse.hardware.feature_awg.features.ProgramManagement(channel_tuple: qupulse.hardware.feature_awg.base.AWGChannelTuple)[source]

Bases: qupulse.hardware.feature_awg.base.AWGChannelTupleFeature, abc.ABC

abstract arm(name: Optional[str]) None[source]

Load the program ‘name’ and arm the device for running it. If name is None the awg will “dearm” its current program.

abstract clear() None[source]

Removes all programs and waveforms from the AWG.

Caution: This affects all programs and waveforms on the AWG, not only those uploaded using qupulse!

property default_repetition_mode: qupulse.hardware.feature_awg.features.RepetitionMode
abstract property programs: Set[str]

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

abstract 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 – The name of the program to remove.

abstract run_current_program() None[source]

This method starts running the active program

abstract property supported_repetition_modes: Set[qupulse.hardware.feature_awg.features.RepetitionMode]

Return set of supported repetition modes in the current configuration.

abstract upload(name: str, program: qupulse.program.loop.Loop, channels: Tuple[Optional[Union[str, int]], ...], marker_channels: Tuple[Optional[Union[str, int]], ...], voltage_transformation: Tuple[Optional[Callable], ...], repetition_mode: Optional[Union[qupulse.hardware.feature_awg.features.RepetitionMode, str]] = None, force: bool = False) None[source]

Upload a program to the AWG.

Physically uploads all waveforms required by the program - excluding those already present - to the device and sets up playback sequences accordingly. This method should be cheap for program already on the device and can therefore be used for syncing. Programs that are uploaded should be fast(~1 sec) to arm.

Raises

ValueError – if one of channels, marker_channels, voltage_transformation or repetition_mode is invalid

Parameters
  • name – A name for the program on the AWG.

  • program – The program (a sequence of instructions) to upload.

  • channels – Tuple of length num_channels that ChannelIDs of in the program to use. Position in the list corresponds to the AWG channel

  • marker_channels – List of channels in the program to use. Position in the List in the list corresponds to the AWG channel

  • voltage_transformation – transformations applied to the waveforms extracted rom the program. Position

  • channel (in the list corresponds to the AWG) –

  • repetition_mode – how often the program should be played

  • force – If a different sequence is already present with the same name, it is overwritten if force is set to True. (default = False)

class qupulse.hardware.feature_awg.features.ReadProgram(channel_tuple: qupulse.hardware.feature_awg.base.AWGChannelTuple)[source]

Bases: qupulse.hardware.feature_awg.base.AWGChannelTupleFeature, abc.ABC

Read the currently armed and uploaded program from the device. The returned object is highly device specific.

abstract read_complete_program() Any[source]
class qupulse.hardware.feature_awg.features.RepetitionMode(value)[source]

Bases: enum.Enum

Some devices support playing a program indefinitely or only once.

AUTO_REARM = 'auto_rearm'
INFINITE = 'infinite'
ONCE = 'once'
class qupulse.hardware.feature_awg.features.SCPI(visa: pyvisa.resources.MessageBasedResource)[source]

Bases: qupulse.hardware.feature_awg.base.AWGDeviceFeature, abc.ABC

Represents the ability to communicate via SCPI.

https://en.wikipedia.org/wiki/Standard_Commands_for_Programmable_Instruments

close()[source]
send_cmd(cmd_str)[source]
send_query(query_str)[source]
class qupulse.hardware.feature_awg.features.StatusTable[source]

Bases: qupulse.hardware.feature_awg.base.AWGDeviceFeature, abc.ABC

abstract 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

class qupulse.hardware.feature_awg.features.VolatileParameters(channel_tuple: qupulse.hardware.feature_awg.base.AWGChannelTuple)[source]

Bases: qupulse.hardware.feature_awg.base.AWGChannelTupleFeature, abc.ABC

Ability to set the values of parameters which were marked as volatile on program creation.

abstract set_volatile_parameters(program_name: str, parameters: Mapping[str, numbers.Real]) None[source]

Set the values of parameters which were marked as volatile on program creation.

class qupulse.hardware.feature_awg.features.VoltageRange[source]

Bases: qupulse.hardware.feature_awg.base.AWGChannelFeature

abstract property amplitude: float

Get amplitude of AWG channel

abstract property amplitude_offset_handling: qupulse.hardware.feature_awg.features.AmplitudeOffsetHandling

Gets the amplitude and offset handling of this channel. The amplitude-offset controls if the amplitude and offset settings are constant or if these should be optimized by the driver

abstract property offset: float

Get offset of AWG channel