TS SD integration #1653

This commit is contained in:
rusefi 2020-08-07 20:48:01 -04:00
parent 4c0afb5c83
commit fbf0df6f65
1 changed files with 25 additions and 22 deletions

View File

@ -23,13 +23,12 @@ public class ConnectPanel {
private final JLabel status = new JLabel(); private final JLabel status = new JLabel();
private LinkManager controllerConnector; private LinkManager controllerConnector;
private final JButton connect = new JButton("Connect");
private final JButton disconnect = new JButton("Disconnect");
public ConnectPanel(final ConnectionStateListener connectionStateListener) { public ConnectPanel(final ConnectionStateListener connectionStateListener) {
JPanel flow = new JPanel(new FlowLayout()); JPanel flow = new JPanel(new FlowLayout());
JButton connect = new JButton("Connect");
JButton disconnect = new JButton("Disconnect");
disconnect.setEnabled(false); disconnect.setEnabled(false);
disconnect.addActionListener(new AbstractAction() { disconnect.addActionListener(new AbstractAction() {
@Override @Override
@ -49,31 +48,14 @@ public class ConnectPanel {
controllerConnector = new LinkManager() controllerConnector = new LinkManager()
.setCompositeLogicEnabled(false) .setCompositeLogicEnabled(false)
.setNeedPullData(false); .setNeedPullData(false);
String autoDetectedPort = null;
try { try {
autoDetectedPort = PortDetector.autoDetectSerial(null); tryToConnect(connectionStateListener);
controllerConnector.startAndConnect(autoDetectedPort, new ConnectionStateListener() {
public void onConnectionEstablished() {
SwingUtilities.invokeLater(() -> {
status.setText("Connected to rusEFI");
disconnect.setEnabled(true);
connectionStateListener.onConnectionEstablished();
});
}
public void onConnectionFailed() {
}
});
} catch (Throwable er) { } catch (Throwable er) {
log.error("Error connecting", er); log.error("Error connecting", er);
SwingUtilities.invokeLater(() -> { SwingUtilities.invokeLater(() -> {
status.setText("Not found or error, see logs."); status.setText("Some error, see logs.");
connect.setEnabled(true); connect.setEnabled(true);
}); });
} }
}); });
}); });
@ -85,6 +67,27 @@ public class ConnectPanel {
content.add(status, BorderLayout.SOUTH); 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() { public LinkManager getControllerConnector() {
return controllerConnector; return controllerConnector;
} }