Cluster
The Cluster driver is separated into three layers:
QCoDeS driver: Instrument driver based on QCoDeS and the instrument’s native interface.
Native interface: Instrument API that provides control over the instrument and is an extension of the the SCPI interface.
SCPI interface: Instrument API based on the SCPI standard which in turn is based on IEEE488.2.
Warning
This is a preliminary driver for the Cluster that is currently under development.
QCoDeS driver
-
class
cluster.cluster.
cluster_qcodes
(name, transport_inst, debug=0)[source] Bases:
cluster.cluster_ifc.cluster_ifc
,qcodes.instrument.base.Instrument
This class connects QCoDeS to the Cluster native interface. Do not directly instantiate this class, but instead instantiate either the
cluster
orcluster_dummy
.-
__init__
(name, transport_inst, debug=0)[source] Creates Cluster QCoDeS class and adds all relevant instrument parameters. These instrument parameters call the associated methods provided by the native interface.
- Parameters
name (str) – Instrument name.
transport_inst (
transport
) – Transport class responsible for the lowest level of communication (e.g. ethernet).debug (int) – Debug level (0 = normal, 1 = no version check, >1 = no version or error checking).
- Raises
Exception – Debug level is 0 and there is a version mismatch.
Note
To get a complete of list of the QCoDeS parameters, run the following code.
from cluster.cluster import cluster_dummy clstr = cluster_dummy("cluster") for call in clstr.snapshot()['parameters']: print(getattr(clstr, call).__doc__)
-
-
class
cluster.cluster.
cluster
(name, host, port=5025, debug=0)[source] Bases:
cluster.cluster.cluster_qcodes
Cluster driver class based on QCoDeS that uses an IP socket to communicate with the instrument.
-
__init__
(name, host, port=5025, debug=0)[source] Creates Cluster driver object.
- Parameters
name (str) – Instrument name.
host (str) – Instrument IP address.
port (int) – Instrument port.
debug (int) – Debug level (0 = normal, 1 = no version check, >1 = no version or error checking).
- Raises
Exception – Debug level is 0 and there is a version mismatch.
-
-
class
cluster.cluster.
cluster_dummy
(name, debug=1)[source] Bases:
cluster.cluster.cluster_qcodes
Cluster driver class based on QCoDeS that uses the
cluster_dummy_transport
layer to substitute an actual Cluster to allow software stack development without hardware.
-
class
cluster.cluster.
cluster_qcm
(name, host, port=5025, debug=1)[source] Bases:
pulsar_qcm.pulsar_qcm.pulsar_qcm
Cluster QCM driver class based on QCoDeS that uses an IP socket to communicate with the instrument.
Warning
This is a temporary class created for development purposes that will be removed in the future.
-
__init__
(name, host, port=5025, debug=1)[source] Creates Cluster QCM driver object.
- Parameters
name (str) – Instrument name.
host (str) – Instrument IP address.
port (int) – Instrument port.
debug (int) – Debug level (0 = normal, 1 = no version check, >1 = no version or error checking).
- Raises
Exception – Debug level is 0 and there is a version mismatch.
-
-
class
cluster.cluster.
cluster_qcm_dummy
(name, debug=1, is_rf_type=False)[source] Bases:
pulsar_qcm.pulsar_qcm.pulsar_qcm_dummy
Cluster QCM driver class based on QCoDeS that uses the
pulsar_dummy_transport
layer to substitute an actual Cluster QCM to allow software stack development without hardware.Warning
This is a temporary class created for development purposes that will be removed in the future.
-
__init__
(name, debug=1, is_rf_type=False)[source] Creates Cluster QCM driver object. The debug level must be set to >= 1.
- Parameters
name (str) – Instrument name.
debug (int) – Debug level (0 = normal, 1 = no version check, >1 = no version or error checking).
is_rf_type (bool) – Dummy module type (False = RF, True = baseband)
-
-
class
cluster.cluster.
cluster_qrm
(name, host, port=5025, debug=1)[source] Bases:
pulsar_qrm.pulsar_qrm.pulsar_qrm
Cluster QRM driver class based on QCoDeS that uses an IP socket to communicate with the instrument.
Warning
This is a temporary class created for development purposes that will be removed in the future.
-
__init__
(name, host, port=5025, debug=1)[source] Creates Cluster QRM driver object.
- Parameters
name (str) – Instrument name.
host (str) – Instrument IP address.
port (int) – Instrument port.
debug (int) – Debug level (0 = normal, 1 = no version check, >1 = no version or error checking).
- Raises
Exception – Debug level is 0 and there is a version mismatch.
-
-
class
cluster.cluster.
cluster_qrm_dummy
(name, debug=1, is_rf_type=False)[source] Bases:
pulsar_qrm.pulsar_qrm.pulsar_qrm_dummy
Cluster QRM driver class based on QCoDeS that uses the
pulsar_dummy_transport
layer to substitute an actual Cluster QRM to allow software stack development without hardware.Warning
This is a temporary class created for development purposes that will be removed in the future.
-
__init__
(name, debug=1, is_rf_type=False)[source] Creates Cluster QRM driver object. The debug level must be set to >= 1.
- Parameters
name (str) – Instrument name.
debug (int) – Debug level (0 = normal, 1 = no version check, >1 = no version or error checking).
is_rf_type (bool) – Dummy module type (False = RF, True = baseband)
-
QCoDeS parameters
QCoDeS parameters generated by cluster_qcodes
.
cluster.module1_present
Sets/gets module present status for slot {} in the Cluster.
- Properties
value: Enum: {‘present’, ‘empty’}
cluster.reference_source
Sets/gets reference source (‘internal’ = internal 10 MHz, ‘external’ = external 10 MHz).
- Properties
value: Enum: {‘external’, ‘internal’}
Note
Only module 1’s parameters are listed, but all other modules have the same parameters.
Native interface
-
class
cluster.cluster_ifc.
cluster_ifc
(transport_inst, debug=0)[source] Bases:
cluster.cluster_scpi_ifc.cluster_scpi_ifc
Class that provides the native API for the Cluster. It provides methods to control all functions and features provided by the Cluster.
-
__init__
(transport_inst, debug=0)[source] Creates Cluster native interface object.
- Parameters
transport_inst (
transport
) – Transport class responsible for the lowest level of communication (e.g. ethernet).debug (int) – Debug level (0 = normal, 1 = no version check, >1 = no version or error checking).
- Returns
Cluster native interface object.
- Return type
- Raises
Exception – Debug level is 0 and there is a version mismatch.
-
get_idn
()[source] Get device identity and build information.
- Returns
Dictionary containing manufacturer, model, serial number and build information. The build information is subdivided into FPGA firmware, kernel module software, application software and driver software build information. Each of those consist of the version, build date, build Git hash and Git build dirty indication.
- Return type
dict
- Raises
Exception – An error is reported in system error and debug <= 1. All errors are read from system error and listed in the exception.
-
get_system_status
()[source] Get general system state.
- Returns
Dictionary containing general status and corresponding flags:
- Status
OKAY: System is okay.
CRITICAL: An error indicated by the flags occured, but has been resolved.
ERROR: An error indicated by the flags is occuring.
- Flags
CARRIER_PLL_UNLOCK: Carrier board PLL is unlocked.
FPGA_PLL_UNLOCK: FPGA PLL is unlocked.
FPGA_TEMP_OR: FPGA temperature is out-of-range.
CARRIER_TEMP_OR: Carrier board temperature is out-of-range.
- Return type
dict
- Raises
Exception – An error is reported in system error and debug <= 1. All errors are read from system error and listed in the exception.
-
SCPI interface
-
cluster.cluster_scpi_ifc.
scpi_error_check
(func)[source] Decorator that catches and checks for errors on an SCPI call.
- Parameters
func – Class method that performs an SCPI call
- Raises
Exception – An error was found in system error or an exception was passed as input argument.
-
class
cluster.cluster_scpi_ifc.
cluster_scpi_ifc
(transport_inst, debug=0)[source] Bases:
ieee488_2.ieee488_2.ieee488_2
This interface provides an API for the mandatory and required SCPI calls and adds Pulsar related functionality (see SCPI).
-
__init__
(transport_inst, debug=0)[source] Creates SCPI interface object.
- Parameters
transport_inst (
transport
) – Transport class responsible for the lowest level of communication (e.g. ethernet).debug (int) – Debug level (0 = normal, 1 = no version check, >1 = no version or error checking).
- Returns
SCPI interface object.
- Return type
- Raises
Exception – Debug level is 0 and there is a version mismatch.
-
get_system_error
()[source] Get system error from queue (see SCPI).
- Parameters
None –
- Returns
System error description string.
- Return type
str
-