Source code for quantify_scheduler.backends.qblox.operations.rf_switch_toggle
# Repository: https://gitlab.com/quantify-os/quantify-scheduler
# Licensed according to the LICENCE file on the main branch
"""Module that contains the RFSwitchToggle operation."""
from quantify_scheduler import Operation
[docs]
class RFSwitchToggle(Operation):
"""
Turn the RF complex output on for the given duration.
The RF ports are on by default, make sure to set
:attr:`~.quantify_scheduler.backends.types.qblox.RFDescription.rf_output_on`
to `False` to turn them off.
Parameters
----------
duration
Duration to turn the RF output on.
port
Name of the associated port.
clock
Name of the associated clock.
For now the given port-clock combination must
have a LO frequency defined in the hardware configuration.
Examples
--------
Partial hardware configuration to turn the RF complex output off by default
to be able to use this operation.
.. code-block:: python
hardware_compilation_config = {
"config_type": QbloxHardwareCompilationConfig,
"hardware_description": {
"cluster0": {
"instrument_type": "Cluster",
"modules": {
"0": {"instrument_type": "QCM_RF", "rf_output_on": False},
"1": {"instrument_type": "QRM_RF", "rf_output_on": False},
},
},
},
}
"""
def __init__(
self,
duration: float,
port: str,
clock: str,
) -> None:
super().__init__(name=self.__class__.__name__)
self.data["pulse_info"] = [
{
"wf_func": None,
"marker_pulse": True, # This distinguishes MarkerPulse from other operations
"t0": 0,
"clock": clock,
"port": port,
"duration": duration,
}
]
self._update()
def __str__(self) -> str:
pulse_info = self.data["pulse_info"][0]
return self._get_signature(pulse_info)