implement tune uploading with hardcoded MCU serial

This commit is contained in:
kifir23917 2025-02-22 00:58:51 +03:00 committed by rusefillc
parent e7a249f2c8
commit 0e001bb9ac
2 changed files with 42 additions and 6 deletions

View File

@ -156,7 +156,7 @@ public class CalibrationsHelper {
}
}
private static Optional<CalibrationsInfo> readAndBackupCurrentCalibrations(
public static Optional<CalibrationsInfo> readAndBackupCurrentCalibrations(
final PortResult ecuPort,
final UpdateOperationCallbacks callbacks,
final String backupFileName

View File

@ -1,36 +1,72 @@
package com.rusefi.maintenance;
import com.rusefi.SerialPortScanner;
import com.rusefi.binaryprotocol.BinaryProtocolLocalCache;
import com.rusefi.io.UpdateOperationCallbacks;
import com.rusefi.panama.PanamaClient;
import com.rusefi.ui.basic.InstanceNameEditor;
import java.io.File;
import java.util.Optional;
import static com.rusefi.maintenance.CalibrationsHelper.readAndBackupCurrentCalibrations;
public enum TuneUploader {
INSTANCE;
private static final String CALIBRATIONS_TO_UPLOAD_FILE_NAME = BinaryProtocolLocalCache.STATE_FOLDER + "calibrations_to_upload";
public synchronized boolean uploadTune(
final SerialPortScanner.PortResult port,
final SerialPortScanner.PortResult ecuPort,
final String panamaUrl,
final UpdateOperationCallbacks callbacks
) {
boolean result = false;
final String instanceName = InstanceNameEditor.loadInstanceName();
if (instanceName == null || instanceName.isEmpty()) {
callbacks.logLine("Instance name is not defined!");
callbacks.logLine("Please right-click on logo and use `Instance name` context menu to specify an instance name.");
}
final Optional<CalibrationsInfo> calibrationsToUpload = readAndBackupCurrentCalibrations(
ecuPort,
callbacks,
CALIBRATIONS_TO_UPLOAD_FILE_NAME
);
if (!calibrationsToUpload.isPresent()) {
callbacks.logLine("Failed to back up current calibrations...");
return false;
}
// todo!
// IniField mcuSerialField = PanamaHelper.getIniField(linkManager);
// if (mcuSerialField == null) {
// addMessage("Please update firmware to use this feature");
// return;
// }
// todo: grab current calibrations and save fresh MSQ
int mcuSerial = 1231234; // todo
final String calibrationsToUploadFileName = CALIBRATIONS_TO_UPLOAD_FILE_NAME + ".msq";
if (PanamaClient.uploadFile(panamaUrl,
/* todo MSQ file */ null,
InstanceNameEditor.loadInstanceName(),
new File(calibrationsToUploadFileName),
instanceName,
mcuSerial
)) {
callbacks.logLine(String.format(
"File `%s` is successfully uploaded to `%s` for `%s`",
calibrationsToUploadFileName,
panamaUrl,
instanceName
));
result = true;
} else {
callbacks.logLine(String.format("Failed to upload file to %s", panamaUrl));
callbacks.logLine(String.format(
"Failed to upload file `%s` to `%s` for `%s`",
calibrationsToUploadFileName,
panamaUrl,
instanceName
));
}
return result;
}