diff options
| author | Bdale Garbee <bdale@gag.com> | 2017-07-21 17:44:03 -0600 | 
|---|---|---|
| committer | Bdale Garbee <bdale@gag.com> | 2017-07-21 17:44:03 -0600 | 
| commit | c8dbcaf69cd538a31ab6e2b568237ae7c8656a9a (patch) | |
| tree | 213ec02db2e80f2e8c39772c0bde95d802900e53 /altoslib/AltosLog.java | |
| parent | 0cbfa444a9f9159cb509bb47ca5590fc1d709f64 (diff) | |
| parent | ea3b5815b27005b2f4c3034715f656d28ea8534e (diff) | |
Merge branch 'master' of ssh://git.gag.com/scm/git/fw/altos
Diffstat (limited to 'altoslib/AltosLog.java')
| -rw-r--r-- | altoslib/AltosLog.java | 31 | 
1 files changed, 19 insertions, 12 deletions
| diff --git a/altoslib/AltosLog.java b/altoslib/AltosLog.java index 6d873d78..44bea646 100644 --- a/altoslib/AltosLog.java +++ b/altoslib/AltosLog.java @@ -16,7 +16,7 @@   * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.   */ -package org.altusmetrum.altoslib_11; +package org.altusmetrum.altoslib_12;  import java.io.*;  import java.text.*; @@ -61,8 +61,8 @@ public class AltosLog implements Runnable {  		return file;  	} -	boolean open (AltosState state) throws IOException, InterruptedException { -		AltosFile	a = new AltosFile(state); +	boolean open (AltosCalData cal_data) throws IOException, InterruptedException { +		AltosFile	a = new AltosFile(cal_data);  		log_file = new FileWriter(a, true);  		if (log_file != null) { @@ -80,24 +80,31 @@ public class AltosLog implements Runnable {  	public void run () {  		try { -			AltosState	state = new AltosState();  			AltosConfigData	receiver_config = link.config_data(); -			state.set_receiver_serial(receiver_config.serial); +			AltosCalData	cal_data = new AltosCalData(); +			AltosState	state = null; +			cal_data.set_receiver_serial(receiver_config.serial);  			for (;;) {  				AltosLine	line = input_queue.take();  				if (line.line == null)  					continue;  				try {  					AltosTelemetry	telem = AltosTelemetry.parse(line.line); -					state = state.clone(); -					telem.update_state(state); -					if (state.serial != serial || state.flight != flight || log_file == null) +					if (state == null) +						state = new AltosState(cal_data); +					telem.provide_data(state); + +					if (cal_data.serial != serial || +					    cal_data.flight != flight || +					    log_file == null)  					{  						close_log_file(); -						serial = state.serial; -						flight = state.flight; -						if (state.serial != AltosLib.MISSING && state.flight != AltosLib.MISSING) -							open(state); +						serial = cal_data.serial; +						flight = cal_data.flight; +						state = null; +						if (cal_data.serial != AltosLib.MISSING && +						    cal_data.flight != AltosLib.MISSING) +							open(cal_data);  					}  				} catch (ParseException pe) {  				} catch (AltosCRCException ce) { | 
