Compare commits
No commits in common. "8f7dd55311583c8b4caf4c0caf8eac6e8a336770" and "1d8f034edcd27f3d37aa737500f6885a036b21ad" have entirely different histories.
8f7dd55311
...
1d8f034edc
|
@ -1,11 +0,0 @@
|
||||||
package com.rusefi.can;
|
|
||||||
|
|
||||||
public class DualSid {
|
|
||||||
public static String dualSid(int sid, String separator) {
|
|
||||||
return String.format("%d%s0x%x", sid, separator, sid);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static String dualSid(int sid) {
|
|
||||||
return dualSid(sid, "/");
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,7 +1,6 @@
|
||||||
package com.rusefi.can.analysis;
|
package com.rusefi.can.analysis;
|
||||||
|
|
||||||
import com.rusefi.can.CANPacket;
|
import com.rusefi.can.CANPacket;
|
||||||
import com.rusefi.can.DualSid;
|
|
||||||
|
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
@ -46,7 +45,7 @@ public class ByteRateOfChange {
|
||||||
|
|
||||||
for (ByteStatistics byteStatistics : allStats) {
|
for (ByteStatistics byteStatistics : allStats) {
|
||||||
ByteId key = byteStatistics.key;
|
ByteId key = byteStatistics.key;
|
||||||
ps.println(DualSid.dualSid(key.sid) + " byte " + key.getByteIndex() + " has " + byteStatistics.getUniqueValuesCount() + " unique value(s)");
|
ps.println(dualSid(key.sid) + " byte " + key.getByteIndex() + " has " + byteStatistics.getUniqueValuesCount() + " unique value(s)");
|
||||||
}
|
}
|
||||||
|
|
||||||
ps.close();
|
ps.close();
|
||||||
|
@ -70,6 +69,14 @@ public class ByteRateOfChange {
|
||||||
return packets.isEmpty() ? 0 : packets.get(packets.size() - 1).getTimeStamp() - packets.get(0).getTimeStamp();
|
return packets.isEmpty() ? 0 : packets.get(packets.size() - 1).getTimeStamp() - packets.get(0).getTimeStamp();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static String dualSid(int sid) {
|
||||||
|
return dualSid(sid, "/");
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String dualSid(int sid, String separator) {
|
||||||
|
return String.format("%d%s0x%x", sid, separator, sid);
|
||||||
|
}
|
||||||
|
|
||||||
public static class ByteStatistics {
|
public static class ByteStatistics {
|
||||||
private final HashSet<Integer> uniqueValues = new HashSet<>();
|
private final HashSet<Integer> uniqueValues = new HashSet<>();
|
||||||
int totalTransitions;
|
int totalTransitions;
|
||||||
|
@ -124,7 +131,7 @@ public class ByteRateOfChange {
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getLogKey() {
|
public String getLogKey() {
|
||||||
return DualSid.dualSid(sid) + "_byte_" + byteIndex + "_bit_" + (byteIndex * 8);
|
return dualSid(sid) + "_byte_" + byteIndex + "_bit_" + (byteIndex * 8);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
package com.rusefi.can.analysis;
|
package com.rusefi.can.analysis;
|
||||||
|
|
||||||
import com.rusefi.can.CANPacket;
|
import com.rusefi.can.CANPacket;
|
||||||
import com.rusefi.can.DualSid;
|
|
||||||
import com.rusefi.can.Launcher;
|
import com.rusefi.can.Launcher;
|
||||||
import com.rusefi.can.reader.dbc.DbcFile;
|
import com.rusefi.can.reader.dbc.DbcFile;
|
||||||
import com.rusefi.mlv.LoggingContext;
|
import com.rusefi.mlv.LoggingContext;
|
||||||
|
@ -93,10 +92,10 @@ public class CanToMegaLogViewer {
|
||||||
|
|
||||||
|
|
||||||
private static String getTwoBytesKeyM(Integer sid, int i) {
|
private static String getTwoBytesKeyM(Integer sid, int i) {
|
||||||
return DualSid.dualSid(sid) + "__" + i + "_" + (i + 1);
|
return ByteRateOfChange.dualSid(sid) + "__" + i + "_" + (i + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static String getTwoBytesKeyL(Integer sid, int i) {
|
private static String getTwoBytesKeyL(Integer sid, int i) {
|
||||||
return DualSid.dualSid(sid) + "__" + (i + 1) + "_" + i;
|
return ByteRateOfChange.dualSid(sid) + "__" + (i + 1) + "_" + i;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
package com.rusefi.can.analysis;
|
package com.rusefi.can.analysis;
|
||||||
|
|
||||||
import com.rusefi.can.CANPacket;
|
import com.rusefi.can.CANPacket;
|
||||||
import com.rusefi.can.DualSid;
|
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileWriter;
|
import java.io.FileWriter;
|
||||||
|
@ -27,7 +26,7 @@ public class PacketRatio {
|
||||||
|
|
||||||
for (Map.Entry<Integer, AtomicInteger> e : countBySID.entrySet()) {
|
for (Map.Entry<Integer, AtomicInteger> e : countBySID.entrySet()) {
|
||||||
double ratio = 100.0 * e.getValue().get() / logFileContent.size();
|
double ratio = 100.0 * e.getValue().get() / logFileContent.size();
|
||||||
w.write(DualSid.dualSid(e.getKey()) + ": " + ratio + "\n");
|
w.write(ByteRateOfChange.dualSid(e.getKey()) + ": " + ratio + "\n");
|
||||||
}
|
}
|
||||||
w.close();
|
w.close();
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
package com.rusefi.can.analysis;
|
package com.rusefi.can.analysis;
|
||||||
|
|
||||||
import com.rusefi.can.CANPacket;
|
import com.rusefi.can.CANPacket;
|
||||||
import com.rusefi.can.DualSid;
|
|
||||||
import com.rusefi.can.writer.SteveWriter;
|
import com.rusefi.can.writer.SteveWriter;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
@ -12,6 +11,8 @@ import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.TreeSet;
|
import java.util.TreeSet;
|
||||||
|
|
||||||
|
import static com.rusefi.can.analysis.ByteRateOfChange.dualSid;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Write a separate file for each unique packet ID
|
* Write a separate file for each unique packet ID
|
||||||
*/
|
*/
|
||||||
|
@ -28,7 +29,7 @@ public class PerSidDump {
|
||||||
// O(n*M) is not so bad
|
// O(n*M) is not so bad
|
||||||
for (int sid : sids) {
|
for (int sid : sids) {
|
||||||
|
|
||||||
String outputFileName = filteredDestinationFolder + File.separator + simpleFileName + "_filtered_" + DualSid.dualSid(sid, "_") + ".txt";
|
String outputFileName = filteredDestinationFolder + File.separator + simpleFileName + "_filtered_" + ByteRateOfChange.dualSid(sid, "_") + ".txt";
|
||||||
PrintWriter pw = new PrintWriter(new FileOutputStream(outputFileName));
|
PrintWriter pw = new PrintWriter(new FileOutputStream(outputFileName));
|
||||||
|
|
||||||
List<CANPacket> filteredPackets = new ArrayList<>();
|
List<CANPacket> filteredPackets = new ArrayList<>();
|
||||||
|
@ -46,7 +47,7 @@ public class PerSidDump {
|
||||||
int middleIndex = filteredPackets.size() / 2;
|
int middleIndex = filteredPackets.size() / 2;
|
||||||
CANPacket middlePacket = filteredPackets.get(middleIndex);
|
CANPacket middlePacket = filteredPackets.get(middleIndex);
|
||||||
|
|
||||||
String middleOutputFileName = filteredDestinationFolder + File.separator + simpleFileName + "_filtered_" + DualSid.dualSid(sid, "_") + "_middle.txt";
|
String middleOutputFileName = filteredDestinationFolder + File.separator + simpleFileName + "_filtered_" + ByteRateOfChange.dualSid(sid, "_") + "_middle.txt";
|
||||||
PrintWriter middle = new PrintWriter(new FileOutputStream(middleOutputFileName));
|
PrintWriter middle = new PrintWriter(new FileOutputStream(middleOutputFileName));
|
||||||
|
|
||||||
String decAndHex = middlePacket.getId() + "_" + Integer.toHexString(middlePacket.getId());
|
String decAndHex = middlePacket.getId() + "_" + Integer.toHexString(middlePacket.getId());
|
||||||
|
|
|
@ -6,10 +6,6 @@ public class NissanSandbox {
|
||||||
public static void main(String[] args) throws IOException {
|
public static void main(String[] args) throws IOException {
|
||||||
String inputFolderName = "C:\\stuff\\rusefi_documentation\\OEM-Docs\\Nissan\\2011_Xterra\\2011-nissan-CAN-June-2021";
|
String inputFolderName = "C:\\stuff\\rusefi_documentation\\OEM-Docs\\Nissan\\2011_Xterra\\2011-nissan-CAN-June-2021";
|
||||||
|
|
||||||
Launcher.main(new String[]{
|
Launcher.main(new String[]{inputFolderName});
|
||||||
inputFolderName,
|
|
||||||
Launcher.DBC_FILENAME_PROPERTY,
|
|
||||||
"opendbc/nissan_xterra_2011.dbc",
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue