altos: Shrink ao_cmd_put16, ao_cmd_hex and ao_cmd
[fw/altos] / altosui / AltosRecord.java
index 46e96b95de6e660a4a4350cce140660cc5615ba7..144b1c3c5a1a94caa847ab4bf8b11655082e0677 100644 (file)
@@ -25,6 +25,15 @@ import java.io.*;
 public class AltosRecord {
        final static int        MISSING = 0x7fffffff;
 
+       static final int        seen_flight = 1;
+       static final int        seen_sensor = 2;
+       static final int        seen_temp_volt = 4;
+       static final int        seen_deploy = 8;
+       static final int        seen_gps_time = 16;
+       static final int        seen_gps_lat = 32;
+       static final int        seen_gps_lon = 64;
+       int                     seen;
+
        int     version;
        String  callsign;
        int     serial;
@@ -58,6 +67,13 @@ public class AltosRecord {
 
        double  time;   /* seconds since boost */
 
+       int     device_type;
+       int     config_major;
+       int     config_minor;
+       int     apogee_delay;
+       int     main_deploy;
+       int     flight_log_max;
+       String  firmware_version;
        /*
         * Values for our MP3H6115A pressure sensor
         *
@@ -139,7 +155,7 @@ public class AltosRecord {
                double g = ground_altitude();
 
                if (r == MISSING || g == MISSING)
-                       return MISSING;
+                       return height;
                return r - g;
        }
 
@@ -226,6 +242,7 @@ public class AltosRecord {
 
        public AltosRecord(AltosRecord old) {
                version = old.version;
+               seen = old.seen;
                callsign = old.callsign;
                serial = old.serial;
                flight = old.flight;
@@ -246,11 +263,15 @@ public class AltosRecord {
                ground_pres = old.ground_pres;
                accel_plus_g = old.accel_plus_g;
                accel_minus_g = old.accel_minus_g;
+               acceleration = old.acceleration;
+               speed = old.speed;
+               height = old.height;
                gps = new AltosGPS(old.gps);
        }
 
        public AltosRecord() {
                version = 0;
+               seen = 0;
                callsign = "N0CALL";
                serial = 0;
                flight = 0;
@@ -258,12 +279,12 @@ public class AltosRecord {
                status = 0;
                state = Altos.ao_flight_startup;
                tick = 0;
-               accel = 0;
-               pres = 0;
-               temp = 0;
-               batt = 0;
-               drogue = 0;
-               main = 0;
+               accel = MISSING;
+               pres = MISSING;
+               temp = MISSING;
+               batt = MISSING;
+               drogue = MISSING;
+               main = MISSING;
                flight_accel = 0;
                ground_accel = 0;
                flight_vel = 0;
@@ -271,6 +292,9 @@ public class AltosRecord {
                ground_pres = 0;
                accel_plus_g = 0;
                accel_minus_g = 0;
+               acceleration = MISSING;
+               speed = MISSING;
+               height = MISSING;
                gps = new AltosGPS();
        }
 }