diff options
| author | Keith Packard <keithp@keithp.com> | 2017-05-25 17:24:14 -0700 | 
|---|---|---|
| committer | Keith Packard <keithp@keithp.com> | 2017-05-25 17:24:14 -0700 | 
| commit | f26cfe417c6977cf1e7e75a4f050e25f64d41859 (patch) | |
| tree | 2f19ca9c93c3246b3eeadafee250f9dd3ee222d6 /altoslib/AltosEepromRecordGps.java | |
| parent | 7600116a191b3ac252a0f716d200d0e0b3500987 (diff) | |
altoslib: Do data analysis on raw values rather than AltosState
Use AltosFlightSeries instead of a sequence of AltosState records when
processing saved data. This provides a better way of doing filtering
and plotting.
Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'altoslib/AltosEepromRecordGps.java')
| -rw-r--r-- | altoslib/AltosEepromRecordGps.java | 30 | 
1 files changed, 7 insertions, 23 deletions
| diff --git a/altoslib/AltosEepromRecordGps.java b/altoslib/AltosEepromRecordGps.java index 4f30692e..a992abff 100644 --- a/altoslib/AltosEepromRecordGps.java +++ b/altoslib/AltosEepromRecordGps.java @@ -71,36 +71,19 @@ public class AltosEepromRecordGps extends AltosEepromRecord {  		return start - o.start;  	} -	public void update_state(AltosFlightListener state) { -		super.update_state(state); - -		AltosGPS	gps; - -		/* Flush any pending RecordGps changes */ -		if (state.gps_pending()) { -			switch (cmd()) { -			case AltosLib.AO_LOG_GPS_LAT: -			case AltosLib.AO_LOG_GPS_LON: -			case AltosLib.AO_LOG_GPS_ALT: -			case AltosLib.AO_LOG_GPS_SAT: -			case AltosLib.AO_LOG_GPS_DATE: -				break; -			default: -				state.set_temp_gps(); -				break; -			} -		} +	public void provide_data(AltosDataListener listener, AltosCalData cal_data) { +		super.provide_data(listener, cal_data);  		switch (cmd()) {  		case AltosLib.AO_LOG_FLIGHT: -			if (state.flight() == AltosLib.MISSING) { -				state.set_boost_tick(tick()); -				state.set_flight(flight()); +			if (cal_data.flight == AltosLib.MISSING) { +				cal_data.set_boost_tick(); +				cal_data.set_flight(flight());  			}  			/* no place to log start lat/lon yet */  			break;  		case AltosLib.AO_LOG_GPS_TIME: -			gps = state.make_temp_gps(false); +			AltosGPS gps = new AltosGPS();  			gps.lat = latitude() / 1e7;  			gps.lon = longitude() / 1e7;  			if (eeprom.config_data().altitude_32 == 1) @@ -140,6 +123,7 @@ public class AltosEepromRecordGps extends AltosEepromRecord {  				if (gps.vdop < 0.8)  					gps.vdop += 2.56;  			} +			listener.set_gps(gps);  			break;  		}  	} | 
