diff --git a/firmware/tunerstudio/rusefi.input b/firmware/tunerstudio/rusefi.input index 48a740af14..f989c45e51 100644 --- a/firmware/tunerstudio/rusefi.input +++ b/firmware/tunerstudio/rusefi.input @@ -1816,8 +1816,8 @@ cmd_set_engine_type_default = "@@TS_IO_TEST_COMMAND_char@@\x00\x31\x00\x00" dialog = triggerConfiguration_settings, "Trigger Pattern" field = "!https://rusefi.com/s/trigger" field = "Trigger type", trigger_type - field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} - field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == @@TT_TT_TOOTHED_WHEEL@@}, {trigger_type == @@TT_TT_TOOTHED_WHEEL@@} + field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == @@TT_TT_TOOTHED_WHEEL@@}, {trigger_type == @@TT_TT_TOOTHED_WHEEL@@} ; see also in firmware '[doesTriggerImplyOperationMode]' tag field = "Operation mode / speed", ambiguousOperationMode diff --git a/java_tools/configuration_definition/src/com/rusefi/ReaderState.java b/java_tools/configuration_definition/src/com/rusefi/ReaderState.java index 1bd53c1228..f657dc46bc 100644 --- a/java_tools/configuration_definition/src/com/rusefi/ReaderState.java +++ b/java_tools/configuration_definition/src/com/rusefi/ReaderState.java @@ -72,7 +72,7 @@ public class ReaderState { int index = line.indexOf(' '); String name = line.substring(0, index); - String autoEnumOptions = VariableRegistry.getEnumOptionsForTunerStudio(state.enumsReader, VariableRegistry.INSTANCE, name); + String autoEnumOptions = VariableRegistry.INSTANCE.getEnumOptionsForTunerStudio(state.enumsReader, name); if (autoEnumOptions != null) { VariableRegistry.INSTANCE.register(name + "_auto_enum", autoEnumOptions); } diff --git a/java_tools/configuration_definition/src/com/rusefi/VariableRegistry.java b/java_tools/configuration_definition/src/com/rusefi/VariableRegistry.java index 9ee10f3f12..9b6280bf2a 100644 --- a/java_tools/configuration_definition/src/com/rusefi/VariableRegistry.java +++ b/java_tools/configuration_definition/src/com/rusefi/VariableRegistry.java @@ -3,7 +3,6 @@ package com.rusefi; import com.rusefi.enum_reader.Value; import com.rusefi.util.LazyFile; import com.rusefi.util.SystemOut; -import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.io.IOException; @@ -35,7 +34,8 @@ public class VariableRegistry { public VariableRegistry() { } - public static String getEnumOptionsForTunerStudio(EnumsReader enumsReader, VariableRegistry variableRegistry, String enumName) { + @Nullable + public TreeMap resolveEnumValues(EnumsReader enumsReader, String enumName) { TreeMap valueNameById = new TreeMap<>(); Map stringValueMap = enumsReader.getEnums().get(enumName); @@ -48,13 +48,20 @@ public class VariableRegistry { if (isNumeric(value.getValue())) { valueNameById.put(value.getIntValue(), value.getName()); } else { - String valueFromRegistry = variableRegistry.get(value.getValue()); + String valueFromRegistry = get(value.getValue()); if (valueFromRegistry == null) throw new IllegalStateException("No value for " + value); int intValue = Integer.parseInt(valueFromRegistry); valueNameById.put(intValue, value.getName()); } } + return valueNameById; + } + + public String getEnumOptionsForTunerStudio(EnumsReader enumsReader, String enumName) { + TreeMap valueNameById = resolveEnumValues(enumsReader, enumName); + if (valueNameById == null) + return null; int maxValue = valueNameById.lastKey(); diff --git a/java_tools/configuration_definition/src/com/rusefi/test/ConfigDefinitionTest.java b/java_tools/configuration_definition/src/com/rusefi/test/ConfigDefinitionTest.java index 57e57faff4..63164ff90a 100644 --- a/java_tools/configuration_definition/src/com/rusefi/test/ConfigDefinitionTest.java +++ b/java_tools/configuration_definition/src/com/rusefi/test/ConfigDefinitionTest.java @@ -23,7 +23,7 @@ public class ConfigDefinitionTest { ConfigDefinition.readPrependValues(variableRegistry, FIRMWARE + File.separator + "integration/rusefi_config.txt"); - String sb = VariableRegistry.getEnumOptionsForTunerStudio(enumsReader, variableRegistry, "engine_type_e"); + String sb = variableRegistry.getEnumOptionsForTunerStudio(enumsReader, "engine_type_e"); System.out.println(sb); assertNotNull(sb);