private AltosGpsAltitude gps_altitude;
+ private AltosValue gps_ground_speed;
+ private AltosValue gps_ascent_rate;
+ private AltosValue gps_course;
+
public double altitude() {
double a = altitude.value();
if (a != AltosLib.MISSING)
gps_altitude.set(new_gps_altitude, time);
}
+ public double gps_ground_speed() {
+ return gps_ground_speed.value();
+ }
+
+ public double gps_ascent_rate() {
+ return gps_ascent_rate.value();
+ }
+
+ public double gps_course() {
+ return gps_course.value();
+ }
+
class AltosPressure extends AltosValue {
void set(double p, double time) {
super.set(p, time);
public double ground_accel_avg;
public int log_format;
+ public String product;
public AltosMs5607 baro;
gps_altitude = new AltosGpsAltitude();
gps_ground_altitude = new AltosGpsGroundAltitude();
+ gps_ground_speed = new AltosValue();
+ gps_ascent_rate = new AltosValue();
+ gps_course = new AltosValue();
speak_tick = AltosLib.MISSING;
speak_altitude = AltosLib.MISSING;
ground_accel_avg = AltosLib.MISSING;
log_format = AltosLib.MISSING;
+ product = null;
serial = AltosLib.MISSING;
receiver_serial = AltosLib.MISSING;
gps_altitude.copy(old.gps_altitude);
gps_ground_altitude.copy(old.gps_ground_altitude);
+ gps_ground_speed.copy(old.gps_ground_speed);
+ gps_ascent_rate.copy(old.gps_ascent_rate);
+ gps_course.copy(old.gps_course);
pad_lat = old.pad_lat;
pad_lon = old.pad_lon;
ground_accel_avg = old.ground_accel_avg;
log_format = old.log_format;
+ product = old.product;
serial = old.serial;
receiver_serial = old.receiver_serial;
gps_ground_altitude.set(gps.alt, time);
}
gps_altitude.set(gps.alt, time);
+ if (gps.climb_rate != AltosLib.MISSING)
+ gps_ascent_rate.set(gps.climb_rate, time);
+ if (gps.ground_speed != AltosLib.MISSING)
+ gps_ground_speed.set(gps.ground_speed, time);
+ if (gps.course != AltosLib.MISSING)
+ gps_course.set(gps.course, time);
}
if (gps.lat != 0 && gps.lon != 0 &&
pad_lat != AltosLib.MISSING &&