示例#1
0
  /** The main loop of the polling thread. */
  @Override
  public void run() {
    while (true) {

      // free memory alarm
      EdgeTriggeredAlarmControl freeMemAlarmControl = readerDevice.getFreeMemoryAlarmControl();
      if (isEdgeTriggeredAlarmReadyForFire(readerDevice.getFreeMemory(), freeMemAlarmControl)) {
        if (freeMemoryAlarm == null)
          freeMemoryAlarm =
              new FreeMemoryAlarm("FreeMemoryAlarm", freeMemAlarmControl.getLevel(), readerDevice);
        if (!alarmIsSuppressed(freeMemAlarmControl)) {
          fireAlarm_(freeMemoryAlarm, freeMemAlarmControl);
          freeMemoryAlarm = null;
        } else {
          freeMemoryAlarm.suppress();
          log.debug(freeMemoryAlarm.getName() + " suppressed");
        }
      }

      // other alarms...

      // operational status alarms
      readerDevice.getOperStatus();
      ReadPoint[] readPoints = readerDevice.getAllReadPoints();
      for (int i = 0; i < readPoints.length; i++) {
        readPoints[i].getOperStatus();
      }
      IOPort[] ioPorts = readerDevice.getAllIOPorts();
      for (int i = 0; i < ioPorts.length; i++) {
        ioPorts[i].getOperStatus();
      }
      NotificationChannel[] notifChans = readerDevice.getAllNotificationChannels();
      for (int i = 0; i < notifChans.length; i++) {
        notifChans[i].getOperStatus();
      }
      Source[] sources = readerDevice.getAllSources();
      for (int i = 0; i < sources.length; i++) {
        sources[i].getOperStatus();
      }

      try {
        Thread.sleep(AlarmManager.POLL_INTERVAL);
      } catch (InterruptedException ignore) {
      }
    }
  }