The Joint Accelerator Conferences Website (JACoW) is an international collaboration that publishes the proceedings of accelerator conferences held around the world.
TY - UNPB AU - Michel, V. ED - Schaa, Volker RW ED - Costa, Isidre ED - Fernández, David ED - Matilla, Ãscar TI - Reactive Programming, and How It Fits Within Control Systems J2 - Proc. of ICALEPCS2017, Barcelona, Spain, 8-13 October 2017 C1 - Barcelona, Spain T2 - International Conference on Accelerator and Large Experimental Control Systems T3 - 16 LA - english AB - The MAX-IV synchrotron decided to adopt events as the main communication channel in order to increase both the responsiveness and reliability of its TANGO* control system. That means the tango (software) devices do not perform read hardware operation on client request but instead maintain a reliable communication with the hardware while publishing the data through event channels. Reactive programming** is an asynchronous programming paradigm oriented around data streams and the propagation of change. Instead of using the traditional imperative approach of maintaining the integrity of variables, a reactive program expresses the relationship between data streams. High-level tango devices (software devices aggregating data from other tango devices) make very good candidates for reactive programming. More precisely, it is possible to describe the attributes of those devices as relationships, where the input data comes from the event channels of lower-level devices. The facadedevice*** python library is an attempt to implement the reactive machinery within a tango device base class, and provides a descriptive API for defining the relationships in a clear and concise way. PB - JACoW CP - Geneva, Switzerland ER -