Console to show device signature in window title #3115

This commit is contained in:
rusefillc 2021-08-06 17:39:18 -04:00
parent 1ef0aaa862
commit e4ad7ae8ca
4 changed files with 16 additions and 10 deletions

View File

@ -68,6 +68,7 @@ public class BinaryProtocol {
private final IoStream stream; private final IoStream stream;
private final IncomingDataBuffer incomingData; private final IncomingDataBuffer incomingData;
private boolean isBurnPending; private boolean isBurnPending;
public String signature;
private BinaryProtocolState state = new BinaryProtocolState(); private BinaryProtocolState state = new BinaryProtocolState();
@ -220,20 +221,19 @@ public class BinaryProtocol {
} }
/** /**
* this method would switch controller to binary protocol and read configuration snapshot from controller * this method reads configuration snapshot from controller
* *
* @return true if everything fine * @return true if everything fine
*/ */
public boolean connectAndReadConfiguration(DataListener listener) { public boolean connectAndReadConfiguration(DataListener listener) {
try { try {
HelloCommand.send(stream); HelloCommand.send(stream);
String response = HelloCommand.getHelloResponse(incomingData); signature = HelloCommand.getHelloResponse(incomingData);
System.out.println("Got " + response); System.out.println("Got " + signature);
SignatureHelper.downloadIfNotAvailable(SignatureHelper.getUrl(response)); SignatureHelper.downloadIfNotAvailable(SignatureHelper.getUrl(signature));
} catch (IOException e) { } catch (IOException e) {
return false; return false;
} }
// switchToBinaryProtocol();
readImage(Fields.TOTAL_CONFIG_SIZE); readImage(Fields.TOTAL_CONFIG_SIZE);
if (isClosed) if (isClosed)
return false; return false;

View File

@ -13,8 +13,9 @@ import static com.rusefi.shared.FileUtil.RUSEFI_SETTINGS_FOLDER;
public class SignatureHelper { public class SignatureHelper {
private final static String LOCAL_INI = RUSEFI_SETTINGS_FOLDER + File.separator + "ini_database"; private final static String LOCAL_INI = RUSEFI_SETTINGS_FOLDER + File.separator + "ini_database";
public static final String PREFIX = "rusEFI "; // todo: find a way to reference Fields.PROTOCOL_SIGNATURE_PREFIX
public static final char SLASH = '/'; private static final String PREFIX = "rusEFI ";
private static final char SLASH = '/';
public static Pair<String, String> getUrl(String signature) { public static Pair<String, String> getUrl(String signature) {
if (signature == null || !signature.startsWith(PREFIX)) if (signature == null || !signature.startsWith(PREFIX))

View File

@ -6,7 +6,7 @@ import java.net.URL;
import java.util.concurrent.atomic.AtomicReference; import java.util.concurrent.atomic.AtomicReference;
public class rusEFIVersion { public class rusEFIVersion {
public static final int CONSOLE_VERSION = 20210723; public static final int CONSOLE_VERSION = 20210806;
public static AtomicReference<String> firmwareVersion = new AtomicReference<>("N/A"); public static AtomicReference<String> firmwareVersion = new AtomicReference<>("N/A");
public static long classBuildTimeMillis() { public static long classBuildTimeMillis() {

View File

@ -10,13 +10,16 @@ import com.rusefi.maintenance.VersionChecker;
import com.rusefi.ui.storage.Node; import com.rusefi.ui.storage.Node;
import com.rusefi.ui.util.FrameHelper; import com.rusefi.ui.util.FrameHelper;
import com.rusefi.ui.util.UiUtils; import com.rusefi.ui.util.UiUtils;
import org.jetbrains.annotations.NotNull;
import java.util.Objects;
import java.util.TimeZone; import java.util.TimeZone;
import static com.devexperts.logging.Logging.getLogging; import static com.devexperts.logging.Logging.getLogging;
import static com.rusefi.ui.storage.PersistentConfiguration.getConfig; import static com.rusefi.ui.storage.PersistentConfiguration.getConfig;
public class MainFrame { public class MainFrame {
@NotNull
private final ConsoleUI consoleUI; private final ConsoleUI consoleUI;
private final TabbedPanel tabbedPane; private final TabbedPanel tabbedPane;
/** /**
@ -46,7 +49,7 @@ public class MainFrame {
public ConnectionFailedListener listener; public ConnectionFailedListener listener;
public MainFrame(ConsoleUI consoleUI, TabbedPanel tabbedPane) { public MainFrame(ConsoleUI consoleUI, TabbedPanel tabbedPane) {
this.consoleUI = consoleUI; this.consoleUI = Objects.requireNonNull(consoleUI);
this.tabbedPane = tabbedPane; this.tabbedPane = tabbedPane;
listener = () -> { listener = () -> {
@ -102,7 +105,9 @@ public class MainFrame {
private void setTitle() { private void setTitle() {
String disconnected = ConnectionStatusLogic.INSTANCE.isConnected() ? "" : "DISCONNECTED "; String disconnected = ConnectionStatusLogic.INSTANCE.isConnected() ? "" : "DISCONNECTED ";
frame.getFrame().setTitle(disconnected + "Console " + Launcher.CONSOLE_VERSION + "; firmware=" + Launcher.firmwareVersion.get() + "@" + consoleUI.port); BinaryProtocol bp = consoleUI.uiContext.getLinkManager().getCurrentStreamState();
String signature = bp == null ? "not loaded" : bp.signature;
frame.getFrame().setTitle(disconnected + "Console " + Launcher.CONSOLE_VERSION + "; firmware=" + Launcher.firmwareVersion.get() + "@" + consoleUI.port + " " + signature);
} }
private void windowClosedHandler() { private void windowClosedHandler() {