Kameleon - a Behavior-Rich, Non-Memoryless and Time-Aware Generic Simulator

Ricardo Fernandes, Nicolas Senaud, Pranke, Juliana (Ed.), Lindroos, Mats (Ed.), Schaa, Volker RW (Ed.), Arduini, Gianluigi (Ed.), Seidel, Mike (Ed.)
2017
At ESS, thousands of devices will be used to control both the machine and end-station instruments. To enable ongoing development when access to these devices is not possible (for whatever the reason), Kameleon was implemented. It is a behavior-rich, non-memoryless and time-aware generic simulator that handles clients through a TCP/IP connection. An instance of this client is an EPICS IOC or a Tango Device Server. Kameleon consumes a user-defined file that describes the commands received from a
more » ... ds received from a client and, optionally, the reaction to these through statuses sent back to the client. Key features are: 1) Ubiquitous (runs in disparate platforms such as Windows and Linux). 2) Behavior-rich (predefined behaviors as well as user-defined). 3) Non-memoryless (the state of the simulation can be preserved between events and/or elapsed time). 4) Time-aware (statuses can be sent to the client either event-based or time-based). 5) Flexible (commands and statuses are described in a simple user-defined file - nothing is hard-coded in Kameleon). Kameleon will be used in a myriad of scenarios at ESS such as development of EPICS devices support, IOCs, OPI screens, testing of IOCs and alarm workflows.
doi:10.18429/jacow-ipac2017-thpab136 fatcat:7jjhssianncazbywg3hryjtgty