Refactoring, technical debt: export more of trigger attributes into triggers.txt file #2077

This commit is contained in:
rusefillc 2021-04-29 17:35:50 -04:00
parent 73ca428217
commit b0d2a7b8bd
4 changed files with 14 additions and 7 deletions

View File

@ -1816,8 +1816,8 @@ cmd_set_engine_type_default = "@@TS_IO_TEST_COMMAND_char@@\x00\x31\x00\x00"
dialog = triggerConfiguration_settings, "Trigger Pattern" dialog = triggerConfiguration_settings, "Trigger Pattern"
field = "!https://rusefi.com/s/trigger" field = "!https://rusefi.com/s/trigger"
field = "Trigger type", trigger_type field = "Trigger type", trigger_type
field = "Total tooth count", trigger_customTotalToothCount, {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 == 0}, {trigger_type == 0} 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 ; see also in firmware '[doesTriggerImplyOperationMode]' tag
field = "Operation mode / speed", ambiguousOperationMode field = "Operation mode / speed", ambiguousOperationMode

View File

@ -72,7 +72,7 @@ public class ReaderState {
int index = line.indexOf(' '); int index = line.indexOf(' ');
String name = line.substring(0, index); 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) { if (autoEnumOptions != null) {
VariableRegistry.INSTANCE.register(name + "_auto_enum", autoEnumOptions); VariableRegistry.INSTANCE.register(name + "_auto_enum", autoEnumOptions);
} }

View File

@ -3,7 +3,6 @@ package com.rusefi;
import com.rusefi.enum_reader.Value; import com.rusefi.enum_reader.Value;
import com.rusefi.util.LazyFile; import com.rusefi.util.LazyFile;
import com.rusefi.util.SystemOut; import com.rusefi.util.SystemOut;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import java.io.IOException; import java.io.IOException;
@ -35,7 +34,8 @@ public class VariableRegistry {
public VariableRegistry() { public VariableRegistry() {
} }
public static String getEnumOptionsForTunerStudio(EnumsReader enumsReader, VariableRegistry variableRegistry, String enumName) { @Nullable
public TreeMap<Integer, String> resolveEnumValues(EnumsReader enumsReader, String enumName) {
TreeMap<Integer, String> valueNameById = new TreeMap<>(); TreeMap<Integer, String> valueNameById = new TreeMap<>();
Map<String, Value> stringValueMap = enumsReader.getEnums().get(enumName); Map<String, Value> stringValueMap = enumsReader.getEnums().get(enumName);
@ -48,13 +48,20 @@ public class VariableRegistry {
if (isNumeric(value.getValue())) { if (isNumeric(value.getValue())) {
valueNameById.put(value.getIntValue(), value.getName()); valueNameById.put(value.getIntValue(), value.getName());
} else { } else {
String valueFromRegistry = variableRegistry.get(value.getValue()); String valueFromRegistry = get(value.getValue());
if (valueFromRegistry == null) if (valueFromRegistry == null)
throw new IllegalStateException("No value for " + value); throw new IllegalStateException("No value for " + value);
int intValue = Integer.parseInt(valueFromRegistry); int intValue = Integer.parseInt(valueFromRegistry);
valueNameById.put(intValue, value.getName()); valueNameById.put(intValue, value.getName());
} }
} }
return valueNameById;
}
public String getEnumOptionsForTunerStudio(EnumsReader enumsReader, String enumName) {
TreeMap<Integer, String> valueNameById = resolveEnumValues(enumsReader, enumName);
if (valueNameById == null)
return null;
int maxValue = valueNameById.lastKey(); int maxValue = valueNameById.lastKey();

View File

@ -23,7 +23,7 @@ public class ConfigDefinitionTest {
ConfigDefinition.readPrependValues(variableRegistry, FIRMWARE + File.separator + "integration/rusefi_config.txt"); 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); System.out.println(sb);
assertNotNull(sb); assertNotNull(sb);