diff options
| -rw-r--r-- | altoslib/AltosCSV.java | 2 | ||||
| -rw-r--r-- | altoslib/AltosDataListener.java | 4 | ||||
| -rw-r--r-- | altoslib/AltosEepromRecordSet.java | 1 | ||||
| -rw-r--r-- | altoslib/AltosFlightSeries.java | 20 | ||||
| -rw-r--r-- | altoslib/AltosFlightStats.java | 6 | ||||
| -rw-r--r-- | altoslib/AltosTelemetryFile.java | 1 | ||||
| -rw-r--r-- | altoslib/AltosTelemetryRecordSet.java | 5 | ||||
| -rw-r--r-- | altosui/AltosGraphUI.java | 2 | ||||
| -rw-r--r-- | altosuilib/AltosUIFlightSeries.java | 2 | 
9 files changed, 23 insertions, 20 deletions
| diff --git a/altoslib/AltosCSV.java b/altoslib/AltosCSV.java index 38afdc64..5117a702 100644 --- a/altoslib/AltosCSV.java +++ b/altoslib/AltosCSV.java @@ -393,7 +393,7 @@ public class AltosCSV implements AltosWriter {  		this.series = series; -		series.fill_in(); +		series.finish();  		has_flight_state = false;  		has_basic = false; diff --git a/altoslib/AltosDataListener.java b/altoslib/AltosDataListener.java index 4a6fe04d..14c29d85 100644 --- a/altoslib/AltosDataListener.java +++ b/altoslib/AltosDataListener.java @@ -36,6 +36,10 @@ public abstract class AltosDataListener {  			this.state = state;  	} +	/* Called after all records are captured */ +	public void finish() { +	} +  	public abstract void set_rssi(int rssi, int status);  	public abstract void set_received_time(long received_time); diff --git a/altoslib/AltosEepromRecordSet.java b/altoslib/AltosEepromRecordSet.java index 69159cdf..183cb9ae 100644 --- a/altoslib/AltosEepromRecordSet.java +++ b/altoslib/AltosEepromRecordSet.java @@ -44,6 +44,7 @@ public class AltosEepromRecordSet implements AltosRecordSet {  		for (AltosEepromRecord record : ordered) {  			record.provide_data(listener, cal_data);  		} +		listener.finish();  	}  	public AltosEepromRecordSet(AltosEepromNew eeprom) { diff --git a/altoslib/AltosFlightSeries.java b/altoslib/AltosFlightSeries.java index 7bedf389..6f4f7bb1 100644 --- a/altoslib/AltosFlightSeries.java +++ b/altoslib/AltosFlightSeries.java @@ -18,7 +18,7 @@ import java.util.*;  public class AltosFlightSeries extends AltosDataListener { -	public ArrayList<AltosTimeSeries> series; +	public ArrayList<AltosTimeSeries> series = new ArrayList<AltosTimeSeries>();  	public int[] indices() {  		int[] indices = new int[series.size()]; @@ -206,8 +206,9 @@ public class AltosFlightSeries extends AltosDataListener {  		altitude_series.add(time(), altitude);  	} -	private void compute_height(double ground_altitude) { -		if (height_series == null) { +	private void compute_height() { +		double ground_altitude = cal_data.ground_altitude; +		if (height_series == null && ground_altitude != AltosLib.MISSING) {  			height_series = add_series(height_name, AltosConvert.height);  			for (AltosTimeValue alt : altitude_series)  				height_series.add(alt.time, alt.value - ground_altitude); @@ -563,25 +564,18 @@ public class AltosFlightSeries extends AltosDataListener {  	public void set_companion(AltosCompanion companion) {  	} -	public void fill_in() { +	public void finish() {  		compute_speed();  		compute_accel(); -		if (cal_data.ground_altitude != AltosLib.MISSING) -			compute_height(cal_data.ground_altitude); -	} - -	public void init() { -		time = AltosLib.MISSING; -		series = new ArrayList<AltosTimeSeries>(); +		compute_height();  	}  	public AltosTimeSeries[] series() { -		fill_in(); +		finish();  		return series.toArray(new AltosTimeSeries[0]);  	}  	public AltosFlightSeries(AltosCalData cal_data) {  		super(cal_data); -		init();  	}  } diff --git a/altoslib/AltosFlightStats.java b/altoslib/AltosFlightStats.java index 2948ad38..32beb8b5 100644 --- a/altoslib/AltosFlightStats.java +++ b/altoslib/AltosFlightStats.java @@ -59,7 +59,7 @@ public class AltosFlightStats {  		}  		if (landed_state_time == AltosLib.MISSING) -			return AltosLib.MISSING; +			landed_state_time = series.height_series.get(series.height_series.size()-1).time;  		double landed_height = AltosLib.MISSING;  		for (AltosTimeValue height : series.height_series) { @@ -115,6 +115,8 @@ public class AltosFlightStats {  		double		end_time = 0;  		double		landed_time = landed_time(series); +		series.finish(); +  		year = month = day = AltosLib.MISSING;  		hour = minute = second = AltosLib.MISSING;  		serial = flight = AltosLib.MISSING; @@ -136,7 +138,7 @@ public class AltosFlightStats {  				state_start[s] = boost_time;  			else  				state_start[s] = series.state_series.time_of(s); -			if (s == AltosLib.ao_flight_landed) +			if (s == AltosLib.ao_flight_main)  				state_end[s] = landed_time;  			else  				state_end[s] = series.state_series.time_of(s+1); diff --git a/altoslib/AltosTelemetryFile.java b/altoslib/AltosTelemetryFile.java index 8adf7e69..46a5d060 100644 --- a/altoslib/AltosTelemetryFile.java +++ b/altoslib/AltosTelemetryFile.java @@ -124,6 +124,7 @@ public class AltosTelemetryFile implements AltosRecordSet {  			if (cal_data.time() >= -1)  				telem.provide_data(listener, cal_data);  		} +		listener.finish();  	}  	public AltosTelemetryFile(FileInputStream input) { diff --git a/altoslib/AltosTelemetryRecordSet.java b/altoslib/AltosTelemetryRecordSet.java index 0cb95261..0323c25e 100644 --- a/altoslib/AltosTelemetryRecordSet.java +++ b/altoslib/AltosTelemetryRecordSet.java @@ -21,10 +21,11 @@ public class AltosTelemetryRecordSet implements AltosRecordSet {  	AltosTelemetry			telemetry;  	TreeSet<AltosTelemetryRecord>	ordered; -	public void capture_series(AltosDataListener series) { +	public void capture_series(AltosDataListener listener) {  		for (AltosTelemetryRecord record : ordered) { -			record.update_state(series); +			record.update_state(listener);  		} +		listener.finish();  	}  	public AltosTelemetryRecordSet(AltosTelemetry telemetry) { diff --git a/altosui/AltosGraphUI.java b/altosui/AltosGraphUI.java index a3107f2b..db0cac2f 100644 --- a/altosui/AltosGraphUI.java +++ b/altosui/AltosGraphUI.java @@ -93,7 +93,7 @@ public class AltosGraphUI extends AltosUIFrame implements AltosFontListener, Alt  		set.capture_series(flight_series); -		flight_series.fill_in(); +		flight_series.finish();  		stats = new AltosFlightStats(flight_series); diff --git a/altosuilib/AltosUIFlightSeries.java b/altosuilib/AltosUIFlightSeries.java index 0bcc8a6e..eade12af 100644 --- a/altosuilib/AltosUIFlightSeries.java +++ b/altosuilib/AltosUIFlightSeries.java @@ -113,7 +113,7 @@ public class AltosUIFlightSeries extends AltosFlightSeries {  	}  	public AltosUITimeSeries[] series(AltosCalData cal_data) { -		fill_in(); +		finish();  		return series.toArray(new AltosUITimeSeries[0]);  	} | 
