SD logging: generate code conditionally

This commit is contained in:
rusefillc 2023-06-22 14:47:19 -05:00
parent 632912d265
commit 2111d13df5
2 changed files with 9 additions and 2 deletions

View File

@ -128,6 +128,7 @@ public class LiveDataProcessor {
if (constexpr != null) { if (constexpr != null) {
sdCardFieldsConsumer.home = constexpr; sdCardFieldsConsumer.home = constexpr;
sdCardFieldsConsumer.conditional = conditional;
state.addDestination((state1, structure) -> sdCardFieldsConsumer.handleEndStruct(state1, structure)); state.addDestination((state1, structure) -> sdCardFieldsConsumer.handleEndStruct(state1, structure));
outputValueConsumer.currentSectionPrefix = constexpr; outputValueConsumer.currentSectionPrefix = constexpr;

View File

@ -11,6 +11,7 @@ public class SdCardFieldsContent {
private final StringBuilder body = new StringBuilder(); private final StringBuilder body = new StringBuilder();
public String home = "engine->outputChannels"; public String home = "engine->outputChannels";
public String conditional;
public void handleEndStruct(ReaderState state, ConfigStructure structure) throws IOException { public void handleEndStruct(ReaderState state, ConfigStructure structure) throws IOException {
if (state.isStackEmpty()) { if (state.isStackEmpty()) {
@ -47,7 +48,11 @@ public class SdCardFieldsContent {
categoryStr = ", " + categoryStr; categoryStr = ", " + categoryStr;
} }
return "\t{" + home + "." + name + String before = conditional == null ? "" : "#if " + conditional + "\n";
String after = conditional == null ? "" : "#endif\n";
return before
+ "\t{" + home + "." + name +
", " ", "
+ DataLogConsumer.getHumanGaugeName(prefix, configField) + + DataLogConsumer.getHumanGaugeName(prefix, configField) +
", " + ", " +
@ -55,7 +60,8 @@ public class SdCardFieldsContent {
", " + ", " +
configField.getDigits() + configField.getDigits() +
categoryStr + categoryStr +
"},\n"; "},\n" +
after;
} }
public String getBody() { public String getBody() {