diff options
| author | Keith Packard <keithp@keithp.com> | 2017-06-27 23:36:05 -0700 | 
|---|---|---|
| committer | Keith Packard <keithp@keithp.com> | 2017-06-27 23:36:05 -0700 | 
| commit | 46ff12a88136d3c274610255a918870aff9328cd (patch) | |
| tree | 0fac5fbe7cf34a695c6278c34e3b97ce73fdaa62 /altosuilib/AltosFlightStatsTable.java | |
| parent | 13abb6739ae9be5a8733724c5d9b3f714f32bea4 (diff) | |
altoslib: Deal with multiple motors in flight stats
Combine boost/fast/coast sections when computing ascent stats.
Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'altosuilib/AltosFlightStatsTable.java')
| -rw-r--r-- | altosuilib/AltosFlightStatsTable.java | 18 | 
1 files changed, 9 insertions, 9 deletions
diff --git a/altosuilib/AltosFlightStatsTable.java b/altosuilib/AltosFlightStatsTable.java index 7e3be1ea..415c0244 100644 --- a/altosuilib/AltosFlightStatsTable.java +++ b/altosuilib/AltosFlightStatsTable.java @@ -138,11 +138,11 @@ public class AltosFlightStatsTable extends JComponent implements AltosFontListen  				       String.format("%6.1f m/s²", stats.state_accel[AltosLib.ao_flight_boost]),  				       String.format("%5.0f ft/s²", AltosConvert.meters_to_feet(stats.state_accel[AltosLib.ao_flight_boost])),  				       String.format("%6.2f G", AltosConvert.meters_to_g(stats.state_accel[AltosLib.ao_flight_boost]))); -		if (stats.state_start[AltosLib.ao_flight_boost] < stats.state_end[AltosLib.ao_flight_coast]) { +		if (stats.state_time[AltosLib.ao_flight_boost] != 0 || stats.state_time[AltosLib.ao_flight_fast] != 0 || stats.state_time[AltosLib.ao_flight_coast] != 0) { -			double	boost_time = stats.state_end[AltosLib.ao_flight_boost] - stats.state_start[AltosLib.ao_flight_boost]; -			double	fast_time = stats.state_end[AltosLib.ao_flight_fast] - stats.state_start[AltosLib.ao_flight_fast]; -			double	coast_time = stats.state_end[AltosLib.ao_flight_coast] - stats.state_start[AltosLib.ao_flight_coast]; +			double	boost_time = stats.state_time[AltosLib.ao_flight_boost]; +			double	fast_time = stats.state_time[AltosLib.ao_flight_fast]; +			double	coast_time = stats.state_time[AltosLib.ao_flight_coast];  			if (fast_time > 0) {  				new FlightStat(layout, y++, "Ascent time", @@ -175,10 +175,10 @@ public class AltosFlightStatsTable extends JComponent implements AltosFontListen  			new FlightStat(layout, y++, "Main descent rate",  				       String.format("%6.1f m/s", -stats.state_speed[AltosLib.ao_flight_main]),  				       String.format("%5.0f ft/s", -AltosConvert.meters_to_feet(stats.state_speed[AltosLib.ao_flight_main]))); -		if (stats.state_start[AltosLib.ao_flight_drogue] < stats.state_end[AltosLib.ao_flight_main]) { -			double	drogue_duration = stats.state_end[AltosLib.ao_flight_drogue] - stats.state_start[AltosLib.ao_flight_drogue]; -			double	main_duration = stats.landed_time - stats.state_start[AltosLib.ao_flight_main]; -			double	duration = stats.landed_time - stats.state_start[AltosLib.ao_flight_drogue]; +		if (stats.state_time[AltosLib.ao_flight_drogue] != 0 || stats.state_time[AltosLib.ao_flight_main] != 0) { +			double	drogue_duration = stats.state_time[AltosLib.ao_flight_drogue]; +			double	main_duration = stats.state_time[AltosLib.ao_flight_main]; +			double	duration = drogue_duration + main_duration;  			if (drogue_duration > 0 && main_duration > 0) {  				new FlightStat(layout, y++, "Descent time", @@ -191,7 +191,7 @@ public class AltosFlightStatsTable extends JComponent implements AltosFontListen  					       String.format("%6.1f s", duration));  			}  		} -		if (stats.state_start[AltosLib.ao_flight_boost] < stats.state_start[AltosLib.ao_flight_landed]) +		if (stats.landed_time > stats.boost_time)  			new FlightStat(layout, y++, "Flight time",  				       String.format("%6.1f s", stats.landed_time - stats.boost_time));  		if (stats.has_gps && stats.pad_lat != AltosLib.MISSING) {  | 
