altosui: flush replies from serial link when entering debug mode
[fw/altos] / ao-tools / altosui / AltosSerial.java
index a62f122550fd5240bb57e4feac2b46a7eb200e5c..3684f253ca6532f4ccf439d3e07f8266e97821e1 100644 (file)
@@ -66,8 +66,10 @@ public class AltosSerial implements Runnable {
                                                                        LinkedBlockingQueue<String> q = monitors.get(e);
                                                                        q.put(line);
                                                                }
-                                                       } else
+                                                       } else {
+//                                                             System.out.printf("GOT: %s\n", line);
                                                                reply_queue.put(line);
+                                                       }
                                                        line = "";
                                                }
                                        } else {
@@ -80,11 +82,18 @@ public class AltosSerial implements Runnable {
        }
 
        public void flush_reply() {
+               libaltos.altos_flush(altos);
+               try {
+                       Thread.sleep(100);
+               } catch (InterruptedException ie) {
+               }
                reply_queue.clear();
        }
 
        public String get_reply() throws InterruptedException {
-               return reply_queue.take();
+               libaltos.altos_flush(altos);
+               String line = reply_queue.take();
+               return line;
        }
 
        public void add_monitor(LinkedBlockingQueue<String> q) {
@@ -130,6 +139,7 @@ public class AltosSerial implements Runnable {
        }
 
        public void print(String data) {
+//             System.out.printf("\"%s\" ", data);
                for (int i = 0; i < data.length(); i++)
                        putc(data.charAt(i));
        }