summaryrefslogtreecommitdiff
path: root/altoslib
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2017-08-27 17:35:49 -0700
committerKeith Packard <keithp@keithp.com>2017-08-27 17:40:53 -0700
commitdd72c9144b207b12150eb6a7ffb012f217f37374 (patch)
tree5b58c8cb02c1e38e58a5ae79315628fe8f6ba890 /altoslib
parent9537a21b6ddb73b9f086858dad9a7b9d05279741 (diff)
altoslib: Compute speed at entry to each state
Useful to have drogue/main deployment speeds Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'altoslib')
-rw-r--r--altoslib/AltosFlightStats.java4
1 files changed, 4 insertions, 0 deletions
diff --git a/altoslib/AltosFlightStats.java b/altoslib/AltosFlightStats.java
index 6f8732cf..c2e4e2a3 100644
--- a/altoslib/AltosFlightStats.java
+++ b/altoslib/AltosFlightStats.java
@@ -26,6 +26,7 @@ public class AltosFlightStats {
public double max_speed;
public double max_acceleration;
public double[] state_speed = new double[AltosLib.ao_flight_invalid + 1];
+ public double[] state_enter_speed = new double[AltosLib.ao_flight_invalid + 1];
public double[] state_accel = new double[AltosLib.ao_flight_invalid + 1];
public double[] state_time = new double[AltosLib.ao_flight_invalid + 1];
public String product;
@@ -131,6 +132,8 @@ public class AltosFlightStats {
private void add_times(AltosFlightSeries series, int state, double start_time, double end_time) {
double delta_time = end_time - start_time;
if (0 <= state && state <= AltosLib.ao_flight_invalid && delta_time > 0) {
+ if (state_enter_speed[state] == AltosLib.MISSING)
+ state_enter_speed[state] = series.speed_series.value(start_time);
speeds[state].value += series.speed_series.average(start_time, end_time) * delta_time;
speeds[state].time += delta_time;
accels[state].value += series.accel_series.average(start_time, end_time) * delta_time;
@@ -192,6 +195,7 @@ public class AltosFlightStats {
for (int s = 0; s < AltosLib.ao_flight_invalid + 1; s++) {
state_speed[s] = AltosLib.MISSING;
+ state_enter_speed[s] = AltosLib.MISSING;
state_accel[s] = AltosLib.MISSING;
state_time[s] = 0;
speeds[s] = new AltosTimeValue(0, 0);