summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--altosui/AltosConfigData.java2
-rw-r--r--altosui/AltosSerial.java10
2 files changed, 11 insertions, 1 deletions
diff --git a/altosui/AltosConfigData.java b/altosui/AltosConfigData.java
index 6b80171a..1d50ade9 100644
--- a/altosui/AltosConfigData.java
+++ b/altosui/AltosConfigData.java
@@ -85,7 +85,7 @@ public class AltosConfigData implements Iterable<String> {
serial_line.printf("c s\nv\n");
lines = new LinkedList<String>();
for (;;) {
- String line = serial_line.get_reply(5000);
+ String line = serial_line.get_reply_no_dialog(5000);
if (line == null)
throw new TimeoutException();
if (line.contains("Syntax error"))
diff --git a/altosui/AltosSerial.java b/altosui/AltosSerial.java
index 8f8f99d7..cb82a574 100644
--- a/altosui/AltosSerial.java
+++ b/altosui/AltosSerial.java
@@ -233,12 +233,14 @@ public class AltosSerial implements Runnable {
abort = false;
timeout_started = false;
for (;;) {
+ System.out.printf("timeout %d\n", timeout);
AltosLine line = reply_queue.poll(timeout, TimeUnit.MILLISECONDS);
if (line != null) {
stop_timeout_dialog();
--in_reply;
return line.line;
}
+ System.out.printf("no line remote %b can_cancel %b\n", remote, can_cancel);
if (!remote || !can_cancel || check_timeout()) {
--in_reply;
return null;
@@ -246,6 +248,14 @@ public class AltosSerial implements Runnable {
}
}
+ public String get_reply_no_dialog(int timeout) throws InterruptedException, TimeoutException {
+ flush_output();
+ AltosLine line = reply_queue.poll(timeout, TimeUnit.MILLISECONDS);
+ if (line != null)
+ return line.line;
+ return null;
+ }
+
public void add_monitor(LinkedBlockingQueue<AltosLine> q) {
set_monitor(true);
monitors.add(q);