SPECTRE - Spectroscopy and Photonics Equipment Control Toolkit for Research and Experimentation.
A Library for controlling various experimental spectroscopy setups at the University of Canterbury. It also contains support tools for the analysis of spectra.
This is a current and ongoing project porting the experimental spectroscopy tools we use to Python while maintaining our original LabVIEW interface.
All data acquisition devices provide a minimal set of public API's that have crossover such a measure()
function that returns counts, volts etc for all devices, this makes swapping between devices within the one GUI trivial. Internal API's can function as the device requires them to. This is ideally abstracted away as much as possible (but well documented)
Instead of adding device-level control for the data acquisition device, these should be set in a config.toml
file. This way, the GUI remains simplified, and the acquisition parameters are abstracted away from the GUI and can be set elsewhere specific to that device or if the device supports it, the device itself (which is often easier in my experience). It makes it easy to swap out these devices to a lock-in amplifier, scope, or photon counter on the fly. Instead, the GUI can wait for the data from the specified device regardless of what it is. Specifying a path to these files makes it possible to have your own unique set of configurations that work for your experiment and minimises previous user presets impacting your experiment.
Where possible device drivers are open sourced and Windows version-specific dependencies are minimised. This is unavoidable, but if it is possible to achieve Windows independent functionality this should be strived for. This will make for more stable programs in the long term.
spcs_instruments