We have uploaded Lab::Measurement 3.20 to CPAN today. This release includes significant new features, in particular in the high-level measurement code and in the instrument readout logic.
The central new feature is Lab::XPRESS. This set of Perl modules builds upon the Instrument layer and provides a replacement and alternative to the Lab::Measurement class and its metadata handling. As detailed in several examples (1, 2, 3), nested loops of parameters, as e.g. gate voltages, combined with arbitrary measurements at each point can now be implemented in a highly flexible but simple way: you describe the logical structure of the measurement, without having to program the loops yourself. This means the actual measurement scripts become simpler and shorter, while remaining highly configurable. The underlying code can automatically take care of many details such as waiting times, timing of measurements, and pause or well-defined abort of the script on key events.
At the Instrument level, foundations have been laid for a centralized caching of instrument parameters. While this defaults off, it can be enabled in an instrument driver. The functionality is useful e.g. if reading out a parameter from the device that does not change on its own, unless explicitly set by a script, is a slow command. This also includes a generic support for asynchronous readout, i.e. first requesting a measurement value and thereby starting a read-out, then later in a separate command reading the result.
In addition, several instrument drivers have been added in varying states of completion, as e.g. the Cryogenic SMS magnet power supply, the Knick S252 voltage source, the Anritsu MG369xB signal generator, and the Keithley 2000 multimeter.
Finally, the TCPraw connection has been deprecated in favour of a new generic Socket implementation which provides a larger feature set. While TCPraw is still available, it internally only calls Socket and will be removed in a future version.
The release package is available from CPAN. Documentation as well as a web view of the Git code repository and a bug tracker are available from the package homepage https://www.labmeasurement.de/.