altosui: Flush telemetry lines before starting to watch for scan results
authorKeith Packard <keithp@keithp.com>
Sun, 17 Jul 2011 04:05:06 +0000 (21:05 -0700)
committerKeith Packard <keithp@keithp.com>
Sun, 17 Jul 2011 04:06:15 +0000 (21:06 -0700)
This prevents pending telemetry lines from being incorrectly
attributed to the wrong channel/telemetry.

Signed-off-by: Keith Packard <keithp@keithp.com>
altosui/AltosScanUI.java
altosui/AltosTelemetryReader.java

index bc1638ed0ebd4781c73c0077cfe811d0e27b2efc..96cab73b5d85c2435882ce8acb74940b85912036 100644 (file)
@@ -280,6 +280,11 @@ public class AltosScanUI
                        reader = new AltosTelemetryReader(device);
                        reader.serial.set_channel(channel);
                        reader.serial.set_telemetry(telemetry);
                        reader = new AltosTelemetryReader(device);
                        reader.serial.set_channel(channel);
                        reader.serial.set_telemetry(telemetry);
+                       try {
+                               Thread.sleep(100);
+                       } catch (InterruptedException ie) {
+                       }
+                       reader.flush();
                        handler = new TelemetryHandler();
                        thread = new Thread(handler);
                        thread.start();
                        handler = new TelemetryHandler();
                        thread = new Thread(handler);
                        thread.start();
index 18f17841acf76ac4373aeb58569ad46c0e732784..23524b2cb349c4a99a2d11878a5a2f879842f5a3 100644 (file)
@@ -39,6 +39,10 @@ class AltosTelemetryReader extends AltosFlightReader {
                return next;
        }
 
                return next;
        }
 
+       void flush() {
+               telem.clear();
+       }
+
        void close(boolean interrupted) {
                serial.remove_monitor(telem);
                log.close();
        void close(boolean interrupted) {
                serial.remove_monitor(telem);
                log.close();