2022-10-28 01:22:10 -07:00
|
|
|
package com.rusefi.output;
|
|
|
|
|
|
|
|
import com.rusefi.ConfigField;
|
|
|
|
import com.rusefi.ReaderState;
|
|
|
|
|
|
|
|
import java.io.IOException;
|
|
|
|
|
|
|
|
import static com.rusefi.output.JavaSensorsConsumer.quote;
|
|
|
|
|
|
|
|
public class SdCardFieldsContent {
|
|
|
|
private final StringBuilder body = new StringBuilder();
|
|
|
|
|
|
|
|
public String home = "engine->outputChannels";
|
|
|
|
|
|
|
|
public void handleEndStruct(ReaderState state, ConfigStructure structure) throws IOException {
|
2023-01-06 07:52:09 -08:00
|
|
|
if (state.isStackEmpty()) {
|
2022-10-28 01:22:10 -07:00
|
|
|
PerFieldWithStructuresIterator iterator = new PerFieldWithStructuresIterator(state, structure.tsFields, "",
|
2023-01-02 09:58:50 -08:00
|
|
|
(configField, prefix, prefix2) -> processOutput(prefix, prefix2), ".");
|
2022-10-28 01:22:10 -07:00
|
|
|
iterator.loop();
|
|
|
|
String content = iterator.getContent();
|
|
|
|
body.append(content);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2023-01-02 09:58:50 -08:00
|
|
|
private String processOutput(ConfigField configField, String prefix) {
|
2022-10-28 01:22:10 -07:00
|
|
|
if (configField.getName().startsWith(ConfigStructure.ALIGNMENT_FILL_AT))
|
|
|
|
return "";
|
|
|
|
if (configField.getName().startsWith(ConfigStructure.UNUSED_ANYTHING_PREFIX))
|
|
|
|
return "";
|
|
|
|
if (configField.isBit())
|
|
|
|
return "";
|
|
|
|
|
|
|
|
if (configField.isFromIterate()) {
|
|
|
|
String name = configField.getIterateOriginalName() + "[" + (configField.getIterateIndex() - 1) + "]";
|
2023-01-02 09:58:50 -08:00
|
|
|
return getLine(configField, prefix, prefix + name);
|
2022-10-28 01:22:10 -07:00
|
|
|
} else {
|
2023-01-02 09:58:50 -08:00
|
|
|
return getLine(configField, prefix, prefix + configField.getName());
|
2022-10-28 01:22:10 -07:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2023-01-02 09:58:50 -08:00
|
|
|
private String getLine(ConfigField configField, String prefix, String name) {
|
2022-10-28 01:22:10 -07:00
|
|
|
return "\t{" + home + "." + name +
|
|
|
|
", "
|
2023-01-02 09:58:50 -08:00
|
|
|
+ DataLogConsumer.getHumanGaugeName(prefix, configField) +
|
2022-10-28 01:22:10 -07:00
|
|
|
", " +
|
|
|
|
quote(configField.getUnits()) +
|
|
|
|
", " +
|
|
|
|
configField.getDigits() +
|
|
|
|
|
|
|
|
"},\n";
|
|
|
|
}
|
|
|
|
|
|
|
|
public String getBody() {
|
|
|
|
return body.toString();
|
|
|
|
}
|
|
|
|
}
|