diff options
| author | Bdale Garbee <bdale@gag.com> | 2014-12-06 15:39:53 -0700 | 
|---|---|---|
| committer | Bdale Garbee <bdale@gag.com> | 2014-12-06 15:39:53 -0700 | 
| commit | 7339d2379713b5b7e4c4fe6bad89ed93f9d39e82 (patch) | |
| tree | 41e653c4014940a0d78900fddd433514b9dbfc66 /altoslib/AltosLink.java | |
| parent | d1f9121593fe30b924223e89ef4d596b5bec2b25 (diff) | |
| parent | b6462ca3a7e99fe390ec97f94c23d36fab8c294d (diff) | |
Merge branch 'master' of ssh://git.gag.com/scm/git/fw/altos
Diffstat (limited to 'altoslib/AltosLink.java')
| -rw-r--r-- | altoslib/AltosLink.java | 25 | 
1 files changed, 16 insertions, 9 deletions
| diff --git a/altoslib/AltosLink.java b/altoslib/AltosLink.java index 62bd82b9..639d2ac7 100644 --- a/altoslib/AltosLink.java +++ b/altoslib/AltosLink.java @@ -55,8 +55,11 @@ public abstract class AltosLink implements Runnable {  	public void printf(String format, Object ... arguments) {  		String	line = String.format(format, arguments); -		if (debug) -			pending_output.add(line); +		if (debug) { +			synchronized (pending_output) { +				pending_output.add(line); +			} +		}  		try {  			print(line);  		} catch (InterruptedException ie) { @@ -286,12 +289,14 @@ public abstract class AltosLink implements Runnable {  		binary_queue.put(dup);  	} -	public void flush_output() { +	public synchronized void flush_output() {  		if (pending_output == null)  			return; -		for (String s : pending_output) -			System.out.print(s); -		pending_output.clear(); +		synchronized (pending_output) { +			for (String s : pending_output) +				System.out.print(s); +			pending_output.clear(); +		}  	}  	public void flush_input(int timeout) throws InterruptedException { @@ -422,8 +427,10 @@ public abstract class AltosLink implements Runnable {  	public void set_callsign(String callsign) {  		this.callsign = callsign; -		printf ("c c %s\n", callsign); -		flush_output(); +		if (callsign != null) { +			printf ("c c %s\n", callsign); +			flush_output(); +		}  	}  	public boolean is_loader() throws InterruptedException { @@ -462,7 +469,7 @@ public abstract class AltosLink implements Runnable {  		if (telemetry_rate < 0)  			telemetry_rate = AltosPreferences.telemetry_rate(serial);  		set_telemetry_rate(telemetry_rate); -		if (callsign.equals("")) +		if (callsign == null || callsign.equals(""))  			callsign = AltosPreferences.callsign();  		set_callsign(callsign);  		printf("p\nE 0\n"); | 
