+ 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]) {
+
+ 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];
+
+ if (fast_time > 0) {
+ new FlightStat(layout, y++, "Ascent time",
+ String.format("%6.1f s %s", boost_time,
+ AltosLib.state_name(AltosLib.ao_flight_boost)),
+ String.format("%6.1f s %s", fast_time,
+ AltosLib.state_name(AltosLib.ao_flight_fast)),
+ String.format("%6.1f s %s", coast_time,
+ AltosLib.state_name(AltosLib.ao_flight_coast)));
+ } else {
+ new FlightStat(layout, y++, "Ascent time",
+ String.format("%6.1f s %s", boost_time,
+ AltosLib.state_name(AltosLib.ao_flight_boost)),
+ String.format("%6.1f s %s", coast_time,
+ AltosLib.state_name(AltosLib.ao_flight_coast)));
+ }
+ }
+ if (stats.state_speed[AltosLib.ao_flight_drogue] != AltosLib.MISSING) {
+ String label;
+
+ if (stats.state_speed[AltosLib.ao_flight_main] == AltosLib.MISSING)
+ label = "Descent rate";
+ else
+ label = "Drogue descent rate";
+ new FlightStat(layout, y++, label,
+ String.format("%6.1f m/s", -stats.state_speed[AltosLib.ao_flight_drogue]),
+ String.format("%5.0f ft/s", -AltosConvert.meters_to_feet(stats.state_speed[AltosLib.ao_flight_drogue])));