Merge remote-tracking branch 'origin/micropeak-logging'
[fw/altos] / altosui / AltosGraphUI.java
index b571fc7d59271d5d4eda971a52488de388474828..d6891ffa04d33e7bb719b4cbd449700b582deddd 100644 (file)
@@ -2,75 +2,66 @@
 // Copyright (c) 2010 Anthony Towns
 // GPL v2 or later
 
-package AltosUI;
+package altosui;
 
 import java.io.*;
 import java.util.ArrayList;
 
 import java.awt.*;
-import java.awt.event.*;
 import javax.swing.*;
-import javax.swing.filechooser.FileNameExtensionFilter;
-import javax.swing.table.*;
 import org.altusmetrum.AltosLib.*;
+import org.altusmetrum.altosuilib.*;
 
 import org.jfree.chart.ChartPanel;
-import org.jfree.chart.ChartUtilities;
 import org.jfree.chart.JFreeChart;
-import org.jfree.chart.axis.AxisLocation;
-import org.jfree.ui.ApplicationFrame;
 import org.jfree.ui.RefineryUtilities;
 
-public class AltosGraphUI extends AltosFrame 
+public class AltosGraphUI extends AltosUIFrame 
 {
     JTabbedPane        pane;
 
     static final private Color red = new Color(194,31,31);
     static final private Color green = new Color(31,194,31);
     static final private Color blue = new Color(31,31,194);
-    static final private Color black = new Color(31,31,31);
+    //static final private Color black = new Color(31,31,31);
     static final private Color yellow = new Color(194,194,31);
-    static final private Color cyan = new Color(31,194,194);
+    //static final private Color cyan = new Color(31,194,194);
     static final private Color magenta = new Color(194,31,194);
 
     static private class OverallGraphs {
         AltosGraphTime.Element height = 
-            new AltosGraphTime.TimeSeries("Height (m)", "Height (AGL)", red) {
+               new AltosGraphTime.TimeSeries("Height", AltosConvert.height.show_units(), "Height (AGL)", red) {
                 public void gotTimeData(double time, AltosDataPoint d) {
                        double  height = d.height();
                        if (height != AltosRecord.MISSING)
-                               series.add(time, d.height()); 
+                               series.add(time, AltosConvert.height.value(height));
                 } 
             };
     
         AltosGraphTime.Element speed =
-            new AltosGraphTime.TimeSeries("Speed (m/s)", "Vertical Speed", green) { 
+               new AltosGraphTime.TimeSeries("Speed", AltosConvert.speed.show_units(), "Vertical Speed", green) { 
                 public void gotTimeData(double time, AltosDataPoint d) {
-                   double      speed;
-                   if (d.state() < Altos.ao_flight_drogue && d.has_accel()) {
-                       speed = d.accel_speed();
-                    } else {
-                       speed = d.baro_speed();
-                    }
+                   double      speed = d.speed();
                    if (speed != AltosRecord.MISSING)
-                       series.add(time, speed);
+                           series.add(time, AltosConvert.speed.value(speed));
                 }
             };
     
         AltosGraphTime.Element acceleration =
-            new AltosGraphTime.TimeSeries("Acceleration (m/s\u00B2)", 
-                    "Axial Acceleration", blue) 
+               new AltosGraphTime.TimeSeries("Acceleration",
+                                             AltosConvert.accel.show_units(),
+                                             "Axial Acceleration", blue)
             {
                 public void gotTimeData(double time, AltosDataPoint d) {
                    double acceleration = d.acceleration();
                    if (acceleration != AltosRecord.MISSING)
-                       series.add(time, acceleration);
+                           series.add(time, AltosConvert.accel.value(acceleration));
                 }
             };
     
         AltosGraphTime.Element temperature =
-            new AltosGraphTime.TimeSeries("Temperature (\u00B0C)", 
-                    "Board temperature", red) 
+           new AltosGraphTime.TimeSeries("Temperature", "\u00B0C", 
+                                         "Board temperature", red) 
             {
                 public void gotTimeData(double time, AltosDataPoint d) {
                    double temp = d.temperature();
@@ -80,7 +71,7 @@ public class AltosGraphUI extends AltosFrame
             };
     
         AltosGraphTime.Element drogue_voltage =
-            new AltosGraphTime.TimeSeries("Voltage (V)", "Drogue Continuity", yellow) 
+            new AltosGraphTime.TimeSeries("Voltage", "(V)", "Drogue Continuity", yellow) 
             {
                 public void gotTimeData(double time, AltosDataPoint d) {
                    double v = d.drogue_voltage();
@@ -90,7 +81,7 @@ public class AltosGraphUI extends AltosFrame
             };
     
         AltosGraphTime.Element main_voltage =
-            new AltosGraphTime.TimeSeries("Voltage (V)", "Main Continuity", magenta) 
+            new AltosGraphTime.TimeSeries("Voltage", "(V)", "Main Continuity", magenta) 
             {
                 public void gotTimeData(double time, AltosDataPoint d) {
                    double v = d.main_voltage();
@@ -99,7 +90,7 @@ public class AltosGraphUI extends AltosFrame
                 }
             };
     
-        AltosGraphTime.Element e_pad    = new AltosGraphTime.StateMarker(Altos.ao_flight_pad, "Pad");
+        //AltosGraphTime.Element e_pad    = new AltosGraphTime.StateMarker(Altos.ao_flight_pad, "Pad");
         AltosGraphTime.Element e_boost  = new AltosGraphTime.StateMarker(Altos.ao_flight_boost, "Boost");
         AltosGraphTime.Element e_fast   = new AltosGraphTime.StateMarker(Altos.ao_flight_fast, "Fast");
         AltosGraphTime.Element e_coast  = new AltosGraphTime.StateMarker(Altos.ao_flight_coast, "Coast");
@@ -148,7 +139,8 @@ public class AltosGraphUI extends AltosFrame
             return graphs;
         }
     }
-    
+
+    /*
     static private class AscentGraphs extends OverallGraphs {
         protected AltosGraphTime myAltosGraphTime(String suffix) {
             return (new AltosGraphTime("Ascent " + suffix) {
@@ -163,7 +155,9 @@ public class AltosGraphUI extends AltosFrame
               .addElement(e_coast);
         }
     }
-    
+    */
+
+    /*
     static private class DescentGraphs extends OverallGraphs {
         protected AltosGraphTime myAltosGraphTime(String suffix) {
             return (new AltosGraphTime("Descent " + suffix) {
@@ -178,13 +172,12 @@ public class AltosGraphUI extends AltosFrame
             // ((XYGraph)graph[8]).ymin = new Double(-50);
         }
     }
+    */
 
        public AltosGraphUI(AltosRecordIterable records, String name) throws InterruptedException, IOException {
                super(String.format("Altos Graph %s", name));
 
                AltosDataPointReader reader = new AltosDataPointReader (records);
-               if (reader == null)
-                       return;
         
                if (reader.has_accel)
                    init(reader, records, 0);
@@ -228,11 +221,13 @@ public class AltosGraphUI extends AltosFrame
         return createGraphsWhich(data, which).get(0);
     }
 
+    /*
     private static ArrayList<AltosGraph> createGraphs(
             Iterable<AltosDataPoint> data)
     {
         return createGraphsWhich(data, -1);
     }
+    */
 
     private static ArrayList<AltosGraph> createGraphsWhich(
             Iterable<AltosDataPoint> data, int which)