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.
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.