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 fa1b2526bd..434a7f2566 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 @@ -82,6 +82,8 @@ public class ParseState { if (stringValueMap == null) return null; for (Value value : stringValueMap.values()) { + if (value.isForceSize()) + continue; if (isNumeric(value.getValue())) { valueNameById.put(value.getIntValue(), value.getName()); diff --git a/java_tools/enum2string.jar b/java_tools/enum2string.jar index cd46ed1c7a..6a1b9cb2cc 100644 Binary files a/java_tools/enum2string.jar and b/java_tools/enum2string.jar differ 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 56c7a6912f..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(); @@ -49,7 +53,9 @@ public class ToJavaEnum { int index = 0; for (Value value : sorted) { int numericValue = value.getIntValueMaybeResolve(registry); - if (index != numericValue) + if (index != numericValue + && !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 30572f4bdc..9a0457ae4a 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 @@ -95,6 +95,8 @@ public class VariableRegistry { TreeMap valueNameById = new TreeMap<>(); for (Value value : stringValueMap.values()) { + if (value.isForceSize()) + continue; if (isNumeric(value.getValue())) { valueNameById.put(value.getIntValue(), value.getName()); 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; }