Beispiel #1
0
 /**
  * Fires an alarm iff all relevant conditions are fulfilled.
  *
  * @param alarm The alarm
  * @param alarmControl The alarm control
  */
 public void fireAlarm(Alarm alarm, AlarmControl alarmControl) {
   if (alarmControl.getEnabled()) {
     try {
       if (alarm instanceof TTOperStatusAlarm) {
         TTOperStatusAlarm operStatusAlarm = (TTOperStatusAlarm) alarm;
         TTOperationalStatusAlarmControl operStatusAlarmControl =
             (TTOperationalStatusAlarmControl) alarmControl;
         if ((operStatusAlarmControl.getTriggerFromState() == OperationalStatus.ANY)
             || (operStatusAlarmControl.getTriggerToState() == OperationalStatus.ANY)
             || (operStatusAlarm.getFromState() == operStatusAlarmControl.getTriggerFromState())
             || (operStatusAlarm.getToState() == operStatusAlarmControl.getTriggerToState())) {
           if (!alarmIsSuppressed(operStatusAlarmControl)) {
             fireAlarm_(operStatusAlarm, operStatusAlarmControl);
           } else {
             operStatusAlarm.suppress();
             log.debug(operStatusAlarm.getName() + " suppressed");
           }
         }
       } else if (alarmControl instanceof EdgeTriggeredAlarmControl) {
         EdgeTriggeredAlarmControl edgeTriggeredAlarmControl =
             (EdgeTriggeredAlarmControl) alarmControl;
         if (edgeTriggeredAlarmControl.getStatus() == EdgeTriggeredAlarmStatus.ARMED) {
           if (!alarmIsSuppressed(edgeTriggeredAlarmControl)) {
             fireAlarm_(alarm, edgeTriggeredAlarmControl);
           } else {
             alarm.suppress();
             log.debug(alarm.getName() + " suppressed");
           }
         }
       } else {
         if (!alarmIsSuppressed(alarmControl)) {
           fireAlarm_(alarm, alarmControl);
         } else {
           alarm.suppress();
           log.debug(alarm.getName() + " suppressed");
         }
       }
     } catch (ClassCastException cce) {
       log.error("Alarm and AlarmControl don't match.");
     }
   }
 }
Beispiel #2
0
 /**
  * Checks whether an alarm is suppressed using its <code>AlarmControl</code> object.
  *
  * @param alarmControl The alarm control
  * @return <code>true</code> if it is suppressed, <code>false</code> otherwise
  */
 private boolean alarmIsSuppressed(AlarmControl alarmControl) {
   Long lastFiredTime = lastFiredTimes.get(alarmControl);
   return !((lastFiredTime == null)
       || (System.currentTimeMillis() - lastFiredTime
           > alarmControl.getSuppressInterval() * 1000));
 }