summaryrefslogtreecommitdiff
path: root/altoslib/AltosTelemetryReader.java
diff options
context:
space:
mode:
Diffstat (limited to 'altoslib/AltosTelemetryReader.java')
-rw-r--r--altoslib/AltosTelemetryReader.java45
1 files changed, 9 insertions, 36 deletions
diff --git a/altoslib/AltosTelemetryReader.java b/altoslib/AltosTelemetryReader.java
index 20526a2c..908fb5c7 100644
--- a/altoslib/AltosTelemetryReader.java
+++ b/altoslib/AltosTelemetryReader.java
@@ -15,7 +15,7 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_5;
+package org.altusmetrum.altoslib_6;
import java.text.*;
import java.io.*;
@@ -28,20 +28,16 @@ public class AltosTelemetryReader extends AltosFlightReader {
int telemetry;
int telemetry_rate;
AltosState state = null;
- AltosFlightReader stacked;
LinkedBlockingQueue<AltosLine> telem;
public AltosState read() throws InterruptedException, ParseException, AltosCRCException, IOException {
- if (stacked != null) {
- state = stacked.read();
- if (state != null)
- return state;
- stacked = null;
- }
- 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();
@@ -57,15 +53,11 @@ public class AltosTelemetryReader extends AltosFlightReader {
public void reset() {
flush();
+ state = null;
}
public void close(boolean interrupted) {
- if (stacked != null) {
- stacked.close(interrupted);
- stacked = null;
- }
-
link.remove_monitor(telem);
log.close();
try {
@@ -161,10 +153,9 @@ public class AltosTelemetryReader extends AltosFlightReader {
return link.monitor_battery();
}
- public AltosTelemetryReader (AltosLink in_link, AltosFlightReader in_stacked)
+ public AltosTelemetryReader (AltosLink in_link)
throws IOException, InterruptedException, TimeoutException {
link = in_link;
- stacked = in_stacked;
boolean success = false;
try {
log = new AltosLog(link);
@@ -183,22 +174,4 @@ public class AltosTelemetryReader extends AltosFlightReader {
close(true);
}
}
-
- private static AltosFlightReader existing_data(AltosLink link) {
- if (link == null)
- return null;
-
- File file = AltosPreferences.logfile(link.serial);
- if (file != null) {
- AltosStateIterable iterable = AltosStateIterable.iterable(file);
- if (iterable != null)
- return new AltosReplayReader(iterable.iterator(), file, false);
- }
- return null;
- }
-
- public AltosTelemetryReader(AltosLink link)
- throws IOException, InterruptedException, TimeoutException {
- this(link, null);
- }
}