X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=altoslib%2FAltosFlightSeries.java;h=cfd8a0bff2bb79aa37b39b2b108d6e406bc3ebd5;hb=58e7fccc24f933fd64e272207f783ca79002b7ba;hp=2eaf80330d4d4b6b8b6c087981e0da599d1c6824;hpb=a69d5773a63dbe5d6d758cea8eca2bf724e9d672;p=fw%2Faltos diff --git a/altoslib/AltosFlightSeries.java b/altoslib/AltosFlightSeries.java index 2eaf8033..cfd8a0bf 100644 --- a/altoslib/AltosFlightSeries.java +++ b/altoslib/AltosFlightSeries.java @@ -12,7 +12,7 @@ * General Public License for more details. */ -package org.altusmetrum.altoslib_12; +package org.altusmetrum.altoslib_13; import java.util.*; @@ -257,6 +257,15 @@ public class AltosFlightSeries extends AltosDataListener { public AltosTimeSeries height_series; + public double max_height = AltosLib.MISSING; + + public void set_min_pressure(double pa) { + double ground_altitude = cal_data().ground_altitude; + if (ground_altitude != AltosLib.MISSING) + max_height = AltosConvert.pressure_to_altitude(pa) - + ground_altitude; + } + public static final String height_name = "Height"; public void set_pressure(double pa) { @@ -382,16 +391,18 @@ public class AltosFlightSeries extends AltosDataListener { if (accel_ground_across == AltosLib.MISSING) return; - if (cal_data().pad_orientation == AltosLib.MISSING) + AltosCalData cal_data = cal_data(); + + if (cal_data.pad_orientation == AltosLib.MISSING) return; - if (cal_data().accel_zero_across == AltosLib.MISSING) + if (cal_data.accel_zero_across == AltosLib.MISSING) return; - AltosRotation 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), - cal_data().pad_orientation); + AltosRotation rotation = new AltosRotation(accel_ground_across, + accel_ground_through, + accel_ground_along, + cal_data.pad_orientation); double prev_time = ground_time; orient_series = add_series(orient_name, AltosConvert.orient); @@ -531,62 +542,68 @@ public class AltosFlightSeries extends AltosDataListener { public static final String gps_vdop_name = "GPS Vertical Dilution of Precision"; public static final String gps_hdop_name = "GPS Horizontal Dilution of Precision"; - public void set_gps(AltosGPS gps) { + public void set_gps(AltosGPS gps, boolean new_location, boolean new_sats) { + super.set_gps(gps, new_location, new_sats); + AltosCalData cal_data = cal_data(); if (gps_series == null) gps_series = new ArrayList(); gps_series.add(new AltosGPSTimeValue(time(), gps)); - if (sats_in_soln == null) { - sats_in_soln = add_series(sats_in_soln_name, null); - } - sats_in_soln.add(time(), gps.nsat); - if (gps.pdop != AltosLib.MISSING) { - if (gps_pdop == null) - gps_pdop = add_series(gps_pdop_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) { - if (gps.alt != AltosLib.MISSING) { - if (gps_altitude == null) - gps_altitude = add_series(gps_altitude_name, AltosConvert.height); - gps_altitude.add(time(), gps.alt); + if (new_location) { + if (sats_in_soln == null) { + sats_in_soln = add_series(sats_in_soln_name, null); } - if (gps.ground_speed != AltosLib.MISSING) { - if (gps_ground_speed == null) - gps_ground_speed = add_series(gps_ground_speed_name, AltosConvert.speed); - gps_ground_speed.add(time(), gps.ground_speed); + sats_in_soln.add(time(), gps.nsat); + if (gps.pdop != AltosLib.MISSING) { + if (gps_pdop == null) + gps_pdop = add_series(gps_pdop_name, null); + gps_pdop.add(time(), gps.pdop); } - if (gps.climb_rate != AltosLib.MISSING) { - if (gps_ascent_rate == null) - gps_ascent_rate = add_series(gps_ascent_rate_name, AltosConvert.speed); - gps_ascent_rate.add(time(), gps.climb_rate); + 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.course != AltosLib.MISSING) { - if (gps_course == null) - gps_course = add_series(gps_course_name, null); - gps_course.add(time(), gps.course); + 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.ground_speed != AltosLib.MISSING && gps.climb_rate != AltosLib.MISSING) { - if (gps_speed == null) - gps_speed = add_series(gps_speed_name, null); - gps_speed.add(time(), Math.sqrt(gps.ground_speed * gps.ground_speed + - gps.climb_rate * gps.climb_rate)); + if (gps.locked) { + if (gps.alt != AltosLib.MISSING) { + if (gps_altitude == null) + gps_altitude = add_series(gps_altitude_name, AltosConvert.height); + gps_altitude.add(time(), gps.alt); + } + if (gps.ground_speed != AltosLib.MISSING) { + if (gps_ground_speed == null) + gps_ground_speed = add_series(gps_ground_speed_name, AltosConvert.speed); + gps_ground_speed.add(time(), gps.ground_speed); + } + if (gps.climb_rate != AltosLib.MISSING) { + if (gps_ascent_rate == null) + gps_ascent_rate = add_series(gps_ascent_rate_name, AltosConvert.speed); + gps_ascent_rate.add(time(), gps.climb_rate); + } + if (gps.course != AltosLib.MISSING) { + if (gps_course == null) + gps_course = add_series(gps_course_name, null); + gps_course.add(time(), gps.course); + } + if (gps.ground_speed != AltosLib.MISSING && gps.climb_rate != AltosLib.MISSING) { + if (gps_speed == null) + gps_speed = add_series(gps_speed_name, null); + gps_speed.add(time(), Math.sqrt(gps.ground_speed * gps.ground_speed + + gps.climb_rate * gps.climb_rate)); + } } } - if (gps.cc_gps_sat != null) { - if (sats_in_view == null) - sats_in_view = add_series(sats_in_view_name, null); - sats_in_view.add(time(), gps.cc_gps_sat.length); + if (new_sats) { + if (gps.cc_gps_sat != null) { + if (sats_in_view == null) + sats_in_view = add_series(sats_in_view_name, null); + sats_in_view.add(time(), gps.cc_gps_sat.length); + } } }