From: Keith Packard Date: Wed, 16 Jan 2013 23:19:51 +0000 (-0800) Subject: Add GPS height to the usual plot X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=commitdiff_plain;h=refs%2Fheads%2Fplot-gps-height Add GPS height to the usual plot This lets us compare the GPS height data to the barometric height data Signed-off-by: Keith Packard --- diff --git a/altoslib/AltosEepromRecord.java b/altoslib/AltosEepromRecord.java index c7ced6a3..86cb8d56 100644 --- a/altoslib/AltosEepromRecord.java +++ b/altoslib/AltosEepromRecord.java @@ -50,6 +50,29 @@ public class AltosEepromRecord { data = null; } + public String toString() { + switch (cmd) { + case AltosLib.AO_LOG_FLIGHT: + return String.format("tick %5d flight %5d ground_accel %6d\n", + tick, b, a); + case AltosLib.AO_LOG_SENSOR: + return String.format("tick %5d accel %5d pres %5d\n", + tick, a, b); + case AltosLib.AO_LOG_TEMP_VOLT: + case AltosLib.AO_LOG_DEPLOY: + case AltosLib.AO_LOG_STATE: + case AltosLib.AO_LOG_GPS_TIME: + case AltosLib.AO_LOG_GPS_LAT: + case AltosLib.AO_LOG_GPS_LON: + case AltosLib.AO_LOG_GPS_ALT: + case AltosLib.AO_LOG_GPS_SAT: + case AltosLib.AO_LOG_GPS_DATE: + case AltosLib.AO_LOG_PRESSURE: + default: + return data; + } + } + public AltosEepromRecord (String line) { tick_valid = false; tick = 0; diff --git a/altosui/AltosDataPoint.java b/altosui/AltosDataPoint.java index 4956e9f3..f3408cb2 100644 --- a/altosui/AltosDataPoint.java +++ b/altosui/AltosDataPoint.java @@ -17,6 +17,7 @@ interface AltosDataPoint { double acceleration(); double height(); + double gps_height(); double speed(); double temperature(); double battery_voltage(); diff --git a/altosui/AltosDataPointReader.java b/altosui/AltosDataPointReader.java index 88df081f..6e6e474e 100644 --- a/altosui/AltosDataPointReader.java +++ b/altosui/AltosDataPointReader.java @@ -48,6 +48,7 @@ class AltosDataPointReader implements Iterable { public double acceleration() { return state.acceleration; } public double height() { return state.height; } + public double gps_height() { return state.gps_height; } public double speed() { return state.speed(); } public double temperature() { return state.temperature; } public double battery_voltage() { return state.battery; } diff --git a/altosui/AltosGraphTime.java b/altosui/AltosGraphTime.java index 62d516b2..935d59de 100644 --- a/altosui/AltosGraphTime.java +++ b/altosui/AltosGraphTime.java @@ -99,9 +99,10 @@ class AltosGraphTime extends AltosGraph { int dataNum = g.getDataNum(this); int axisNum = g.getAxisNum(this); - plot.setDataset(dataNum, dataset); + plot.setDataset(dataNum, dataset); plot.mapDatasetToRangeAxis(dataNum, axisNum); - plot.setRenderer(dataNum, renderer); + plot.setRenderer(dataNum, renderer); +// renderer.setSeriesVisible(0, false); } } diff --git a/altosui/AltosGraphUI.java b/altosui/AltosGraphUI.java index d6891ffa..43cfb27b 100644 --- a/altosui/AltosGraphUI.java +++ b/altosui/AltosGraphUI.java @@ -38,6 +38,15 @@ public class AltosGraphUI extends AltosUIFrame } }; + AltosGraphTime.Element gps_height = + new AltosGraphTime.TimeSeries("Height", AltosConvert.height.show_units(), "GPS Height (AGL)", magenta) { + public void gotTimeData(double time, AltosDataPoint d) { + double height = d.gps_height(); + if (height != AltosRecord.MISSING) + series.add(time, AltosConvert.height.value(height)); + } + }; + AltosGraphTime.Element speed = new AltosGraphTime.TimeSeries("Speed", AltosConvert.speed.show_units(), "Vertical Speed", green) { public void gotTimeData(double time, AltosDataPoint d) { @@ -113,6 +122,7 @@ public class AltosGraphUI extends AltosUIFrame graphs.add( myAltosGraphTime("Summary") .addElement(height) + .addElement(gps_height) .addElement(speed) .addElement(acceleration) );