diff --git a/java_console/.idea/runConfigurations/AverageAnglesUtil.xml b/java_console/.idea/runConfigurations/AverageAnglesUtil.xml
index f9e2bc10d6..435aea573b 100644
--- a/java_console/.idea/runConfigurations/AverageAnglesUtil.xml
+++ b/java_console/.idea/runConfigurations/AverageAnglesUtil.xml
@@ -1,7 +1,7 @@
-
+
diff --git a/java_console/inifile/inifile.iml b/java_console/inifile/inifile.iml
index 53a9ff9c1c..b6c3ff23b0 100644
--- a/java_console/inifile/inifile.iml
+++ b/java_console/inifile/inifile.iml
@@ -9,5 +9,6 @@
+
\ No newline at end of file
diff --git a/java_console/models/src/com/rusefi/AverageAnglesUtil.java b/java_console/io/src/com/rusefi/AverageAnglesUtil.java
similarity index 100%
rename from java_console/models/src/com/rusefi/AverageAnglesUtil.java
rename to java_console/io/src/com/rusefi/AverageAnglesUtil.java
diff --git a/java_console/io/src/com/rusefi/binaryprotocol/BinaryProtocol.java b/java_console/io/src/com/rusefi/binaryprotocol/BinaryProtocol.java
index f3848492d7..63c46afd0f 100644
--- a/java_console/io/src/com/rusefi/binaryprotocol/BinaryProtocol.java
+++ b/java_console/io/src/com/rusefi/binaryprotocol/BinaryProtocol.java
@@ -17,6 +17,7 @@ import com.rusefi.io.*;
import com.rusefi.tune.xml.Msq;
import com.rusefi.ui.livedocs.LiveDocsRegistry;
import jssc.SerialPortException;
+import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.io.EOFException;
@@ -76,7 +77,7 @@ public class BinaryProtocol implements BinaryProtocolCommands {
private boolean isCompositeLoggerEnabled;
private long lastLowRpmTime = System.currentTimeMillis();
- private List compositeLogs = Arrays.asList(new VcdStreamFile(), new TSHighSpeedLog());
+ private List compositeLogs = Arrays.asList(new VcdStreamFile(getFileName("rusEFI_trigger_log_")), new TSHighSpeedLog(getFileName("rusEFI_trigger_log_")));
public boolean isClosed;
/**
@@ -115,6 +116,11 @@ public class BinaryProtocol implements BinaryProtocolCommands {
}
}
+ @NotNull
+ public static String getFileName(String prefix) {
+ return FileLog.DIR + prefix + FileLog.getDate() + ".csv";
+ }
+
public void doSend(final String command, boolean fireEvent) throws InterruptedException {
FileLog.MAIN.logLine("Sending [" + command + "]");
if (fireEvent && LinkManager.LOG_LEVEL.isDebugEnabled()) {
diff --git a/java_console/models/models.iml b/java_console/models/models.iml
index 40de355d82..34e64e7bb4 100644
--- a/java_console/models/models.iml
+++ b/java_console/models/models.iml
@@ -7,6 +7,7 @@
+
\ No newline at end of file
diff --git a/java_console/models/src/com/rusefi/binaryprotocol/TSHighSpeedLog.java b/java_console/models/src/com/rusefi/binaryprotocol/TSHighSpeedLog.java
index 3ced323a52..1610032273 100644
--- a/java_console/models/src/com/rusefi/binaryprotocol/TSHighSpeedLog.java
+++ b/java_console/models/src/com/rusefi/binaryprotocol/TSHighSpeedLog.java
@@ -1,9 +1,7 @@
package com.rusefi.binaryprotocol;
-import com.rusefi.FileLog;
import com.rusefi.composite.CompositeEvent;
import com.rusefi.rusEFIVersion;
-import sun.misc.Launcher;
import java.io.FileWriter;
import java.io.IOException;
@@ -11,8 +9,13 @@ import java.io.Writer;
import java.util.List;
public class TSHighSpeedLog extends StreamFile {
+ private final String fileName;
private int prevTime = 0;
+ public TSHighSpeedLog(String fileName) {
+ this.fileName = fileName;
+ }
+
private static void writeHeader(Writer writer) throws IOException {
writer.write("#Firmware: console" + rusEFIVersion.CONSOLE_VERSION + " firmware " + rusEFIVersion.firmwareVersion.get() + "\n");
writer.write("PriLevel,SecLevel,Trigger,Sync,Time,ToothTime\n" +
@@ -23,7 +26,6 @@ public class TSHighSpeedLog extends StreamFile {
void append(List events) {
try {
if (writer == null) {
- String fileName = FileLog.DIR + "rusEFI_trigger_log_" + FileLog.getDate() + ".csv";
writer = new FileWriter(fileName);
writeHeader(writer);
}
diff --git a/java_console/models/src/com/rusefi/binaryprotocol/VcdStreamFile.java b/java_console/models/src/com/rusefi/binaryprotocol/VcdStreamFile.java
index 9057b711b6..dc9ed4c069 100644
--- a/java_console/models/src/com/rusefi/binaryprotocol/VcdStreamFile.java
+++ b/java_console/models/src/com/rusefi/binaryprotocol/VcdStreamFile.java
@@ -1,6 +1,5 @@
package com.rusefi.binaryprotocol;
-import com.rusefi.FileLog;
import com.rusefi.composite.CompositeEvent;
import java.io.FileWriter;
@@ -21,6 +20,11 @@ public class VcdStreamFile extends StreamFile {
private static final String TAG_SYNC = "y";
private static final String TAG_COIL = "c";
private static final String TAG_INJ = "i";
+ private final String fileName;
+
+ public VcdStreamFile(String fileName) {
+ this.fileName = fileName;
+ }
private static void writeHeader(Writer writer, Date date) throws IOException {
writer.write("$date\n");
@@ -70,7 +74,6 @@ public class VcdStreamFile extends StreamFile {
public void append(List events) {
try {
if (writer == null) {
- String fileName = FileLog.DIR + "rusEFI_trigger_log_" + FileLog.getDate() + ".vcd";
writer = new FileWriter(fileName);
writeHeader(writer, new Date());
}
diff --git a/java_tools/ts_plugin/src/com/rusefi/TsPlugin.java b/java_tools/ts_plugin/src/com/rusefi/TsPlugin.java
index 840588723d..f857ab8fac 100644
--- a/java_tools/ts_plugin/src/com/rusefi/TsPlugin.java
+++ b/java_tools/ts_plugin/src/com/rusefi/TsPlugin.java
@@ -5,11 +5,15 @@ import com.efiAnalytics.plugin.ecu.ControllerAccess;
import com.efiAnalytics.plugin.ecu.ControllerException;
import com.efiAnalytics.plugin.ecu.ControllerParameter;
import com.efiAnalytics.plugin.ecu.servers.ControllerParameterServer;
+import com.rusefi.config.Field;
import com.rusefi.tune.xml.Constant;
+import com.rusefi.tune.xml.Msq;
import com.rusefi.ui.util.Misc;
import javax.swing.*;
+import javax.xml.bind.JAXBException;
import java.awt.*;
+import java.io.IOException;
public class TsPlugin implements ApplicationPlugin {
private ControllerAccess controllerAccess;
@@ -46,6 +50,8 @@ public class TsPlugin implements ApplicationPlugin {
System.out.println("EcuConfigurationName " + config);
}
+ Msq msq = new Msq();
+
String configurationName = getConfigurationName();
ControllerParameterServer controllerParameterServer = controllerAccess.getControllerParameterServer();
String[] parameterNames = controllerParameterServer.getParameterNames(configurationName);
@@ -53,15 +59,49 @@ public class TsPlugin implements ApplicationPlugin {
for (String parameterName : parameterNames) {
ControllerParameter cp = controllerParameterServer.getControllerParameter(configurationName, parameterName);
String type = cp.getParamClass();
+ String value;
+ if (ControllerParameter.PARAM_CLASS_BITS.equals(type)) {
+ value = cp.getStringValue();
+ System.out.println("bits " + parameterName + ": " + value);
+ } else if (ControllerParameter.PARAM_CLASS_SCALAR.equals(type)) {
+ value = cp.getStringValue();
+ System.out.println("scalar " + parameterName + ": " + cp.getScalarValue() + "/" + cp.getStringValue());
- //new Constant(parameterName, cp.getUnits())
+ } else if (ControllerParameter.PARAM_CLASS_ARRAY.equals(type)) {
+ value = getArrayValue(cp.getArrayValues());
+ } else {
+ System.out.println("name=" + parameterName + " type " + type + "/" + cp.getStringValue());
+ value = cp.getStringValue();
+ }
+ msq.getPage().constant.add(new Constant(parameterName, cp.getUnits(), value));
}
+
+ try {
+ msq.writeXmlFile("plugin.xml");
+ } catch (JAXBException | IOException e) {
+ System.out.println("Error writing XML: " + e);
+ }
+
} catch (ControllerException e) {
e.printStackTrace();
}
}
+ private String getArrayValue(double[][] arrayValues) {
+ StringBuilder sb = new StringBuilder();
+ for (int rowIndex = 0; rowIndex < arrayValues.length; rowIndex++) {
+ double[] array = arrayValues[rowIndex];
+ sb.append("\n\t");
+ for (int colIndex = 0; colIndex < array.length; colIndex++) {
+ double value = array[colIndex];
+ sb.append(' ');
+ sb.append(value);
+ }
+ }
+ sb.append("\n");
+ }
+
public static String getConfigurationName() {
return ControllerAccess.getInstance().getEcuConfigurationNames()[0];
}