The automated execution of scientific observations and engineering procedures at the Extremely Large Telescope (ELT) requires a standard tool: The Sequencer. For scientific observation, the Sequencer is responsible for controlling the telescope and its instruments to perform the observations. For engineering, it shall be used for commissioning and maintenance procedures. The ELT Sequencer allows building Directed Acyclic Graphs (DAG) representing tasks to be carried out. The generated graph defines every task needed (nodes), its order of execution, and its dependencies (edges). Python’s asyncio library is used to control and schedule the tasks derived from the DAG. It also allows for pseudo-parallelism between tasks. Despite being asyncio based, the Sequencer is task-agnostic, allowing standard python functions and coroutines to be executed as well. It is composed of various layers: Programmer’s API, execution kernel, command line tools and a GUI.
|