diff --git a/firmware/controllers/algo/engine_types.h b/firmware/controllers/algo/engine_types.h index 7d58cbd932..9da3686348 100644 --- a/firmware/controllers/algo/engine_types.h +++ b/firmware/controllers/algo/engine_types.h @@ -170,8 +170,7 @@ UNUSED25 = 25, PROTEUS_MIATA_NB2 = 67, MRE_M111 = 68, - - HELLEN_NB2 = ET_HELLEN_NB2, + HELLEN_NB2 = 69, SUBARUEG33_DEFAULTS = 70, @@ -197,7 +196,7 @@ UNUSED25 = 25, HELLEN_121_NISSAN_8_CYL = 85, - HELLEN_NB2_36 = ET_HELLEN_NB2_36, + HELLEN_NB2_36 = 86, HELLEN_121_NISSAN_ALMERA_N16 = 87, diff --git a/java_tools/ConfigDefinition.jar b/java_tools/ConfigDefinition.jar index 47e758add2..046c7d2600 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/ReaderState.java b/java_tools/configuration_definition/src/main/java/com/rusefi/ReaderState.java index 83aabbab1e..0e6b07c154 100644 --- a/java_tools/configuration_definition/src/main/java/com/rusefi/ReaderState.java +++ b/java_tools/configuration_definition/src/main/java/com/rusefi/ReaderState.java @@ -69,6 +69,13 @@ public class ReaderState { String key = enumFamily.getKey() + "_" + enumValue.getKey(); String value = enumValue.getValue().getValue(); variableRegistry.register(key, value); + + try { + int numericValue = enumValue.getValue().getIntValue(); + variableRegistry.registerHex(key, numericValue); + } catch (NumberFormatException ignore) { + // ENUM_32_BITS would be an example of a non-numeric enum, let's just skip for now + } } } diff --git a/java_tools/configuration_definition/src/main/java/com/rusefi/test/EnumAsTsVariable.java b/java_tools/configuration_definition/src/main/java/com/rusefi/test/EnumAsTsVariable.java index 999e45fb51..f156e7b262 100644 --- a/java_tools/configuration_definition/src/main/java/com/rusefi/test/EnumAsTsVariable.java +++ b/java_tools/configuration_definition/src/main/java/com/rusefi/test/EnumAsTsVariable.java @@ -1,5 +1,6 @@ package com.rusefi.test; +import com.rusefi.EnumsReader; import com.rusefi.ReaderState; import org.junit.Test; @@ -8,6 +9,7 @@ import java.io.IOException; import java.io.StringReader; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; public class EnumAsTsVariable { @Test @@ -22,8 +24,13 @@ public class EnumAsTsVariable { "Force_4b_firing_order = ENUM_32_BITS,\n" + "} firing_order_e;"))); + EnumsReader.EnumState state = readerState.enumsReader.getEnums().get("firing_order_e"); + assertNotNull(state); + String data = readerState.variableRegistry.get("firing_order_e_FO_1"); + assertEquals("0", data); assertEquals("0", readerState.variableRegistry.applyVariables("@@firing_order_e_FO_1@@")); + assertEquals("\\x00\\x00", readerState.variableRegistry.applyVariables("@@firing_order_e_FO_1_16_hex@@")); } } 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 4ed6cdcf0d..ecd3a25a4a 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 @@ -241,7 +241,7 @@ public class VariableRegistry { registerHex(name, value); } - private void registerHex(String name, int value) { + public void registerHex(String name, int value) { register(name + _HEX_SUFFIX, Integer.toString(value, 16)); String _16_hex = String.format("\\\\x%02x\\\\x%02x", (value >> 8) & 0xFF, value & 0xFF); register(name + _16_HEX_SUFFIX, _16_hex);