qblox_scheduler.qblox#

Module containing commonly used qblox specific classes.

Submodules#

Classes#

ClusterComponent

Class that represents an instrument coordinator component for a Qblox cluster.

Functions#

save_to_experiment(→ None)

Save a dataset or a snapshot to an experiment folder.

start_dummy_cluster_armed_sequencers(→ None)

Starting all armed sequencers in a dummy cluster.

Package Contents#

save_to_experiment(tuid: str, dataset: xarray.Dataset | None, save_snapshot: bool = True, save_dataset: bool = True) None[source]#

Save a dataset or a snapshot to an experiment folder.

Examples

dataset = instrument_coordinator.run()
save_to_experiment(dataset)
Parameters:
  • dataset – The dataset to save

  • save_snapshot – Whether to save a snapshot of the experiment

  • tuid – The time-based unique identifier (TUID) of the form YYYYmmDD-HHMMSS-sss-** for the dataset. Used also for the directory creation where the snapshot is saved

  • save_dataset – Whether to save the dataset of the experiment

start_dummy_cluster_armed_sequencers(cluster_component: qblox_scheduler.instrument_coordinator.components.qblox.ClusterComponent) None[source]#

Starting all armed sequencers in a dummy cluster.

Starting all armed sequencers via Cluster.start_sequencer() doesn’t yet work with dummy acquisition data (verified it does work on hardware). Hence, we need still need to call start_sequencer() for all sequencers separately. TODO: qblox_instruments.ieee488_2.cluster_dummy_transport.ClusterDummyTransport See SE-441.

class ClusterComponent(instrument: qblox_instruments.Cluster)[source]#

Bases: qblox_scheduler.instrument_coordinator.components.base.InstrumentCoordinatorComponentBase

Class that represents an instrument coordinator component for a Qblox cluster.

New instances of the ClusterComponent will automatically add installed modules using name “<cluster_name>_module<slot>”.

Parameters:

instrument – Reference to the cluster driver object.

class _Program#
module_programs: dict[str, Any]#
settings: qblox_scheduler.backends.types.qblox.ClusterSettings#
_cluster_modules: dict[str, qblox_scheduler.instrument_coordinator.components.base.InstrumentCoordinatorComponentBase]#
_program: ClusterComponent | None = None#
cluster#
property is_running: bool#

Returns true if any of the modules are currently running.

_set_parameter(instrument: qcodes.instrument.instrument_base.InstrumentBase, parameter_name: str, val: Any) None[source]#

Set the parameter directly or using the lazy set.

Parameters:
  • instrument – The instrument or instrument channel that holds the parameter to set, e.g. self.instrument or self.instrument[f”sequencer{idx}”].

  • parameter_name – The name of the parameter to set.

  • val – The new value of the parameter.

start() None[source]#

Starts all the modules in the cluster.

_sync_on_external_trigger(settings: qblox_scheduler.backends.types.qblox.ExternalTriggerSyncSettings) None[source]#
stop() None[source]#

Stops all the modules in the cluster.

prepare(program: dict[str, dict | qblox_scheduler.backends.types.qblox.ClusterSettings]) None[source]#

Prepares the cluster component for execution of a schedule.

Parameters:
  • program – The compiled instructions to configure the cluster to.

  • acq_channels_data – Acquisition channels data for acquisition mapping.

  • repetitions – Repetitions of the schedule.

retrieve_acquisition() xarray.Dataset | None[source]#

Retrieves all the data from the instruments.

Returns:

: The acquired data or None if no acquisitions have been performed.

wait_done(timeout_sec: int = 10) None[source]#

Blocks until all the components are done executing their programs.

Parameters:

timeout_sec – The time in seconds until the instrument is considered to have timed out.

get_hardware_log(compiled_schedule: qblox_scheduler.schedules.schedule.CompiledSchedule) dict | None[source]#

Retrieve the hardware log of the Cluster Management Module and associated modules.

This log includes the module serial numbers and firmware version.

Parameters:

compiled_schedule – Compiled schedule to check if this cluster is referenced in (and if so, which specific modules are referenced in).

Returns:

: A dict containing the hardware log of the cluster, in case the component was referenced; else None.

get_module_descriptions() dict[int, qblox_scheduler.backends.types.qblox.ClusterModuleDescription][source]#

Get the module types of this cluster, indexed by their position in the cluster.

Returns:

: A dictionary containing the module types in this cluster, indexed by their position in the cluster.