From 82d24ccd22e76ee60cfaeb24e87efb8ce76442cf Mon Sep 17 00:00:00 2001 From: rusefillc Date: Mon, 12 Feb 2024 22:45:35 -0500 Subject: [PATCH] distribution is the new report! --- .../can/analysis/ByteRateOfChangeReports.java | 4 ++- .../com/rusefi/can/analysis/PacketRatio.java | 33 +++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 reader/src/main/java/com/rusefi/can/analysis/PacketRatio.java diff --git a/reader/src/main/java/com/rusefi/can/analysis/ByteRateOfChangeReports.java b/reader/src/main/java/com/rusefi/can/analysis/ByteRateOfChangeReports.java index a3e46c4..85b1123 100644 --- a/reader/src/main/java/com/rusefi/can/analysis/ByteRateOfChangeReports.java +++ b/reader/src/main/java/com/rusefi/can/analysis/ByteRateOfChangeReports.java @@ -110,8 +110,10 @@ public class ByteRateOfChangeReports { CanToMegaLogViewer.createMegaLogViewer(reportDestinationFolder, logFileContent, simpleFileName); + PacketRatio.write(reportDestinationFolder, logFileContent, simpleFileName); + ByteRateOfChange.TraceReport report = ByteRateOfChange.process(reportDestinationFolder, simpleFileName, logFileContent); - report.save("temp-ByteRateOfChange.txt"); + report.save(simpleFileName + "-ByteRateOfChange.txt"); reports.add(report); }, fileNameSuffix); diff --git a/reader/src/main/java/com/rusefi/can/analysis/PacketRatio.java b/reader/src/main/java/com/rusefi/can/analysis/PacketRatio.java new file mode 100644 index 0000000..f953b20 --- /dev/null +++ b/reader/src/main/java/com/rusefi/can/analysis/PacketRatio.java @@ -0,0 +1,33 @@ +package com.rusefi.can.analysis; + +import com.rusefi.can.CANPacket; + +import java.io.File; +import java.io.FileWriter; +import java.io.IOException; +import java.io.Writer; +import java.util.List; +import java.util.Map; +import java.util.TreeMap; +import java.util.concurrent.atomic.AtomicInteger; + +public class PacketRatio { + + public static void write(String reportDestinationFolder, List logFileContent, String simpleFileName) throws IOException { + + Map countBySID = new TreeMap<>(); + + for (CANPacket packet : logFileContent) { + AtomicInteger counter = countBySID.computeIfAbsent(packet.getId(), integer -> new AtomicInteger()); + counter.incrementAndGet(); + } + + Writer w = new FileWriter(reportDestinationFolder + File.separator + "distribution_" + simpleFileName); + + for (Map.Entry e : countBySID.entrySet()) { + double ratio = 100.0 * e.getValue().get() / logFileContent.size(); + w.write(ByteRateOfChange.dualSid(e.getKey()) + ": " + ratio + "\n"); + } + w.close(); + } +}