************************ Monitoring Configuration ************************ The Overview device has an autogenerated scene for tuning the monitoring configuration. An example is shown in :numref:`Fig. %s `. The monitored variables are grouped according to the device node they belong to (i.e, *Inputs*, *Internals*, *Outputs*). .. _fig-monitoring_config: .. figure:: _images/vars_in_config_scene.png :scale: 50 % :align: center Scene to show which properties are disabled from the monitoring by the users. To include a variable to a monitoring Overview it should be added (by CTRLS) to the hardcoded configuration of that device, along with the proper monitoring type class for that. The monitoring classes currently available in the overview device are described here below together with their available settings: * *AnalogueElement*: monitors a float to be above a *Signal Threshold* value; tolerance to this condition is provided by allowing a deviation down to a an absolute value below (*Max Negative Deviation*) the threshold. The deviation is given in as percent value of the threshold, * *AdcElement*: similar to the *AnalogueElement* case, except that it monitors the maximum signal of an array, * *AnalogueAbsRangeElement*: monitors a float to be above a *Signal Threshold* value; a tolerance to this condition is provided by allowing deviations up to an absolute value above (*Max Positive Deviation*) and below (*Max Negative Deviation*) the threshold, * *AnalogueRangeElement*: similar to the *AnalogueAbsRangeElement* case, except that the deviation range is given as percent of the threshold value, * *UIntegerElement*, *DoubleElement*, *StringElement*: monitors an unsigned 64-bits integer, double or string to have a configurable *Reference* value, * *UIntegerLimitsElement*: monitors an unsigned 64-bits integer to be within configurable "Min Value" and "Max Value" values, * *BooleanElement* (*FalseBooleanElement*): monitors a device variable which is expected to be True (False), * *StateElement*: monitors a device state which is expected to be in a typical running condition (at the moment, device class dependent). Analogue values are typically fluctuating due to different kind of conditions, such as due to the environment (e.g. thermal noise in the acquisition line) or to the physical process generating the signal (as for the amplified pulse-probe laser). To avoid fluctuations giving rise to warnings, moving averages are considered for that kind of variables. The size of the those average samples *Moving Average Size* is tunable by the users up to 20. Setting the size to one disables the running avarage feature. It is the responsability of the user to choose the proper monitoring class for a specific variable, and to tune its corresponding settings. In the configuration scene, for each variable its quality state Boolean *isOk* is displayed close to the corresponding device Id, as well as its key name in the monitored device. By default its monitoring is enabled, but the user has the possibility directly from the scene (or from the device configuration editor) to disable it by unsetting the corresponding *Is Monitored* Boolean (*isMonitored* key). Every change of this Boolean results in the immediate update of the list of not monitored properties. Disabling the monitoring of a property turns immediately its *isOk* state to True. A change of the Boolean *isOK* triggers the evaluation of the grouping node state it belongs to; the node *isOK* state will be False if at least one monitored variable in the node is in a bad state. A change of the node *isOk* value triggers the evaluation of the device *isOk* Boolean, as described in :numref:`Fig. %s `: .. _fig-isok_propagation: .. figure:: _images/isOk_propagation.png :scale: 50 % :align: center Evaluation of the Overview device monitoring Boolean *isOK* state. At the bottom of the scenes two slots (buttons) are present to help configuring the monitoring: * *Update References* The references are updated reading from the running system the current value of the monitored properties; e.g., when monitoring a temperature sensor (via the class *AnalogueRangeElement*) the current reference value will be set as the new reference, * *Save Config Log* The monitoring configuration is saved online, and whenever the Overview device restarts that configuration will be set back to it. In the device configuration editor of the main Overview device (and also directly in the LAS main overview scene) the extra slots *Save System Config* and *Update System References* save the online configuration and retrieve the references recursively through the entire system, respectively. In the LAS environment the so-called *slave* experiment in the two-laser-beamlines systems is the experiment which does not receive the pulse-probe laser synchronized to work with the XFEL x-rays; when this is the case some specific devices will not operate within the nominal running parameter values (e.g. having only background signal in the diagnostic cameras), and thus the corresponding Overview devices will have the state *isOk* unset. In this situation those devices have to be disabled (enabled) in the monitoring when the instrument switch from *master* to *slave* (and vice-versa) operational mode is done (typically in the morning and the evening). This is implemented automatically by the Overview device after inserting (by CTRLS) those devices in a special list in the Overview configuration.