* Track flight state from telemetry or eeprom data stream
*/
-package org.altusmetrum.altoslib_4;
+package org.altusmetrum.altoslib_5;
public class AltosState implements Cloneable {
speak_altitude = AltosLib.MISSING;
callsign = null;
+ firmware_version = null;
accel_plus_g = AltosLib.MISSING;
accel_minus_g = AltosLib.MISSING;
speak_altitude = old.speak_altitude;
callsign = old.callsign;
+ firmware_version = old.firmware_version;
accel_plus_g = old.accel_plus_g;
accel_minus_g = old.accel_minus_g;
}
void update_gps() {
- elevation = 0;
- range = -1;
+ elevation = AltosLib.MISSING;
+ range = AltosLib.MISSING;
if (gps == null)
return;
firmware_version = version;
}
+ public int compare_version(String other_version) {
+ if (firmware_version == null)
+ return AltosLib.MISSING;
+ return AltosLib.compare_version(firmware_version, other_version);
+ }
+
+ private void re_init() {
+ int bt = boost_tick;
+ int rs = receiver_serial;
+ init();
+ boost_tick = bt;
+ receiver_serial = rs;
+ }
+
public void set_flight(int flight) {
/* When the flight changes, reset the state */
- if (flight != AltosLib.MISSING && flight != 0) {
+ if (flight != AltosLib.MISSING) {
if (this.flight != AltosLib.MISSING &&
this.flight != flight) {
- int bt = boost_tick;
- init();
- boost_tick = bt;
+ re_init();
}
this.flight = flight;
}
if (serial != AltosLib.MISSING) {
if (this.serial != AltosLib.MISSING &&
this.serial != serial) {
- int bt = boost_tick;
- init();
- boost_tick = bt;
+ re_init();
}
this.serial = serial;
}