diff --git a/java_tools/ConfigDefinition.jar b/java_tools/ConfigDefinition.jar index 6f7d7b2b2b..77a8ac206c 100644 Binary files a/java_tools/ConfigDefinition.jar and b/java_tools/ConfigDefinition.jar differ diff --git a/java_tools/configuration_definition/src/main/java/com/rusefi/newparse/ParseState.java b/java_tools/configuration_definition/src/main/java/com/rusefi/newparse/ParseState.java index ea4db5a4a1..49d5d07d87 100644 --- a/java_tools/configuration_definition/src/main/java/com/rusefi/newparse/ParseState.java +++ b/java_tools/configuration_definition/src/main/java/com/rusefi/newparse/ParseState.java @@ -72,7 +72,7 @@ public class ParseState { if (stringValueMap == null) return null; for (Value value : stringValueMap.values()) { - if (value.getValue().contains("ENUM_32_BITS")) + if (value.isForceSize()) continue; if (isNumeric(value.getValue())) { diff --git a/java_tools/configuration_definition/src/test/java/com/rusefi/test/ConfigDefinitionTest.java b/java_tools/configuration_definition/src/test/java/com/rusefi/test/ConfigDefinitionTest.java index a0668bbc53..eaba11c2a6 100644 --- a/java_tools/configuration_definition/src/test/java/com/rusefi/test/ConfigDefinitionTest.java +++ b/java_tools/configuration_definition/src/test/java/com/rusefi/test/ConfigDefinitionTest.java @@ -9,6 +9,7 @@ import java.io.FileReader; import java.io.IOException; import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; public class ConfigDefinitionTest { private static final String FIRMWARE = "../../firmware"; @@ -27,5 +28,6 @@ public class ConfigDefinitionTest { System.out.println(sb); assertNotNull(sb); + assertTrue("Seems too long" + sb, sb.length() < 100000); } } diff --git a/java_tools/configuration_definition/src/test/java/com/rusefi/test/EnumAsTsVariable.java b/java_tools/configuration_definition/src/test/java/com/rusefi/test/EnumAsTsVariable.java index f156e7b262..d442db2b5a 100644 --- a/java_tools/configuration_definition/src/test/java/com/rusefi/test/EnumAsTsVariable.java +++ b/java_tools/configuration_definition/src/test/java/com/rusefi/test/EnumAsTsVariable.java @@ -21,6 +21,7 @@ public class EnumAsTsVariable { "\n" + "\t// 2 cylinder\n" + "\tFO_1_2 = 8,\n" + + "Force_2b_firing_order = ENUM_16_BITS,\n" + "Force_4b_firing_order = ENUM_32_BITS,\n" + "} firing_order_e;"))); diff --git a/java_tools/enum_to_string/src/main/java/com/rusefi/ToJavaEnum.java b/java_tools/enum_to_string/src/main/java/com/rusefi/ToJavaEnum.java index 6de36f654a..36afc8e7e7 100644 --- a/java_tools/enum_to_string/src/main/java/com/rusefi/ToJavaEnum.java +++ b/java_tools/enum_to_string/src/main/java/com/rusefi/ToJavaEnum.java @@ -12,6 +12,10 @@ import java.util.List; import java.util.Map; public class ToJavaEnum { + + public static final String FORCE_2_BYTES_SIZE = "Force_2_bytes_size"; + public static final String FORCE_4_BYTES_SIZE = "Force_4_bytes_size"; + public static void main(String[] args) throws IOException { InvokeReader invokeReader = new InvokeReader(args).invoke(); String outputPath = invokeReader.getOutputPath(); @@ -50,8 +54,8 @@ public class ToJavaEnum { for (Value value : sorted) { int numericValue = value.getIntValueMaybeResolve(registry); if (index != numericValue - && !value.getName().startsWith("Force_2_bytes_size") - && !value.getName().startsWith("Force_4_bytes_size")) + && !value.getName().startsWith(FORCE_2_BYTES_SIZE) + && !value.getName().startsWith(FORCE_4_BYTES_SIZE)) throw new IllegalStateException("Got explicit ordinal " + numericValue + " instead of ordinal " + index + " in " + value); sb.append("\t" + value.getName() + ",\n"); index++; diff --git a/java_tools/enum_to_string/src/main/java/com/rusefi/VariableRegistry.java b/java_tools/enum_to_string/src/main/java/com/rusefi/VariableRegistry.java index 5afd2a0b3e..fe54bdb229 100644 --- a/java_tools/enum_to_string/src/main/java/com/rusefi/VariableRegistry.java +++ b/java_tools/enum_to_string/src/main/java/com/rusefi/VariableRegistry.java @@ -2,7 +2,6 @@ package com.rusefi; import com.devexperts.logging.Logging; import com.rusefi.enum_reader.Value; -import com.rusefi.util.SystemOut; import org.jetbrains.annotations.Nullable; import java.io.BufferedReader; @@ -20,7 +19,7 @@ import static com.devexperts.logging.Logging.getLogging; /** * 3/30/2015 */ -public class VariableRegistry { +public class VariableRegistry { private static final Logging log = getLogging(VariableRegistry.class); public static final String _16_HEX_SUFFIX = "_16_hex"; @@ -94,7 +93,7 @@ public class VariableRegistry { if (stringValueMap == null) return null; for (Value value : stringValueMap.values()) { - if (value.getValue().contains("ENUM_32_BITS")) + if (value.isForceSize()) continue; if (isNumeric(value.getValue())) { @@ -131,6 +130,7 @@ public class VariableRegistry { /** * This method replaces variables references like @@var@@ with actual values * An exception is thrown if we do not have such variable + * * @return string with variable values inlined */ public String applyVariables(String line) { diff --git a/java_tools/enum_to_string/src/main/java/com/rusefi/enum_reader/Value.java b/java_tools/enum_to_string/src/main/java/com/rusefi/enum_reader/Value.java index 1b749b0e52..e287ce3fae 100644 --- a/java_tools/enum_to_string/src/main/java/com/rusefi/enum_reader/Value.java +++ b/java_tools/enum_to_string/src/main/java/com/rusefi/enum_reader/Value.java @@ -4,6 +4,9 @@ import com.rusefi.VariableRegistry; import java.util.Objects; +import static com.rusefi.ToJavaEnum.FORCE_2_BYTES_SIZE; +import static com.rusefi.ToJavaEnum.FORCE_4_BYTES_SIZE; + public class Value implements Comparable { private final String name; private final String value; @@ -13,6 +16,10 @@ public class Value implements Comparable { this.value = value; } + public boolean isForceSize() { + return getName().startsWith(FORCE_2_BYTES_SIZE) || getName().startsWith(FORCE_4_BYTES_SIZE); + } + public String getName() { return name; }