diff --git a/java_tools/ConfigDefinition.jar b/java_tools/ConfigDefinition.jar index 9ecb4d887b..fbe4f0887a 100644 Binary files a/java_tools/ConfigDefinition.jar and b/java_tools/ConfigDefinition.jar differ diff --git a/java_tools/configuration_definition/src/com/rusefi/ReaderState.java b/java_tools/configuration_definition/src/com/rusefi/ReaderState.java index b6cb02f06c..698b4221f0 100644 --- a/java_tools/configuration_definition/src/com/rusefi/ReaderState.java +++ b/java_tools/configuration_definition/src/com/rusefi/ReaderState.java @@ -26,6 +26,7 @@ public class ReaderState { private static final String STRUCT_NO_PREFIX = "struct_no_prefix "; private static final String STRUCT = "struct "; private static final String DEFINE_CONSTRUCTOR = "define_constructor"; + public static final char MULT_TOKEN = '*'; public Stack stack = new Stack<>(); public Map tsCustomSize = new HashMap<>(); public Map tsCustomLine = new HashMap<>(); @@ -80,7 +81,7 @@ public class ReaderState { customSize = customSize.replaceAll("x", "*"); line = VariableRegistry.INSTANCE.applyVariables(line); - int multPosition = customSize.indexOf('*'); + int multPosition = customSize.indexOf(MULT_TOKEN); if (multPosition != -1) { String firstPart = customSize.substring(0, multPosition); int first; diff --git a/java_tools/configuration_definition/src/com/rusefi/VariableRegistry.java b/java_tools/configuration_definition/src/com/rusefi/VariableRegistry.java index e3fd89298b..dc04306c20 100644 --- a/java_tools/configuration_definition/src/com/rusefi/VariableRegistry.java +++ b/java_tools/configuration_definition/src/com/rusefi/VariableRegistry.java @@ -57,6 +57,13 @@ public class VariableRegistry { return; } value = applyVariables(value); + int multPosition = value.indexOf(MULT_TOKEN); + if (multPosition != -1) { + Integer first = Integer.valueOf(value.substring(0, multPosition)); + Integer second = Integer.valueOf(value.substring(multPosition + 1)); + value = String.valueOf(first * second); + } + SystemOut.println("Registering " + var + " as " + value); data.put(var, value); diff --git a/java_tools/configuration_definition/src/com/rusefi/test/ConfigFieldParserTest.java b/java_tools/configuration_definition/src/com/rusefi/test/ConfigFieldParserTest.java index 7dc0b8cf16..89cfecb7f9 100644 --- a/java_tools/configuration_definition/src/com/rusefi/test/ConfigFieldParserTest.java +++ b/java_tools/configuration_definition/src/com/rusefi/test/ConfigFieldParserTest.java @@ -68,7 +68,7 @@ public class ConfigFieldParserTest { assertEquals("#define ERROR_BUFFER_COUNT 120\n" + "#define ERROR_BUFFER_SIZE 120\n" + - "#define RESULT 120*120\n", VariableRegistry.INSTANCE.getDefinesSection()); + "#define RESULT 14400\n", VariableRegistry.INSTANCE.getDefinesSection()); } @Test