Taurus is an opensource GUI framework that implements a Model View Controller (MVC) design pattern tailored for control systems. It is based on python and Qt and is extensively used in the particle accelerators and large experimental physics community and with Tango Controls. Taurus has an active community and solves design patterns and requirements that also the ELT control software project shall address for its GUIs. It provides a homogeneous way to interact with any control system (attributes and devices) and has extension points for other projects, widgets, and factories. A Taurus "Model" plugin adds support for a new control system, data access. It is the Model component of the MVC pattern. In the ELT case, an "oldb" model plugin was developed. This maps data-points and the tree structure of the database to Attributes and Devices, respectively. Support for read, subscription, write and polling operations were added incrementally over the versions of the "oldb" plugin. Conversely the MAL plugin supports access to the request-reply interfaces of the ELT software applications. Once a plugin has read support, developers have access to the features the Taurus framework offers: Taurus widgets will automatically work with the new model; and scalars, vectors and matrices widgets have immediate support. New widgets for particular ELT requirements are developed as normal Qt Widgets and a Controller class is added that completes the MVC pattern. A review of the integration is presented. An analysis of lessons learned offers our perspective of adoption. Finally, the future work in terms of GUI development is discussed.
|