diff options
Diffstat (limited to 'altosui/AltosFlightStats.java')
| -rw-r--r-- | altosui/AltosFlightStats.java | 24 | 
1 files changed, 23 insertions, 1 deletions
diff --git a/altosui/AltosFlightStats.java b/altosui/AltosFlightStats.java index 1653ca57..da06bb3d 100644 --- a/altosui/AltosFlightStats.java +++ b/altosui/AltosFlightStats.java @@ -18,7 +18,7 @@  package altosui;  import java.io.*; -import org.altusmetrum.AltosLib.*; +import org.altusmetrum.altoslib_1.*;  public class AltosFlightStats {  	double		max_height; @@ -34,6 +34,11 @@ public class AltosFlightStats {  	int		flight;  	int		year, month, day;  	int		hour, minute, second; +	double		lat, lon; +	double		pad_lat, pad_lon; +	boolean		has_gps; +	boolean		has_other_adc; +	boolean		has_rssi;  	double landed_time(AltosRecordIterable iterable) {  		AltosState	state = null; @@ -98,11 +103,19 @@ public class AltosFlightStats {  		year = month = day = -1;  		hour = minute = second = -1;  		serial = flight = -1; +		lat = lon = -1; +		has_gps = false; +		has_other_adc = false; +		has_rssi = false;  		for (AltosRecord record : iterable) {  			if (serial < 0)  				serial = record.serial;  			if ((record.seen & AltosRecord.seen_flight) != 0 && flight < 0)  				flight = record.flight; +			if ((record.seen & AltosRecord.seen_temp_volt) != 0) +				has_other_adc = true; +			if (record.rssi != 0) +				has_rssi = true;  			new_state = new AltosState(record, state);  			end_time = new_state.time;  			state = new_state; @@ -137,6 +150,15 @@ public class AltosFlightStats {  					max_speed = state.max_baro_speed;  				max_acceleration = state.max_acceleration;  			} +			if (state.gps.locked && state.gps.nsat >= 4) { +				if (state.state <= Altos.ao_flight_pad) { +					pad_lat = state.gps.lat; +					pad_lon = state.gps.lon; +				} +				lat = state.gps.lat; +				lon = state.gps.lon; +				has_gps = true; +			}  		}  		for (int s = Altos.ao_flight_startup; s <= Altos.ao_flight_landed; s++) {  			if (state_count[s] > 0) {  | 
