LCONFIG - A tool for automating experiments and data collection | LabJack
 

LCONFIG - A tool for automating experiments and data collection

LCONFIG is a C library for configuration and logging. Log files also serve as configuration files so you can easily repeat experiments. From the LCONFIG_README:

The LCONFIG or Laboratory CONFiguration header is a tool for automating experiments and data collection with the LabJack T4 and T7 in the C language.  The philosophy is that researchers will construct their own executables that read in configuration files with instructions on how to configure the DAQ for the test. The most common things researchers need to specify should all be exposed through the configuration file (e.g. PGA gain, differential/single-ended measurements, sample rate, analog output functionality, etc...).

LCONFIG was created by Chris Martin (chmarti1), Assistant Professor of Mechanical Engineering at Penn State Altoona. He writes:

In the summer of 2016, I realized I needed to be able to adjust my data acquisition parameters day-by-day as I was tweaking and optimizing an experiment. I love my LabJacks, and the folks at LabJack do a great job of documenting their intuitive interface. HOWEVER, the effort involved in tweaking DAQ properties on the fly AND documenting them with each experiment can be cumbersome.

This little Laboratory CONFIGuration system is designed to work with text-based configuration files using an intuitive human readable format. The philosophy is that most (admittedly not all) laboratory jobs that require data acquisition are quite similar and can be configured using simple text without Labview or other expensive (computationally or monetarily) software.

In brief, LCONFIG supports the following features:

  • Stream sample rate configuration
  • Analog input streaming
  • Analog output function generator
  • Flexible Input/Output extended features
  • Software trigger
  • Automatic generation of data files
  • Post processing in Python
  • Error handling

See github.com/chmarti1/lconfig for the full description.

Great work, Chris!