From 8bfb2f5d899984c01b4a442adc9b9ba972439532 Mon Sep 17 00:00:00 2001 From: rusefi Date: Wed, 3 Jun 2020 17:22:46 -0400 Subject: [PATCH] TS plugin progress --- .../runConfigurations/AverageAnglesUtil.xml | 2 +- java_console/inifile/inifile.iml | 1 + .../src/com/rusefi/AverageAnglesUtil.java | 0 .../rusefi/binaryprotocol/BinaryProtocol.java | 8 +++- java_console/models/models.iml | 1 + .../rusefi/binaryprotocol/TSHighSpeedLog.java | 8 ++-- .../rusefi/binaryprotocol/VcdStreamFile.java | 7 +++- .../ts_plugin/src/com/rusefi/TsPlugin.java | 42 ++++++++++++++++++- 8 files changed, 61 insertions(+), 8 deletions(-) rename java_console/{models => io}/src/com/rusefi/AverageAnglesUtil.java (100%) 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 @@ \ 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]; }