altosui: Use helper functions to access arrays in AltosLib class
authorKeith Packard <keithp@keithp.com>
Sun, 9 Sep 2012 19:29:32 +0000 (12:29 -0700)
committerKeith Packard <keithp@keithp.com>
Sun, 9 Sep 2012 19:29:32 +0000 (12:29 -0700)
These deal with out-of-range values correctly, instead of causing
exceptions that will just break stuff.

Signed-off-by: Keith Packard <keithp@keithp.com>
altoslib/AltosLib.java
altosui/Altos.java
altosui/AltosFlightStatsTable.java
altosui/AltosScanUI.java

index 2402331e59351cde28a76ff9be2693a6ddd739cb..d36b2ff789a313499c7655b5175ab1318548e09f 100644 (file)
@@ -111,7 +111,7 @@ public class AltosLib {
        public static final int ao_telemetry_0_8 = 3;
        public static final int ao_telemetry_max = 3;
 
-       public static final String[] ao_telemetry_name = {
+       private static final String[] ao_telemetry_name = {
                "Off", "Standard Telemetry", "TeleMetrum v0.9", "TeleMetrum v0.8"
        };
 
@@ -121,13 +121,13 @@ public class AltosLib {
        public static final int ao_telemetry_0_9_len = 95;
        public static final int ao_telemetry_0_8_len = 94;
 
-       public static final int[] ao_telemetry_len = {
+       private static final int[] ao_telemetry_len = {
                0, 32, 95, 94
        };
 
-       public static HashMap<String,Integer>   string_to_state = new HashMap<String,Integer>();
+       private static HashMap<String,Integer>  string_to_state = new HashMap<String,Integer>();
 
-       public static boolean map_initialized = false;
+       private static boolean map_initialized = false;
 
        public static void initialize_map()
        {
@@ -159,7 +159,7 @@ public class AltosLib {
                                                                 telemetry));
        }
        
-       public static String[] state_to_string = {
+       private static String[] state_to_string = {
                "startup",
                "idle",
                "pad",
@@ -172,7 +172,7 @@ public class AltosLib {
                "invalid",
        };
 
-       public static String[] state_to_string_capital = {
+       private static String[] state_to_string_capital = {
                "Startup",
                "Idle",
                "Pad",
@@ -199,6 +199,12 @@ public class AltosLib {
                return state_to_string[state];
        }
 
+       public static String state_name_capital(int state) {
+               if (state < 0 || state_to_string.length <= state)
+                       return "invalid";
+               return state_to_string_capital[state];
+       }
+
        public static final int AO_GPS_VALID = (1 << 4);
        public static final int AO_GPS_RUNNING = (1 << 5);
        public static final int AO_GPS_DATE_VALID = (1 << 6);
index e60b3aaa5d6454524c99f69dfc55e39e06ceec10..cd17a93e1b6fb6938bf09f81c6995bb644fd9700 100644 (file)
@@ -72,20 +72,6 @@ public class Altos extends AltosLib {
 
        static final int text_width = 20;
 
-       static public int state(String state) {
-               if (!map_initialized)
-                       initialize_map();
-               if (string_to_state.containsKey(state))
-                       return string_to_state.get(state);
-               return ao_flight_invalid;
-       }
-
-       static public String state_name(int state) {
-               if (state < 0 || state_to_string.length <= state)
-                       return "invalid";
-               return state_to_string[state];
-       }
-
        static public boolean initialized = false;
        static public boolean loaded_library = false;
 
index c311b23167b08001ae709103b77fd801e3786377..14e3bf8f71ab7a995c9e3cab39443261768ca71d 100644 (file)
@@ -103,7 +103,7 @@ public class AltosFlightStatsTable extends JComponent {
                               String.format("%5.0f m/s", stats.state_baro_speed[Altos.ao_flight_main]),
                               String.format("%5.0f ft/s", AltosConvert.meters_to_feet(stats.state_baro_speed[Altos.ao_flight_main])));
                for (int s = Altos.ao_flight_boost; s <= Altos.ao_flight_main; s++) {
-                       new FlightStat(layout, y++, String.format("%s time", Altos.state_to_string_capital[s]),
+                       new FlightStat(layout, y++, String.format("%s time", AltosLib.state_name_capital(s)),
                                       String.format("%6.2f s", stats.state_end[s] - stats.state_start[s]));
                }
                new FlightStat(layout, y++, "Flight Time",
index ef6389b6c94d966b502fa774f0f8d0615ecf3a63..9da1290fd846d342a98ce93d7a2e1e1d92c0e519 100644 (file)
@@ -427,7 +427,7 @@ public class AltosScanUI
                telemetry_boxes = new JCheckBox[Altos.ao_telemetry_max - Altos.ao_telemetry_min + 1];
                for (int k = Altos.ao_telemetry_min; k <= Altos.ao_telemetry_max; k++) {
                        int j = k - Altos.ao_telemetry_min;
-                       telemetry_boxes[j] = new JCheckBox(Altos.ao_telemetry_name[k]);
+                       telemetry_boxes[j] = new JCheckBox(AltosLib.telemetry_name(k));
                        c.gridy = 3 + j;
                        pane.add(telemetry_boxes[j], c);
                        telemetry_boxes[j].setActionCommand("telemetry");