diff options
-rw-r--r-- | altoslib/AltosFlightStats.java | 30 | ||||
-rw-r--r-- | altosuilib/AltosFlightStatsTable.java (renamed from altosui/AltosFlightStatsTable.java) | 0 | ||||
-rw-r--r-- | altosuilib/AltosGraph.java | 17 |
3 files changed, 29 insertions, 18 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; diff --git a/altosui/AltosFlightStatsTable.java b/altosuilib/AltosFlightStatsTable.java index e7a8e728..e7a8e728 100644 --- a/altosui/AltosFlightStatsTable.java +++ b/altosuilib/AltosFlightStatsTable.java diff --git a/altosuilib/AltosGraph.java b/altosuilib/AltosGraph.java index 73c53a22..f8c8b27b 100644 --- a/altosuilib/AltosGraph.java +++ b/altosuilib/AltosGraph.java @@ -333,19 +333,22 @@ public class AltosGraph extends AltosUIGraph { dbm_color, false, dbm_axis); - if (stats.has_other_adc) { - addSeries("Temperature", - AltosGraphDataPoint.data_temperature, - AltosConvert.temperature, - temperature_color, - false, - temperature_axis); + + if (stats.has_battery) addSeries("Battery Voltage", AltosGraphDataPoint.data_battery_voltage, voltage_units, battery_voltage_color, false, voltage_axis); + + if (stats.has_flight_adc) { + addSeries("Temperature", + AltosGraphDataPoint.data_temperature, + AltosConvert.temperature, + temperature_color, + false, + temperature_axis); addSeries("Drogue Voltage", AltosGraphDataPoint.data_drogue_voltage, voltage_units, |