projects
/
fw
/
altos
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
libaltos: Delay after opening bluetooth device on linux
[fw/altos]
/
altoslib
/
AltosRecord.java
diff --git
a/altoslib/AltosRecord.java
b/altoslib/AltosRecord.java
index 8722bc050bac011f183248301012d27b1d46e5c0..07e910eb726e53fb28471521035f7f0a68b7665b 100644
(file)
--- a/
altoslib/AltosRecord.java
+++ b/
altoslib/AltosRecord.java
@@
-15,12
+15,7
@@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.AltosLib;
-
-import java.lang.*;
-import java.text.*;
-import java.util.HashMap;
-import java.io.*;
+package org.altusmetrum.altoslib_1;
public class AltosRecord implements Comparable <AltosRecord>, Cloneable {
public class AltosRecord implements Comparable <AltosRecord>, Cloneable {
@@
-48,11
+43,6
@@
public class AltosRecord implements Comparable <AltosRecord>, Cloneable {
public int state;
public int tick;
public int state;
public int tick;
- /* Current flight dynamic state */
- public double acceleration; /* m/s² */
- public double speed; /* m/s */
- public double height; /* m */
-
public AltosGPS gps;
public boolean new_gps;
public AltosGPS gps;
public boolean new_gps;
@@
-68,6
+58,11
@@
public class AltosRecord implements Comparable <AltosRecord>, Cloneable {
public AltosRecordCompanion companion;
public AltosRecordCompanion companion;
+ /* Telemetry sources have these values recorded from the flight computer */
+ public double kalman_height;
+ public double kalman_speed;
+ public double kalman_acceleration;
+
/*
* Abstract methods that convert record data
* to standard units:
/*
* Abstract methods that convert record data
* to standard units:
@@
-80,76
+75,48
@@
public class AltosRecord implements Comparable <AltosRecord>, Cloneable {
* temperature: °C
*/
* temperature: °C
*/
- public double raw_pressure() { return MISSING; }
-
- public double filtered_pressure() { return MISSING; }
-
+ public double pressure() { return MISSING; }
public double ground_pressure() { return MISSING; }
public double ground_pressure() { return MISSING; }
-
- public double battery_voltage() { return MISSING; }
-
- public double main_voltage() { return MISSING; }
-
- public double drogue_voltage() { return MISSING; }
-
- public double temperature() { return MISSING; }
-
public double acceleration() { return MISSING; }
public double acceleration() { return MISSING; }
- public double accel_speed() { return MISSING; }
-
- public AltosIMU imu() { return null; }
-
- public AltosMag mag() { return null; }
+ public double altitude() {
+ double p = pressure();
- /*
- * Convert various pressure values to altitude
- */
-
- public double raw_altitude() {
- double p = raw_pressure();
if (p == MISSING)
return MISSING;
return AltosConvert.pressure_to_altitude(p);
}
public double ground_altitude() {
if (p == MISSING)
return MISSING;
return AltosConvert.pressure_to_altitude(p);
}
public double ground_altitude() {
- double p = ground_pressure();
+ double p = ground_pressure();
+
if (p == MISSING)
return MISSING;
return AltosConvert.pressure_to_altitude(p);
}
if (p == MISSING)
return MISSING;
return AltosConvert.pressure_to_altitude(p);
}
- public double filtered_altitude() {
- double ga = ground_altitude();
- if (height != MISSING && ga != MISSING)
- return height + ga;
+ public double height() {
+ double g = ground_altitude();
+ double a = altitude();
- double p = filtered_pressure();
- if (p == MISSING)
- return raw_altitude();
- return AltosConvert.pressure_to_altitude(p);
+ if (g == MISSING)
+ return MISSING;
+ if (a == MISSING)
+ return MISSING;
+ return a - g;
}
}
- public double filtered_height() {
- if (height != MISSING)
- return height;
+ public double battery_voltage() { return MISSING; }
- double f = filtered_altitude();
- double g = ground_altitude();
- if (f == MISSING || g == MISSING)
- return MISSING;
- return f - g;
- }
+ public double main_voltage() { return MISSING; }
- public double raw_height() {
- double r = raw_altitude();
- double g = ground_altitude();
+ public double drogue_voltage() { return MISSING; }
- if (r == MISSING || g == MISSING)
- return height;
- return r - g;
- }
+ public double temperature() { return MISSING; }
+
+ public AltosIMU imu() { return null; }
+
+ public AltosMag mag() { return null; }
public String state() {
return AltosLib.state_name(state);
public String state() {
return AltosLib.state_name(state);
@@
-159,6
+126,12
@@
public class AltosRecord implements Comparable <AltosRecord>, Cloneable {
return tick - o.tick;
}
return tick - o.tick;
}
+ public AltosRecord clone() {
+ AltosRecord n = new AltosRecord();
+ n.copy(this);
+ return n;
+ }
+
public void copy(AltosRecord old) {
seen = old.seen;
version = old.version;
public void copy(AltosRecord old) {
seen = old.seen;
version = old.version;
@@
-169,39
+142,30
@@
public class AltosRecord implements Comparable <AltosRecord>, Cloneable {
status = old.status;
state = old.state;
tick = old.tick;
status = old.status;
state = old.state;
tick = old.tick;
- acceleration = old.acceleration;
- speed = old.speed;
- height = old.height;
gps = new AltosGPS(old.gps);
gps = new AltosGPS(old.gps);
- new_gps =
false
;
+ new_gps =
old.new_gps
;
companion = old.companion;
companion = old.companion;
- }
-
- public AltosRecord clone() {
- try {
- AltosRecord n = (AltosRecord) super.clone();
- n.copy(this);
- return n;
- } catch (CloneNotSupportedException e) {
- return null;
- }
+ kalman_acceleration = old.kalman_acceleration;
+ kalman_speed = old.kalman_speed;
+ kalman_height = old.kalman_height;
}
public AltosRecord() {
seen = 0;
version = 0;
callsign = "N0CALL";
}
public AltosRecord() {
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;
rssi = 0;
status = 0;
state = AltosLib.ao_flight_startup;
tick = 0;
- acceleration = MISSING;
- speed = MISSING;
- height = MISSING;
- gps = new AltosGPS();
+ gps = null;
new_gps = false;
companion = null;
new_gps = false;
companion = null;
+
+ kalman_acceleration = MISSING;
+ kalman_speed = MISSING;
+ kalman_height = MISSING;
}
}
}
}