diff --git a/java_console/shared_io/src/main/java/com/rusefi/core/rusEFIVersion.java b/java_console/shared_io/src/main/java/com/rusefi/core/rusEFIVersion.java index 1f283d2132..99927fd957 100644 --- a/java_console/shared_io/src/main/java/com/rusefi/core/rusEFIVersion.java +++ b/java_console/shared_io/src/main/java/com/rusefi/core/rusEFIVersion.java @@ -6,7 +6,7 @@ import java.net.URL; import java.util.concurrent.atomic.AtomicReference; public interface rusEFIVersion { - int CONSOLE_VERSION = 20240511; + int CONSOLE_VERSION = 20240522; AtomicReference firmwareVersion = new AtomicReference<>("N/A"); static long classBuildTimeMillis() { diff --git a/java_console/ui/src/main/java/com/rusefi/StartupFrame.java b/java_console/ui/src/main/java/com/rusefi/StartupFrame.java index 3bfbcb7bd2..c405face97 100644 --- a/java_console/ui/src/main/java/com/rusefi/StartupFrame.java +++ b/java_console/ui/src/main/java/com/rusefi/StartupFrame.java @@ -69,6 +69,7 @@ public class StartupFrame { public StartupFrame() { String title = "rusEFI console version " + Launcher.CONSOLE_VERSION; log.info(title); + noPortsMessage.setForeground(Color.red); frame = FrameHelper.createFrame(title).getFrame(); frame.addWindowListener(new WindowAdapter() { @Override @@ -226,10 +227,18 @@ public class StartupFrame { List ports = currentHardware.getKnownPorts(); log.info("Rendering available ports: " + ports); connectPanel.setVisible(!ports.isEmpty()); - noPortsMessage.setText(NO_PORTS_FOUND); - noPortsMessage.setVisible(ports.isEmpty()); - applyPortSelectionToUIcontrol(ports); + + boolean hasEcuOrBootloader = applyPortSelectionToUIcontrol(ports); + if (ports.isEmpty()) { + noPortsMessage.setText(NO_PORTS_FOUND); + } else { + noPortsMessage.setText("Make sure you are disconnected from TunerStudio"); + } + + noPortsMessage.setVisible(ports.isEmpty() || !hasEcuOrBootloader); + + UiUtils.trueLayout(connectPanel); } @@ -282,10 +291,16 @@ public class StartupFrame { SerialPortScanner.INSTANCE.stopTimer(); } - private void applyPortSelectionToUIcontrol(List ports) { + private boolean applyPortSelectionToUIcontrol(List ports) { comboPorts.removeAllItems(); + boolean hasEcuOrBootloader = false; for (final SerialPortScanner.PortResult port : ports) { comboPorts.addItem(port); + if (port.type == SerialPortScanner.SerialPortType.Ecu || + port.type == SerialPortScanner.SerialPortType.EcuWithOpenblt || + port.type == SerialPortScanner.SerialPortType.OpenBlt) { + hasEcuOrBootloader = true; + } } String defaultPort = getConfig().getRoot().getProperty(ConsoleUI.PORT_KEY); if (!PersistentConfiguration.getBoolProperty(ALWAYS_AUTO_PORT)) { @@ -293,6 +308,7 @@ public class StartupFrame { } trueLayout(comboPorts); + return hasEcuOrBootloader; } private static JComboBox createSpeedCombo() {