public ArrayList<AltosTimeSeries> series = new ArrayList<AltosTimeSeries>();
+ public double speed_filter_width = 4.0;
+ public double accel_filter_width = 4.0;
+
public int[] indices() {
int[] indices = new int[series.size()];
for (int i = 0; i < indices.length; i++)
return false;
}
- AltosTimeSeries state_series;
+ public AltosTimeSeries state_series;
public static final String state_name = "State";
state_series.add(time(), state);
}
- AltosTimeSeries accel_series;
+ public AltosTimeSeries accel_series;
public static final String accel_name = "Accel";
public void set_acceleration(double acceleration) {
- if (accel_series == null) {
+ if (acceleration == AltosLib.MISSING)
+ return;
+ if (accel_series == null)
accel_series = add_series(accel_name, AltosConvert.accel);
- }
+
accel_series.add(time(), acceleration);
}
return;
if (speed_series != null) {
- AltosTimeSeries temp_series = make_series(accel_name, AltosConvert.accel);
- speed_series.differentiate(temp_series);
+ AltosTimeSeries temp_series = make_series(speed_name, AltosConvert.speed);
+ speed_series.filter(temp_series, accel_filter_width);
accel_series = add_series(accel_name, AltosConvert.accel);
- temp_series.filter(accel_series, 0.25);
+ temp_series.differentiate(accel_series);
}
}
public void set_received_time(long received_time) {
}
- AltosTimeSeries rssi_series;
+ public AltosTimeSeries rssi_series;
public static final String rssi_name = "RSSI";
- AltosTimeSeries status_series;
+ public AltosTimeSeries status_series;
public static final String status_name = "Radio Status";
status_series.add(time(), status);
}
- AltosTimeSeries pressure_series;
+ public AltosTimeSeries pressure_series;
public static final String pressure_name = "Pressure";
- AltosTimeSeries altitude_series;
+ public AltosTimeSeries altitude_series;
public static final String altitude_name = "Altitude";
- AltosTimeSeries height_series;
+ public AltosTimeSeries height_series;
public static final String height_name = "Height";
public void set_pressure(double pa) {
+ if (pa == AltosLib.MISSING)
+ return;
+
if (pressure_series == null)
pressure_series = add_series(pressure_name, AltosConvert.pressure);
pressure_series.add(time(), pa);
if (altitude_series == null)
altitude_series = add_series(altitude_name, AltosConvert.height);
+ if (cal_data.ground_pressure == AltosLib.MISSING)
+ cal_data.set_ground_pressure(pa);
+
double altitude = AltosConvert.pressure_to_altitude(pa);
altitude_series.add(time(), altitude);
}
}
}
- AltosTimeSeries speed_series;
+ public AltosTimeSeries speed_series;
public static final String speed_name = "Speed";
AltosTimeSeries accel_speed_series = null;
if (altitude_series != null) {
- AltosTimeSeries temp_series = make_series(speed_name, AltosConvert.speed);
- altitude_series.differentiate(temp_series);
+ AltosTimeSeries temp_series = make_series(altitude_name, AltosConvert.height);
+ altitude_series.filter(temp_series, speed_filter_width);
alt_speed_series = make_series(speed_name, AltosConvert.speed);
- temp_series.filter(alt_speed_series, 10.0);
+ temp_series.differentiate(alt_speed_series);
}
if (accel_series != null) {
AltosTimeSeries temp_series = make_series(speed_name, AltosConvert.speed);
add_series(speed_series);
}
- AltosTimeSeries kalman_height_series, kalman_speed_series, kalman_accel_series;
+ public AltosTimeSeries kalman_height_series, kalman_speed_series, kalman_accel_series;
public static final String kalman_height_name = "Kalman Height";
public static final String kalman_speed_name = "Kalman Speed";
kalman_accel_series.add(time(), acceleration);
}
- AltosTimeSeries thrust_series;
+ public AltosTimeSeries thrust_series;
public static final String thrust_name = "Thrust";
thrust_series.add(time(), N);
}
- AltosTimeSeries temperature_series;
+ public AltosTimeSeries temperature_series;
public static final String temperature_name = "Temperature";
temperature_series.add(time(), deg_c);
}
- AltosTimeSeries battery_voltage_series;
+ public AltosTimeSeries battery_voltage_series;
public static final String battery_voltage_name = "Battery Voltage";
battery_voltage_series.add(time(), volts);
}
- AltosTimeSeries apogee_voltage_series;
+ public AltosTimeSeries apogee_voltage_series;
public static final String apogee_voltage_name = "Apogee Voltage";
apogee_voltage_series.add(time(), volts);
}
- AltosTimeSeries main_voltage_series;
+ public AltosTimeSeries main_voltage_series;
public static final String main_voltage_name = "Main Voltage";
return gps;
}
- AltosTimeSeries sats_in_view;
- AltosTimeSeries sats_in_soln;
- AltosTimeSeries gps_altitude;
- AltosTimeSeries gps_height;
- AltosTimeSeries gps_ground_speed;
- AltosTimeSeries gps_ascent_rate;
- AltosTimeSeries gps_course;
- AltosTimeSeries gps_speed;
- AltosTimeSeries gps_pdop, gps_vdop, gps_hdop;
+ public AltosTimeSeries sats_in_view;
+ public AltosTimeSeries sats_in_soln;
+ public AltosTimeSeries gps_altitude;
+ public AltosTimeSeries gps_height;
+ public AltosTimeSeries gps_ground_speed;
+ public AltosTimeSeries gps_ascent_rate;
+ public AltosTimeSeries gps_course;
+ public AltosTimeSeries gps_speed;
+ public AltosTimeSeries gps_pdop, gps_vdop, gps_hdop;
public static final String sats_in_view_name = "Satellites in view";
public static final String sats_in_soln_name = "Satellites in solution";
}
sats_in_soln.add(time(), gps.nsat);
if (gps.pdop != AltosLib.MISSING) {
- if (gps_pdop == null) {
+ if (gps_pdop == null)
gps_pdop = add_series(gps_pdop_name, null);
- gps_hdop = add_series(gps_hdop_name, null);
- gps_vdop = add_series(gps_vdop_name, null);
- }
gps_pdop.add(time(), gps.pdop);
+ }
+ if (gps.hdop != AltosLib.MISSING) {
+ if (gps_hdop == null)
+ gps_hdop = add_series(gps_hdop_name, null);
gps_hdop.add(time(), gps.hdop);
+ }
+ if (gps.vdop != AltosLib.MISSING) {
+ if (gps_vdop == null)
+ gps_vdop = add_series(gps_vdop_name, null);
gps_vdop.add(time(), gps.vdop);
}
if (gps.locked) {
public static final String accel_across_name = "Accel Across";
public static final String accel_through_name = "Accel Through";
- AltosTimeSeries accel_along, accel_across, accel_through;
+ public AltosTimeSeries accel_along, accel_across, accel_through;
public static final String gyro_roll_name = "Roll Rate";
public static final String gyro_pitch_name = "Pitch Rate";
public static final String gyro_yaw_name = "Yaw Rate";
- AltosTimeSeries gyro_roll, gyro_pitch, gyro_yaw;
+ public AltosTimeSeries gyro_roll, gyro_pitch, gyro_yaw;
public static final String mag_along_name = "Magnetic Field Along";
public static final String mag_across_name = "Magnetic Field Across";
public static final String mag_through_name = "Magnetic Field Through";
- AltosTimeSeries mag_along, mag_across, mag_through;
+ public AltosTimeSeries mag_along, mag_across, mag_through;
public void set_accel(double along, double across, double through) {
if (accel_along == null) {
public static final String orient_name = "Tilt Angle";
- AltosTimeSeries orient_series;
+ public AltosTimeSeries orient_series;
public void set_orient(double orient) {
if (orient_series == null)
public static final String pyro_voltage_name = "Pyro Voltage";
- AltosTimeSeries pyro_voltage;
+ public AltosTimeSeries pyro_voltage;
public void set_pyro_voltage(double volts) {
if (pyro_voltage == null)
return igniter_voltage_names[channel];
}
- AltosTimeSeries[] igniter_voltage;
+ public AltosTimeSeries[] igniter_voltage;
public void set_igniter_voltage(double[] voltage) {
int channels = voltage.length;
public static final String pyro_fired_name = "Pyro Channel State";
- AltosTimeSeries pyro_fired_series;
+ public AltosTimeSeries pyro_fired_series;
int last_pyro_mask;