From fbf0df6f65f8d57b61e54c8fdc8bb130184ca01e Mon Sep 17 00:00:00 2001 From: rusefi Date: Fri, 7 Aug 2020 20:48:01 -0400 Subject: [PATCH] TS SD integration #1653 --- .../com/rusefi/ts_plugin/ConnectPanel.java | 47 ++++++++++--------- 1 file changed, 25 insertions(+), 22 deletions(-) diff --git a/java_tools/ts_plugin/src/main/java/com/rusefi/ts_plugin/ConnectPanel.java b/java_tools/ts_plugin/src/main/java/com/rusefi/ts_plugin/ConnectPanel.java index f6b4527f8a..34db970e1e 100644 --- a/java_tools/ts_plugin/src/main/java/com/rusefi/ts_plugin/ConnectPanel.java +++ b/java_tools/ts_plugin/src/main/java/com/rusefi/ts_plugin/ConnectPanel.java @@ -23,13 +23,12 @@ public class ConnectPanel { private final JLabel status = new JLabel(); private LinkManager controllerConnector; + private final JButton connect = new JButton("Connect"); + private final JButton disconnect = new JButton("Disconnect"); public ConnectPanel(final ConnectionStateListener connectionStateListener) { JPanel flow = new JPanel(new FlowLayout()); - JButton connect = new JButton("Connect"); - JButton disconnect = new JButton("Disconnect"); - disconnect.setEnabled(false); disconnect.addActionListener(new AbstractAction() { @Override @@ -49,31 +48,14 @@ public class ConnectPanel { controllerConnector = new LinkManager() .setCompositeLogicEnabled(false) .setNeedPullData(false); - - String autoDetectedPort = null; try { - autoDetectedPort = PortDetector.autoDetectSerial(null); - controllerConnector.startAndConnect(autoDetectedPort, new ConnectionStateListener() { - public void onConnectionEstablished() { - SwingUtilities.invokeLater(() -> { - status.setText("Connected to rusEFI"); - disconnect.setEnabled(true); - connectionStateListener.onConnectionEstablished(); - }); - } - - public void onConnectionFailed() { - } - }); - + tryToConnect(connectionStateListener); } catch (Throwable er) { log.error("Error connecting", er); - SwingUtilities.invokeLater(() -> { - status.setText("Not found or error, see logs."); + status.setText("Some error, see logs."); connect.setEnabled(true); }); - } }); }); @@ -85,6 +67,27 @@ public class ConnectPanel { content.add(status, BorderLayout.SOUTH); } + private void tryToConnect(ConnectionStateListener connectionStateListener) { + String autoDetectedPort = PortDetector.autoDetectSerial(null); + if (autoDetectedPort == null) { + status.setText("rusEFI not found"); + connect.setEnabled(true); + } else { + controllerConnector.startAndConnect(autoDetectedPort, new ConnectionStateListener() { + public void onConnectionEstablished() { + SwingUtilities.invokeLater(() -> { + status.setText("Connected to rusEFI"); + disconnect.setEnabled(true); + connectionStateListener.onConnectionEstablished(); + }); + } + + public void onConnectionFailed() { + } + }); + } + } + public LinkManager getControllerConnector() { return controllerConnector; }