summaryrefslogtreecommitdiff
path: root/ao-tools/altosui/AltosEepromDownload.java
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2010-11-13 16:07:04 -0800
committerKeith Packard <keithp@keithp.com>2010-11-13 16:07:04 -0800
commitdcfa56498d1b65a213b8aba9cbd6c4806532383c (patch)
tree196742b9dea168b18f6fbadaa54573a15fefd2b3 /ao-tools/altosui/AltosEepromDownload.java
parent8463ffcaca6bcd31e645aba71c171f548dce96d8 (diff)
altosui: Open serial device at 'new' time. Prohibit duplicate opens.
With the per-serial UI, there's never a reason to create a serial device without opening it right away. This eliminates the bug caused by not opening the serial device for telemetry reception. Serial devices can now be opened only once; this eliminates errors when trying to reflash or configure devices while receiving telemetry. Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'ao-tools/altosui/AltosEepromDownload.java')
-rw-r--r--ao-tools/altosui/AltosEepromDownload.java9
1 files changed, 7 insertions, 2 deletions
diff --git a/ao-tools/altosui/AltosEepromDownload.java b/ao-tools/altosui/AltosEepromDownload.java
index bd9e4b48..8996b924 100644
--- a/ao-tools/altosui/AltosEepromDownload.java
+++ b/ao-tools/altosui/AltosEepromDownload.java
@@ -244,12 +244,11 @@ public class AltosEepromDownload implements Runnable {
frame = given_frame;
device = AltosDeviceDialog.show(frame, AltosDevice.product_any);
- serial_line = new AltosSerial();
remote = false;
if (device != null) {
try {
- serial_line.open(device);
+ serial_line = new AltosSerial(device);
if (!device.matchProduct(AltosDevice.product_telemetrum))
remote = true;
eeprom_thread = new Thread(this);
@@ -260,6 +259,12 @@ public class AltosEepromDownload implements Runnable {
device.getPath()),
"Cannot open target device",
JOptionPane.ERROR_MESSAGE);
+ } catch (AltosSerialInUseException si) {
+ JOptionPane.showMessageDialog(frame,
+ String.format("Device \"%s\" already in use",
+ device.getPath()),
+ "Device in use",
+ JOptionPane.ERROR_MESSAGE);
} catch (IOException ee) {
JOptionPane.showMessageDialog(frame,
device.getPath(),