Lab::Measurement allows to perform test and measurement tasks with Perl 5 scripts. It provides an interface to several instrumentation control backends, as e.g. Linux-GPIB or National Instruments' NI-VISA library. Dedicated instrument driver classes relieve the user from taking care of internal details and make data aquisition as easy as
$voltage = $multimeter->get_voltage();
The Lab::Measurement software stack consists of several parts that are built on top of each other. This modularization allows support for a wide range of hardware on different operating systems. The protocol overhead is silently handled - you can write commands to an instrument and read out the result. Drivers for specific devices are included, implementing their command syntax; more can easily be added to provide high-level functions. Lab::Measurement includes tools to automatically generate measurement loops, for metadata handling (what was that amplifier setting in the measurement again?!), data plotting, and similar.
Lab::Measurement is primarily developed at the Carbon Nanotube Transport and Nanomechanics Group, University of Regensburg. Feel free to try it, to hack, and to send us your improvements and bugfixes. The latest release is Lab::Measurement 3.652.
Lab::Measurement can be downloaded from CPAN. The source code archive can be found at Github, where you can also obtain the newest pre-release code and browse the version history. For browsing the code we also have a direct gitweb access.
Please consider citing Lab::Measurement in publications where you have used it to measure. Here's how (BibTeX file):
S. Reinhardt, C. Butschkow, S. Geissler, A. Dirnaichner, F. Olbrich, C. Lane, D. Schröer, and A. K. Hüttel, "Lab::Measurement — a portable and extensible framework for controlling lab equipment and conducting measurements", arXiv:1804.03321 (2018).
While Lab::Measurement has built-in support for devices connected, e.g., via ethernet, serial port, or the Linux USB Test&Measurement kernel driver, you may want to additionally install driver backends such as Lab::VISA or LinuxGPIB.
Quite some documentation of Lab::Measurement is available. This documentation includes a tutorial on using Lab::Measurement. Detailed installation instructions are provided as well. In addition, there's also a collection of hardware back-end specific documentation and links.
The Lab::VISA packages were originally developed by Daniel Schröer and continued by Andreas K. Hüttel, Daniela Taubert, and Daniel Schröer. Most of the documentation was written by Daniel Schröer. In 2011, the code was refactored mostly by Florian Olbrich to include the Bus and Connection layers; subsequently the name of the entire package collection was changed to Lab::Measurement. David Kalok, Hermann Kraus, and Alois Dirnaichner have contributed additional code. The new Lab::XPRESS high-level layer was contributed by Christian Butschkow, Stefan Geissler and Alexei Iankilevitch; current development is pushed ahead by Simon Reinhardt with the port of the entire module stack to Moose.
Lab::Measurement is free software, released under the same terms as Perl itself; this means you have the choice of any version of the GNU General Public License or of the Artistic License.
The continued improvement of Lab::Measurement was supported by the Deutsche Forschungsgemeinschaft via grants Hu 1808/1 (Emmy Noether program), collaborative research centre SFB 689, and graduate research school GRK 1570.