summaryrefslogtreecommitdiff
path: root/altoslib/AltosRecord.java
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2013-04-09 00:28:05 -0700
committerKeith Packard <keithp@keithp.com>2013-04-09 00:30:36 -0700
commit398c02b945a58634c8932f07df2c2be8438da7d1 (patch)
tree2741e99555d58e9509271da719d039516e16819f /altoslib/AltosRecord.java
parent08eb1e3e1abb1aa4f5ea92b781a2ff8f480006c5 (diff)
altoslib/altosui: Carry receiver status around in AltosListenerState
This moves the crc_errors into the new structure and adds a receiver battery voltage value there as well. Now the receiver status can be monitored separately from the flight status. That also means that code receiving state updates should be prepared to accept missing listener or flight state values. Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'altoslib/AltosRecord.java')
-rw-r--r--altoslib/AltosRecord.java24
1 files changed, 15 insertions, 9 deletions
diff --git a/altoslib/AltosRecord.java b/altoslib/AltosRecord.java
index f8c44cc5..7046b9f1 100644
--- a/altoslib/AltosRecord.java
+++ b/altoslib/AltosRecord.java
@@ -17,7 +17,7 @@
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;
@@ -75,15 +75,17 @@ 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();
- if (p == MISSING)
+ if (p == MISSING) {
+ System.out.printf ("altitude missing\n");
return MISSING;
+ }
return AltosConvert.pressure_to_altitude(p);
}
@@ -126,7 +128,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;
@@ -150,13 +156,13 @@ 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();
+ gps = null;
new_gps = false;
companion = null;