public class AltosFlightSeries extends AltosDataListener {
- public ArrayList<AltosTimeSeries> series;
+ public ArrayList<AltosTimeSeries> series = new ArrayList<AltosTimeSeries>();
public int[] indices() {
int[] indices = new int[series.size()];
state_series = add_series(state_name, AltosConvert.state_name);
else if (this.state == state)
return;
- System.out.printf("state %s\n", AltosLib.state_name(state));
this.state = state;
state_series.add(time(), state);
}
public void set_acceleration(double acceleration) {
if (accel_series == null) {
- System.out.printf("set acceleration %g\n", acceleration);
accel_series = add_series(accel_name, AltosConvert.accel);
}
accel_series.add(time(), acceleration);
altitude_series.add(time(), altitude);
}
- private void compute_height(double ground_altitude) {
- if (height_series == null) {
+ private void compute_height() {
+ double ground_altitude = cal_data.ground_altitude;
+ if (height_series == null && ground_altitude != AltosLib.MISSING) {
height_series = add_series(height_name, AltosConvert.height);
for (AltosTimeValue alt : altitude_series)
height_series.add(alt.time, alt.value - ground_altitude);
public static final String speed_name = "Speed";
private void compute_speed() {
- if (speed_series != null) {
- System.out.printf("speed series already made\n");
+ if (speed_series != null)
return;
- }
AltosTimeSeries alt_speed_series = null;
AltosTimeSeries accel_speed_series = null;
alt_speed_series = make_series(speed_name, AltosConvert.speed);
temp_series.filter(alt_speed_series, 10.0);
- } else {
- System.out.printf("no altitude series\n");
}
if (accel_series != null) {
AltosTimeSeries temp_series = make_series(speed_name, AltosConvert.speed);
accel_speed_series = make_series(speed_name, AltosConvert.speed);
temp_series.filter(accel_speed_series, 0.1);
- } else {
- System.out.printf("no accel series\n");
}
if (alt_speed_series != null && accel_speed_series != null) {
} else if (accel_speed_series != null) {
speed_series = accel_speed_series;
}
- if (speed_series != null) {
+ if (speed_series != null)
add_series(speed_series);
- System.out.printf("speed series for %s set to %s\n", this.toString(), speed_series.toString());
- } else
- System.out.printf("didn't manage to make speed series\n");
}
AltosTimeSeries kalman_height_series, kalman_speed_series, kalman_accel_series;
public void set_companion(AltosCompanion companion) {
}
- public void fill_in() {
- System.out.printf("fill in %s\n", this.toString());
+ public void finish() {
compute_speed();
compute_accel();
- if (cal_data.ground_altitude != AltosLib.MISSING)
- compute_height(cal_data.ground_altitude);
- }
-
- public void init() {
- time = AltosLib.MISSING;
- series = new ArrayList<AltosTimeSeries>();
+ compute_height();
}
public AltosTimeSeries[] series() {
- fill_in();
+ finish();
return series.toArray(new AltosTimeSeries[0]);
}
public AltosFlightSeries(AltosCalData cal_data) {
super(cal_data);
- System.out.printf("new flight series %s\n", this.toString());
- init();
}
}