diff --git a/src/main/java/com/rusefi/can/LoggingStrategy.java b/src/main/java/com/rusefi/can/LoggingStrategy.java index e549b84..f6f93df 100644 --- a/src/main/java/com/rusefi/can/LoggingStrategy.java +++ b/src/main/java/com/rusefi/can/LoggingStrategy.java @@ -25,6 +25,11 @@ public class LoggingStrategy { return field.getName(); } + @Override + public String getCategory() { + return field.getCategory(); + } + @Override public String getUnit() { return "x"; diff --git a/src/main/java/com/rusefi/can/reader/dbc/DbcField.java b/src/main/java/com/rusefi/can/reader/dbc/DbcField.java index 6c2ed45..b5ce4ab 100644 --- a/src/main/java/com/rusefi/can/reader/dbc/DbcField.java +++ b/src/main/java/com/rusefi/can/reader/dbc/DbcField.java @@ -7,12 +7,18 @@ public class DbcField { private final int startOffset; private final int length; private final double mult; + private String category; - public DbcField(String name, int startOffset, int length, double mult) { + public DbcField(String name, int startOffset, int length, double mult, String category) { this.name = name; this.startOffset = startOffset; this.length = length; this.mult = mult; + this.category = category; + } + + public String getCategory() { + return category; } public String getName() { diff --git a/src/main/java/com/rusefi/can/reader/dbc/DbcFile.java b/src/main/java/com/rusefi/can/reader/dbc/DbcFile.java index f420d14..f055579 100644 --- a/src/main/java/com/rusefi/can/reader/dbc/DbcFile.java +++ b/src/main/java/com/rusefi/can/reader/dbc/DbcFile.java @@ -21,18 +21,18 @@ public class DbcFile { } public void read(BufferedReader reader) throws IOException { - DbcPacket currentState = null; + DbcPacket currentPacket = null; String line; while ((line = reader.readLine()) != null) { line = line.trim(); if (line.startsWith("BO_")) { - if (currentState != null) - this.packets.add(currentState); + if (currentPacket != null) + this.packets.add(currentPacket); line = line.replaceAll(":", ""); String[] tokens = line.split(" "); int decId = Integer.parseInt(tokens[1]); - String name = tokens[2]; - currentState = new DbcPacket(decId, name); + String packetName = tokens[2]; + currentPacket = new DbcPacket(decId, packetName); } else if (line.startsWith("SG_")) { line = line.replaceAll("[|+@(,)\\[\\]]", " "); @@ -56,17 +56,17 @@ public class DbcFile { double mult = Double.parseDouble(tokens[index + 3]); - DbcField field = new DbcField(name, startOffset, length, mult); + DbcField field = new DbcField(name, startOffset, length, mult, currentPacket.getName()); if (debugEnabled) System.out.println("Found " + field); - currentState.add(field); + currentPacket.add(field); } else { // skipping useless line } } - if (currentState != null) - this.packets.add(currentState); + if (currentPacket != null) + this.packets.add(currentPacket); System.out.println(getClass().getSimpleName() + ": Total " + packets.size() + " packets"); } diff --git a/src/main/java/com/rusefi/sensor_logs/BinaryLogEntry.java b/src/main/java/com/rusefi/sensor_logs/BinaryLogEntry.java index 9497e7a..e769197 100644 --- a/src/main/java/com/rusefi/sensor_logs/BinaryLogEntry.java +++ b/src/main/java/com/rusefi/sensor_logs/BinaryLogEntry.java @@ -6,6 +6,8 @@ import java.io.IOException; public interface BinaryLogEntry { String getName(); + String getCategory(); + String getUnit(); int getByteSize(); diff --git a/src/main/java/com/rusefi/sensor_logs/BinarySensorLog.java b/src/main/java/com/rusefi/sensor_logs/BinarySensorLog.java index ec53539..333767b 100644 --- a/src/main/java/com/rusefi/sensor_logs/BinarySensorLog.java +++ b/src/main/java/com/rusefi/sensor_logs/BinarySensorLog.java @@ -136,7 +136,7 @@ public class BinarySensorLog implements SensorLog, Aut stream.writeFloat(0); // 0036h precision digits stream.write(2); - writeLine(stream, "Category", MLQ_FIELD_HEADER_NAME_OR_CATEGORY); + writeLine(stream, sensor.getCategory(), MLQ_FIELD_HEADER_NAME_OR_CATEGORY); } if (stream.size() != infoDataStart) throw new IllegalStateException("We are doing something wrong :( stream.size=" + stream.size() + "/" + infoDataStart); diff --git a/src/test/java/com/rusefi/can/reader/impl/GetValueFromTrc.java b/src/test/java/com/rusefi/can/reader/impl/GetValueFromTrc.java index 9ffbc5b..ebd27bc 100644 --- a/src/test/java/com/rusefi/can/reader/impl/GetValueFromTrc.java +++ b/src/test/java/com/rusefi/can/reader/impl/GetValueFromTrc.java @@ -9,7 +9,7 @@ import java.io.BufferedReader; import java.io.IOException; import java.io.StringReader; -import static com.rusefi.can.reader.impl.ParseDBC.VAG_MOTOR_1; +import static com.rusefi.can.reader.impl.ParseDBCTest.VAG_MOTOR_1; import static junit.framework.TestCase.assertNull; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; diff --git a/src/test/java/com/rusefi/can/reader/impl/ParseDBC.java b/src/test/java/com/rusefi/can/reader/impl/ParseDBCTest.java similarity index 98% rename from src/test/java/com/rusefi/can/reader/impl/ParseDBC.java rename to src/test/java/com/rusefi/can/reader/impl/ParseDBCTest.java index b39b231..55e465d 100644 --- a/src/test/java/com/rusefi/can/reader/impl/ParseDBC.java +++ b/src/test/java/com/rusefi/can/reader/impl/ParseDBCTest.java @@ -11,7 +11,7 @@ import java.io.StringReader; import static junit.framework.TestCase.assertEquals; -public class ParseDBC { +public class ParseDBCTest { public static final String VAG_MOTOR_1 = "BO_ 640 Motor_1: 8 XXX\n" + " SG_ Fahrerwunschmoment : 56|8@1+ (0.39,0) [0|99] \"MDI\" XXX\n" + " SG_ mechanisches_Motor_Verlustmomen : 48|8@1+ (0.39,0) [0|99] \"MDI\" XXX\n" + @@ -105,5 +105,6 @@ public class ParseDBC { DbcField rpm = motorPacket.find("RPM"); assertEquals(0.25, rpm.getMult()); + assertEquals("Motor_1", rpm.getCategory()); } } diff --git a/src/test/java/com/rusefi/can/reader/impl/TrcToMlqSandbox.java b/src/test/java/com/rusefi/can/reader/impl/TrcToMlqSandbox.java index 481b7da..dc0d38a 100644 --- a/src/test/java/com/rusefi/can/reader/impl/TrcToMlqSandbox.java +++ b/src/test/java/com/rusefi/can/reader/impl/TrcToMlqSandbox.java @@ -10,7 +10,7 @@ import java.io.IOException; import java.io.StringReader; import java.util.List; -import static com.rusefi.can.reader.impl.ParseDBC.VAG_MOTOR_1; +import static com.rusefi.can.reader.impl.ParseDBCTest.VAG_MOTOR_1; public class TrcToMlqSandbox {