semi_cr.core.station.instruments package¶
Static station instrument blueprints.
- class semi_cr.core.station.instruments.LabInstrument[source]¶
Bases:
ABCBase class for instruments represented by an NQCP station.
- is_connected() bool | None[source]¶
Return whether this instrument is connected or not. If the instrument is not connectable it returns None.
Submodules¶
semi_cr.core.station.instruments.base module¶
- class semi_cr.core.station.instruments.base.LabInstrument[source]¶
Bases:
ABCBase class for instruments represented by an NQCP station.
- is_connected() bool | None[source]¶
Return whether this instrument is connected or not. If the instrument is not connectable it returns None.
semi_cr.core.station.instruments.dmm module¶
- class semi_cr.core.station.instruments.dmm.DMMVoltageTerminal(parent_ref: DMMBlueprint, name: str, role: str | None = None)[source]¶
Bases:
objectA station-level, read-only voltage input exposed by a QCoDeS DMM.
- parent_ref: DMMBlueprint¶
- property dmm: DMMBlueprint¶
- class semi_cr.core.station.instruments.dmm.DMMBlueprint(qcodes_config: QCoDeSInstrumentSpec, name: str, inputs: list[DMMVoltageTerminal], connections: dict[str, list[str]])[source]¶
Bases:
QCoDeSInstrumentProxyStatic station blueprint for a routable voltage-measuring DMM.
- inputs: list[DMMVoltageTerminal]¶
- classmethod from_instrument_spec(spec: QCoDeSInstrumentSpec) DMMBlueprint[source]¶
- connect() None¶
In QCoDeS, connection means instantiating the driver with the configured instrument.
- disconnect()¶
Disconnect this instrument when leaving a measurement context.
- is_connected()¶
Return whether this instrument is connected or not. If the instrument is not connectable it returns None.
- qcodes_config: QCoDeSInstrumentSpec¶
semi_cr.core.station.instruments.opx1000 module¶
- class semi_cr.core.station.instruments.opx1000.OPX1000LFTerminal(parent_ref: 'OPX1000LFFEM', name: 'str', role: 'Role')[source]¶
Bases:
object- class Role(*values)[source]¶
Bases:
Enum- Source = 1¶
- Receiver = 2¶
- classmethod __contains__(value)¶
Return True if value is in cls.
value is in cls if: 1) value is a member of cls, or 2) value is the value of one of the cls’s members.
- classmethod __getitem__(name)¶
Return the member matching name.
- classmethod __iter__()¶
Return members in definition order.
- classmethod __len__()¶
Return the number of members (no aliases)
- parent_ref: OPX1000LFFEM¶
- property fem: OPX1000LFFEM¶
- property opx1000: OPX1000Blueprint¶
- to_opx_output_ref(upsampling_mode: str = 'pulse', output_mode: OPXOutputMode = 'direct') OPXOutputRef[source]¶
- to_opx_input_ref() OPXInputRef[source]¶
- class semi_cr.core.station.instruments.opx1000.OPX1000LFFEM(parent_ref: 'OPX1000Blueprint', name: 'str', controller: 'str', slot: 'int', connections: 'list[OPX1000LFTerminal]')[source]¶
Bases:
object- parent_ref: OPX1000Blueprint¶
- connections: list[OPX1000LFTerminal]¶
- classmethod from_instrument_spec(spec: QCoDeSInstrumentSpec, parent_ref: OPX1000Blueprint) OPX1000LFFEM[source]¶
- class semi_cr.core.station.instruments.opx1000.OPX1000Blueprint(name: str, ip_address: str, port: str, modules: list[OPX1000LFFEM])[source]¶
Bases:
LabInstrumentStatic OPX1000 blueprint for station graph routing.
This class does not instantiate the live QCoDeS/QUA driver. It only turns configured module connections into terminal nodes.
- modules: list[OPX1000LFFEM]¶
- classmethod from_instrument_spec(spec: QCoDeSInstrumentSpec) OPX1000Blueprint[source]¶
semi_cr.core.station.instruments.qcodes_proxy module¶
- type semi_cr.core.station.instruments.qcodes_proxy.QCoDeSInstrumentSpec = tuple[str, Mapping[str, Any]]¶
- class semi_cr.core.station.instruments.qcodes_proxy.QCoDeSStationSingleton[source]¶
Bases:
objectWe need a Station temporarily in order to construct the QCoDeS instruments from config. Maybe we could benefit from having an actual persistent QCoDeS station on NQCPStation and using that. I’m concerned about separation of concerns, so I’m opting for the smallest thing for now.
- class semi_cr.core.station.instruments.qcodes_proxy.QCoDeSInstrumentProxy(qcodes_config: QCoDeSInstrumentSpec)[source]¶
Bases:
LabInstrument,ABCBase class for static instruments backed by a live QCoDeS instrument. QCoDeS represents a connection to an instrument as the _presence_ of a driver object. I.e. if the object exists, we may expect there to be a connection (more or less)… We wrap that behavior by maintaining a copy of the specification from the config files, and only inflating the actual QCoDeS instrument when it’s actually needed.
- qcodes_config: QCoDeSInstrumentSpec¶
- connect() None[source]¶
In QCoDeS, connection means instantiating the driver with the configured instrument.
semi_cr.core.station.instruments.spirack module¶
- class semi_cr.core.station.instruments.spirack.SPIRackD5aTerminal(parent_ref: 'SPIRackD5aModule', name: 'str', channel: 'int', role: 'str | None')[source]¶
Bases:
DCDriver- parent_ref: SPIRackD5aModule¶
- property module: SPIRackD5aModule¶
- property spirack: SPIRackBlueprint¶
- set_voltage(voltage: VoltageLike) None[source]¶
Set the voltage of the terminal. We delegate that logic to the D5a device.
- class semi_cr.core.station.instruments.spirack.SPIRackD5aModule(parent_ref: 'SPIRackBlueprint', name: 'str', module_type: 'str', slot: 'int', channels: 'list[SPIRackD5aTerminal]')[source]¶
Bases:
object- parent_ref: SPIRackBlueprint¶
- channels: list[SPIRackD5aTerminal]¶
- classmethod from_instrument_spec(spec: QCoDeSInstrumentSpec, parent_ref: SPIRackBlueprint) SPIRackD5aModule[source]¶
- class semi_cr.core.station.instruments.spirack.SPIRackStaticTerminal(parent_ref: 'SPIRackStaticModule', name: 'str')[source]¶
Bases:
object- parent_ref: SPIRackStaticModule¶
- property module: SPIRackStaticModule¶
- class semi_cr.core.station.instruments.spirack.SPIRackStaticModule(parent_ref: 'SPIRackBlueprint', name: 'str', module_type: 'str', slot: 'int', connections: 'list[SPIRackStaticTerminal]', voltage_conversion_factor: 'float | None' = None, gain_v_per_a: 'float | None' = None, attributes: 'dict[str, Any]'=<factory>)[source]¶
Bases:
object- parent_ref: SPIRackBlueprint¶
- connections: list[SPIRackStaticTerminal]¶
- classmethod from_instrument_spec(spec: QCoDeSInstrumentSpec, parent_ref: SPIRackBlueprint) SPIRackStaticModule[source]¶
- class semi_cr.core.station.instruments.spirack.SPIRackBlueprint(qcodes_config: QCoDeSInstrumentSpec, name: str, d5a_modules: list[SPIRackD5aModule], static_modules: list[SPIRackStaticModule])[source]¶
Bases:
QCoDeSInstrumentProxyStatic SPIRack blueprint for station graph routing.
This class does not instantiate the live QCoDeS driver. It only turns configured module channels and connections into terminal nodes and edges.
- d5a_modules: list[SPIRackD5aModule]¶
- static_modules: list[SPIRackStaticModule]¶
- classmethod from_instrument_spec(spec: QCoDeSInstrumentSpec) SPIRackBlueprint[source]¶
- graph_nodes() Iterable[GraphNode][source]¶
Returns terminal nodes for configured SPIRack module terminals.
- graph_edges() Iterable[GraphEdge][source]¶
Returns graph edges for configured SPIRack module connections.
- connect() None¶
In QCoDeS, connection means instantiating the driver with the configured instrument.
- disconnect()¶
Disconnect this instrument when leaving a measurement context.
- is_connected()¶
Return whether this instrument is connected or not. If the instrument is not connectable it returns None.
- qcodes_config: QCoDeSInstrumentSpec¶