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 c405face97..388eaea2ce 100644 --- a/java_console/ui/src/main/java/com/rusefi/StartupFrame.java +++ b/java_console/ui/src/main/java/com/rusefi/StartupFrame.java @@ -7,6 +7,7 @@ import com.rusefi.core.ui.FrameHelper; import com.rusefi.io.LinkManager; import com.rusefi.io.serial.BaudRateHolder; import com.rusefi.maintenance.DriverInstall; +import com.rusefi.maintenance.MaintenanceUtil; import com.rusefi.maintenance.StLinkFlasher; import com.rusefi.maintenance.ProgramSelector; import com.rusefi.ui.LogoHelper; @@ -23,6 +24,7 @@ import javax.swing.*; import javax.swing.border.TitledBorder; import java.awt.*; import java.awt.event.*; +import java.util.Date; import java.util.List; import static com.devexperts.logging.Logging.getLogging; @@ -156,6 +158,8 @@ public class StartupFrame { // realHardwarePanel.add(new FirmwareFlasher(FirmwareFlasher.IMAGE_FILE, "ST-LINK Program Firmware", "Default firmware version for most users").getButton()); JComponent updateHelp = ProgramSelector.createHelpButton(); + JLabel comp = binaryModificationControl(); + realHardwarePanel.add(comp, "right, wrap"); realHardwarePanel.add(updateHelp, "right, wrap"); // st-link is pretty advanced use-case, real humans do not have st-link as of 2021 @@ -223,6 +227,12 @@ public class StartupFrame { } } + private static @NotNull JLabel binaryModificationControl() { + long binaryModificationTimestamp = MaintenanceUtil.getBinaryModificationTimestamp(); + String fileTimestampText = binaryModificationTimestamp == 0 ? "firmware file not found" : new Date(binaryModificationTimestamp).toString(); + return new JLabel(fileTimestampText); + } + private void applyKnownPorts(SerialPortScanner.AvailableHardware currentHardware) { List ports = currentHardware.getKnownPorts(); log.info("Rendering available ports: " + ports); diff --git a/java_console/ui/src/main/java/com/rusefi/maintenance/MaintenanceUtil.java b/java_console/ui/src/main/java/com/rusefi/maintenance/MaintenanceUtil.java index 4acead4f69..ca263b5a7f 100644 --- a/java_console/ui/src/main/java/com/rusefi/maintenance/MaintenanceUtil.java +++ b/java_console/ui/src/main/java/com/rusefi/maintenance/MaintenanceUtil.java @@ -1,7 +1,10 @@ package com.rusefi.maintenance; +import com.rusefi.core.FindFileHelper; import com.rusefi.io.UpdateOperationCallbacks; +import java.io.File; + import static com.rusefi.Launcher.INPUT_FILES_PATH; public class MaintenanceUtil { @@ -27,4 +30,9 @@ public class MaintenanceUtil { public static boolean detectPcan(UpdateOperationCallbacks wnd) { return detectDevice(wnd, WMIC_PCAN_QUERY_COMMAND, "PCAN"); } + + public static long getBinaryModificationTimestamp() { + String fileName = FindFileHelper.isObfuscated() ? FindFileHelper.findSrecFile() : FIRMWARE_BIN_FILE; + return new File(fileName).lastModified(); + } }