/** 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) { } } }