X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=altosui%2FAltosPad.java;h=60f5890588cd218a00b6f34d693b060b3221c89a;hp=f984e90897fb9e20cbd7ceb48ca8da43e2eb8f17;hb=e9a3268285e97b7316c3321892e77814703ff71d;hpb=7041c386cdf37716f8daf0bc1a9204db620e3de9 diff --git a/altosui/AltosPad.java b/altosui/AltosPad.java index f984e908..60f58905 100644 --- a/altosui/AltosPad.java +++ b/altosui/AltosPad.java @@ -3,7 +3,8 @@ * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 2 of the License. + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of @@ -18,8 +19,8 @@ package altosui; import java.util.*; -import org.altusmetrum.altoslib_9.*; -import org.altusmetrum.altosuilib_9.*; +import org.altusmetrum.altoslib_13.*; +import org.altusmetrum.altosuilib_13.*; public class AltosPad extends AltosUIFlightTab { @@ -45,10 +46,11 @@ public class AltosPad extends AltosUIFlightTab { class LoggingReady extends AltosUIIndicator { public void show (AltosState state, AltosListenerState listener_state) { - if (state == null || state.flight == AltosLib.MISSING) { + AltosCalData cal_data = state.cal_data(); + if (state == null || cal_data.flight == AltosLib.MISSING) { hide(); } else { - if (state.flight != 0) { + if (cal_data.flight != 0) { if (state.state() <= Altos.ao_flight_pad) show("Ready to record"); else if (state.state() < Altos.ao_flight_landed || @@ -58,7 +60,7 @@ public class AltosPad extends AltosUIFlightTab { show("Recorded data"); } else show("Storage full"); - set_lights(state.flight != 0); + set_lights(cal_data.flight != 0); } } public LoggingReady (AltosUIFlightTab container, int y) { @@ -101,7 +103,11 @@ public class AltosPad extends AltosUIFlightTab { class ReceiverBattery extends AltosUIVoltageIndicator { - public double voltage(AltosState state) { return AltosLib.MISSING; } + double last_voltage = AltosLib.MISSING; + + public double voltage(AltosState state) { + return last_voltage; + } public double good() { return AltosLib.ao_battery_good; } @@ -111,8 +117,10 @@ public class AltosPad extends AltosUIFlightTab { public double value(AltosState state, AltosListenerState listener_state, int i) { if (listener_state == null) - return AltosLib.MISSING; - return listener_state.battery; + last_voltage = AltosLib.MISSING; + else + last_voltage = listener_state.battery; + return last_voltage; } public ReceiverBattery (AltosUIFlightTab container, int y) { @@ -121,10 +129,8 @@ public class AltosPad extends AltosUIFlightTab { } boolean report_pad(AltosState state) { - if ((state.state() == AltosLib.ao_flight_stateless || - state.state() < AltosLib.ao_flight_pad) && - state.gps != null && - state.gps.lat != AltosLib.MISSING) + if (state.state() == AltosLib.ao_flight_stateless || + state.state() < AltosLib.ao_flight_pad) { return false; } @@ -143,7 +149,7 @@ public class AltosPad extends AltosUIFlightTab { if (report_pad(state)) { lat = state.pad_lat; label = "Pad Latitude"; - } else { + } else if (state.gps != null) { lat = state.gps.lat; label = "Latitude"; } @@ -180,7 +186,7 @@ public class AltosPad extends AltosUIFlightTab { if (report_pad(state)) { lon = state.pad_lon; label = "Pad Longitude"; - } else { + } else if (state.gps != null) { lon = state.gps.lon; label = "Longitude"; } @@ -205,40 +211,28 @@ public class AltosPad extends AltosUIFlightTab { } } - class PadAlt extends AltosUIIndicator { + class PadAlt extends AltosUIUnitsIndicator { - double last_alt = AltosLib.MISSING - 1; + public double value(AltosState state, int i) { + if (report_pad(state)) + return state.pad_alt; + else if (state.gps != null) + return state.gps.alt; + else + return state.altitude(); + } public void show (AltosState state, AltosListenerState listener_state) { - double alt = AltosLib.MISSING; - String label = null; - - if (state != null) { - if (report_pad(state)) { - alt = state.pad_alt; - label = "Pad Altitude"; - } else { - alt = state.gps.alt; - label = "Altitude"; - } - } - if (alt != last_alt) { - if (alt != AltosLib.MISSING) { - show(AltosConvert.height.show(5, alt)); - set_label(label); - } else - hide(); - last_alt = alt; - } - } + String label = "Altitude"; - public void reset() { - super.reset(); - last_alt = AltosLib.MISSING - 1; + if (state != null && report_pad(state)) + label = "Pad Altitude"; + set_label(label); + super.show(state, listener_state); } public PadAlt (AltosUIFlightTab container, int y) { - super (container, y, "Pad Altitude", 1, false, 2); + super (container, y, AltosConvert.height, "Pad Altitude", 1, false, 2); } } public String getName() { return "Pad"; }