From 6a041668628b7e1159df9687739bd19b7ca29fe6 Mon Sep 17 00:00:00 2001 From: rusefillc Date: Sat, 16 Mar 2024 19:56:54 -0600 Subject: [PATCH] new API & coverage --- .../main/java/com/rusefi/can/reader/dbc/DbcField.java | 9 +++++++++ .../main/java/com/rusefi/can/reader/dbc/DbcPacket.java | 7 +++++++ .../com/rusefi/can/reader/impl/GetValueFromTrcTest.java | 7 ++++++- 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/reader/src/main/java/com/rusefi/can/reader/dbc/DbcField.java b/reader/src/main/java/com/rusefi/can/reader/dbc/DbcField.java index 971f6f2..db116d8 100644 --- a/reader/src/main/java/com/rusefi/can/reader/dbc/DbcField.java +++ b/reader/src/main/java/com/rusefi/can/reader/dbc/DbcField.java @@ -123,4 +123,13 @@ public class DbcField { name = niceName; isNiceName = true; } + + public boolean coversByte(int byteIndex) { + int startBit = byteIndex * 8; + if (startOffset>startBit) + return false; + if (startOffset + length < byteIndex + 8) + return false; + return true; + } } diff --git a/reader/src/main/java/com/rusefi/can/reader/dbc/DbcPacket.java b/reader/src/main/java/com/rusefi/can/reader/dbc/DbcPacket.java index b924f37..ae71838 100644 --- a/reader/src/main/java/com/rusefi/can/reader/dbc/DbcPacket.java +++ b/reader/src/main/java/com/rusefi/can/reader/dbc/DbcPacket.java @@ -102,4 +102,11 @@ public class DbcPacket { return buf.toString(); } + public DbcField getFieldAtByte(int byteIndex) { + for (DbcField field : fields) { + if (field.coversByte(byteIndex)) + return field; + } + return null; + } } diff --git a/reader/src/test/java/com/rusefi/can/reader/impl/GetValueFromTrcTest.java b/reader/src/test/java/com/rusefi/can/reader/impl/GetValueFromTrcTest.java index c7f59c2..eb452e9 100644 --- a/reader/src/test/java/com/rusefi/can/reader/impl/GetValueFromTrcTest.java +++ b/reader/src/test/java/com/rusefi/can/reader/impl/GetValueFromTrcTest.java @@ -1,6 +1,7 @@ package com.rusefi.can.reader.impl; import com.rusefi.can.CANPacket; +import com.rusefi.can.reader.dbc.DbcPacket; import com.rusefi.mlv.LoggingStrategy; import com.rusefi.can.reader.dbc.DbcField; import com.rusefi.can.reader.dbc.DbcFile; @@ -52,7 +53,11 @@ public class GetValueFromTrcTest { BufferedReader reader = new BufferedReader(new StringReader(VAG_MOTOR_1)); dbc.read(reader); } - assertNotNull(dbc.findPacket(640)); + DbcPacket packet640 = dbc.findPacket(640); + assertNotNull(packet640); + DbcField byte1 = packet640.getFieldAtByte(1); + assertNotNull(byte1); + assertEquals("inneres_Motor_Moment", byte1.getName()); assertNull(dbc.findPacket(1640)); String trcLine = " 3769) 2117.7 Rx 0280 8 01 1D DF 12 1E 00 1A 1E ";