Hello everyone,
I
am currently diving into Alarms with VeriStand. The purpose is to be
able to evaluate why an alarm was tripped before to allow - or not - to
continue a test procedure.
I
noticed that the event OnAlarmTrigger (IAlarmManager2 class) is only
fired only once when the alarm appears; it seems logical if you do not
want to be flooded by hundreds of events if the alarm condition remains
true on the Engine side (I was surprised to 'miss' alarms from the
Engine; comparing the number of event fired and the alarm count - but I
was wrong, by comparing two diffrent things).
I didn't find any relevant documentation about Alarms 'under the hood', so, here is some of my observation:
- the Engine evaluates alarms according to their priority (and then the
order in which you declared the alarms in the System Definition
Explorer)
- if an alarm's conditions are filled, the engine executes the corresponding procedure and does not evaluate other alarms
- the OnAlarmTrigger event is generated by the Gateway (Windows)
- the OnAlarmTrigger event reports one alarm - the one with the highest priority
- the event occurs only when the Gateway 'sees' a change in the highest priority alarm the engine reports
Is my understanding correct?
Thanks in advanced for your precisions.