Use cases¶
This section provides a few ideas of how basic operation of the eprcontrol toolbox for MATLAB® may look like.
Measurements¶
One particular strength of the eprcontrol toolbox for MATLAB® are the recipe-driven measurements. Thus, a user does not need any programming experience and can define the complete measurement in a simple text file.
A real example¶
A measurement that has a few more parameters than those shown in the introduction to recipe-driven measurements is given below. Here, additional blocks for info and sample have been added, aiming at a full set of metadata necessary for reproducibility.
info:
operator: John Doe
purpose: Waste time
sample:
name: stuff
id: 42
experiment:
name: TreprExperiment
setup: UdSEmXM4i
parameters:
filename: trepr-testrun
magnetic_field:
start: 3410
end: 3510
step: 1
settings:
digitizer:
accumulations: 20
channels:
- number: 0
input_range: 200
termination: 1M
coupling: DC
- number: 2
input_range: 5000
termination: '50'
coupling: DC
display:
name: Display
Suppose you have saved this file to Sa42-01.yaml
. In this case, performing the actual measurement is as simple as typing the following line in the MATLAB® command line and hit return:
eprcontrol.measurements.perform('Sa42-01.yaml');
Note that it is good practice to save the measurement descriptions along with the data they produced. Thus, it is much easier to find out what and how you actually recorded those data.
Experiments¶
The dummy experiment¶
Originally written to test the interplay of the different components, the demo experiment available through the eprcontrol.experiments.DummyExperiment
class, is a good starting point. According to the documentation of this experiment, you could simply use two lines of MATLAB® code to run the experiment:
experiment = eprcontrol.experiments.DummyExperiment()
experiment.run()
However, this will not give you more than a series of dots on the MATLAB® command line, nothing spectacular. More fun comes with connecting a display to see the data being “recorded” during the experiment. How about this:
experiment = eprcontrol.experiments.DummyExperiment;
display = eprcontrol.displays.Display;
display.add_listener(experiment);
experiment.run();
This will run the exact same experiment as before, but this time, with a display attached that lets you watch the progress of the experiment.
So, why a dummy experiment? Well, because it lets you play with the eprcontrol toolbox for MATLAB® without needing a setup available or drivers for your particular setup implemented. And it gives you an idea how the eprcontrol toolbox generally works.
Setups¶
Setups consist of individual components that each have a connection to talk to the underlying hardware. However, due to their modular nature, setups can be fully described using text files (usually YAML files) and created “on the fly”.
Two concrete setups with their complete configuration as YAML file are provided as examples below. Use them as starting points for your own needs and change settings accordingly.
Basic TREPR setup¶
This setup for time-resolved EPR spectroscopy consists of a Bruker EMX spectrometer controlled via Bruker Xenon software. As a digitizer, a Spectrum Instrumentation A/D card (M4i.4421-x8) gets used. Communication to Xenon running on the local computer is done using the XML-RPC protocol.
connections:
xenon:
type: BrukerXenonXmlrpcConnection
configuration:
protocol: http
ip: 192.168.1.1
port: 7998
spcm:
type: SpcmConnection
configuration:
device_string: /dev/spcm0
components:
microwavebridge:
type: BrukerXenonMicrowaveBridge
connection: xenon
fieldcontroller:
type: BrukerXenonFieldController
connection: xenon
digitizer:
type: SpcmM4i4421x8
connection: spcm
TREPR setup with software-controlled OPO¶
This setup for time-resolved EPR spectroscopy is rather similar to the one described above. It consists of a Bruker EMX spectrometer controlled via Bruker Xenon software. As a digitizer, a Spectrum Instrumentation A/D card (M4i.4421-x8) gets used. Furthermore, the OPO (GWU) is software-controlled via a Windows computer. Communication to Xenon running on the local computer is done using the XML-RPC protocol. Communication to the GWU OPO software is done using telnets via the TCP/IP protocol.
connections:
xenon:
type: BrukerXenonXmlrpcConnection
configuration:
protocol: http
ip: 192.168.1.1
port: 7998
spcm:
type: SpcmConnection
configuration:
device_string: /dev/spcm0
gwu:
type: GwuTcpipConnection
configuration:
protocol: tcpip
ip: 192.168.1.120
port: 992
components:
microwavebridge:
type: BrukerXenonMicrowaveBridge
connection: xenon
fieldcontroller:
type: BrukerXenonFieldController
connection: xenon
digitizer:
type: SpcmM4i4421x8
connection: spcm
opo:
type: GwuOpo
connection: gwu