altoslib: Drop telemetry packets processed while monitoring is disabled
[fw/altos] / altoslib / AltosTelemetryReader.java
index 5ed501348b07174bb0debee09d499ada26bffb56..b3b97faea349f7212dd724d647fba46ff9cca142 100644 (file)
@@ -32,9 +32,12 @@ public class AltosTelemetryReader extends AltosFlightReader {
        LinkedBlockingQueue<AltosLine> telem;
 
        public AltosState read() throws InterruptedException, ParseException, AltosCRCException, IOException {
-               AltosLine l = telem.take();
-               if (l.line == null)
-                       throw new IOException("IO error");
+               AltosLine l;
+               do {
+                       l = telem.take();
+                       if (l.line == null)
+                               throw new IOException("IO error");
+               } while (!link.get_monitor());
                AltosTelemetry  telem = AltosTelemetry.parse(l.line);
                if (state == null)
                        state = new AltosState();
@@ -53,6 +56,7 @@ public class AltosTelemetryReader extends AltosFlightReader {
        }
 
        public void close(boolean interrupted) {
+
                link.remove_monitor(telem);
                log.close();
                try {