java: Refactor AltosFlightDisplay units and font update handling
[fw/altos] / altosui / AltosGraph.java
index ef26f4f941c62ad1f2a034434a28b53135636f14..ba3875c6d521ec5e2690783a537a37be4278d1e1 100644 (file)
@@ -22,8 +22,8 @@ import java.util.ArrayList;
 
 import java.awt.*;
 import javax.swing.*;
-import org.altusmetrum.altoslib_3.*;
-import org.altusmetrum.altosuilib_1.*;
+import org.altusmetrum.altoslib_4.*;
+import org.altusmetrum.altosuilib_2.*;
 
 import org.jfree.ui.*;
 import org.jfree.chart.*;
@@ -150,29 +150,6 @@ class AltosGyroUnits extends AltosUnits {
        }
 }
 
-class AltosOrientUnits extends AltosUnits {
-
-       public double value(double p, boolean imperial_units) {
-               return p;
-       }
-
-       public double inverse(double p, boolean imperial_units) {
-               return p;
-       }
-
-       public String show_units(boolean imperial_units) {
-               return "°";
-       }
-
-       public String say_units(boolean imperial_units) {
-               return "degrees";
-       }
-
-       public int show_fraction(int width, boolean imperial_units) {
-               return 1;
-       }
-}
-
 class AltosMagUnits extends AltosUnits {
 
        public double value(double p, boolean imperial_units) {
@@ -212,6 +189,9 @@ public class AltosGraph extends AltosUIGraph {
        static final private Color gps_nsat_color = new Color (194, 31, 194);
        static final private Color gps_nsat_solution_color = new Color (194, 31, 194);
        static final private Color gps_nsat_view_color = new Color (150, 31, 150);
+       static final private Color gps_course_color = new Color (100, 31, 112);
+       static final private Color gps_ground_speed_color = new Color (31, 112, 100);
+       static final private Color gps_climb_rate_color = new Color (31, 31, 112);
        static final private Color temperature_color = new Color (31, 194, 194);
        static final private Color dbm_color = new Color(31, 100, 100);
        static final private Color state_color = new Color(0,0,0);
@@ -231,12 +211,13 @@ public class AltosGraph extends AltosUIGraph {
        static AltosNsat nsat_units = new AltosNsat();
        static AltosDbm dbm_units = new AltosDbm();
        static AltosGyroUnits gyro_units = new AltosGyroUnits();
-       static AltosOrientUnits orient_units = new AltosOrientUnits();
+       static AltosOrient orient_units = new AltosOrient();
        static AltosMagUnits mag_units = new AltosMagUnits();
 
        AltosUIAxis     height_axis, speed_axis, accel_axis, voltage_axis, temperature_axis, nsat_axis, dbm_axis;
        AltosUIAxis     distance_axis, pressure_axis;
        AltosUIAxis     gyro_axis, orient_axis, mag_axis;
+       AltosUIAxis     course_axis;
 
        public AltosGraph(AltosUIEnable enable, AltosFlightStats stats, AltosGraphDataSet dataSet) {
                super(enable);
@@ -255,6 +236,7 @@ public class AltosGraph extends AltosUIGraph {
                gyro_axis = newAxis("Rotation Rate", gyro_units, gyro_z_color, 0);
                orient_axis = newAxis("Tilt Angle", orient_units, orient_color, 0);
                mag_axis = newAxis("Magnetic Field", mag_units, mag_x_color, 0);
+               course_axis = newAxis("Course", orient_units, gps_course_color, 0);
 
                addMarker("State", AltosGraphDataPoint.data_state, state_color);
                addSeries("Height",
@@ -311,7 +293,25 @@ public class AltosGraph extends AltosUIGraph {
                                  nsat_units,
                                  gps_nsat_view_color,
                                  false,
-                         nsat_axis);
+                                 nsat_axis);
+                       addSeries("GPS Course",
+                                 AltosGraphDataPoint.data_gps_course,
+                                 orient_units,
+                                 gps_course_color,
+                                 false,
+                                 course_axis);
+                       addSeries("GPS Ground Speed",
+                                 AltosGraphDataPoint.data_gps_ground_speed,
+                                 AltosConvert.speed,
+                                 gps_ground_speed_color,
+                                 false,
+                                 speed_axis);
+                       addSeries("GPS Climb Rate",
+                                 AltosGraphDataPoint.data_gps_climb_rate,
+                                 AltosConvert.speed,
+                                 gps_climb_rate_color,
+                                 false,
+                                 speed_axis);
                }
                if (stats.has_rssi)
                        addSeries("Received Signal Strength",
@@ -412,7 +412,18 @@ public class AltosGraph extends AltosUIGraph {
                                  orient_color,
                                  false,
                                  orient_axis);
+               if (stats.num_ignitor > 0) {
+                       for (int i = 0; i < stats.num_ignitor; i++)
+                               addSeries(AltosIgnitor.ignitor_name(i),
+                                         AltosGraphDataPoint.data_ignitor_0 + i,
+                                         voltage_units,
+                                         main_voltage_color,
+                                         false,
+                                         voltage_axis);
+                       for (int i = 0; i < stats.num_ignitor; i++)
+                               addMarker(AltosIgnitor.ignitor_name(i), AltosGraphDataPoint.data_ignitor_fired_0 + i, state_color);
+               }
 
                setDataSet(dataSet);
        }
-}
\ No newline at end of file
+}