mirror of https://github.com/rusefi/rusefi-1.git
refactoring
This commit is contained in:
parent
b445c70853
commit
5ddbd5ef2f
|
@ -218,6 +218,11 @@ public class ConfigDefinition {
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (tsOutputsDestination != null) {
|
if (tsOutputsDestination != null) {
|
||||||
|
/**
|
||||||
|
* we have one JVM instance produce output section based on model fragments, and then
|
||||||
|
* we have '-readfile OUTPUTS_SECTION' in one of .sh files in order to template rusefi.input
|
||||||
|
* Same with '-readfile DATALOG_SECTION'
|
||||||
|
*/
|
||||||
state.destinations.add(new OutputsSectionConsumer(tsOutputsDestination + File.separator + "generated/output_channels.ini", state));
|
state.destinations.add(new OutputsSectionConsumer(tsOutputsDestination + File.separator + "generated/output_channels.ini", state));
|
||||||
state.destinations.add(new DataLogConsumer(tsOutputsDestination + File.separator + "generated/data_logs.ini"));
|
state.destinations.add(new DataLogConsumer(tsOutputsDestination + File.separator + "generated/data_logs.ini"));
|
||||||
state.destinations.add(new GaugeConsumer(tsOutputsDestination + File.separator + "generated/gauges.ini", state));
|
state.destinations.add(new GaugeConsumer(tsOutputsDestination + File.separator + "generated/gauges.ini", state));
|
||||||
|
|
|
@ -11,7 +11,7 @@ public class OutputsSectionConsumer implements ConfigurationConsumer {
|
||||||
private final String tsOutputsSectionFileName;
|
private final String tsOutputsSectionFileName;
|
||||||
private final TsOutput tsOutput;
|
private final TsOutput tsOutput;
|
||||||
private final ReaderState state;
|
private final ReaderState state;
|
||||||
private final CharArrayWriter tsWriter = new CharArrayWriter();
|
private final StringBuilder tsWriter = new StringBuilder();
|
||||||
|
|
||||||
public OutputsSectionConsumer(String tsOutputsSectionFileName, ReaderState state) {
|
public OutputsSectionConsumer(String tsOutputsSectionFileName, ReaderState state) {
|
||||||
this.tsOutputsSectionFileName = tsOutputsSectionFileName;
|
this.tsOutputsSectionFileName = tsOutputsSectionFileName;
|
||||||
|
@ -19,8 +19,8 @@ public class OutputsSectionConsumer implements ConfigurationConsumer {
|
||||||
this.state = state;
|
this.state = state;
|
||||||
}
|
}
|
||||||
|
|
||||||
public CharArrayWriter getTsWriter() {
|
public String getContent() {
|
||||||
return tsWriter;
|
return tsWriter.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -32,7 +32,7 @@ public class OutputsSectionConsumer implements ConfigurationConsumer {
|
||||||
|
|
||||||
if (tsOutputsSectionFileName != null) {
|
if (tsOutputsSectionFileName != null) {
|
||||||
FileWriter fos = new FileWriter(tsOutputsSectionFileName);
|
FileWriter fos = new FileWriter(tsOutputsSectionFileName);
|
||||||
fos.write(tsWriter.toCharArray());
|
fos.write(tsWriter.toString());
|
||||||
fos.close();
|
fos.close();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,7 +6,6 @@ import com.rusefi.ReaderState;
|
||||||
import com.rusefi.TypesHelper;
|
import com.rusefi.TypesHelper;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.Writer;
|
|
||||||
|
|
||||||
import static com.rusefi.ToolUtil.EOL;
|
import static com.rusefi.ToolUtil.EOL;
|
||||||
|
|
||||||
|
@ -28,15 +27,15 @@ public class TsOutput {
|
||||||
return settingContextHelp;
|
return settingContextHelp;
|
||||||
}
|
}
|
||||||
|
|
||||||
private int writeTunerStudio(FieldIterator it, String prefix, Writer tsHeader, int tsPosition) throws IOException {
|
private int writeTunerStudio(FieldIterator it, String prefix, Appendable tsHeader, int tsPosition) throws IOException {
|
||||||
ConfigField configField = it.cf;
|
ConfigField configField = it.cf;
|
||||||
ConfigField next = it.next;
|
ConfigField next = it.next;
|
||||||
int bitIndex = it.bitState.get();
|
int bitIndex = it.bitState.get();
|
||||||
String nameWithPrefix = prefix + configField.getName();
|
String nameWithPrefix = prefix + configField.getName();
|
||||||
|
|
||||||
if (configField.isDirective() && configField.getComment() != null) {
|
if (configField.isDirective() && configField.getComment() != null) {
|
||||||
tsHeader.write(configField.getComment());
|
tsHeader.append(configField.getComment());
|
||||||
tsHeader.write(EOL);
|
tsHeader.append(EOL);
|
||||||
return tsPosition;
|
return tsPosition;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -52,13 +51,13 @@ public class TsOutput {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (configField.isBit()) {
|
if (configField.isBit()) {
|
||||||
tsHeader.write(nameWithPrefix + " = bits, U32,");
|
tsHeader.append(nameWithPrefix + " = bits, U32,");
|
||||||
tsHeader.write(" " + tsPosition + ", [");
|
tsHeader.append(" " + tsPosition + ", [");
|
||||||
tsHeader.write(bitIndex + ":" + bitIndex);
|
tsHeader.append(bitIndex + ":" + bitIndex);
|
||||||
tsHeader.write("]");
|
tsHeader.append("]");
|
||||||
if (isConstantsSection)
|
if (isConstantsSection)
|
||||||
tsHeader.write(", \"" + configField.getFalseName() + "\", \"" + configField.getTrueName() + "\"");
|
tsHeader.append(", \"" + configField.getFalseName() + "\", \"" + configField.getTrueName() + "\"");
|
||||||
tsHeader.write(EOL);
|
tsHeader.append(EOL);
|
||||||
|
|
||||||
tsPosition += configField.getSize(next);
|
tsPosition += configField.getSize(next);
|
||||||
return tsPosition;
|
return tsPosition;
|
||||||
|
@ -71,46 +70,46 @@ public class TsOutput {
|
||||||
}
|
}
|
||||||
|
|
||||||
bits = bits.replaceAll("@OFFSET@", "" + tsPosition);
|
bits = bits.replaceAll("@OFFSET@", "" + tsPosition);
|
||||||
tsHeader.write(nameWithPrefix + " = " + bits);
|
tsHeader.append(nameWithPrefix + " = " + bits);
|
||||||
|
|
||||||
if (!configField.getName().equals(next.getName()))
|
if (!configField.getName().equals(next.getName()))
|
||||||
tsPosition += configField.getState().tsCustomSize.get(configField.getType());
|
tsPosition += configField.getState().tsCustomSize.get(configField.getType());
|
||||||
} else if (configField.getTsInfo() == null) {
|
} else if (configField.getTsInfo() == null) {
|
||||||
throw new IllegalArgumentException("Need TS info for " + configField.getName() + " at " + prefix);
|
throw new IllegalArgumentException("Need TS info for " + configField.getName() + " at " + prefix);
|
||||||
} else if (configField.getArraySizes().length == 0) {
|
} else if (configField.getArraySizes().length == 0) {
|
||||||
tsHeader.write(nameWithPrefix + " = scalar, ");
|
tsHeader.append(nameWithPrefix + " = scalar, ");
|
||||||
tsHeader.write(TypesHelper.convertToTs(configField.getType()) + ",");
|
tsHeader.append(TypesHelper.convertToTs(configField.getType()) + ",");
|
||||||
tsHeader.write(" " + tsPosition + ",");
|
tsHeader.append(" " + tsPosition + ",");
|
||||||
tsHeader.write(" " + handleTsInfo(configField.getTsInfo(), 1));
|
tsHeader.append(" " + handleTsInfo(configField.getTsInfo(), 1));
|
||||||
if (!configField.getName().equals(next.getName()))
|
if (!configField.getName().equals(next.getName()))
|
||||||
tsPosition += configField.getSize(next);
|
tsPosition += configField.getSize(next);
|
||||||
} else if (configField.getSize(next) == 0) {
|
} else if (configField.getSize(next) == 0) {
|
||||||
// write nothing for empty array
|
// write nothing for empty array
|
||||||
// TS does not like those
|
// TS does not like those
|
||||||
} else {
|
} else {
|
||||||
tsHeader.write(nameWithPrefix + " = array, ");
|
tsHeader.append(nameWithPrefix + " = array, ");
|
||||||
tsHeader.write(TypesHelper.convertToTs(configField.getType()) + ",");
|
tsHeader.append(TypesHelper.convertToTs(configField.getType()) + ",");
|
||||||
tsHeader.write(" " + tsPosition + ",");
|
tsHeader.append(" " + tsPosition + ",");
|
||||||
tsHeader.write(" [");
|
tsHeader.append(" [");
|
||||||
boolean first = true;
|
boolean first = true;
|
||||||
for (int size : configField.getArraySizes()) {
|
for (int size : configField.getArraySizes()) {
|
||||||
if (first) {
|
if (first) {
|
||||||
first = false;
|
first = false;
|
||||||
} else {
|
} else {
|
||||||
tsHeader.write("x");
|
tsHeader.append("x");
|
||||||
}
|
}
|
||||||
tsHeader.write(Integer.toString(size));
|
tsHeader.append(Integer.toString(size));
|
||||||
}
|
}
|
||||||
tsHeader.write("], " + handleTsInfo(configField.getTsInfo(), 1));
|
tsHeader.append("], " + handleTsInfo(configField.getTsInfo(), 1));
|
||||||
|
|
||||||
if (!configField.getName().equals(next.getName()))
|
if (!configField.getName().equals(next.getName()))
|
||||||
tsPosition += configField.getSize(next);
|
tsPosition += configField.getSize(next);
|
||||||
}
|
}
|
||||||
tsHeader.write(EOL);
|
tsHeader.append(EOL);
|
||||||
return tsPosition;
|
return tsPosition;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected int writeTunerStudio(ConfigStructure configStructure, String prefix, Writer tsHeader, int tsPosition) throws IOException {
|
protected int writeTunerStudio(ConfigStructure configStructure, String prefix, Appendable tsHeader, int tsPosition) throws IOException {
|
||||||
FieldIterator iterator = new FieldIterator(configStructure.tsFields);
|
FieldIterator iterator = new FieldIterator(configStructure.tsFields);
|
||||||
for (int i = 0; i < configStructure.tsFields.size(); i++) {
|
for (int i = 0; i < configStructure.tsFields.size(); i++) {
|
||||||
iterator.start(i);
|
iterator.start(i);
|
||||||
|
|
|
@ -6,8 +6,6 @@ import com.rusefi.output.*;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.Collections;
|
|
||||||
|
|
||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
|
|
||||||
|
@ -60,7 +58,7 @@ public class OutputsTest {
|
||||||
"unusedBit_4_29 = bits, U32, 5, [29:29]\n" +
|
"unusedBit_4_29 = bits, U32, 5, [29:29]\n" +
|
||||||
"unusedBit_4_30 = bits, U32, 5, [30:30]\n" +
|
"unusedBit_4_30 = bits, U32, 5, [30:30]\n" +
|
||||||
"unusedBit_4_31 = bits, U32, 5, [31:31]\n" +
|
"unusedBit_4_31 = bits, U32, 5, [31:31]\n" +
|
||||||
"alignmentFill_at_9 = array, U08, 9, [3], \"units\", 1, 0\n", new String(tsProjectConsumer.getTsWriter().toCharArray()));
|
"alignmentFill_at_9 = array, U08, 9, [3], \"units\", 1, 0\n", new String(tsProjectConsumer.getContent()));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue