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 PortResult ecuPort,
final UpdateOperationCallbacks callbacks, final UpdateOperationCallbacks callbacks,
final String backupFileName final String backupFileName

View File

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