diff --git a/java_console/autotest/src/com/rusefi/AutoTest.java b/java_console/autotest/src/com/rusefi/AutoTest.java
index e8dc3cff7d..87c19277eb 100644
--- a/java_console/autotest/src/com/rusefi/AutoTest.java
+++ b/java_console/autotest/src/com/rusefi/AutoTest.java
@@ -1,7 +1,6 @@
package com.rusefi;
-import com.opensr5.Logger;
import com.rusefi.binaryprotocol.BinaryProtocol;
import com.rusefi.config.generated.Fields;
import com.rusefi.core.MessagesCentral;
@@ -55,7 +54,7 @@ public class AutoTest {
BinaryProtocol bp = linkManager.getCurrentStreamState();
// let's make sure 'burn' command works since sometimes it does not
- bp.burn(Logger.CONSOLE);
+ bp.burn();
sendCommand(getDisableCommand(Fields.CMD_TRIGGER_HW_INPUT));
sendCommand(getEnableCommand(Fields.CMD_FUNCTIONAL_TEST_MODE));
diff --git a/java_console/inifile/inifile.iml b/java_console/inifile/inifile.iml
index bba5ef72ae..61f358d0f8 100644
--- a/java_console/inifile/inifile.iml
+++ b/java_console/inifile/inifile.iml
@@ -13,5 +13,6 @@
+
\ No newline at end of file
diff --git a/java_console/inifile/src/main/java/com/rusefi/tune/xml/Msq.java b/java_console/inifile/src/main/java/com/rusefi/tune/xml/Msq.java
index 1c0a590b69..7fd4db8f7b 100644
--- a/java_console/inifile/src/main/java/com/rusefi/tune/xml/Msq.java
+++ b/java_console/inifile/src/main/java/com/rusefi/tune/xml/Msq.java
@@ -1,5 +1,6 @@
package com.rusefi.tune.xml;
+import com.devexperts.logging.Logging;
import com.opensr5.ConfigurationImage;
import com.opensr5.ini.IniFileModel;
import com.opensr5.ini.field.IniField;
@@ -15,6 +16,7 @@ import java.util.Objects;
@XmlRootElement
public class Msq {
+ private static final Logging log = Logging.getLogging(Msq.class);
public List page = new ArrayList<>();
@@ -56,7 +58,7 @@ public class Msq {
}
IniField field = instance.allIniFields.get(constant.getName());
Objects.requireNonNull(field, "Field for " + constant.getName());
- System.out.println("Setting " + field);
+ log.debug("Setting " + field);
field.setValue(ci, constant);
}
return ci;
diff --git a/java_console/io/src/main/java/com/rusefi/binaryprotocol/BinaryProtocol.java b/java_console/io/src/main/java/com/rusefi/binaryprotocol/BinaryProtocol.java
index 4e46ad07eb..46f52c525e 100644
--- a/java_console/io/src/main/java/com/rusefi/binaryprotocol/BinaryProtocol.java
+++ b/java_console/io/src/main/java/com/rusefi/binaryprotocol/BinaryProtocol.java
@@ -287,7 +287,7 @@ public class BinaryProtocol implements BinaryProtocolCommands {
}
}
- public void uploadChanges(ConfigurationImage newVersion, Logger logger) throws InterruptedException, EOFException {
+ public void uploadChanges(ConfigurationImage newVersion) {
ConfigurationImage current = getControllerConfiguration();
// let's have our own copy which no one would be able to change
newVersion = newVersion.clone();
@@ -297,18 +297,18 @@ public class BinaryProtocol implements BinaryProtocolCommands {
if (range == null)
break;
int size = range.second - range.first;
- logger.info("Need to patch: " + range + ", size=" + size);
+ log.info("Need to patch: " + range + ", size=" + size);
byte[] oldBytes = current.getRange(range.first, size);
- logger.info("old " + Arrays.toString(oldBytes));
+ log.info("old " + Arrays.toString(oldBytes));
byte[] newBytes = newVersion.getRange(range.first, size);
- logger.info("new " + Arrays.toString(newBytes));
+ log.info("new " + Arrays.toString(newBytes));
- writeData(newVersion.getContent(), range.first, size, logger);
+ writeData(newVersion.getContent(), range.first, size);
offset = range.second;
}
- burn(logger);
+ burn();
setController(newVersion);
}
@@ -451,10 +451,10 @@ public class BinaryProtocol implements BinaryProtocolCommands {
Runtime.getRuntime().removeShutdownHook(hook);
}
- public void writeData(byte[] content, Integer offset, int size, Logger logger) {
+ public void writeData(byte[] content, Integer offset, int size) {
if (size > BLOCKING_FACTOR) {
- writeData(content, offset, BLOCKING_FACTOR, logger);
- writeData(content, offset + BLOCKING_FACTOR, size - BLOCKING_FACTOR, logger);
+ writeData(content, offset, BLOCKING_FACTOR);
+ writeData(content, offset + BLOCKING_FACTOR, size - BLOCKING_FACTOR);
return;
}
@@ -472,17 +472,17 @@ public class BinaryProtocol implements BinaryProtocolCommands {
while (!isClosed && (System.currentTimeMillis() - start < Timeouts.BINARY_IO_TIMEOUT)) {
byte[] response = executeCommand(packet, "writeImage");
if (!checkResponseCode(response, RESPONSE_OK) || response.length != 1) {
- logger.error("writeData: Something is wrong, retrying...");
+ log.error("writeData: Something is wrong, retrying...");
continue;
}
break;
}
}
- public void burn(Logger logger) {
+ public void burn() {
if (!isBurnPending)
return;
- logger.info("Need to burn");
+ log.info("Need to burn");
while (true) {
if (isClosed)
@@ -493,7 +493,7 @@ public class BinaryProtocol implements BinaryProtocolCommands {
}
break;
}
- logger.info("DONE");
+ log.info("DONE");
isBurnPending = false;
}
diff --git a/java_console/ui/src/main/java/com/rusefi/UploadChanges.java b/java_console/ui/src/main/java/com/rusefi/UploadChanges.java
index 204e39b014..ea1f576e90 100644
--- a/java_console/ui/src/main/java/com/rusefi/UploadChanges.java
+++ b/java_console/ui/src/main/java/com/rusefi/UploadChanges.java
@@ -1,13 +1,11 @@
package com.rusefi;
import com.opensr5.ConfigurationImage;
-import com.opensr5.Logger;
import com.rusefi.ui.StatusWindow;
import com.rusefi.ui.UIContext;
import javax.swing.*;
import java.awt.*;
-import java.io.EOFException;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
@@ -80,20 +78,14 @@ public class UploadChanges {
public static void scheduleUpload(UIContext uiContext, final ConfigurationImage newVersion, final Runnable afterUpload) {
if (1 == 1)
throw new UnsupportedOperationException("disabled");
- Logger logger = null;
JFrame frame = null;//wnd.getFrame();
frame.setVisible(true);
uiContext.getLinkManager().execute(new Runnable() {
@Override
public void run() {
- try {
- uiContext.getLinkManager().getCurrentStreamState().uploadChanges(newVersion, logger);
- if (afterUpload != null)
- afterUpload.run();
- } catch (InterruptedException | EOFException e) {
- logger.error("Error: " + e);
- throw new IllegalStateException(e);
- }
+ uiContext.getLinkManager().getCurrentStreamState().uploadChanges(newVersion);
+ if (afterUpload != null)
+ afterUpload.run();
}
@Override
diff --git a/java_console/ui/src/main/java/com/rusefi/tools/ConsoleTools.java b/java_console/ui/src/main/java/com/rusefi/tools/ConsoleTools.java
index 0733fa0cbc..b07939c885 100644
--- a/java_console/ui/src/main/java/com/rusefi/tools/ConsoleTools.java
+++ b/java_console/ui/src/main/java/com/rusefi/tools/ConsoleTools.java
@@ -68,7 +68,8 @@ public class ConsoleTools {
registerTool(SET_AUTH_TOKEN, ConsoleTools::setAuthToken, "Set rusEFI authentication token.");
registerTool("upload_tune", ConsoleTools::uploadTune, "Upload specified tune file to rusEFI Online using auth token from settings");
- registerTool("read_tune", strings1 -> readTune(), "Read tune from controller");
+ registerTool("read_tune", args -> readTune(), "Read tune from controller");
+ registerTool("write_tune", ConsoleTools::writeTune, "Write specified XML tune into controller");
registerTool("version", ConsoleTools::version, "Only print version");
@@ -238,6 +239,25 @@ public class ConsoleTools {
});
}
+ private static void writeTune(String[] args) throws Exception {
+ if (args.length < 2) {
+ System.out.println("No tune file name specified");
+ return;
+ }
+
+ String fileName = args[1];
+ Msq msq = Msq.readTune(fileName);
+
+ startAndConnect(linkManager -> {
+ ConfigurationImage ci = msq.asImage(IniFileModel.getInstance(), Fields.TOTAL_CONFIG_SIZE);
+ linkManager.getConnector().getBinaryProtocol().uploadChanges(ci);
+
+ //System.exit(0);
+ return null;
+ });
+
+ }
+
private static void invokeCallback(String callback) {
if (callback == null)
return;