X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=altosui%2FAltosFlightStats.java;h=ed5a336e750c6afb618d3ec9483043bf0f5a68ca;hb=e56038b65ba1c6413ba9942be3c092644986f126;hp=dce5cb3ecd8380a30a6c2b34ed714ae16150388c;hpb=20066268d8d1853055d0afe108584db34b425fcb;p=fw%2Faltos diff --git a/altosui/AltosFlightStats.java b/altosui/AltosFlightStats.java index dce5cb3e..ed5a336e 100644 --- a/altosui/AltosFlightStats.java +++ b/altosui/AltosFlightStats.java @@ -77,10 +77,30 @@ public class AltosFlightStats { return landed_time; } + double boost_time(AltosRecordIterable iterable) { + double boost_time = -1000; + + AltosState state = null; + + for (AltosRecord record : iterable) { + state = new AltosState(record, state); + + if (state.acceleration < 1) + boost_time = state.time; + if (state.state >= Altos.ao_flight_boost) + break; + } + if (boost_time == -1000) + boost_time = state.time; + System.out.printf ("boost time %f instead of %f\n", boost_time, state.time); + return boost_time; + } + + public AltosFlightStats(AltosRecordIterable iterable) throws InterruptedException, IOException { AltosState state = null; AltosState new_state = null; - double boost_time = -1; + double boost_time = boost_time(iterable); double end_time = 0; double landed_time = landed_time(iterable); @@ -95,10 +115,12 @@ public class AltosFlightStats { new_state = new AltosState(record, state); end_time = new_state.time; state = new_state; + if (state.time >= boost_time && state.state < Altos.ao_flight_boost) + state.state = Altos.ao_flight_boost; + if (state.time >= landed_time && state.state < Altos.ao_flight_landed) + state.state = Altos.ao_flight_landed; if (0 <= state.state && state.state < Altos.ao_flight_invalid) { if (state.state >= Altos.ao_flight_boost) { - if (boost_time == -1) - boost_time = state.time; if (state.gps != null && state.gps.locked && year < 0) { year = state.gps.year; @@ -109,8 +131,6 @@ public class AltosFlightStats { second = state.gps.second; } } - if (state.time >= landed_time) - state.state = Altos.ao_flight_landed; state_accel[state.state] += state.acceleration; state_speed[state.state] += state.speed; state_baro_speed[state.state] += state.baro_speed;