From 0e001bb9ac39287bf466e9ddb34e62ac66771401 Mon Sep 17 00:00:00 2001 From: kifir23917 Date: Sat, 22 Feb 2025 00:58:51 +0300 Subject: [PATCH] implement tune uploading with hardcoded MCU serial --- .../maintenance/CalibrationsHelper.java | 2 +- .../com/rusefi/maintenance/TuneUploader.java | 46 +++++++++++++++++-- 2 files changed, 42 insertions(+), 6 deletions(-) diff --git a/java_console/ui/src/main/java/com/rusefi/maintenance/CalibrationsHelper.java b/java_console/ui/src/main/java/com/rusefi/maintenance/CalibrationsHelper.java index 0099bc9cf2..fd30a58251 100644 --- a/java_console/ui/src/main/java/com/rusefi/maintenance/CalibrationsHelper.java +++ b/java_console/ui/src/main/java/com/rusefi/maintenance/CalibrationsHelper.java @@ -156,7 +156,7 @@ public class CalibrationsHelper { } } - private static Optional readAndBackupCurrentCalibrations( + public static Optional readAndBackupCurrentCalibrations( final PortResult ecuPort, final UpdateOperationCallbacks callbacks, final String backupFileName diff --git a/java_console/ui/src/main/java/com/rusefi/maintenance/TuneUploader.java b/java_console/ui/src/main/java/com/rusefi/maintenance/TuneUploader.java index f710293372..bb787d65d8 100644 --- a/java_console/ui/src/main/java/com/rusefi/maintenance/TuneUploader.java +++ b/java_console/ui/src/main/java/com/rusefi/maintenance/TuneUploader.java @@ -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 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; }