diff --git a/firmware/controllers/algo/rusefi_hw_enums.h b/firmware/controllers/algo/rusefi_hw_enums.h index c4b421d9c6..94b2d3056a 100644 --- a/firmware/controllers/algo/rusefi_hw_enums.h +++ b/firmware/controllers/algo/rusefi_hw_enums.h @@ -256,9 +256,9 @@ typedef enum __attribute__ ((__packed__)) { EFI_ADC_NONE = 16, EFI_ADC_ERROR = 17, #if EFI_UNIT_TEST - TEST_MAF_CHANNEL = 113, - TEST_CLT_CHANNEL = 114, - TEST_IAT_CHANNEL = 115, + TEST_MAF_CHANNEL = 18, + TEST_CLT_CHANNEL = 19, + TEST_IAT_CHANNEL = 20, #endif } adc_channel_e; diff --git a/java_tools/ConfigDefinition.jar b/java_tools/ConfigDefinition.jar index de392ac045..624ec12fd9 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/board_generator/BoardReader.java b/java_tools/configuration_definition/src/com/rusefi/board_generator/BoardReader.java index 335abc0cb0..28b50bb19c 100644 --- a/java_tools/configuration_definition/src/com/rusefi/board_generator/BoardReader.java +++ b/java_tools/configuration_definition/src/com/rusefi/board_generator/BoardReader.java @@ -1,6 +1,5 @@ package com.rusefi.board_generator; -import com.rusefi.EnumToString; import com.rusefi.EnumsReader; import com.rusefi.enum_reader.Value; import org.yaml.snakeyaml.Yaml; @@ -59,19 +58,21 @@ public class BoardReader { private static String processSection(Map data, String headerEnumName, String oututEnumName, String sectionName, String NOTHING_NAME) { Map outputs = (Map) data.get(sectionName); - Map s = EnumsReader.enums.get(headerEnumName); - Objects.requireNonNull(s, "enum for " + headerEnumName); - System.out.println(s.size()); + Map enumMap = EnumsReader.enums.get(headerEnumName); + Objects.requireNonNull(enumMap, "enum for " + headerEnumName); + System.out.println(enumMap.size()); StringBuffer sb = new StringBuffer(); - for (int i = 0; i < 255; i++) { + int maxValue = getMaxValue(enumMap.values()); + + for (int i = 0; i < maxValue; i++) { if (sb.length() > 0) sb.append(","); String code; - Value v = findByOrdinal(i, s.values()); + Value v = findByOrdinal(i, enumMap.values()); if (v == null) { code = INVALID; @@ -88,6 +89,13 @@ public class BoardReader { return " #define " + oututEnumName + "_enum " + sb + "\r\n"; } + private static int getMaxValue(Collection values) { + int result = -1; + for (Value v : values) + result = Math.max(result, v.getIntValue()); + return result; + } + private static Value findByOrdinal(int ordinal, Collection values) { for (Value v : values) if (v.getValue().equals(String.valueOf(ordinal))) diff --git a/java_tools/enum_to_string/src/com/rusefi/enum_reader/Value.java b/java_tools/enum_to_string/src/com/rusefi/enum_reader/Value.java index 08d2111747..ade6fabbcc 100644 --- a/java_tools/enum_to_string/src/com/rusefi/enum_reader/Value.java +++ b/java_tools/enum_to_string/src/com/rusefi/enum_reader/Value.java @@ -17,6 +17,10 @@ public class Value implements Comparable { return value; } + public int getIntValue() { + return Integer.parseInt(value); + } + @Override public int compareTo(Value o) { return name.compareTo(o.name);