*
* 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
package altosui;
import java.util.*;
-import org.altusmetrum.altoslib_10.*;
-import org.altusmetrum.altosuilib_10.*;
+import org.altusmetrum.altoslib_13.*;
+import org.altusmetrum.altosuilib_13.*;
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 ||
show("Recorded data");
} else
show("Storage full");
- set_lights(state.flight != 0);
+ set_lights(cal_data.flight != 0);
}
}
public LoggingReady (AltosUIFlightTab container, int y) {
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; }
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) {
}
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;
}
if (report_pad(state)) {
lat = state.pad_lat;
label = "Pad Latitude";
- } else {
+ } else if (state.gps != null) {
lat = state.gps.lat;
label = "Latitude";
}
if (report_pad(state)) {
lon = state.pad_lon;
label = "Pad Longitude";
- } else {
+ } else if (state.gps != null) {
lon = state.gps.lon;
label = "Longitude";
}
}
}
- 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"; }