diff --git a/firmware/controllers/lua/generated/value_lookup_generated.md b/firmware/controllers/lua/generated/value_lookup_generated.md new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/firmware/controllers/lua/generated/value_lookup_generated.md @@ -0,0 +1 @@ + diff --git a/firmware/gen_config_common.sh b/firmware/gen_config_common.sh index 57a8a7ec2c..fb53420929 100755 --- a/firmware/gen_config_common.sh +++ b/firmware/gen_config_common.sh @@ -13,7 +13,7 @@ COMMON_GEN_CONFIG=" -firing_order controllers/algo/firing_order.h \ -triggerInputFolder ../unit_tests \ -with_c_defines false \ - -field_lookup_file controllers/lua/generated/value_lookup_generated.cpp \ + -field_lookup_file controllers/lua/generated/value_lookup_generated.cpp controllers/lua/generated/value_lookup_generated.md \ -java_destination ../java_console/models/src/main/java/com/rusefi/config/generated/Fields.java \ -initialize_to_zero false \ -prepend console/binary/generated/total_live_data_generated.h \ diff --git a/java_tools/ConfigDefinition.jar b/java_tools/ConfigDefinition.jar index c4fc398b27..91c1aee8f0 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/ConfigDefinition.java b/java_tools/configuration_definition/src/main/java/com/rusefi/ConfigDefinition.java index 23a929e746..64549fecb7 100644 --- a/java_tools/configuration_definition/src/main/java/com/rusefi/ConfigDefinition.java +++ b/java_tools/configuration_definition/src/main/java/com/rusefi/ConfigDefinition.java @@ -107,8 +107,12 @@ public class ConfigDefinition { case KEY_JAVA_DESTINATION: state.addJavaDestination(args[i + 1]); break; - case "-field_lookup_file": - state.destinations.add(new GetConfigValueConsumer(args[i + 1])); + case "-field_lookup_file": { + String cppFile = args[i + 1]; + String mdFile = args[i + 2]; + i++; + state.destinations.add(new GetConfigValueConsumer(cppFile, mdFile)); + } break; case "-readfile": String keyName = args[i + 1]; diff --git a/java_tools/configuration_definition/src/main/java/com/rusefi/output/GetConfigValueConsumer.java b/java_tools/configuration_definition/src/main/java/com/rusefi/output/GetConfigValueConsumer.java index a27e51065a..adee32eaf0 100644 --- a/java_tools/configuration_definition/src/main/java/com/rusefi/output/GetConfigValueConsumer.java +++ b/java_tools/configuration_definition/src/main/java/com/rusefi/output/GetConfigValueConsumer.java @@ -34,9 +34,17 @@ public class GetConfigValueConsumer implements ConfigurationConsumer { private static final String SET_METHOD_FOOTER = "}\n"; private final List> variables = new ArrayList<>(); private final String outputFileName; + private final String mdOutputFileName; - public GetConfigValueConsumer(String outputFileName) { + private final StringBuilder mdContent = new StringBuilder(); + + public GetConfigValueConsumer() { + this(null, null); + } + + public GetConfigValueConsumer(String outputFileName, String mdOutputFileName) { this.outputFileName = outputFileName; + this.mdOutputFileName = mdOutputFileName; } public static void writeStringToFile(@Nullable String fileName, String content) throws IOException { @@ -59,6 +67,7 @@ public class GetConfigValueConsumer implements ConfigurationConsumer { @Override public void endFile() throws IOException { writeStringToFile(outputFileName, getContent()); + writeStringToFile(mdOutputFileName, getContent()); } private String processConfig(ReaderState readerState, ConfigField cf, String prefix) { @@ -81,6 +90,9 @@ public class GetConfigValueConsumer implements ConfigurationConsumer { variables.add(new Tuple<>(userName, javaName + cf.getName(), cf.getType())); + mdContent.append("### " + userName + "\n"); + mdContent.append(cf.getCommentContent() + "\n\n"); + return ""; } @@ -102,6 +114,10 @@ public class GetConfigValueConsumer implements ConfigurationConsumer { getCompleteGetterBody(); } + public String getMdContent() { + return mdContent.toString(); + } + @NotNull public String getCompleteGetterBody() { StringBuilder switchBody = new StringBuilder(); diff --git a/java_tools/configuration_definition/src/test/java/com/rusefi/test/GetConfigValueConsumerTest.java b/java_tools/configuration_definition/src/test/java/com/rusefi/test/GetConfigValueConsumerTest.java index 6e1d88104d..b7e7ce7405 100644 --- a/java_tools/configuration_definition/src/test/java/com/rusefi/test/GetConfigValueConsumerTest.java +++ b/java_tools/configuration_definition/src/test/java/com/rusefi/test/GetConfigValueConsumerTest.java @@ -19,7 +19,7 @@ public class GetConfigValueConsumerTest { "end_struct\n" + "\tdc_io[2 iterate] etbIn\n" + "end_struct\n"; - GetConfigValueConsumer getConfigValueConsumer = new GetConfigValueConsumer(null); + GetConfigValueConsumer getConfigValueConsumer = new GetConfigValueConsumer(); state.readBufferedReader(test, getConfigValueConsumer); assertEquals( @@ -42,7 +42,7 @@ public class GetConfigValueConsumerTest { "end_struct\n" + "ThermistorConf iat;\n" + "end_struct\n"; - GetConfigValueConsumer getConfigValueConsumer = new GetConfigValueConsumer(null); + GetConfigValueConsumer getConfigValueConsumer = new GetConfigValueConsumer(); state.readBufferedReader(test, getConfigValueConsumer); assertEquals("\tint hash = djb2lowerCase(name);\n" + @@ -121,7 +121,7 @@ public class GetConfigValueConsumerTest { "end_struct\n" + "MAP_sensor_config_s map;@see isMapAveragingEnabled\n" + "struct injector_s\n" + - "\tfloat flow;+This is your injector flow at the fuel pressure used in the vehicle. cc/min, cubic centimetre per minute\\nBy the way, g/s = 0.125997881 * (lb/hr)\\ng/s = 0.125997881 * (cc/min)/10.5\\ng/s = 0.0119997981 * cc/min;\"cm3/min\", 1, 0, 0, 99999, 2\n" + + "\tfloat flow;This is your injector flow at the fuel pressure used in the vehicle. cc/min, cubic centimetre per minute\\nBy the way, g/s = 0.125997881 * (lb/hr)\\ng/s = 0.125997881 * (cc/min)/10.5\\ng/s = 0.0119997981 * cc/min;\"cm3/min\", 1, 0, 0, 99999, 2\n" + "\n" + "float[8] battLagCorr;ms delay between injector open and close dead times;\"ms\", 1, 0, 0, 50, 2\n" + "\n" + @@ -129,7 +129,7 @@ public class GetConfigValueConsumerTest { "\n" + "injector_s injector\n" + "\tint[12 iterate] ignitionPins;\n" + - "\tfloat bias_resistor;+Pull-up resistor value on your board;\"Ohm\", 1, 0, 0, 200000, 1\n" + + "\tfloat bias_resistor;Pull-up resistor value on your board;\"Ohm\", 1, 0, 0, 200000, 1\n" + "end_struct\n" + "struct ThermistorConf @brief Thermistor curve parameters\n" + "\tthermistor_conf_s config;\n" + @@ -145,14 +145,14 @@ public class GetConfigValueConsumerTest { "uint8_t autoscale vehicleSpeedKph;;\"kph\",1, 0, 0, 0, 0\n" + "bit isForcedInduction;Does the vehicle have a turbo or supercharger?\n" + "\tuint8_t unused37;;\"\",1, 0, 0, 0, 0\n" + - "bit enableFan1WithAc;+Turn on this fan when AC is on.\n" + + "bit enableFan1WithAc;Turn on this fan when AC is on.\n" + "end_struct\n"; ReaderState state = new ReaderState(); state.variableRegistry.register("PACK_MULT_PERCENT", 100); state.variableRegistry.register("GAUGE_NAME_FUEL_BASE", "hello"); - GetConfigValueConsumer getConfigValueConsumer = new GetConfigValueConsumer(null); + GetConfigValueConsumer getConfigValueConsumer = new GetConfigValueConsumer(); state.readBufferedReader(test, getConfigValueConsumer); assertEquals("#include \"pch.h\"\n" + @@ -191,6 +191,50 @@ public class GetConfigValueConsumerTest { "\t}\n" + "\treturn EFI_ERROR_CODE;\n" + "}\n", getConfigValueConsumer.getHeaderAndGetter()); + + + assertEquals("### clt.config.tempC_1\n" + + "these values are in Celcius\n" + + "\n" + + "### clt.config.map.sensor.highValue\n" + + "kPa value at high volts\n" + + "\n" + + "### clt.config.map.sensor.hwChannel\n" + + "\n" + + "\n" + + "### clt.config.injector.flow\n" + + "This is your injector flow at the fuel pressure used in the vehicle. cc/min, cubic centimetre per minute\\nBy the way, g/s = 0.125997881 * (lb/hr)\\ng/s = 0.125997881 * (cc/min)/10.5\\ng/s = 0.0119997981 * cc/min\n" + + "\n" + + "### clt.config.bias_resistor\n" + + "Pull-up resistor value on your board\n" + + "\n" + + "### clt.adcChannel\n" + + "\n" + + "\n" + + "### issue_294_31\n" + + "\n" + + "\n" + + "### baseFuel\n" + + "@@GAUGE_NAME_FUEL_BASE@@\\nThis is the raw value we take from the fuel map or base fuel algorithm, before the corrections\n" + + "\n" + + "### afr_type\n" + + "PID dTime\n" + + "\n" + + "### speedToRpmRatio\n" + + "s2rpm\n" + + "\n" + + "### afr_typet\n" + + "\n" + + "\n" + + "### vehicleSpeedKph\n" + + "\n" + + "\n" + + "### isForcedInduction\n" + + "Does the vehicle have a turbo or supercharger?\n" + + "\n" + + "### enableFan1WithAc\n" + + "Turn on this fan when AC is on.\n" + + "\n", getConfigValueConsumer.getMdContent()); } @Test(expected = MaybeSemicolorWasMissedException.class) @@ -201,7 +245,7 @@ public class GetConfigValueConsumerTest { ReaderState state = new ReaderState(); - GetConfigValueConsumer getConfigValueConsumer = new GetConfigValueConsumer(null); + GetConfigValueConsumer getConfigValueConsumer = new GetConfigValueConsumer(); state.readBufferedReader(test, getConfigValueConsumer); } }