Print

Print


Author: [log in to unmask]
Date: Tue May 12 03:13:41 2015
New Revision: 2958

Log:
use clear/replot to update plot ranges

Modified:
    java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/SystemStatusPanel.java
    java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/SensorOccupancyPlotsDriver.java
    java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/ecal/plots/EcalMonitoringPlots.java

Modified: java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/SystemStatusPanel.java
 =============================================================================
--- java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/SystemStatusPanel.java	(original)
+++ java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/SystemStatusPanel.java	Tue May 12 03:13:41 2015
@@ -4,17 +4,24 @@
 package org.hps.monitoring.application;
 
 import java.awt.BorderLayout;
+import java.awt.Toolkit;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Timer;
+import java.util.TimerTask;
 
 import javax.swing.JPanel;
 import javax.swing.JScrollPane;
 import javax.swing.JSplitPane;
 
 import org.hps.monitoring.application.SystemStatusEventsTable.SystemStatusEventsTableModel;
+import org.hps.monitoring.subsys.StatusCode;
 import org.hps.monitoring.subsys.SystemStatus;
 
 /**
- * This is a panel showing the two tables for viewing the system statuses, one showing the current state of all system
- * status monitors and the other with all system status change events.
+ * This is a panel showing the two tables for viewing the system statuses, one
+ * showing the current state of all system status monitors and the other with
+ * all system status change events.
  *
  * @author <a href="mailto:[log in to unmask]">Jeremy McCormick</a>
  */
@@ -32,6 +39,13 @@
     private final SystemStatusTable statusTable = new SystemStatusTable();
 
     /**
+     * The list of statuses to check.
+     */
+    private final List<SystemStatus> statuses = new ArrayList<SystemStatus>();
+
+    private final Timer timer = new Timer("System Status Beeper");
+
+    /**
      * Class constructor.
      */
     SystemStatusPanel() {
@@ -40,6 +54,7 @@
                 new JScrollPane(this.eventsTable));
         splitPane.setDividerLocation(150);
         this.add(splitPane, BorderLayout.CENTER);
+        timer.scheduleAtFixedRate(new SystemStatusBeeper(), 0, 1000);
     }
 
     /**
@@ -51,6 +66,7 @@
         // Register listeners of table models on this status.
         this.statusTable.getTableModel().addSystemStatus(status);
         this.eventsTable.getSystemStatusEventsTableModel().addSystemStatus(status);
+        this.statuses.add(status);
     }
 
     /**
@@ -63,4 +79,20 @@
         // Clear the system status events table.
         ((SystemStatusEventsTableModel) this.eventsTable.getModel()).clear();
     }
+
+    private class SystemStatusBeeper extends TimerTask {
+
+        @Override
+        public void run() {
+            boolean isAlarming = false;
+            for (SystemStatus status : statuses) {
+                if (status.getStatusCode() == StatusCode.ALARM) {
+                    isAlarming = true;
+                }
+            }
+            if (isAlarming) {
+                System.out.println("beep\007");
+            }
+        }
+    }
 }

Modified: java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/SensorOccupancyPlotsDriver.java
 =============================================================================
--- java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/SensorOccupancyPlotsDriver.java	(original)
+++ java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/SensorOccupancyPlotsDriver.java	Tue May 12 03:13:41 2015
@@ -528,17 +528,17 @@
                     maxSampleStatus.setStatus(StatusCode.ALARM, "Sensor " + sensor.getName() + " looks out of time.");
                 }
                 IPlotterStyle plotterStyle = createOccupancyPlotStyle("Max Sample Number", sensor, true);
-//                region.clear();
-//                region.plot(maxSamplePlot, plotterStyle);
-                region.applyStyle(plotterStyle);
+                region.clear();
+                region.plot(maxSamplePlot, plotterStyle);
+//                region.applyStyle(plotterStyle);
 //                region.style().regionBoxStyle().backgroundStyle().setColor("246, 34, 34, 1");
 //                setBackgroundColor(region.style(),sensor.isAxial(),true);
 
             } else {
                 IPlotterStyle plotterStyle = createOccupancyPlotStyle("Max Sample Number", sensor, false);
-//                region.clear();
-//                region.plot(maxSamplePlot, plotterStyle);
-                region.applyStyle(plotterStyle);
+                region.clear();
+                region.plot(maxSamplePlot, plotterStyle);
+//                region.applyStyle(plotterStyle);
 //                setBackgroundColor(region.style(),sensor.isAxial(),false);
             }
         }
@@ -572,11 +572,15 @@
                     occupancyStatus.setStatus(StatusCode.ALARM, "Sensor " + sensor.getName() + " occupancy abnormal.");
                 }
                 IPlotterStyle plotterStyle = createOccupancyPlotStyle("Max Sample Number", sensor, true);
-                region.applyStyle(plotterStyle);
+                region.clear();
+                region.plot(occupancyPlot, plotterStyle);
+//                region.applyStyle(plotterStyle);
 
             } else {
                 IPlotterStyle plotterStyle = createOccupancyPlotStyle("Max Sample Number", sensor, false);
-                region.applyStyle(plotterStyle);
+                region.clear();
+                region.plot(occupancyPlot, plotterStyle);
+//                region.applyStyle(plotterStyle);
             }
         }
         if (isSystemOK) {

Modified: java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/ecal/plots/EcalMonitoringPlots.java
 =============================================================================
--- java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/ecal/plots/EcalMonitoringPlots.java	(original)
+++ java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/ecal/plots/EcalMonitoringPlots.java	Tue May 12 03:13:41 2015
@@ -166,10 +166,10 @@
             //System.out.println("Event: "+thisEventN+" "+prevEventN);
             //System.out.println("Time: "+thisEventTime+" "+prevEventTime);
             // System.out.println("Monitor: "+thisTime+" "+prevTime+" "+NoccupancyFill);
-
+if (scale>0) {
             hitCountFillPlot.scale(scale);
             clusterCountFillPlot.scale(scale);
-            redraw();
+            redraw();}
             prevTime=thisTime;
             prevEventN=thisEventN;
             prevEventTime=thisEventTime;
@@ -186,15 +186,15 @@
     void redraw() {
         hitCountDrawPlot.reset();
         hitCountDrawPlot.add(hitCountFillPlot);
-//        plotter.region(0).clear();
-//        plotter.region(0).plot(hitCountDrawPlot);
+        plotter.region(0).clear();
+        plotter.region(0).plot(hitCountDrawPlot);
 //        plotter.region(0).refresh();
         hitCountFillPlot.reset();
 
         clusterCountDrawPlot.reset();
         clusterCountDrawPlot.add(clusterCountFillPlot);
-//        plotter.region(1).clear();
-//        plotter.region(1).plot(clusterCountDrawPlot);
+        plotter.region(1).clear();
+        plotter.region(1).plot(clusterCountDrawPlot);
 //        plotter.region(1).refresh();
         clusterCountFillPlot.reset();
 
@@ -208,8 +208,8 @@
             if ((row != 0) && (column != 0) && (!EcalMonitoringUtilities.isInHole(row, column)))
                 occupancyDrawPlot.fill(column, row, mean);
         }
-//        plotter.region(2).clear();
-//        if (occupancyDrawPlot.sumAllBinHeights()> 0) plotter.region(2).plot(occupancyDrawPlot);
+        plotter.region(2).clear();
+        if (occupancyDrawPlot.sumAllBinHeights()> 0) plotter.region(2).plot(occupancyDrawPlot);
 //        plotter.region(2).refresh();
     }