2020-06-05 09:42:00 -07:00
|
|
|
package com.rusefi.stream;
|
2020-05-30 13:08:18 -07:00
|
|
|
|
|
|
|
import com.rusefi.composite.CompositeEvent;
|
2022-10-15 11:36:41 -07:00
|
|
|
import com.rusefi.core.rusEFIVersion;
|
2020-05-30 13:08:18 -07:00
|
|
|
|
2020-06-05 09:42:00 -07:00
|
|
|
import java.io.*;
|
2020-05-30 13:08:18 -07:00
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
public class TSHighSpeedLog extends StreamFile {
|
2020-06-03 14:22:46 -07:00
|
|
|
private final String fileName;
|
2022-07-04 13:57:17 -07:00
|
|
|
private long prevTime = 0;
|
2020-05-30 13:08:18 -07:00
|
|
|
|
2020-06-03 14:22:46 -07:00
|
|
|
public TSHighSpeedLog(String fileName) {
|
|
|
|
this.fileName = fileName;
|
|
|
|
}
|
|
|
|
|
2020-05-30 13:08:18 -07:00
|
|
|
private static void writeHeader(Writer writer) throws IOException {
|
|
|
|
writer.write("#Firmware: console" + rusEFIVersion.CONSOLE_VERSION + " firmware " + rusEFIVersion.firmwareVersion.get() + "\n");
|
2021-04-13 09:16:29 -07:00
|
|
|
writer.write("PriLevel,SecLevel,Trigger,Sync,Time,ToothTime,coil,inj\n" +
|
|
|
|
"Flag,Flag,Flag,Flag,ms,ms,Flag,Flag\n");
|
2020-05-30 13:08:18 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
2020-06-05 09:42:00 -07:00
|
|
|
public void append(List<CompositeEvent> events) {
|
2020-05-30 13:08:18 -07:00
|
|
|
try {
|
|
|
|
if (writer == null) {
|
2020-06-05 09:42:00 -07:00
|
|
|
createFileWriter(fileName);
|
2020-05-30 13:08:18 -07:00
|
|
|
writeHeader(writer);
|
|
|
|
}
|
|
|
|
for (CompositeEvent event : events) {
|
|
|
|
writer.write(event.isPrimaryTriggerAsInt() + "," + event.isSecondaryTriggerAsInt() + "," + event.isTrgAsInt() + "," + event.isSyncAsInt() + ",");
|
2022-07-04 13:57:17 -07:00
|
|
|
long delta = event.getTimestamp() - prevTime;
|
2021-04-13 09:16:29 -07:00
|
|
|
writer.write(event.getTimestamp() / 1000.0 + "," + delta / 1000.0);
|
|
|
|
|
|
|
|
writer.write("," + event.isCoil() + "," + event.isInjector());
|
|
|
|
|
|
|
|
writer.write("\n");
|
2020-05-30 13:08:18 -07:00
|
|
|
prevTime = event.getTimestamp();
|
|
|
|
}
|
|
|
|
writer.flush();
|
|
|
|
|
|
|
|
} catch (IOException e) {
|
|
|
|
// ignoring IO exceptions
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
2020-06-05 14:11:48 -07:00
|
|
|
protected void writeFooter() throws IOException {
|
2020-06-05 15:52:04 -07:00
|
|
|
if (writer != null)
|
|
|
|
writer.write("MARK 028\n");
|
2020-05-30 13:08:18 -07:00
|
|
|
}
|
|
|
|
}
|