diff options
author | Keith Packard <keithp@keithp.com> | 2018-10-20 17:29:36 -0700 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2018-10-20 17:31:57 -0700 |
commit | 48e221cca00c9f925ff57588dd782842705f7a23 (patch) | |
tree | eb64bb356655472f56589b074b74f1112b63772b /altosuilib/AltosDeviceUIDialog.java | |
parent | 345e3c37a1cf619392b54589bb91b4caf7844810 (diff) |
altoslib: When flashing hardware, pull USB data from device if needed
If we fail to extract USB vid/pid and product values from the device
ROM, use the data discovered over USB when the device was originally
discovered.
Also, use the USB product to select appropriate .ihx files instead of
only using the USB vid/pid. This will help people avoid using the
wrong file when reflashing devices.
Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'altosuilib/AltosDeviceUIDialog.java')
-rw-r--r-- | altosuilib/AltosDeviceUIDialog.java | 51 |
1 files changed, 38 insertions, 13 deletions
diff --git a/altosuilib/AltosDeviceUIDialog.java b/altosuilib/AltosDeviceUIDialog.java index 93ab178f..8ea9e233 100644 --- a/altosuilib/AltosDeviceUIDialog.java +++ b/altosuilib/AltosDeviceUIDialog.java @@ -24,27 +24,39 @@ import java.awt.event.*; public class AltosDeviceUIDialog extends AltosDeviceDialog { + boolean include_bluetooth; + public AltosDevice[] devices() { java.util.List<AltosDevice> usb_devices = AltosUSBDevice.list(product); int num_devices = usb_devices.size(); - java.util.List<AltosDevice> bt_devices = AltosBTKnown.bt_known().list(product); - num_devices += bt_devices.size(); + + java.util.List<AltosDevice> bt_devices = null; + + if (include_bluetooth) { + bt_devices = AltosBTKnown.bt_known().list(product); + num_devices += bt_devices.size(); + } + AltosDevice[] devices = new AltosDevice[num_devices]; for (int i = 0; i < usb_devices.size(); i++) devices[i] = usb_devices.get(i); - int off = usb_devices.size(); - for (int j = 0; j < bt_devices.size(); j++) - devices[off + j] = bt_devices.get(j); + if (include_bluetooth) { + int off = usb_devices.size(); + for (int j = 0; j < bt_devices.size(); j++) + devices[off + j] = bt_devices.get(j); + } return devices; } public void add_bluetooth() { - JButton manage_bluetooth_button = new JButton("Manage Bluetooth"); - manage_bluetooth_button.setActionCommand("manage"); - manage_bluetooth_button.addActionListener(this); - buttonPane.add(manage_bluetooth_button); - buttonPane.add(Box.createRigidArea(new Dimension(10, 0))); + if (include_bluetooth) { + JButton manage_bluetooth_button = new JButton("Manage Bluetooth"); + manage_bluetooth_button.setActionCommand("manage"); + manage_bluetooth_button.addActionListener(this); + buttonPane.add(manage_bluetooth_button); + buttonPane.add(Box.createRigidArea(new Dimension(10, 0))); + } } public void actionPerformed(ActionEvent e) { @@ -55,16 +67,29 @@ public class AltosDeviceUIDialog extends AltosDeviceDialog { } } - public AltosDeviceUIDialog (Frame in_frame, Component location, int in_product) { + public AltosDeviceUIDialog (Frame in_frame, Component location, int in_product, boolean include_bluetooth) { super(in_frame, location, in_product); + this.include_bluetooth = include_bluetooth; } - public static AltosDevice show (Component frameComp, int product) { + public AltosDeviceUIDialog (Frame in_frame, Component location, int in_product) { + this(in_frame, location, in_product, true); + } + + public static AltosDevice show (Component frameComp, int product, boolean include_bluetooth) { Frame frame = JOptionPane.getFrameForComponent(frameComp); AltosDeviceUIDialog dialog; - dialog = new AltosDeviceUIDialog(frame, frameComp, product); + dialog = new AltosDeviceUIDialog(frame, frameComp, product, include_bluetooth); dialog.setVisible(true); return dialog.getValue(); } + + public static AltosDevice show (Component frameComp, int product) { + return show(frameComp, product, true); + } + + public static AltosUSBDevice show_usb (Component frameComp, int product) { + return (AltosUSBDevice) show(frameComp, product, false); + } } |