Skip to content

greyltc/centralcontrol

Repository files navigation

centralcontrol

instrument control server

Purpose

This software controls laboratory instruments. It receives high level instructions from the user telling it what measurements to make via an MQTT subscription and uses those instructions to decide how to command various instruments and other lab equipment to carry out the measurements the user has requested. It may then publish the measurement data via MQTT.

Development workflow

  1. Use git to clone this repo and cd into its folder
  2. Install dependancies system-wide using your favorite python package manager. View those like this:
    $ hatch project metadata | jq -r '.dependencies | .[]'
  3. Setup a virtual environment for development/testing
    $ python -m venv --without-pip --system-site-packages --clear venv
  4. Activate the venv (however your shell does it1)
    $ source venv/bin/activate
  5. Install the package in editable mode into the venv
    (venv) $ python tools/venv_dev_install.py
  6. Develop! When you're finished with it, you can deactivate the virtual environment with deactivate

Footnotes

  1. https://docs.python.org/3/library/venv.html#how-venvs-work