diff options
| author | Keith Packard <keithp@keithp.com> | 2013-09-06 16:54:07 -0700 | 
|---|---|---|
| committer | Keith Packard <keithp@keithp.com> | 2013-09-06 16:54:07 -0700 | 
| commit | 4e22b34bde421a9df090c9196fd4347468c8176a (patch) | |
| tree | a8289aa26c816e74a99b15cc3625adc810befa4f /altoslib/AltosLog.java | |
| parent | 0ad95614685a73856bb26a94866909e5fc025434 (diff) | |
altoslib: Add receiver serial to telem file names
Makes it easy to record telemetry from multiple sites and compare them later.
Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'altoslib/AltosLog.java')
| -rw-r--r-- | altoslib/AltosLog.java | 17 | 
1 files changed, 10 insertions, 7 deletions
| diff --git a/altoslib/AltosLog.java b/altoslib/AltosLog.java index ed59ef71..015d9f65 100644 --- a/altoslib/AltosLog.java +++ b/altoslib/AltosLog.java @@ -18,8 +18,8 @@  package org.altusmetrum.altoslib_2;  import java.io.*; -import java.text.ParseException; -import java.util.concurrent.LinkedBlockingQueue; +import java.text.*; +import java.util.concurrent.*;  /*   * This creates a thread to capture telemetry data and write it to @@ -31,9 +31,11 @@ public class AltosLog implements Runnable {  	LinkedBlockingQueue<String>	pending_queue;  	int				serial;  	int				flight; +	int				receiver_serial;  	FileWriter			log_file;  	Thread				log_thread;  	AltosFile			file; +	AltosLink			link;  	private void close_log_file() {  		if (log_file != null) { @@ -78,17 +80,16 @@ public class AltosLog implements Runnable {  	public void run () {  		try { -			AltosState	state = null; +			AltosState	state = new AltosState(); +			AltosConfigData	receiver_config = link.config_data(); +			state.set_receiver_serial(receiver_config.serial);  			for (;;) {  				AltosLine	line = input_queue.take();  				if (line.line == null)  					continue;  				try {  					AltosTelemetry	telem = AltosTelemetry.parse(line.line); -					if (state != null) -						state = state.clone(); -					else -						state = new AltosState(); +					state = state.clone();  					telem.update_state(state);  					if (state.serial != serial || state.flight != flight || log_file == null)  					{ @@ -109,6 +110,7 @@ public class AltosLog implements Runnable {  					pending_queue.put(line.line);  			}  		} catch (InterruptedException ie) { +		} catch (TimeoutException te) {  		} catch (IOException ie) {  		}  		close(); @@ -120,6 +122,7 @@ public class AltosLog implements Runnable {  		link.add_monitor(input_queue);  		serial = -1;  		flight = -1; +		this.link = link;  		log_file = null;  		log_thread = new Thread(this);  		log_thread.start(); | 
