lua getOutput documentation generator #4867

This commit is contained in:
rusefillc 2022-12-20 11:42:34 -05:00
parent c7eb57d48e
commit af54b3a117
6 changed files with 76 additions and 11 deletions

View File

@ -0,0 +1 @@

View File

@ -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 \

Binary file not shown.

View File

@ -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];

View File

@ -34,9 +34,17 @@ public class GetConfigValueConsumer implements ConfigurationConsumer {
private static final String SET_METHOD_FOOTER = "}\n";
private final List<Tuple<String>> 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();

View File

@ -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);
}
}