diff options
| author | Keith Packard <keithp@keithp.com> | 2011-01-16 14:28:35 -0800 | 
|---|---|---|
| committer | Keith Packard <keithp@keithp.com> | 2011-01-16 14:28:35 -0800 | 
| commit | fb534aae15f0f1e5d69790e159d0287b6b8a514a (patch) | |
| tree | 14c917c127c4302b99123337c52ce9d8f0ad0cb8 /altosui/AltosSerial.java | |
| parent | d4add23186b3586c99579d83efdc003f79e9bf7a (diff) | |
altosui: Use long input flush timeout when remote.
100ms isn't long enough to capture pending remote serial input, so use
300 ms in that mode.
Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'altosui/AltosSerial.java')
| -rw-r--r-- | altosui/AltosSerial.java | 14 | 
1 files changed, 13 insertions, 1 deletions
diff --git a/altosui/AltosSerial.java b/altosui/AltosSerial.java index e609c6b5..f9f9e6e4 100644 --- a/altosui/AltosSerial.java +++ b/altosui/AltosSerial.java @@ -48,6 +48,7 @@ public class AltosSerial implements Runnable {  	int line_count;  	boolean monitor_mode;  	static boolean debug; +	boolean remote;  	LinkedList<String> pending_output = new LinkedList<String>();  	static void set_debug(boolean new_debug) { @@ -126,9 +127,13 @@ public class AltosSerial implements Runnable {  	public void flush_input() {  		flush_output();  		boolean	got_some; + +		int timeout = 100; +		if (remote) +			timeout = 300;  		do {  			try { -				Thread.sleep(100); +				Thread.sleep(timeout);  			} catch (InterruptedException ie) {  			}  			got_some = !reply_queue.isEmpty(); @@ -259,14 +264,21 @@ public class AltosSerial implements Runnable {  	}  	public void start_remote() { +		if (debug) +			System.out.printf("start remote\n");  		set_radio();  		printf("p\nE 0\n");  		flush_input(); +		remote = true;  	}  	public void stop_remote() { +		if (debug) +			System.out.printf("stop remote\n"); +		flush_input();  		printf ("~");  		flush_output(); +		remote = false;  	}  	public AltosSerial(AltosDevice in_device) throws FileNotFoundException, AltosSerialInUseException {  | 
