API Reference

System

Base classes for measurement systems

core.system.base:System

Define a measurement setup/system.

core.system.base:System.states

Ordered states exposed by a stateful system.

core.system.base:System.state_exclusion_groups

Optional state-to-exclusion-group declarations.

core.system.base:System.add_param()

Add a Parameter to the list of parameters.

core.system.base:System.add_dev()

Add a device to the device dictionary.

core.system.base:System.set()

Handle device opening/initialization.

core.system.base:System.reset()

General reset function for deinitialization of system.

core.system.base:System.name

Return the optional instance name.

core.system.base:System.hdf5

Get whether the system requires or uses HDF5 format for data storage.

core.system.base:System.add_comment()

Add comment to the datafile.

core.system.base:System.report()

Report data through the communication layer.

core.system.base:System.load_config()

Load and validate a configuration section from the matr1x TOML file.

Control

Framework for device control panels

control.controlwindow:ControlWindow

Base class for control GUIs.

control.gui_dict:GuiDict

Custom dictionary representing elements and commands of the control GUI.

control.gui_dict:GuiDict.cmds
control.gui_dict:GuiDict.data
control.gui_dict:GuiDict.refresh_period
control.gui_dict:GuiDict.allow_disabling
control.gui_dict:GuiDict.create_GUI()

Create a QDockWidget to be attached to the main control GUI.

control.gui_dict:GuiDict.refresh()

Update values from the device and show them in the GUI.

control.gui_dict:GuiDict.copy_values()

Copy the values from the first to the second column.

control.gui_dict:GuiDict.panic()

Enable panic mode and put everyting to a save state.

control.gui_dict:GuiDict.unpanic()

Make device operational again.

control.gui_dict:GuiDict.extended_visible

bool: Whether hidden controls are currently shown.

control.gui_dict:var

Variable storage for implementing with qt GUI.

control.gui_dict:guiObject

Enum object for GUI elements identification.

control.gui_dict:MethodBundle

Allow a thread-safe modification of a guiObject.

control.gui_dict:catchEmitError()

Define error handling decorator.

control.util:control_main()

Run main function of control GUI.

control.util:linear_trend()

Calculate the linear trend of the data in the last ‘interval’ seconds.

control.util:sendNotificationEmail()

Send messages to a list of email addresses.

Models

Pydantic models exchanged between systems and scripts

core.models:Message

Model for messages.

core.models:Modifier

A set of modifiers for message routing.

System configuration

Base model and field types for defining system config options

core.models:SystemConfigModel

Base model for system configuration with validated default values.

core.models:GuiField()

Wrap pydantic.Field to simplify GUI hints.

core.models:SciFloat
core.models:FilePath
core.models:FolderPath
core.models:VisaResource
core.models:SerialVisaResource
core.models:GPIBVisaResource
core.models:TCPIPSocketVisaResource
core.models:LocalTCPIPSocketVisaResource

Eval

Loading and analyzing measurement data

core.eval:loadmatrix()

Open matrix ascii data as well as hdf5 files generated by matrix.

core.eval:delta()

Resolve transport data acquired using the delta method.

core.eval:delta3p()

Resolve transport data acquired using the three point delta method.

Util

Shared helper classes and functions

core.commands:Command

Class representing a command provided by a ControlGUI.

core.commands:Get

Class representing a Getter-command of a ControlGUI.

core.commands:Set

Class representing a Setter-command of a ControlGUI.

SCPI Server

core.scpi_tcpserver:DEFAULT_PORT
core.scpi_tcpserver:SCPI_TCP_Server

Define Polling Server.

GUI

Shared GUI components (PySide6)

gui.mixins:AutoSlot()

Provide a Qt slot for a typed python function or method.

Devices

Instrument driver base classes and helpers

devices.visadevice:VisaDevice

The VISA device class of matr1x.

devices.modbusdevice:ModbusDevice

Driver for Modbus devices using the minimalmodbus library.

devices.scpi_dev:makeSCPIdevice()

Dynamically generate a pymeasure device for SCPI commands.

devices:scpiPORTdrivers

matrix-script API

Functions available in matrix-script scripts

core.script_api:set_value()

Store set parameters and call _system.set_value.

core.script_api:trigger_value()

Execute trigger_value for the (merged) system.

core.script_api:read_value()

Execute read_value for the (merged) system.

core.script_api:wait()

Pause for a duration, until a timestamp, or for a relative time.

core.script_api:input()

Ask user to provide some free text input.

core.script_api:input_bool()

Ask user to answer a yes/no question.

core.script_api:input_numerical()

Ask user to answer a yes/no question.

core.script_api:end_script()

End the script execution and set the file status acordingly.

core.script_api:print()

Print the message and optionally forward it to the datafile.

core.script_api:init_datafile()

Initialize the datafile for the matrix_script measurement.

core.script_api:measure_system()

Perform the measurement of a single data point.

Device Drivers

One entry per vendor package; all driver classes are public

devices.keithley:Keithley2000

Class for controlling Keithley 2000 multimeter.

devices.keithley:Keithley2182A

Keithley2182A nanovoltmeter instrument driver.

devices.keithley:Keithley2400

Class for controlling Keithley 2400 SourceMeter.

devices.keithley:Keithley2450

Class for controlling Keithley 2450 SourceMeter.

devices.keithley:Keithley2611A

Control interface for Keithley 2611A Source Measure Unit (SMU).

devices.keithley:Keithley2701

Interface for the Keithley 2701 multimeter.

devices.keithley:KeithleyDMM6500

Class for controlling the Keithley DMM6500 multimeter.

devices.keithley:Keithley6221

Keithley 6221 AC and DC Current Source interface.

devices.keysight:Agilent8114A

Driver for Agilent 8114A High Power Pulse Generator.

devices.keysight:KeysightB2961

Keysight B2961 DC (and low frequency AC) power supply.

devices.keysight:PNA5225b

The device class for the Keysight VNA 5225b.

devices.keysight:PSA_E4440A

The device class for the Agilent PSA E4440A - Spectrum Analyzer.

devices.keysight:PSG8257D

Keysight PSG 8257D-521 microwave signal generator.

devices.lakeshore:Lakeshore335

Interface for Lakeshore 335 temperature controller.

devices.lakeshore:Lakeshore340

Interface for Lakeshore 340 temperature controller.

devices.lakeshore:Lakeshore475

Class for controlling the Lakeshore 475 Gaussmeter.

devices.oxford:ILM200

Driver for Oxford ILM200 series level meter.

devices.oxford:IPS120_switchheater

IPS120 driver with switch heater control for persistent mode.

devices.oxford:ITC503

Oxford Instruments ITC503 temperature controller interface.

devices.oxford:MercuryIPS

Driver for multi-axis Mercury IPS.

devices.oxford:MercuryITC

Driver for Mercury ITC.

devices.oxford:MercurySingleAxisIPS

Driver for Mercury-IPS.

devices.danfysik:Danfysik9100

Driver for Danfysik 9100 power supply.

devices.danfysik:Danfysik9700

Danfysik System 9700 power supply + polarity switch unit.

devices.cryogenics:CryogenicPS

Control interface for Cryogenic Power Supply.

devices.cryogenics:CryogenicBipolarPS

Control interface for Cryogenic Bipolar Power Supply.

devices.cryomagnetics:CS04

Cryomagnetics CS04 magnet power supply.

devices.cryovac:TIC500

TIC500 temperature controller interface.

devices.dummy:dummy

Dummy device for testing.

devices.horst:HTMC11

Instrument class for the Horst HTMC11 bakeout controller.

devices.quantumdesign:PPMS

Class for interacting with the Quantum Design PPMS.

devices.rohdeschwarz:FSW8

The device class for the Rohde & Schwarz FSW8 spectrum analyzer.

devices.hewlettpackard:HP3245A

HP3245A AC function generator.

devices.electronicsmeasurements:BOSS

Class for controlling the Electronics Measurement Inc.

devices.caenels:CAENelsEasyDriver

Interface class for CAEN ELS EasyDriver power supply.

devices.ami:AMI1700

AMI 1700 Level Meter.

devices.kepco:BOP5020mg

The device class for the Kepco BOP 50-20MG power supply.

devices.magnetphysik:FH55

Driver for Hall probe FH55 from Magnet Physik.

devices.minicircuits:RC_2SPDT_A18

Mini-Circuits RF Switch Matrix, DC - 18000 MHz, 50Ω.

devices.nanotec:NanotecPD4

Nanotec PD4 stepper motor with integrated controller.

devices.owis:Ps10

Owis PS10 motor controller class for stepper motor control.

devices.owis:SMS

OWIS SMS motor controller class for stepper motor control.

devices.pfeiffer:MPT200

MPT200 pressure gauge interface.

devices.picotech:PicoVNA

Driver for PicoVNA Vector Network Analyzer instruments.

devices.physikinstrumente:MercuryC663

Driver for PI stepper motor @ Rote Zora.

devices.thorlabs:BSC103

The Thorlabs BSC103 motor controller device class.

devices.git:gitDevice

Interface to Git repositories.

devices.tempco:Tempco9300

Instrument class for the Tempco 9300 temperature controller.

devices.tempco:TempcoMode

Temperature controller operation modes.

devices.twickenham:HDI

Twickenham Helium Depth Indicator (HDI) interface.

Constants

Module-level constants and data

core.metadata:VALID_META_KEYS

Valid metadata keys for the dublin core metadata.

core.metadata:APP_META_KEY

The user can append to these dublin core keys.