diff options
author | Keith Packard <keithp@keithp.com> | 2012-06-17 16:09:43 -0700 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2012-06-17 16:09:43 -0700 |
commit | ca310342d7b0bd1b78318cae38d920b8690dfd36 (patch) | |
tree | 797fdf0f42ef229665e2aefd147185dd6d729a89 | |
parent | 58e005375ca29dec6091d87159055004e7f19605 (diff) |
altosui: Catch timeout errors when setting up TD telem monitoring
Close the port in this case so it can be used for other things.
Signed-off-by: Keith Packard <keithp@keithp.com>
-rw-r--r-- | altoslib/AltosTelemetryReader.java | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/altoslib/AltosTelemetryReader.java b/altoslib/AltosTelemetryReader.java index 112e008e..911a099a 100644 --- a/altoslib/AltosTelemetryReader.java +++ b/altoslib/AltosTelemetryReader.java @@ -106,14 +106,22 @@ public class AltosTelemetryReader extends AltosFlightReader { 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); + } } } |