![]() |
![]() ![]()
Experimental Physics and
| ||||||||||||||
|
There are several ways to do that.
One that I have been using (and that is similar to Mark Rivers' suggestion) is a dead-man-switch setup: A calc/calcout record is set up as always counting down, with SCAN e.g. set to 1 second and a CALC of e.g. "VAL>0?VAL-1:0". The LOW and LOLO fields can be used to set a yellow and red alarm. The monitored-system (e.g. your Matlab service) resets the timer regularly by e.g writing a 10 into the calc record every couple of seconds. Using a calcout record the OUT link can be used (with OOPT set as "Transition to Zero") to trigger something when the service is dead. This only needs a single record (EPICS database golf hole-in-one!), doesn't have to handle counter overflow situations, allows for a yellow and red alarm, lets the client freely decide for how long it will snooze, and is quite robust with respect to slightly irregular write intervals of the monitored-system (e.g. if the service is under high load). Cheers, ~Ralph
| ||||||||||||||
ANJ, 21 Dec 2017 |
![]() · Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing · |