From 8f7dd55311583c8b4caf4c0caf8eac6e8a336770 Mon Sep 17 00:00:00 2001 From: rusefillc Date: Sat, 24 Feb 2024 17:46:46 -0500 Subject: [PATCH] extracting DualSid --- reader/src/main/java/com/rusefi/can/DualSid.java | 11 +++++++++++ .../com/rusefi/can/analysis/ByteRateOfChange.java | 13 +++---------- .../com/rusefi/can/analysis/CanToMegaLogViewer.java | 5 +++-- .../java/com/rusefi/can/analysis/PacketRatio.java | 3 ++- .../java/com/rusefi/can/analysis/PerSidDump.java | 7 +++---- 5 files changed, 22 insertions(+), 17 deletions(-) create mode 100644 reader/src/main/java/com/rusefi/can/DualSid.java diff --git a/reader/src/main/java/com/rusefi/can/DualSid.java b/reader/src/main/java/com/rusefi/can/DualSid.java new file mode 100644 index 0000000..82f1238 --- /dev/null +++ b/reader/src/main/java/com/rusefi/can/DualSid.java @@ -0,0 +1,11 @@ +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, "/"); + } +} diff --git a/reader/src/main/java/com/rusefi/can/analysis/ByteRateOfChange.java b/reader/src/main/java/com/rusefi/can/analysis/ByteRateOfChange.java index ae70a0a..ff2468c 100644 --- a/reader/src/main/java/com/rusefi/can/analysis/ByteRateOfChange.java +++ b/reader/src/main/java/com/rusefi/can/analysis/ByteRateOfChange.java @@ -1,6 +1,7 @@ package com.rusefi.can.analysis; import com.rusefi.can.CANPacket; +import com.rusefi.can.DualSid; import java.io.*; import java.util.*; @@ -45,7 +46,7 @@ public class ByteRateOfChange { for (ByteStatistics byteStatistics : allStats) { ByteId key = byteStatistics.key; - ps.println(dualSid(key.sid) + " byte " + key.getByteIndex() + " has " + byteStatistics.getUniqueValuesCount() + " unique value(s)"); + ps.println(DualSid.dualSid(key.sid) + " byte " + key.getByteIndex() + " has " + byteStatistics.getUniqueValuesCount() + " unique value(s)"); } ps.close(); @@ -69,14 +70,6 @@ public class ByteRateOfChange { 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 { private final HashSet uniqueValues = new HashSet<>(); int totalTransitions; @@ -131,7 +124,7 @@ public class ByteRateOfChange { } public String getLogKey() { - return dualSid(sid) + "_byte_" + byteIndex + "_bit_" + (byteIndex * 8); + return DualSid.dualSid(sid) + "_byte_" + byteIndex + "_bit_" + (byteIndex * 8); } @Override diff --git a/reader/src/main/java/com/rusefi/can/analysis/CanToMegaLogViewer.java b/reader/src/main/java/com/rusefi/can/analysis/CanToMegaLogViewer.java index 1d7988f..10fbb52 100644 --- a/reader/src/main/java/com/rusefi/can/analysis/CanToMegaLogViewer.java +++ b/reader/src/main/java/com/rusefi/can/analysis/CanToMegaLogViewer.java @@ -1,6 +1,7 @@ package com.rusefi.can.analysis; import com.rusefi.can.CANPacket; +import com.rusefi.can.DualSid; import com.rusefi.can.Launcher; import com.rusefi.can.reader.dbc.DbcFile; import com.rusefi.mlv.LoggingContext; @@ -92,10 +93,10 @@ public class CanToMegaLogViewer { private static String getTwoBytesKeyM(Integer sid, int i) { - return ByteRateOfChange.dualSid(sid) + "__" + i + "_" + (i + 1); + return DualSid.dualSid(sid) + "__" + i + "_" + (i + 1); } private static String getTwoBytesKeyL(Integer sid, int i) { - return ByteRateOfChange.dualSid(sid) + "__" + (i + 1) + "_" + i; + return DualSid.dualSid(sid) + "__" + (i + 1) + "_" + i; } } diff --git a/reader/src/main/java/com/rusefi/can/analysis/PacketRatio.java b/reader/src/main/java/com/rusefi/can/analysis/PacketRatio.java index 45fb7c6..4e6d752 100644 --- a/reader/src/main/java/com/rusefi/can/analysis/PacketRatio.java +++ b/reader/src/main/java/com/rusefi/can/analysis/PacketRatio.java @@ -1,6 +1,7 @@ package com.rusefi.can.analysis; import com.rusefi.can.CANPacket; +import com.rusefi.can.DualSid; import java.io.File; import java.io.FileWriter; @@ -26,7 +27,7 @@ public class PacketRatio { for (Map.Entry e : countBySID.entrySet()) { double ratio = 100.0 * e.getValue().get() / logFileContent.size(); - w.write(ByteRateOfChange.dualSid(e.getKey()) + ": " + ratio + "\n"); + w.write(DualSid.dualSid(e.getKey()) + ": " + ratio + "\n"); } w.close(); } diff --git a/reader/src/main/java/com/rusefi/can/analysis/PerSidDump.java b/reader/src/main/java/com/rusefi/can/analysis/PerSidDump.java index 6729108..3bc15f0 100644 --- a/reader/src/main/java/com/rusefi/can/analysis/PerSidDump.java +++ b/reader/src/main/java/com/rusefi/can/analysis/PerSidDump.java @@ -1,6 +1,7 @@ package com.rusefi.can.analysis; import com.rusefi.can.CANPacket; +import com.rusefi.can.DualSid; import com.rusefi.can.writer.SteveWriter; import java.io.File; @@ -11,8 +12,6 @@ import java.util.ArrayList; import java.util.List; import java.util.TreeSet; -import static com.rusefi.can.analysis.ByteRateOfChange.dualSid; - /** * Write a separate file for each unique packet ID */ @@ -29,7 +28,7 @@ public class PerSidDump { // O(n*M) is not so bad for (int sid : sids) { - String outputFileName = filteredDestinationFolder + File.separator + simpleFileName + "_filtered_" + ByteRateOfChange.dualSid(sid, "_") + ".txt"; + String outputFileName = filteredDestinationFolder + File.separator + simpleFileName + "_filtered_" + DualSid.dualSid(sid, "_") + ".txt"; PrintWriter pw = new PrintWriter(new FileOutputStream(outputFileName)); List filteredPackets = new ArrayList<>(); @@ -47,7 +46,7 @@ public class PerSidDump { int middleIndex = filteredPackets.size() / 2; CANPacket middlePacket = filteredPackets.get(middleIndex); - String middleOutputFileName = filteredDestinationFolder + File.separator + simpleFileName + "_filtered_" + ByteRateOfChange.dualSid(sid, "_") + "_middle.txt"; + String middleOutputFileName = filteredDestinationFolder + File.separator + simpleFileName + "_filtered_" + DualSid.dualSid(sid, "_") + "_middle.txt"; PrintWriter middle = new PrintWriter(new FileOutputStream(middleOutputFileName)); String decAndHex = middlePacket.getId() + "_" + Integer.toHexString(middlePacket.getId());