altosui: Compute flight state from eeprom data
[fw/altos] / ao-tools / altosui / Altos.java
index bda4080e9bfbcf82f8cc914e10722d28686e0a8e..53359e23715dd0c0e584cac77ccd1b16bdbe4a45 100644 (file)
@@ -35,8 +35,18 @@ public class Altos {
        static final int AO_LOG_GPS_SAT = 'V';
        static final int AO_LOG_GPS_DATE = 'Y';
 
-       /* Added for 'serial-number' entry in eeprom files */
-       static final int AO_LOG_SERIAL_NUMBER = 1000;
+       /* Added for header fields in eeprom files */
+       static final int AO_LOG_CONFIG_VERSION = 1000;
+       static final int AO_LOG_MAIN_DEPLOY = 1001;
+       static final int AO_LOG_APOGEE_DELAY = 1002;
+       static final int AO_LOG_RADIO_CHANNEL = 1003;
+       static final int AO_LOG_CALLSIGN = 1004;
+       static final int AO_LOG_ACCEL_CAL = 1005;
+       static final int AO_LOG_RADIO_CAL = 1006;
+       static final int AO_LOG_MANUFACTURER = 1007;
+       static final int AO_LOG_PRODUCT = 1008;
+       static final int AO_LOG_SERIAL_NUMBER = 1009;
+       static final int AO_LOG_SOFTWARE_VERSION = 1010;
 
        /* Added to flag invalid records */
        static final int AO_LOG_INVALID = -1;
@@ -54,6 +64,10 @@ public class Altos {
        static final int ao_flight_invalid = 9;
 
        static HashMap<String,Integer>  string_to_state = new HashMap<String,Integer>();
+
+       static boolean map_initialized = false;
+
+       static void initialize_map()
        {
                string_to_state.put("startup", ao_flight_startup);
                string_to_state.put("idle", ao_flight_idle);
@@ -65,6 +79,7 @@ public class Altos {
                string_to_state.put("main", ao_flight_main);
                string_to_state.put("landed", ao_flight_landed);
                string_to_state.put("invalid", ao_flight_invalid);
+               map_initialized = true;
        }
 
        static String[] state_to_string = {
@@ -81,6 +96,8 @@ public class Altos {
        };
 
        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;
@@ -91,4 +108,10 @@ public class Altos {
                        return "invalid";
                return state_to_string[state];
        }
+
+       static final int AO_GPS_VALID = (1 << 4);
+       static final int AO_GPS_RUNNING = (1 << 5);
+       static final int AO_GPS_DATE_VALID = (1 << 6);
+       static final int AO_GPS_NUM_SAT_SHIFT = 0;
+       static final int AO_GPS_NUM_SAT_MASK = 0xf;
 }