* Track flight state from telemetry or eeprom data stream
*/
-package org.altusmetrum.altoslib_13;
+package org.altusmetrum.altoslib_14;
public class AltosState extends AltosDataListener {
class AltosGpsGroundAltitude extends AltosValue {
void set(double a, double t) {
super.set(a, t);
- pad_alt = value();
+
gps_altitude.set_gps_height();
}
void set_filtered(double a, double t) {
super.set_filtered(a, t);
- pad_alt = value();
gps_altitude.set_gps_height();
}
}
public double height() {
- double k = kalman_height.value();
- if (k != AltosLib.MISSING)
- return k;
-
double b = baro_height();
if (b != AltosLib.MISSING)
return b;
+ double k = kalman_height.value();
+ if (k != AltosLib.MISSING)
+ return k;
+
return gps_height();
}
public double max_height() {
- double k = kalman_height.max();
- if (k != AltosLib.MISSING)
- return k;
-
double a = altitude.max();
double g = ground_altitude();
if (a != AltosLib.MISSING && g != AltosLib.MISSING)
return a - g;
+
+ double k = kalman_height.max();
+ if (k != AltosLib.MISSING)
+ return k;
+
return max_gps_height();
}
public double gps_height;
- public double pad_lat, pad_lon, pad_alt;
+ public double pad_lat, pad_lon;
public int speak_tick;
public double speak_altitude;
public int pyro_fired;
+ public double motor_pressure;
+
public void set_npad(int npad) {
this.npad = npad;
gps_waiting = MIN_PAD_SAMPLES - npad;
pad_lat = AltosLib.MISSING;
pad_lon = AltosLib.MISSING;
- pad_alt = AltosLib.MISSING;
gps_altitude = new AltosGpsAltitude();
gps_ground_altitude = new AltosGpsGroundAltitude();
}
}
- public String state_name() {
- return AltosLib.state_name(state());
- }
-
public void set_state(int state) {
super.set_state(state);
ascent = (AltosLib.ao_flight_boost <= state() &&
received_time = ms;
}
- public void set_gps(AltosGPS gps) {
- super.set_gps(gps);
+ public void set_gps(AltosGPS gps, boolean set_location, boolean set_sats) {
+ super.set_gps(gps, set_location, set_sats);
if (gps != null) {
this.gps = gps;
update_gps();
void update_pad_rotation() {
if (cal_data().pad_orientation != AltosLib.MISSING && accel_ground_along != AltosLib.MISSING) {
- rotation = new AltosRotation(AltosIMU.convert_accel(accel_ground_across - cal_data().accel_zero_across),
- AltosIMU.convert_accel(accel_ground_through - cal_data().accel_zero_through),
- AltosIMU.convert_accel(accel_ground_along - cal_data().accel_zero_along),
+ rotation = new AltosRotation(accel_ground_across,
+ accel_ground_through,
+ accel_ground_along,
cal_data().pad_orientation);
orient.set_computed(rotation.tilt(), time);
}
this.pyro_fired = fired;
}
+ public void set_motor_pressure(double motor_pressure) {
+ this.motor_pressure = motor_pressure;
+ }
+
public AltosState() {
init();
}