Merge branch 'master' into new-state
[fw/altos] / altoslib / AltosRecord.java
index b519807bb2c766b1ebd109930f3387072f07e4f2..0c8e1db9f1c9def66f8c186033cf3e65632be246 100644 (file)
@@ -15,9 +15,9 @@
  * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
  */
 
-package org.altusmetrum.altoslib;
+package org.altusmetrum.altoslib_1;
 
-public abstract class AltosRecord implements Comparable <AltosRecord>, Cloneable {
+public class AltosRecord implements Comparable <AltosRecord>, Cloneable {
 
        public static final int seen_flight = 1;
        public static final int seen_sensor = 2;
@@ -44,7 +44,7 @@ public abstract class AltosRecord implements Comparable <AltosRecord>, Cloneable
        public int      tick;
 
        public AltosGPS gps;
-       public boolean  new_gps;
+       public int      gps_sequence;
 
        public double   time;   /* seconds since boost */
 
@@ -56,6 +56,10 @@ public abstract class AltosRecord implements Comparable <AltosRecord>, Cloneable
        public int      flight_log_max;
        public String   firmware_version;
 
+       public double   accel_plus_g, accel_minus_g;
+       public double   ground_accel;
+       public double   accel;
+
        public AltosRecordCompanion companion;
 
        /* Telemetry sources have these values recorded from the flight computer */
@@ -75,9 +79,9 @@ public abstract class AltosRecord implements Comparable <AltosRecord>, Cloneable
         *      temperature:    °C
         */
 
-       abstract public double pressure();
-       abstract public double ground_pressure();
-       abstract public double acceleration();
+       public double pressure() { return MISSING; }
+       public double ground_pressure() { return MISSING; }
+       public double acceleration() { return MISSING; }
 
        public double altitude() {
                double  p = pressure();
@@ -126,7 +130,11 @@ public abstract class AltosRecord implements Comparable <AltosRecord>, Cloneable
                return tick - o.tick;
        }
 
-       abstract public AltosRecord clone();
+       public AltosRecord clone() {
+               AltosRecord n = new AltosRecord();
+               n.copy(this);
+               return n;
+       }
 
        public void copy(AltosRecord old) {
                seen = old.seen;
@@ -139,7 +147,7 @@ public abstract class AltosRecord implements Comparable <AltosRecord>, Cloneable
                state = old.state;
                tick = old.tick;
                gps = new AltosGPS(old.gps);
-               new_gps = old.new_gps;
+               gps_sequence = old.gps_sequence;
                companion = old.companion;
                kalman_acceleration = old.kalman_acceleration;
                kalman_speed = old.kalman_speed;
@@ -150,18 +158,22 @@ public abstract class AltosRecord implements Comparable <AltosRecord>, Cloneable
                seen = 0;
                version = 0;
                callsign = "N0CALL";
-               serial = 0;
-               flight = 0;
+               serial = MISSING;
+               flight = MISSING;
                rssi = 0;
                status = 0;
                state = AltosLib.ao_flight_startup;
                tick = 0;
-               gps = new AltosGPS();
-               new_gps = false;
+               gps = null;
+               gps_sequence = 0;
                companion = null;
 
                kalman_acceleration = MISSING;
                kalman_speed = MISSING;
                kalman_height = MISSING;
+
+               accel_plus_g = MISSING;
+               accel_minus_g = MISSING;
+               
        }
 }