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
Parameterto 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.