Baecon Documentation#
Baecon (/ˈbiːkən/), or Basic Experiment Control, is a Python library for controlling laboratory deivce to perform experiments.
Measurement automation, in its most basic terms, consists of the computer sending a message to a device to change a parameter and/or get the value of that parameter or other parameters. Baecon is structed around the this idea by limiting the methods used to communicate with the devices. A device in Baecon can only a read command or a write command during the measurement procedure. Before or after the measurement procedure devices are free to communicate for preparing and configuring the device.
The simplicity of Baecon is partially accomplished by shifting the heavy lifting to the user to build modules for devices that follow the Baecon communication standards. With users writing their own modules, Baecon isn’t limited to any specific communication protocol. We have a few examples of device modules, and we hope to provide more modules we and others user contribute there own.
All the information for the measurement is stored in JSON-like parsible configuration
files. The default configuration file type is .toml, but .yml and .json files are
also compatible. A full measurement can be stored as a single file, or as individual
configurations for the scan settings and devices.
Baecon operates with a command line interface or with the GUI made with the NiceGUI package.
Module |
Purpose |
|---|---|
baecon.base |
Makes and organizes scans of instrument settings |
baecon.device |
Base class for experimental instruments |
baecon.engine |
Performs and controls the measurement |
baecon.data |
Data and analysis of measurements |
baecon.utils |
File I/O and other utility functions |
baecon.GUI |
GUI for operating |
Indices and tables#
basebase.DeviceenginedatautilsGUI
Contribution Guide#
For instructions on how to contribute to the project see Contributions Guide.