Constellation Preview Release 0.1#

After about a year of development, around 3000 commits and 500 merge requests, we are happy to announce Constellation version 0.1, named Crux. Feature releases of the framework are going to be named after IAU designated constellations, in ascending order according to their solid angle.

This first release lays the foundation of the Constellation framework. A few of the main features are listed in the following:

  • Implementation of the draft protocols for commands (CSC), heartbeating (CHP), network discovery (CHIRP), monitoring (CMDP) and data transmission (CDTP) in both C++ and Python

  • An API and library to implement satellites with logging, custom commands, data sending and receiving, as well as metrics (currently Python only)

  • An API and library to implement a controller that can send commands to one or multiple satellites

  • A scriptable IPython-based command line controller (Controller)

  • A Qt-based graphical controller user interface written in C++ (MissionControl)

For more details on the feature parity between C++ and Python, see issue #33.

Some first satellites utilizing the above libraries have been implemented and tested:

  • Keithley: controls Keithley SMUs (Python)

  • Influx: uploads metrics to an InfluxDB (Python)

  • H5DataWriter: writes data to an HDF5 file (Python)

  • CaenHV: controls CAEN HV crates (Python)

  • RandomTransmitter: sends random data (C++)

  • DevNullReceiver: receives data without storing (C++)

  • Sputnik: serves as template for new implementations (C++)

  • Mariner: serves as template for new implementations (Python)

Several other satellites are functional and under review.

The software is publicly available under the EUPL-1.2 from the DESY GitLab repository. In addition, the Python version is available on PyPI.

It should be noted that this is a first preview release and some interfaces and protocols might change until the first official major release.

Screenshot of the MissionControl controller interface