projects
/
fw
/
altos
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
altosui: Complete split out of separate java library
[fw/altos]
/
altosui
/
AltosState.java
diff --git
a/altosui/AltosState.java
b/altosui/AltosState.java
index 4e165f8093550ea4ea0fe74fb552d3d3073084a4..403c74be16a70eccbdbf3f9ef34d28da44e000f7 100644
(file)
--- a/
altosui/AltosState.java
+++ b/
altosui/AltosState.java
@@
-21,6
+21,8
@@
package altosui;
package altosui;
+import org.altusmetrum.AltosLib.*;
+
public class AltosState {
AltosRecord data;
public class AltosState {
AltosRecord data;
@@
-28,12
+30,14
@@
public class AltosState {
long report_time;
long report_time;
+ double time;
double time_change;
int tick;
int state;
boolean landed;
boolean ascent; /* going up? */
double time_change;
int tick;
int state;
boolean landed;
boolean ascent; /* going up? */
+ boolean boost; /* under power */
double ground_altitude;
double height;
double ground_altitude;
double height;
@@
-48,9
+52,13
@@
public class AltosState {
double max_height;
double max_acceleration;
double max_speed;
double max_height;
double max_acceleration;
double max_speed;
+ double max_baro_speed;
AltosGPS gps;
AltosGPS gps;
+ AltosIMU imu;
+ AltosMag mag;
+
double pad_lat;
double pad_lon;
double pad_alt;
double pad_lat;
double pad_lon;
double pad_alt;
@@
-71,7
+79,6
@@
public class AltosState {
int speak_tick;
double speak_altitude;
int speak_tick;
double speak_altitude;
-
void init (AltosRecord cur, AltosState prev_state) {
int i;
AltosRecord prev;
void init (AltosRecord cur, AltosState prev_state) {
int i;
AltosRecord prev;
@@
-80,7
+87,6
@@
public class AltosState {
ground_altitude = data.ground_altitude();
height = data.filtered_height();
ground_altitude = data.ground_altitude();
height = data.filtered_height();
- System.out.printf("height %g\n", height);
report_time = System.currentTimeMillis();
report_time = System.currentTimeMillis();
@@
-105,6
+111,9
@@
public class AltosState {
max_height = prev_state.max_height;
max_acceleration = prev_state.max_acceleration;
max_speed = prev_state.max_speed;
max_height = prev_state.max_height;
max_acceleration = prev_state.max_acceleration;
max_speed = prev_state.max_speed;
+ max_baro_speed = prev_state.max_baro_speed;
+ imu = prev_state.imu;
+ mag = prev_state.mag;
/* make sure the clock is monotonic */
while (tick < prev_state.tick)
/* make sure the clock is monotonic */
while (tick < prev_state.tick)
@@
-131,7
+140,9
@@
public class AltosState {
time_change = 0;
}
time_change = 0;
}
- if (state == Altos.ao_flight_pad) {
+ time = tick / 100.0;
+
+ if (cur.new_gps && (state == Altos.ao_flight_pad || state == Altos.ao_flight_idle)) {
/* Track consecutive 'good' gps reports, waiting for 10 of them */
if (data.gps != null && data.gps.locked && data.gps.nsat >= 4)
/* Track consecutive 'good' gps reports, waiting for 10 of them */
if (data.gps != null && data.gps.locked && data.gps.nsat >= 4)
@@
-163,12
+174,15
@@
public class AltosState {
ascent = (Altos.ao_flight_boost <= state &&
state <= Altos.ao_flight_coast);
ascent = (Altos.ao_flight_boost <= state &&
state <= Altos.ao_flight_coast);
+ boost = (Altos.ao_flight_boost == state);
- /* Only look at accelerometer data
on the way up
*/
- if (
ascen
t && acceleration > max_acceleration)
+ /* Only look at accelerometer data
under boost
*/
+ if (
boos
t && acceleration > max_acceleration)
max_acceleration = acceleration;
max_acceleration = acceleration;
- if (
ascen
t && speed > max_speed)
+ if (
boos
t && speed > max_speed)
max_speed = speed;
max_speed = speed;
+ if (boost && baro_speed > max_baro_speed)
+ max_baro_speed = baro_speed;
if (height > max_height)
max_height = height;
if (height > max_height)
max_height = height;