diff --git a/java_console/bin/broadcast.sh b/java_console/bin/broadcast.sh index 56b3fd631e..6a5d670992 100755 --- a/java_console/bin/broadcast.sh +++ b/java_console/bin/broadcast.sh @@ -1,4 +1,8 @@ #!/bin/bash +# +# broadcast.sh +# this file is part of rusEFI +# while true do java -jar console/rusefi_console.jar network_connector diff --git a/java_console/io/src/main/java/com/rusefi/proxy/NetworkConnector.java b/java_console/io/src/main/java/com/rusefi/proxy/NetworkConnector.java index 10c8b4d675..e636ff6326 100644 --- a/java_console/io/src/main/java/com/rusefi/proxy/NetworkConnector.java +++ b/java_console/io/src/main/java/com/rusefi/proxy/NetworkConnector.java @@ -33,9 +33,14 @@ import static com.rusefi.binaryprotocol.BinaryProtocol.sleep; * see NetworkConnectorStartup */ public class NetworkConnector implements Closeable { + /** + * @see NetworkConnectorContext + * See broadcash.sh + */ public static final byte DISCONNECT = 14; - public static final byte UPDATE_CONNECTOR_SOFTWARE = 15; + public static final byte UPDATE_CONNECTOR_SOFTWARE_LATEST = 15; public static final byte UPDATE_FIRMWARE = 16; + public static final byte UPDATE_CONNECTOR_SOFTWARE_RELEASE = 17; private final static Logging log = Logging.getLogging(NetworkConnector.class); private boolean isClosed; @@ -138,8 +143,10 @@ public class NetworkConnector implements Closeable { if (command == Fields.TS_ONLINE_PROTOCOL) { byte connectorCommand = packet.getPacket()[1]; log.info("Got connector command " + packet.getPacket()); - if (connectorCommand == NetworkConnector.UPDATE_CONNECTOR_SOFTWARE) { - context.onConnectorSoftwareUpdateRequest(); + if (connectorCommand == NetworkConnector.UPDATE_CONNECTOR_SOFTWARE_LATEST) { + context.onConnectorSoftwareUpdateToLatestRequest(); + } else if (connectorCommand == NetworkConnector.UPDATE_CONNECTOR_SOFTWARE_RELEASE) { + context.onConnectorSoftwareUpdateToReleaseRequest(); } else if (connectorCommand == NetworkConnector.UPDATE_FIRMWARE) { context.onFirmwareUpdateRequest(); } diff --git a/java_console/io/src/main/java/com/rusefi/proxy/NetworkConnectorContext.java b/java_console/io/src/main/java/com/rusefi/proxy/NetworkConnectorContext.java index 9ff8c7ef34..15ca54d05b 100644 --- a/java_console/io/src/main/java/com/rusefi/proxy/NetworkConnectorContext.java +++ b/java_console/io/src/main/java/com/rusefi/proxy/NetworkConnectorContext.java @@ -9,8 +9,9 @@ import static com.devexperts.logging.Logging.getLogging; public class NetworkConnectorContext { private static final Logging log = getLogging(NetworkConnectorContext.class); - private static final int UPDATE_SBC_EXIT_CODE = 15; + private static final int UPDATE_LATEST_SBC_EXIT_CODE = 15; public static final int UPDATE_FIRMWARE_EXIT_CODE = 16; + private static final int UPDATE_RELEASE_SBC_EXIT_CODE = 17; public int reconnectDelay() { return 15; // this one is seconds @@ -33,9 +34,14 @@ public class NetworkConnectorContext { return ProxyClient.SERVER_PORT_FOR_CONTROLLERS; } - public void onConnectorSoftwareUpdateRequest() { - log.info("onConnectorSoftwareUpdateRequest"); - System.exit(UPDATE_SBC_EXIT_CODE); + public void onConnectorSoftwareUpdateToLatestRequest() { + log.info("onConnectorSoftwareUpdateToLatestRequest"); + System.exit(UPDATE_LATEST_SBC_EXIT_CODE); + } + + public void onConnectorSoftwareUpdateToReleaseRequest() { + log.info("onConnectorSoftwareUpdateToReleaseRequest"); + System.exit(UPDATE_RELEASE_SBC_EXIT_CODE); } public void onFirmwareUpdateRequest() { diff --git a/java_console/io/src/main/java/com/rusefi/proxy/client/UpdateType.java b/java_console/io/src/main/java/com/rusefi/proxy/client/UpdateType.java index 1744bacd10..10406b0bb3 100644 --- a/java_console/io/src/main/java/com/rusefi/proxy/client/UpdateType.java +++ b/java_console/io/src/main/java/com/rusefi/proxy/client/UpdateType.java @@ -2,5 +2,6 @@ package com.rusefi.proxy.client; public enum UpdateType { CONTROLLER, - FIRMWARE + FIRMWARE, + CONTROLLER_RELEASE, } diff --git a/java_console/ui/src/test/java/com/rusefi/FullServerTest.java b/java_console/ui/src/test/java/com/rusefi/FullServerTest.java index 5cca1fb01c..9376cf3546 100644 --- a/java_console/ui/src/test/java/com/rusefi/FullServerTest.java +++ b/java_console/ui/src/test/java/com/rusefi/FullServerTest.java @@ -105,7 +105,7 @@ public class FullServerTest { } @Override - public void onConnectorSoftwareUpdateRequest() { + public void onConnectorSoftwareUpdateToLatestRequest() { softwareUpdateRequest.countDown(); } }; diff --git a/java_tools/proxy_server/src/main/java/com/rusefi/server/UpdateRequestHandler.java b/java_tools/proxy_server/src/main/java/com/rusefi/server/UpdateRequestHandler.java index f44ed6a85d..0decf2349f 100644 --- a/java_tools/proxy_server/src/main/java/com/rusefi/server/UpdateRequestHandler.java +++ b/java_tools/proxy_server/src/main/java/com/rusefi/server/UpdateRequestHandler.java @@ -51,8 +51,10 @@ public class UpdateRequestHandler implements Take { try { if (type.equals(UpdateType.FIRMWARE.name())) { state.invokeOnlineCommand(NetworkConnector.UPDATE_FIRMWARE); + } else if (type.equals(UpdateType.CONTROLLER_RELEASE.name())) { + state.invokeOnlineCommand(NetworkConnector.UPDATE_FIRMWARE); } else { - state.invokeOnlineCommand(NetworkConnector.UPDATE_CONNECTOR_SOFTWARE); + state.invokeOnlineCommand(NetworkConnector.UPDATE_CONNECTOR_SOFTWARE_LATEST); } } catch (IOException e) { throw new IllegalStateException(e); diff --git a/java_tools/ts_plugin/src/main/java/com/rusefi/ts_plugin/RemoteTab.java b/java_tools/ts_plugin/src/main/java/com/rusefi/ts_plugin/RemoteTab.java index b7f1b399d4..53f7b1bd6e 100644 --- a/java_tools/ts_plugin/src/main/java/com/rusefi/ts_plugin/RemoteTab.java +++ b/java_tools/ts_plugin/src/main/java/com/rusefi/ts_plugin/RemoteTab.java @@ -48,10 +48,11 @@ import static com.rusefi.ui.storage.PersistentConfiguration.getConfig; public class RemoteTab { private static final String APPLICATION_PORT = "application_port"; public static final String HOWTO_REMOTE_TUNING = "https://github.com/rusefi/rusefi/wiki/HOWTO-Remote-Tuning"; + private static final String UPDATE_ECU_FIRMWARE = "Update ECU firmware"; + private static final String UPDATE_REMOTE_CONNECTOR_SOFTWARE = "Update Remote Connector Software"; private final JComponent content = new JPanel(new BorderLayout()); private final JScrollPane scroll = new JScrollPane(content, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); - private final JPanel list = new JPanel(new VerticalFlowLayout()); private final JTextField oneTimePasswordControl = new JTextField("0") { @Override @@ -184,7 +185,7 @@ public class RemoteTab { if (publicSession.getImplementation().equals(NetworkConnector.Implementation.SBC.name())) { - JButton updateSoftware = new JButton("Update Remote Connector Software"); + JButton updateSoftware = new JButton(UPDATE_REMOTE_CONNECTOR_SOFTWARE); updateSoftware.addActionListener(new AbstractAction() { @Override public void actionPerformed(ActionEvent e) { @@ -194,7 +195,7 @@ public class RemoteTab { bottomPanel.add(updateSoftware); } - JButton updateFirmware = new JButton("Update ECU firmware"); + JButton updateFirmware = new JButton(UPDATE_ECU_FIRMWARE); updateFirmware.addActionListener(new AbstractAction() { @Override public void actionPerformed(ActionEvent e) {