summaryrefslogtreecommitdiff
path: root/altoslib/AltosFlightStats.java
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2014-06-10 11:30:36 -0700
committerKeith Packard <keithp@keithp.com>2014-06-10 11:30:36 -0700
commit6fc58142d2a108c91d257eb0175098bf082834f9 (patch)
treeefc7491844e9df6c159454cd707e99cd6d0e9bbf /altoslib/AltosFlightStats.java
parent9d39bbd22e6cde1bbb39e7b5450f297d47365769 (diff)
altosuilib: Split battery graph enable out from other adc enables
This lets TeleGPS just show the battery voltage values without also adding enable lines for the other flight computer ADC values like ignitor voltages. Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'altoslib/AltosFlightStats.java')
-rw-r--r--altoslib/AltosFlightStats.java30
1 files changed, 19 insertions, 11 deletions
diff --git a/altoslib/AltosFlightStats.java b/altoslib/AltosFlightStats.java
index b3305a05..56feb848 100644
--- a/altoslib/AltosFlightStats.java
+++ b/altoslib/AltosFlightStats.java
@@ -37,7 +37,8 @@ public class AltosFlightStats {
public double pad_lat, pad_lon;
public boolean has_flight_data;
public boolean has_gps;
- public boolean has_other_adc;
+ public boolean has_flight_adc;
+ public boolean has_battery;
public boolean has_rssi;
public boolean has_imu;
public boolean has_mag;
@@ -112,7 +113,8 @@ public class AltosFlightStats {
lat = lon = AltosLib.MISSING;
has_flight_data = false;
has_gps = false;
- has_other_adc = false;
+ has_flight_adc = false;
+ has_battery = false;
has_rssi = false;
has_imu = false;
has_mag = false;
@@ -123,7 +125,9 @@ public class AltosFlightStats {
if (flight == AltosLib.MISSING && state.flight != AltosLib.MISSING)
flight = state.flight;
if (state.battery_voltage != AltosLib.MISSING)
- has_other_adc = true;
+ has_battery = true;
+ if (state.main_voltage != AltosLib.MISSING)
+ has_flight_adc = true;
if (state.rssi != AltosLib.MISSING)
has_rssi = true;
end_time = state.time;
@@ -144,6 +148,11 @@ public class AltosFlightStats {
minute = state.gps.minute;
second = state.gps.second;
}
+ max_height = state.max_height();
+ max_speed = state.max_speed();
+ max_acceleration = state.max_acceleration();
+ max_gps_height = state.max_gps_height();
+
if (0 <= state_id && state_id < AltosLib.ao_flight_invalid) {
double acceleration = state.acceleration();
double speed = state.speed();
@@ -156,16 +165,12 @@ public class AltosFlightStats {
state_start[state_id] = state.time;
if (state_end[state_id] < state.time)
state_end[state_id] = state.time;
- max_height = state.max_height();
- max_speed = state.max_speed();
- max_acceleration = state.max_acceleration();
- max_gps_height = state.max_gps_height();
+ }
+ if (state.pad_lat != AltosLib.MISSING) {
+ pad_lat = state.pad_lat;
+ pad_lon = state.pad_lon;
}
if (state.gps != null && state.gps.locked && state.gps.nsat >= 4) {
- if (state_id <= AltosLib.ao_flight_pad) {
- pad_lat = state.gps.lat;
- pad_lon = state.gps.lon;
- }
lat = state.gps.lat;
lon = state.gps.lon;
has_gps = true;
@@ -183,6 +188,9 @@ public class AltosFlightStats {
if (state_count[s] > 0) {
state_speed[s] /= state_count[s];
state_accel[s] /= state_count[s];
+ } else {
+ state_speed[s] = AltosLib.MISSING;
+ state_accel[s] = AltosLib.MISSING;
}
if (state_start[s] == 0)
state_start[s] = end_time;