only:refactoring: now `ProgramSelector.flashOpenbltSerialAutomatic` method knows previous calibrations #7357

This commit is contained in:
kifir23917 2025-02-03 18:18:55 +03:00 committed by rusefillc
parent a02fb0735c
commit d1fa312d8e
2 changed files with 22 additions and 12 deletions

View File

@ -20,7 +20,6 @@ import static java.nio.file.StandardCopyOption.REPLACE_EXISTING;
public class CalibrationsBackuper {
private static final Logging log = getLogging(CalibrationsBackuper.class);
private static final String PREVIOUS_CALIBRATIONS_FILE_NAME = "prev_calibrations";
static Optional<CalibrationsInfo> readCalibrationsInfo(
final BinaryProtocol binaryProtocol,
@ -84,9 +83,10 @@ public class CalibrationsBackuper {
}
}
public static boolean backUpCurrentCalibrations(
public static Optional<CalibrationsInfo> readAndBackupCurrentCalibrations(
final PortResult ecuPort,
final UpdateOperationCallbacks callbacks
final UpdateOperationCallbacks callbacks,
final String backupFileName
) {
return BinaryProtocolExecutor.executeWithSuspendedPortScanner(
ecuPort.port,
@ -96,21 +96,23 @@ public class CalibrationsBackuper {
final Optional<CalibrationsInfo> calibrationsInfo = readCalibrationsInfo(binaryProtocol, callbacks);
if (calibrationsInfo.isPresent()) {
final CalibrationsInfo receivedCalibrations = calibrationsInfo.get();
return backUpCalibrationsInfo(
if (backUpCalibrationsInfo(
binaryProtocol,
receivedCalibrations,
PREVIOUS_CALIBRATIONS_FILE_NAME,
backupFileName,
callbacks
);
} else {
return false;
)) {
return calibrationsInfo;
}
}
return Optional.empty();
} catch (final Exception e) {
log.error("Back up current calibrations failed:", e);
callbacks.logLine("Back up current calibrations failed");
return false;
return Optional.empty();
}
}
},
Optional.empty()
);
}
}

View File

@ -23,13 +23,14 @@ import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.function.Supplier;
import java.util.stream.Collectors;
import static com.devexperts.logging.Logging.getLogging;
import static com.rusefi.SerialPortScanner.SerialPortType.OpenBlt;
import static com.rusefi.core.preferences.storage.PersistentConfiguration.getConfig;
import static com.rusefi.maintenance.CalibrationsBackuper.backUpCurrentCalibrations;
import static com.rusefi.maintenance.CalibrationsBackuper.readAndBackupCurrentCalibrations;
import static com.rusefi.maintenance.UpdateMode.*;
import static com.rusefi.ui.util.UiUtils.trueLayout;
@ -211,10 +212,17 @@ public class ProgramSelector {
return newPorts;
}
private static final String PREVIOUS_CALIBRATIONS_FILE_NAME = "prev_calibrations";
public static void flashOpenbltSerialAutomatic(JComponent parent, PortResult ecuPort, UpdateOperationCallbacks callbacks) {
AutoupdateUtil.assertNotAwtThread();
if (!backUpCurrentCalibrations(ecuPort, callbacks)) {
final Optional<CalibrationsInfo> prevCalibrations = readAndBackupCurrentCalibrations(
ecuPort,
callbacks,
PREVIOUS_CALIBRATIONS_FILE_NAME
);
if (prevCalibrations.isEmpty()) {
callbacks.logLine("Failed to back up current calibrations...");
callbacks.error();
return;