diff options
| author | Keith Packard <keithp@keithp.com> | 2017-05-28 15:52:17 -0700 | 
|---|---|---|
| committer | Keith Packard <keithp@keithp.com> | 2017-05-28 15:52:17 -0700 | 
| commit | 78b4bf77fca96bef2cce443ad4c9544ae83f0acc (patch) | |
| tree | 8521eac7af38082305d8c075320067596b09b178 | |
| parent | dcf533d5befffa4c9c872f3c3d21d11ffeb61307 (diff) | |
altoslib: Reset transient AltosCalData values before processing data
Values in cal_data which are used to hold intermediate results need to
get reset back to their initial values before processing a series of
flight data again.
Signed-off-by: Keith Packard <keithp@keithp.com>
| -rw-r--r-- | altoslib/AltosCalData.java | 17 | ||||
| -rw-r--r-- | altoslib/AltosEepromRecordSet.java | 2 | ||||
| -rw-r--r-- | altoslib/AltosTelemetryFile.java | 5 | ||||
| -rw-r--r-- | altoslib/AltosTelemetryRecordSet.java | 1 | 
4 files changed, 23 insertions, 2 deletions
| diff --git a/altoslib/AltosCalData.java b/altoslib/AltosCalData.java index 408d8d7e..cb58e492 100644 --- a/altoslib/AltosCalData.java +++ b/altoslib/AltosCalData.java @@ -65,8 +65,11 @@ public class AltosCalData {  	public int		device_type = AltosLib.MISSING;  	public void set_device_type(int device_type) { -		if (device_type != AltosLib.MISSING) +		if (device_type != AltosLib.MISSING) {  			this.device_type = device_type; +			if (product == null) +				set_product(AltosLib.product_name(device_type)); +		}  	}  	public int		config_major = AltosLib.MISSING; @@ -179,6 +182,18 @@ public class AltosCalData {  		}  	} +	/* Reset all values which change during flight +	 */ +	public void reset() { +		state = AltosLib.MISSING; +		tick = AltosLib.MISSING; +		prev_tick = AltosLib.MISSING; +		temp_gps = null; +		prev_gps = null; +		temp_gps_sat_tick = AltosLib.MISSING; +		accel = AltosLib.MISSING; +	} +  	public int		boost_tick = AltosLib.MISSING;  	public void set_boost_tick() { diff --git a/altoslib/AltosEepromRecordSet.java b/altoslib/AltosEepromRecordSet.java index c019a092..7b111ed3 100644 --- a/altoslib/AltosEepromRecordSet.java +++ b/altoslib/AltosEepromRecordSet.java @@ -42,6 +42,8 @@ public class AltosEepromRecordSet implements AltosRecordSet {  	public void capture_series(AltosDataListener listener) {  		AltosCalData	cal_data = cal_data(); + +		cal_data.reset();  		for (AltosEepromRecord record : ordered) {  			record.provide_data(listener, cal_data);  		} diff --git a/altoslib/AltosTelemetryFile.java b/altoslib/AltosTelemetryFile.java index 077ef9c6..a4792f11 100644 --- a/altoslib/AltosTelemetryFile.java +++ b/altoslib/AltosTelemetryFile.java @@ -118,10 +118,13 @@ public class AltosTelemetryFile implements AltosRecordSet {  	public void capture_series(AltosDataListener listener) {  		AltosCalData	cal_data = cal_data(); +		cal_data.reset();  		for (AltosTelemetry telem : telems) {  			int tick = telem.tick();  			cal_data.set_tick(tick); -			if (cal_data.time() >= -1) + +			/* Try to pick up at least one pre-boost value */ +			if (cal_data.time() >= -2)  				telem.provide_data(listener, cal_data);  			if (listener.state == AltosLib.ao_flight_landed)  				break; diff --git a/altoslib/AltosTelemetryRecordSet.java b/altoslib/AltosTelemetryRecordSet.java index 0323c25e..a3191100 100644 --- a/altoslib/AltosTelemetryRecordSet.java +++ b/altoslib/AltosTelemetryRecordSet.java @@ -22,6 +22,7 @@ public class AltosTelemetryRecordSet implements AltosRecordSet {  	TreeSet<AltosTelemetryRecord>	ordered;  	public void capture_series(AltosDataListener listener) { +		listener.cal_data.reset();  		for (AltosTelemetryRecord record : ordered) {  			record.update_state(listener);  		} | 
