X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=telegps%2FTeleGPSGraphUI.java;h=e9fc683101b637bf4f1d3596ddf2227dfb1de91f;hp=89c6cea5b84e3ff00048dde67d74dec95f1abde5;hb=52149fd81df45f37f5097850795f290f463c43ef;hpb=e2fe220efe2ba375ddd925747a630c30c17d3bef diff --git a/telegps/TeleGPSGraphUI.java b/telegps/TeleGPSGraphUI.java index 89c6cea5..e9fc6831 100644 --- a/telegps/TeleGPSGraphUI.java +++ b/telegps/TeleGPSGraphUI.java @@ -27,14 +27,14 @@ import javax.swing.*; import java.io.*; import java.util.concurrent.*; import java.util.*; -import org.altusmetrum.altoslib_11.*; -import org.altusmetrum.altosuilib_11.*; +import org.altusmetrum.altoslib_14.*; +import org.altusmetrum.altosuilib_14.*; import org.jfree.chart.ChartPanel; import org.jfree.chart.JFreeChart; import org.jfree.ui.RefineryUtilities; -public class TeleGPSGraphUI extends AltosUIFrame implements AltosFontListener, AltosUnitsListener +public class TeleGPSGraphUI extends AltosUIFrame implements AltosFontListener, AltosUnitsListener, AltosFilterListener { JTabbedPane pane; AltosGraph graph; @@ -49,6 +49,7 @@ public class TeleGPSGraphUI extends AltosUIFrame implements AltosFontListener, A void fill_map(AltosFlightSeries flight_series) { boolean any_gps = false; AltosGPSTimeValue gtv_last = null; + double gps_pad_altitude = flight_series.cal_data().gps_pad_altitude;; if (flight_series.gps_series != null) { for (AltosGPSTimeValue gtv : flight_series.gps_series) { @@ -59,7 +60,9 @@ public class TeleGPSGraphUI extends AltosUIFrame implements AltosFontListener, A gps.nsat >= 4) { if (map == null) map = new AltosUIMap(); - map.show(gps, (int) flight_series.value_before(AltosFlightSeries.state_name, gtv.time)); + double gps_height = gps.alt - gps_pad_altitude; + int state = (int) flight_series.value_before(AltosFlightSeries.state_name, gtv.time); + map.show(gps, gtv.time, state, gps_height); this.gps = gps; has_gps = true; } @@ -67,8 +70,9 @@ public class TeleGPSGraphUI extends AltosUIFrame implements AltosFontListener, A } if (gtv_last != null) { int state = (int) flight_series.value_after(AltosFlightSeries.state_name, gtv_last.time); + double gps_height = gps.alt - gps_pad_altitude; if (state == AltosLib.ao_flight_landed) - map.show(gtv_last.gps, state); + map.show(gtv_last.gps, gtv_last.time, state, gps_height); } } @@ -92,17 +96,37 @@ public class TeleGPSGraphUI extends AltosUIFrame implements AltosFontListener, A enable.units_changed(imperial_units); } + AltosUIFlightSeries flight_series; + + public void filter_changed(double speed_filter, double accel_filter) { + flight_series.set_filter(speed_filter, accel_filter); + graph.filter_changed(); + stats = new AltosFlightStats(flight_series); + statsTable.filter_changed(stats); + } + + public double speed_filter() { + return flight_series.speed_filter_width; + } + + public double accel_filter() { + return flight_series.accel_filter_width; + } + TeleGPSGraphUI(AltosRecordSet set, File file) throws InterruptedException, IOException { super(file.getName()); AltosCalData cal_data = set.cal_data(); - AltosUIFlightSeries flight_series = new AltosUIFlightSeries(cal_data); + pane = new JTabbedPane(); + + flight_series = new AltosUIFlightSeries(cal_data); + + enable = new AltosUIEnable(this); + set.capture_series(flight_series); - flight_series.finish(); - pane = new JTabbedPane(); + flight_series.finish(); - enable = new AltosUIEnable(); stats = new AltosFlightStats(flight_series); graph = new AltosGraph(enable, stats, flight_series);