more channels into VCD

This commit is contained in:
rusefi 2020-05-30 16:16:28 -04:00
parent 925c429a93
commit 6d7d3f51e4
3 changed files with 22 additions and 8 deletions

View File

@ -19,6 +19,8 @@ public class VcdStreamFile extends StreamFile {
private static final String TAG_SECONDARY = "s"; private static final String TAG_SECONDARY = "s";
private static final String TAG_TRG = "r"; private static final String TAG_TRG = "r";
private static final String TAG_SYNC = "y"; private static final String TAG_SYNC = "y";
private static final String TAG_COIL = "c";
private static final String TAG_INJ = "i";
private static void writeHeader(Writer writer, Date date) throws IOException { private static void writeHeader(Writer writer, Date date) throws IOException {
writer.write("$date\n"); writer.write("$date\n");
@ -35,6 +37,8 @@ public class VcdStreamFile extends StreamFile {
"$var wire 1 " + TAG_SECONDARY + " SEC_TRG $end\n" + "$var wire 1 " + TAG_SECONDARY + " SEC_TRG $end\n" +
"$var wire 1 " + TAG_TRG + " TRG $end\n" + "$var wire 1 " + TAG_TRG + " TRG $end\n" +
"$var wire 1 " + TAG_SYNC + " SYNC $end\n" + "$var wire 1 " + TAG_SYNC + " SYNC $end\n" +
"$var wire 1 " + TAG_COIL + " COIL $end\n" +
"$var wire 1 " + TAG_INJ + " INJ $end\n" +
"$upscope $end\n" + "$upscope $end\n" +
"$enddefinitions $end\n" + "$enddefinitions $end\n" +
"$dumpvars\n"); "$dumpvars\n");
@ -47,7 +51,8 @@ public class VcdStreamFile extends StreamFile {
writer.write(event.isSecondaryTriggerAsInt() + TAG_SECONDARY + "\n"); writer.write(event.isSecondaryTriggerAsInt() + TAG_SECONDARY + "\n");
writer.write(event.isTrgAsInt() + TAG_TRG + "\n"); writer.write(event.isTrgAsInt() + TAG_TRG + "\n");
writer.write(event.isSyncAsInt() + TAG_SYNC + "\n"); writer.write(event.isSyncAsInt() + TAG_SYNC + "\n");
writer.write(event.isCoil() + TAG_COIL + "\n");
writer.write(event.isInjector() + TAG_INJ + "\n");
} }
writer.flush(); writer.flush();
} }

View File

@ -6,13 +6,17 @@ public class CompositeEvent {
private final boolean secondaryTrigger; private final boolean secondaryTrigger;
private final boolean trg; private final boolean trg;
private final boolean sync; private final boolean sync;
private final boolean coil;
private final boolean injector;
public CompositeEvent(int timestamp, boolean primaryTrigger, boolean secondaryTrigger, boolean trg, boolean sync) { public CompositeEvent(int timestamp, boolean primaryTrigger, boolean secondaryTrigger, boolean trg, boolean sync, boolean coil, boolean injector) {
this.timestamp = timestamp; this.timestamp = timestamp;
this.primaryTrigger = primaryTrigger; this.primaryTrigger = primaryTrigger;
this.secondaryTrigger = secondaryTrigger; this.secondaryTrigger = secondaryTrigger;
this.trg = trg; this.trg = trg;
this.sync = sync; this.sync = sync;
this.coil = coil;
this.injector = injector;
} }
public int getTimestamp() { public int getTimestamp() {
@ -34,4 +38,12 @@ public class CompositeEvent {
public int isTrgAsInt() { public int isTrgAsInt() {
return trg ? 1 : 0; return trg ? 1 : 0;
} }
public int isCoil() {
return coil ? 1 : 0;
}
public int isInjector() {
return injector ? 1 : 0;
}
} }

View File

@ -1,16 +1,11 @@
package com.rusefi.composite; package com.rusefi.composite;
import com.opensr5.ini.field.EnumIniField; import com.opensr5.ini.field.EnumIniField;
import com.rusefi.binaryprotocol.VcdStreamFile;
import com.rusefi.config.generated.Fields; import com.rusefi.config.generated.Fields;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
import java.nio.ByteBuffer; import java.nio.ByteBuffer;
import java.nio.ByteOrder; import java.nio.ByteOrder;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date;
import java.util.List; import java.util.List;
public class CompositeParser { public class CompositeParser {
@ -33,10 +28,12 @@ public class CompositeParser {
boolean secondaryTrigger = EnumIniField.getBit(flags, 1); boolean secondaryTrigger = EnumIniField.getBit(flags, 1);
boolean trg = EnumIniField.getBit(flags, 2); boolean trg = EnumIniField.getBit(flags, 2);
boolean sync = EnumIniField.getBit(flags, 3); boolean sync = EnumIniField.getBit(flags, 3);
boolean coil = EnumIniField.getBit(flags, 4);
boolean injector = EnumIniField.getBit(flags, 5);
ptr += Fields.COMPOSITE_PACKET_SIZE; ptr += Fields.COMPOSITE_PACKET_SIZE;
events.add(new CompositeEvent(timestamp, primaryTrigger, secondaryTrigger, trg, sync)); events.add(new CompositeEvent(timestamp, primaryTrigger, secondaryTrigger, trg, sync, coil, injector));
} }
return events; return events;
} }