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 gps_height;
- public double pad_lat, pad_lon, pad_alt;
+ public double pad_lat, pad_lon;
public int speak_tick;
public double speak_altitude;
pad_lat = AltosLib.MISSING;
pad_lon = AltosLib.MISSING;
- pad_alt = AltosLib.MISSING;
gps_altitude = new AltosGpsAltitude();
gps_ground_altitude = new AltosGpsGroundAltitude();
class PadAlt extends AltosUIUnitsIndicator {
public double value(AltosState state, int i) {
- if (report_pad(state))
- return state.pad_alt;
- else if (state.gps != null)
+ if (report_pad(state)) {
+ double alt = state.gps_ground_altitude();
+ if (alt == AltosLib.MISSING)
+ alt = state.ground_altitude();
+ return alt;
+ }
+ else if (state.gps != null && state.gps.alt != AltosLib.MISSING)
return state.gps.alt;
else
return state.altitude();
}
info_add_deg(1, "Pad latitude", state.pad_lat, 'N', 'S');
info_add_deg(1, "Pad longitude", state.pad_lon, 'E', 'W');
- info_add_row(1, "Pad GPS alt", "%6.0f m", state.pad_alt);
+ info_add_row(1, "Pad GPS alt", "%6.0f m", state.gps_ground_altitude());
}
if (state.gps.year != AltosLib.MISSING)
info_add_row(2, "GPS date", "%04d-%02d-%02d",