mirror of https://github.com/rusefi/rusefi.git
53 lines
1.7 KiB
Java
53 lines
1.7 KiB
Java
package com.rusefi.stream;
|
|
|
|
import com.rusefi.composite.CompositeEvent;
|
|
import com.rusefi.core.rusEFIVersion;
|
|
|
|
import java.io.*;
|
|
import java.util.List;
|
|
|
|
public class TSHighSpeedLog extends StreamFile {
|
|
private final String fileName;
|
|
private long prevTime = 0;
|
|
|
|
public TSHighSpeedLog(String fileName) {
|
|
this.fileName = fileName;
|
|
}
|
|
|
|
private static void writeHeader(Writer writer) throws IOException {
|
|
writer.write("#Firmware: console" + rusEFIVersion.CONSOLE_VERSION + " firmware " + rusEFIVersion.firmwareVersion.get() + "\n");
|
|
writer.write("PriLevel,SecLevel,Trigger,Sync,Time,ToothTime,coil,inj\n" +
|
|
"Flag,Flag,Flag,Flag,ms,ms,Flag,Flag\n");
|
|
}
|
|
|
|
@Override
|
|
public void append(List<CompositeEvent> events) {
|
|
try {
|
|
if (writer == null) {
|
|
createFileWriter(fileName);
|
|
writeHeader(writer);
|
|
}
|
|
for (CompositeEvent event : events) {
|
|
writer.write(event.isPrimaryTriggerAsInt() + "," + event.isSecondaryTriggerAsInt() + "," + event.isTrgAsInt() + "," + event.isSyncAsInt() + ",");
|
|
long delta = event.getTimestamp() - prevTime;
|
|
writer.write(event.getTimestamp() / 1000.0 + "," + delta / 1000.0);
|
|
|
|
writer.write("," + event.isCoil() + "," + event.isInjector());
|
|
|
|
writer.write("\n");
|
|
prevTime = event.getTimestamp();
|
|
}
|
|
writer.flush();
|
|
|
|
} catch (IOException e) {
|
|
// ignoring IO exceptions
|
|
}
|
|
}
|
|
|
|
@Override
|
|
protected void writeFooter() throws IOException {
|
|
if (writer != null)
|
|
writer.write("MARK 028\n");
|
|
}
|
|
}
|