diff --git a/firmware/controllers/algo/auto_generated_enums.cpp b/firmware/controllers/algo/auto_generated_enums.cpp
index d949586ab1..d01bde12ca 100644
--- a/firmware/controllers/algo/auto_generated_enums.cpp
+++ b/firmware/controllers/algo/auto_generated_enums.cpp
@@ -1,6 +1,6 @@
// auto-generated from.\controllers/algo/rusefi_enums.h
// by enum2string.jar tool
-// on Thu Nov 22 20:05:41 EST 2018
+// on Wed Apr 10 18:38:13 EDT 2019
// see also gen_config_and_enums.bat
@@ -35,6 +35,8 @@ case DODGE_RAM:
return "DODGE_RAM";
case DODGE_STRATUS:
return "DODGE_STRATUS";
+case ETB_BENCH_ENGINE:
+ return "ETB_BENCH_ENGINE";
case FORD_ASPIRE_1996:
return "FORD_ASPIRE_1996";
case FORD_ESCORT_GT:
@@ -91,10 +93,6 @@ case MIATA_NA6_MAP:
return "MIATA_NA6_MAP";
case MIATA_NA6_VAF:
return "MIATA_NA6_VAF";
-case ETB_BENCH_ENGINE:
- return "ETB_BENCH_ENGINE";
-case TLE8888_BENCH_ENGINE:
- return "TLE8888_BENCH_ENGINE";
case MINIMAL_PINS:
return "MINIMAL_PINS";
case MINI_COOPER_R50:
@@ -127,6 +125,8 @@ case TEST_ISSUE_366_BOTH:
return "TEST_ISSUE_366_BOTH";
case TEST_ISSUE_366_RISE:
return "TEST_ISSUE_366_RISE";
+case TLE8888_BENCH_ENGINE:
+ return "TLE8888_BENCH_ENGINE";
case TOYOTA_2JZ_GTE_VVTi:
return "TOYOTA_2JZ_GTE_VVTi";
case TOYOTA_JZS147:
@@ -365,6 +365,19 @@ case OM_OPENDRAIN_INVERTED:
}
return NULL;
}
+const char *getPin_mode_e(pin_mode_e value){
+switch(value) {
+case PO_DEFAULT:
+ return "PO_DEFAULT";
+case PO_OPENDRAIN:
+ return "PO_OPENDRAIN";
+case PO_PULLDOWN:
+ return "PO_PULLDOWN";
+case PO_PULLUP:
+ return "PO_PULLUP";
+ }
+ return NULL;
+}
const char *getPin_input_mode_e(pin_input_mode_e value){
switch(value) {
case PI_DEFAULT:
@@ -401,10 +414,10 @@ case IM_INDIVIDUAL_COILS:
return "IM_INDIVIDUAL_COILS";
case IM_ONE_COIL:
return "IM_ONE_COIL";
+case IM_TWO_COILS:
+ return "IM_TWO_COILS";
case IM_WASTED_SPARK:
return "IM_WASTED_SPARK";
-case IM_TWO_COILS:
- return "IM_TWO_COILS";
}
return NULL;
}
@@ -451,6 +464,19 @@ case UART_NONE:
}
return NULL;
}
+const char *getSpi_speed_e(spi_speed_e value){
+switch(value) {
+case _150KHz:
+ return "_150KHz";
+case _1_25MHz:
+ return "_1_25MHz";
+case _2_5MHz:
+ return "_2_5MHz";
+case _5MHz:
+ return "_5MHz";
+ }
+ return NULL;
+}
const char *getSpi_device_e(spi_device_e value){
switch(value) {
case Force_4_bytes_size_spi_device:
@@ -526,6 +552,8 @@ const char *getEgo_sensor_e(ego_sensor_e value){
switch(value) {
case ES_14Point7_Free:
return "ES_14Point7_Free";
+case ES_AEM:
+ return "ES_AEM";
case ES_BPSX_D1:
return "ES_BPSX_D1";
case ES_Custom:
@@ -534,8 +562,6 @@ case ES_Innovate_MTX_L:
return "ES_Innovate_MTX_L";
case ES_NarrowBand:
return "ES_NarrowBand";
-case ES_AEM:
- return "ES_AEM";
case ES_PLX:
return "ES_PLX";
case Force_4_bytes_size_ego_sensor:
@@ -705,10 +731,6 @@ case GPIOE_8:
return "GPIOE_8";
case GPIOE_9:
return "GPIOE_9";
-case GPIO_INVALID:
- return "GPIO_INVALID";
-case GPIO_UNASSIGNED:
- return "GPIO_UNASSIGNED";
case GPIOF_0:
return "GPIOF_0";
case GPIOF_1:
@@ -770,7 +792,7 @@ case GPIOG_6:
case GPIOG_7:
return "GPIOG_7";
case GPIOG_8:
- return "GPIOA_G";
+ return "GPIOG_8";
case GPIOG_9:
return "GPIOG_9";
case GPIOH_0:
@@ -805,13 +827,15 @@ case GPIOH_8:
return "GPIOH_8";
case GPIOH_9:
return "GPIOH_9";
+case GPIO_INVALID:
+ return "GPIO_INVALID";
+case GPIO_UNASSIGNED:
+ return "GPIO_UNASSIGNED";
}
return NULL;
}
const char *getDebug_mode_e(debug_mode_e value){
switch(value) {
-case DBG_TLE8888:
- return "DBG_TLE8888";
case DBG_32:
return "DBG_32";
case DBG_33:
@@ -854,6 +878,8 @@ case DBG_IGNITION_TIMING:
return "DBG_IGNITION_TIMING";
case DBG_INSTANT_RPM:
return "DBG_INSTANT_RPM";
+case DBG_ION:
+ return "DBG_ION";
case DBG_KNOCK:
return "DBG_KNOCK";
case DBG_MAP:
@@ -866,6 +892,8 @@ case DBG_SR5_PROTOCOL:
return "DBG_SR5_PROTOCOL";
case DBG_STATUS:
return "DBG_STATUS";
+case DBG_TLE8888:
+ return "DBG_TLE8888";
case DBG_TPS_ACCEL:
return "DBG_TPS_ACCEL";
case DBG_TRIGGER_INPUT:
@@ -878,8 +906,6 @@ case DBG_VVT:
return "DBG_VVT";
case DBG_WARMUP_ENRICH:
return "DBG_WARMUP_ENRICH";
-case DBG_ION:
- return "DBG_ION";
case Force_4_bytes_size_debug_mode_e:
return "Force_4_bytes_size_debug_mode_e";
}
diff --git a/java_tools/enum2string.jar b/java_tools/enum2string.jar
index c9c79f78d9..ad8e266fcd 100644
Binary files a/java_tools/enum2string.jar and b/java_tools/enum2string.jar differ
diff --git a/java_tools/enum_to_string/.idea/misc.xml b/java_tools/enum_to_string/.idea/misc.xml
index 1eee6a6201..d5d79e0ca5 100644
--- a/java_tools/enum_to_string/.idea/misc.xml
+++ b/java_tools/enum_to_string/.idea/misc.xml
@@ -1,9 +1,6 @@
-
+
-
-
-
\ No newline at end of file
diff --git a/java_tools/enum_to_string/.idea/vcs.xml b/java_tools/enum_to_string/.idea/vcs.xml
index ebabb34f16..9b76d0c0c2 100644
--- a/java_tools/enum_to_string/.idea/vcs.xml
+++ b/java_tools/enum_to_string/.idea/vcs.xml
@@ -2,6 +2,6 @@
+
-
-
+
\ No newline at end of file
diff --git a/java_tools/enum_to_string/src/com/rusefi/EnumToString.java b/java_tools/enum_to_string/src/com/rusefi/EnumToString.java
index c43ea2b89f..25f41bac96 100644
--- a/java_tools/enum_to_string/src/com/rusefi/EnumToString.java
+++ b/java_tools/enum_to_string/src/com/rusefi/EnumToString.java
@@ -14,7 +14,7 @@ import java.util.TreeSet;
public class EnumToString {
private final static Set currentValues = new TreeSet<>();
- private final static StringBuilder cppFileContent = new StringBuilder();
+ public final static StringBuilder cppFileContent = new StringBuilder();
private final static StringBuilder headerFileContent = new StringBuilder();
public static void main(String[] args) throws IOException {
@@ -46,7 +46,6 @@ public class EnumToString {
}
private static void process(String inFileName) throws IOException {
- BufferedReader reader;
String header = "// auto-generated from" + inFileName + "\r\n" +
"// by enum2string.jar tool\r\n" +
@@ -59,7 +58,6 @@ public class EnumToString {
cppFileContent.append(header);
EnumToString.headerFileContent.insert(0, header);
- boolean isInsideEnum = false;
File f = new File(inFileName);
System.out.println("Reading from " + inFileName);
@@ -69,12 +67,21 @@ public class EnumToString {
cppFileContent.append("#include \"" + simpleFileName + "\"\r\n");
EnumToString.headerFileContent.append("#include \"" + simpleFileName + "\"\r\n");
- reader = new BufferedReader(new FileReader(inFileName));
+ process(new FileReader(inFileName));
+ }
+
+ public static void clear() {
+ cppFileContent.setLength(0);
+ }
+
+ public static void process(Reader in) throws IOException {
+ boolean isInsideEnum = false;
+ BufferedReader reader = new BufferedReader(in);
String line;
while ((line = reader.readLine()) != null) {
line = removeSpaces(line);
- if (line.startsWith("typedefenum{")) {
+ if (line.startsWith("typedefenum{") || line.startsWith("typedefenum__attribute__")) {
System.out.println("Entering enum");
currentValues.clear();
isInsideEnum = true;
diff --git a/java_tools/enum_to_string/src/com/rusefi/EnumToStringTest.java b/java_tools/enum_to_string/src/com/rusefi/EnumToStringTest.java
index d225258089..ea6b95c315 100644
--- a/java_tools/enum_to_string/src/com/rusefi/EnumToStringTest.java
+++ b/java_tools/enum_to_string/src/com/rusefi/EnumToStringTest.java
@@ -2,7 +2,11 @@ package com.rusefi;
import org.junit.Test;
+import java.io.IOException;
+import java.io.StringReader;
+
import static com.rusefi.EnumToString.isKeyValueLine;
+import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
public class EnumToStringTest {
@@ -12,4 +16,42 @@ public class EnumToStringTest {
assertTrue(isKeyValueLine("MIN = 2,"));
assertTrue(isKeyValueLine("MIN = -3,"));
}
+
+ @Test
+ public void parseEnum() throws IOException {
+ EnumToString.clear();
+ EnumToString.process(new StringReader(
+ "typedef enum {\n" +
+ "\tGPIO_UNASSIGNED = 0,\n" +
+ "\tGPIO_INVALID = 1,\n" +
+ "}brain_pin_e;"));
+ assertEquals("const char *getBrain_pin_e(brain_pin_e value){\r\n" +
+ "switch(value) {\r\n" +
+ "case GPIO_INVALID:\r\n" +
+ " return \"GPIO_INVALID\";\r\n" +
+ "case GPIO_UNASSIGNED:\r\n" +
+ " return \"GPIO_UNASSIGNED\";\r\n" +
+ " }\r\n" +
+ " return NULL;\r\n" +
+ "}\r\n", EnumToString.cppFileContent.toString());
+ }
+
+ @Test
+ public void parsePackedEnum() throws IOException {
+ EnumToString.clear();
+ EnumToString.process(new StringReader(
+ "typedef enum __attribute__ ((__packed__)) {\n" +
+ "\tGPIO_UNASSIGNED = 0,\n" +
+ "\tGPIO_INVALID = 1,\n" +
+ "} brain_pin_e ;"));
+ assertEquals("const char *getBrain_pin_e(brain_pin_e value){\r\n" +
+ "switch(value) {\r\n" +
+ "case GPIO_INVALID:\r\n" +
+ " return \"GPIO_INVALID\";\r\n" +
+ "case GPIO_UNASSIGNED:\r\n" +
+ " return \"GPIO_UNASSIGNED\";\r\n" +
+ " }\r\n" +
+ " return NULL;\r\n" +
+ "}\r\n", EnumToString.cppFileContent.toString());
+ }
}