diff options
Diffstat (limited to 'altoslib')
| -rw-r--r-- | altoslib/AltosEepromIterable.java | 2 | ||||
| -rw-r--r-- | altoslib/AltosEepromMegaIterable.java | 2 | ||||
| -rw-r--r-- | altoslib/AltosIdleMonitor.java | 2 | ||||
| -rw-r--r-- | altoslib/AltosRecord.java | 6 | ||||
| -rw-r--r-- | altoslib/AltosState.java | 7 | ||||
| -rw-r--r-- | altoslib/AltosTelemetryRecordLegacy.java | 6 | ||||
| -rw-r--r-- | altoslib/AltosTelemetryRecordLocation.java | 2 | 
7 files changed, 15 insertions, 12 deletions
| diff --git a/altoslib/AltosEepromIterable.java b/altoslib/AltosEepromIterable.java index 7a8bbdea..b84574ef 100644 --- a/altoslib/AltosEepromIterable.java +++ b/altoslib/AltosEepromIterable.java @@ -125,7 +125,7 @@ public class AltosEepromIterable extends AltosRecordIterable {  			state.gps.locked = (flags & AltosLib.AO_GPS_VALID) != 0;  			state.gps.nsat = (flags & AltosLib.AO_GPS_NUM_SAT_MASK) >>  				AltosLib.AO_GPS_NUM_SAT_SHIFT; -			state.new_gps = true; +			state.gps_sequence++;  			has_gps = true;  			break;  		case AltosLib.AO_LOG_GPS_LAT: diff --git a/altoslib/AltosEepromMegaIterable.java b/altoslib/AltosEepromMegaIterable.java index a127f435..5736f937 100644 --- a/altoslib/AltosEepromMegaIterable.java +++ b/altoslib/AltosEepromMegaIterable.java @@ -136,7 +136,7 @@ public class AltosEepromMegaIterable extends AltosRecordIterable {  			state.gps.locked = (flags & AltosLib.AO_GPS_VALID) != 0;  			state.gps.nsat = (flags & AltosLib.AO_GPS_NUM_SAT_MASK) >>  				AltosLib.AO_GPS_NUM_SAT_SHIFT; -			state.new_gps = true; +			state.gps_sequence++;  			has_gps = true;  			eeprom.seen |= seen_gps_time | seen_gps_lat | seen_gps_lon;  			break; diff --git a/altoslib/AltosIdleMonitor.java b/altoslib/AltosIdleMonitor.java index 2e4ddef2..b3ce5b20 100644 --- a/altoslib/AltosIdleMonitor.java +++ b/altoslib/AltosIdleMonitor.java @@ -112,7 +112,7 @@ public class AltosIdleMonitor extends Thread {  			record.status = 0;  			record.state = AltosLib.ao_flight_idle;  			record.gps = gps; -			record.new_gps = true; +			record.gps_sequence++;  			state = new AltosState (record, state);  		} finally {  			if (remote) { diff --git a/altoslib/AltosRecord.java b/altoslib/AltosRecord.java index 07e910eb..5e4ed927 100644 --- a/altoslib/AltosRecord.java +++ b/altoslib/AltosRecord.java @@ -44,7 +44,7 @@ public class AltosRecord implements Comparable <AltosRecord>, Cloneable {  	public int	tick;  	public AltosGPS	gps; -	public boolean	new_gps; +	public int	gps_sequence;  	public double	time;	/* seconds since boost */ @@ -143,7 +143,7 @@ public class AltosRecord implements Comparable <AltosRecord>, Cloneable {  		state = old.state;  		tick = old.tick;  		gps = new AltosGPS(old.gps); -		new_gps = old.new_gps; +		gps_sequence = old.gps_sequence;  		companion = old.companion;  		kalman_acceleration = old.kalman_acceleration;  		kalman_speed = old.kalman_speed; @@ -161,7 +161,7 @@ public class AltosRecord implements Comparable <AltosRecord>, Cloneable {  		state = AltosLib.ao_flight_startup;  		tick = 0;  		gps = null; -		new_gps = false; +		gps_sequence = 0;  		companion = null;  		kalman_acceleration = MISSING; diff --git a/altoslib/AltosState.java b/altoslib/AltosState.java index ccbe498d..825306be 100644 --- a/altoslib/AltosState.java +++ b/altoslib/AltosState.java @@ -54,6 +54,7 @@ public class AltosState {  	public double	max_baro_speed;  	public AltosGPS	gps; +	public int gps_sequence;  	public AltosIMU	imu;  	public AltosMag	mag; @@ -133,6 +134,7 @@ public class AltosState {  			npad = prev_state.npad;  			ngps = prev_state.ngps;  			gps = prev_state.gps; +			gps_sequence = prev_state.gps_sequence;  			pad_lat = prev_state.pad_lat;  			pad_lon = prev_state.pad_lon;  			pad_alt = prev_state.pad_alt; @@ -187,6 +189,7 @@ public class AltosState {  			npad = 0;  			ngps = 0;  			gps = null; +			gps_sequence = 0;  			baro_speed = AltosRecord.MISSING;  			accel_speed = AltosRecord.MISSING;  			pad_alt = AltosRecord.MISSING; @@ -199,7 +202,7 @@ public class AltosState {  		time = tick / 100.0; -		if (cur.new_gps && (state < AltosLib.ao_flight_boost)) { +		if (data.gps != null && data.gps_sequence != gps_sequence && (state < AltosLib.ao_flight_boost)) {  			/* Track consecutive 'good' gps reports, waiting for 10 of them */  			if (data.gps != null && data.gps.locked && data.gps.nsat >= 4) @@ -226,7 +229,7 @@ public class AltosState {  				pad_alt = ground_altitude;  		} -		data.new_gps = false; +		gps_sequence = data.gps_sequence;  		gps_waiting = MIN_PAD_SAMPLES - npad;  		if (gps_waiting < 0) diff --git a/altoslib/AltosTelemetryRecordLegacy.java b/altoslib/AltosTelemetryRecordLegacy.java index a734b188..f2d3f868 100644 --- a/altoslib/AltosTelemetryRecordLegacy.java +++ b/altoslib/AltosTelemetryRecordLegacy.java @@ -267,7 +267,7 @@ public class AltosTelemetryRecordLegacy extends AltosTelemetryRecord {  		if (map.has(AO_TELEM_GPS_STATE)) {  		record.gps = new AltosGPS(map); -		record.new_gps = true; +		record.gps_sequence++;  		}  		else  		record.gps = null; @@ -357,7 +357,7 @@ public class AltosTelemetryRecordLegacy extends AltosTelemetryRecord {  		}  		record.gps = new AltosGPS(words, i, record.version); -		record.new_gps = true; +		record.gps_sequence++;  	}  	public AltosTelemetryRecordLegacy(String line) throws ParseException, AltosCRCException { @@ -476,7 +476,7 @@ public class AltosTelemetryRecordLegacy extends AltosTelemetryRecord {  		if ((gps_flags & (AO_GPS_VALID|AO_GPS_RUNNING)) != 0) {  			record.gps = new AltosGPS(); -			record.new_gps = true; +			record.gps_sequence++;  			record.seen |= AltosRecord.seen_gps_time | AltosRecord.seen_gps_lat | AltosRecord.seen_gps_lon;  			record.gps.nsat = (gps_flags & AO_GPS_NUM_SAT_MASK); diff --git a/altoslib/AltosTelemetryRecordLocation.java b/altoslib/AltosTelemetryRecordLocation.java index 02999696..0236d291 100644 --- a/altoslib/AltosTelemetryRecordLocation.java +++ b/altoslib/AltosTelemetryRecordLocation.java @@ -85,7 +85,7 @@ public class AltosTelemetryRecordLocation extends AltosTelemetryRecordRaw {  			next.gps.hdop = hdop;  			next.gps.vdop = vdop;  			next.seen |= AltosRecord.seen_gps_time | AltosRecord.seen_gps_lat | AltosRecord.seen_gps_lon; -			next.new_gps = true; +			next.gps_sequence++;  		}  		return next; | 
