From: Keith Packard Date: Sun, 16 Jan 2011 22:28:35 +0000 (-0800) Subject: altosui: Use long input flush timeout when remote. X-Git-Tag: debian/0.8.1+71+gda42f40~16 X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=commitdiff_plain;h=fb534aae15f0f1e5d69790e159d0287b6b8a514a 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 --- 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 pending_output = new LinkedList(); 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 {