From: Keith Packard Date: Sun, 9 Sep 2012 19:29:32 +0000 (-0700) Subject: altosui: Use helper functions to access arrays in AltosLib class X-Git-Tag: 1.1~30 X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=commitdiff_plain;h=9682e9e6fe730417a77b47795fbe1f06c9a51177 altosui: Use helper functions to access arrays in AltosLib class These deal with out-of-range values correctly, instead of causing exceptions that will just break stuff. Signed-off-by: Keith Packard --- diff --git a/altoslib/AltosLib.java b/altoslib/AltosLib.java index 2402331e..d36b2ff7 100644 --- a/altoslib/AltosLib.java +++ b/altoslib/AltosLib.java @@ -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_to_state = new HashMap(); + private static HashMap string_to_state = new HashMap(); - 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); diff --git a/altosui/Altos.java b/altosui/Altos.java index e60b3aaa..cd17a93e 100644 --- a/altosui/Altos.java +++ b/altosui/Altos.java @@ -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; diff --git a/altosui/AltosFlightStatsTable.java b/altosui/AltosFlightStatsTable.java index c311b231..14e3bf8f 100644 --- a/altosui/AltosFlightStatsTable.java +++ b/altosui/AltosFlightStatsTable.java @@ -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", diff --git a/altosui/AltosScanUI.java b/altosui/AltosScanUI.java index ef6389b6..9da1290f 100644 --- a/altosui/AltosScanUI.java +++ b/altosui/AltosScanUI.java @@ -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");