diff options
Diffstat (limited to 'altoslib/AltosTelemetryReader.java')
| -rw-r--r-- | altoslib/AltosTelemetryReader.java | 13 | 
1 files changed, 9 insertions, 4 deletions
| diff --git a/altoslib/AltosTelemetryReader.java b/altoslib/AltosTelemetryReader.java index b4293c73..b1cc009c 100644 --- a/altoslib/AltosTelemetryReader.java +++ b/altoslib/AltosTelemetryReader.java @@ -27,16 +27,21 @@ public class AltosTelemetryReader extends AltosFlightReader {  	AltosRecord	previous;  	double		frequency;  	int		telemetry; +	AltosState	state = null;  	LinkedBlockingQueue<AltosLine> telem; -	public AltosRecord read() throws InterruptedException, ParseException, AltosCRCException, IOException { +	public AltosState read() throws InterruptedException, ParseException, AltosCRCException, IOException {  		AltosLine l = telem.take();  		if (l.line == null)  			throw new IOException("IO error"); -		AltosRecord	next = AltosTelemetry.parse(l.line, previous); -		previous = next; -		return next; +		AltosTelemetry	telem = AltosTelemetryLegacy.parse(l.line); +		if (state == null) +			state = new AltosState(); +		else +			state = state.clone(); +		telem.update_state(state); +		return state;  	}  	public void flush() { | 
