This section provides a few ideas of how basic operation of the eprcontrol toolbox for MATLAB® may look like.
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:
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.
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 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