package org.altusmetrum.AltosLib;
-import java.lang.*;
import java.text.*;
import java.io.*;
import java.util.concurrent.*;
telem.clear();
}
+ public void reset() {
+ previous = null;
+ flush();
+ }
+
public void close(boolean interrupted) {
link.remove_monitor(telem);
log.close();
try {
/* Version 1.0 or later firmware supports all telemetry formats */
- if (serial.config_data().compare_version("1.0") >= 0)
+ if (link.config_data().compare_version("1.0") >= 0)
return true;
/* Version 0.9 firmware only supports 0.9 telemetry */
- if (serial.config_data().compare_version("0.9") >= 0) {
- if (telemetry == Altos.ao_telemetry_0_9)
+ if (link.config_data().compare_version("0.9") >= 0) {
+ if (telemetry == AltosLib.ao_telemetry_0_9)
return true;
else
return false;
}
/* Version 0.8 firmware only supports 0.8 telemetry */
- if (telemetry == Altos.ao_telemetry_0_8)
+ if (telemetry == AltosLib.ao_telemetry_0_8)
return true;
else
return false;
public AltosTelemetryReader (AltosLink in_link)
throws IOException, InterruptedException, TimeoutException {
link = in_link;
- log = new AltosLog(link);
- name = link.name;
- previous = null;
- telem = new LinkedBlockingQueue<AltosLine>();
- frequency = AltosPreferences.frequency(link.serial);
- set_frequency(frequency);
- telemetry = AltosPreferences.telemetry(link.serial);
- set_telemetry(telemetry);
- link.add_monitor(telem);
+ try {
+ log = new AltosLog(link);
+ name = link.name;
+ previous = null;
+ telem = new LinkedBlockingQueue<AltosLine>();
+ frequency = AltosPreferences.frequency(link.serial);
+ set_frequency(frequency);
+ telemetry = AltosPreferences.telemetry(link.serial);
+ set_telemetry(telemetry);
+ link.add_monitor(telem);
+ } catch (TimeoutException e) {
+ close(true);
+ throw(e);
+ } catch (InterruptedException e) {
+ close(true);
+ throw(e);
+ }
}
}