diff options
| author | Anthony Towns <aj@erisian.com.au> | 2010-09-05 20:49:34 +1000 | 
|---|---|---|
| committer | Anthony Towns <aj@erisian.com.au> | 2010-09-05 20:49:34 +1000 | 
| commit | ddc83b4c401be965a9947782becf20cc8c54e6a2 (patch) | |
| tree | 3fa313271f3c3e42ca9cc76f8cca1937067ee907 /ao-tools/altosui/AltosLog.java | |
| parent | afea6c264c5ebf12f1d629bd4bc724da86d11b7a (diff) | |
| parent | 3d49d5f69b41c27003dbc5ccf1899014bd13bd99 (diff) | |
Merge branch 'master' of git://git.gag.com/fw/altos
Diffstat (limited to 'ao-tools/altosui/AltosLog.java')
| -rw-r--r-- | ao-tools/altosui/AltosLog.java | 16 | 
1 files changed, 10 insertions, 6 deletions
diff --git a/ao-tools/altosui/AltosLog.java b/ao-tools/altosui/AltosLog.java index ec868b9c..f876beba 100644 --- a/ao-tools/altosui/AltosLog.java +++ b/ao-tools/altosui/AltosLog.java @@ -24,6 +24,7 @@ import java.text.ParseException;  import java.util.concurrent.LinkedBlockingQueue;  import altosui.AltosSerial;  import altosui.AltosFile; +import altosui.AltosLine;  /*   * This creates a thread to capture telemetry data and write it to @@ -31,7 +32,7 @@ import altosui.AltosFile;   */  class AltosLog implements Runnable { -	LinkedBlockingQueue<String>	input_queue; +	LinkedBlockingQueue<AltosLine>	input_queue;  	LinkedBlockingQueue<String>	pending_queue;  	int				serial;  	int				flight; @@ -64,9 +65,11 @@ class AltosLog implements Runnable {  	public void run () {  		try {  			for (;;) { -				String	line = input_queue.take(); +				AltosLine	line = input_queue.take(); +				if (line.line == null) +					continue;  				try { -					AltosTelemetry	telem = new AltosTelemetry(line); +					AltosTelemetry	telem = new AltosTelemetry(line.line);  					if (telem.serial != serial || telem.flight != flight || log_file == null) {  						close();  						serial = telem.serial; @@ -74,13 +77,14 @@ class AltosLog implements Runnable {  						open(telem);  					}  				} catch (ParseException pe) { +				} catch (AltosCRCException ce) {  				}  				if (log_file != null) { -					log_file.write(line); +					log_file.write(line.line);  					log_file.write('\n');  					log_file.flush();  				} else -					pending_queue.put(line); +					pending_queue.put(line.line);  			}  		} catch (InterruptedException ie) {  		} catch (IOException ie) { @@ -93,7 +97,7 @@ class AltosLog implements Runnable {  	public AltosLog (AltosSerial s) {  		pending_queue = new LinkedBlockingQueue<String> (); -		input_queue = new LinkedBlockingQueue<String> (); +		input_queue = new LinkedBlockingQueue<AltosLine> ();  		s.add_monitor(input_queue);  		serial = -1;  		flight = -1;  | 
