/concert

Concert is a light-weight experiment control system

Primary LanguagePythonGNU Lesser General Public License v3.0LGPL-3.0

Concert

https://img.shields.io/badge/Python-3.7+-blue https://badge.fury.io/py/concert.png https://github.com/ufo-kit/concert/actions/workflows/tests.yml/badge.svg?branch=master Documentation Status

Concert is a light-weight control system interface to control Tango and native devices. It requires Python >= 3.7, for tests you will need >= 3.8. It can be used as a library:

from concert.quantities import q
from concert.devices.motors.dummy import LinearMotor

motor = await LinearMotor()
await motor.set_position(10 * q.mm)
await motor.move(-5 * q.mm)

or from a session and within an integrated IPython shell:

$ concert start

concert > from concert.devices.motors.dummy import LinearMotor
concert > motor = await LinearMotor()
concert > await motor.set_position(10 * q.mm)   # The asyncio blocking way
concert > task = motor.set_position(10 * q.mm)  # The asyncio non-blocking way
concert > motor.position = 10 * q.mm            # User convenience for blocking calls
concert > motor.position
10 <Unit('millimeter')>

You can read more about Concert in the official documentation.

Citation

If you want to use Concert, we kindly ask you to acknowledge the respective authorship not only by respecting the LGPL software license but also by linking to our project website at http://ufo.kit.edu and citing the following article: Vogelgesang, M., Farago, T., Morgeneyer, T. F., Helfen, L., dos Santos Rolo, T., Myagotin, A. & Baumbach, T. (2016). J. Synchrotron Rad. 23, 1254-1263, https://doi.org/10.1107/S1600577516010195.