summaryrefslogtreecommitdiff
path: root/altoslib/AltosState.java
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2014-06-10 10:18:44 -0700
committerKeith Packard <keithp@keithp.com>2014-06-10 10:18:44 -0700
commitff13cf1359e1f4ae33b16a5867fd364993566b65 (patch)
tree20ca8cf133a5b04b5179963cad57469f367299fc /altoslib/AltosState.java
parent871fb4753a3b54cc2e22309e80e24dfe9cc54511 (diff)
altoslib: Add new 'stateless' flight state for TeleGPS
TeleGPS has no flight state, so add a new 'stateless' state for code to handle this case differently than any of the existing states Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'altoslib/AltosState.java')
-rw-r--r--altoslib/AltosState.java23
1 files changed, 18 insertions, 5 deletions
diff --git a/altoslib/AltosState.java b/altoslib/AltosState.java
index 1d6ee3c8..2d75f72e 100644
--- a/altoslib/AltosState.java
+++ b/altoslib/AltosState.java
@@ -500,7 +500,7 @@ public class AltosState implements Cloneable {
class AltosSpeed extends AltosCValue {
boolean can_max() {
- return state < AltosLib.ao_flight_fast;
+ return state < AltosLib.ao_flight_fast || state == AltosLib.ao_flight_stateless;
}
void set_accel() {
@@ -542,7 +542,7 @@ public class AltosState implements Cloneable {
class AltosAccel extends AltosCValue {
boolean can_max() {
- return state < AltosLib.ao_flight_fast;
+ return state < AltosLib.ao_flight_fast || state == AltosLib.ao_flight_stateless;
}
void set_measured(double a, double time) {
@@ -885,9 +885,9 @@ public class AltosState implements Cloneable {
if (gps.locked && gps.nsat >= 4) {
/* Track consecutive 'good' gps reports, waiting for 10 of them */
- if (state == AltosLib.ao_flight_pad) {
+ if (state == AltosLib.ao_flight_pad || state == AltosLib.ao_flight_stateless) {
set_npad(npad+1);
- if (pad_lat != AltosLib.MISSING) {
+ if (pad_lat != AltosLib.MISSING && (npad < 10 || state == AltosLib.ao_flight_pad)) {
pad_lat = (pad_lat * 31 + gps.lat) / 32;
pad_lon = (pad_lon * 31 + gps.lon) / 32;
gps_ground_altitude.set_filtered(gps.alt, time);
@@ -949,11 +949,24 @@ public class AltosState implements Cloneable {
state <= AltosLib.ao_flight_coast);
boost = (AltosLib.ao_flight_boost == state);
}
-
}
public void set_device_type(int device_type) {
this.device_type = device_type;
+ switch (device_type) {
+ case AltosLib.product_telegps:
+ this.state = AltosLib.ao_flight_stateless;
+ break;
+ }
+ }
+
+ public void set_log_format(int log_format) {
+ this.log_format = log_format;
+ switch (log_format) {
+ case AltosLib.AO_LOG_FORMAT_TELEGPS:
+ this.state = AltosLib.ao_flight_stateless;
+ break;
+ }
}
public void set_flight_params(int apogee_delay, int main_deploy) {