From 2698a8fb3096d915ba4963bdfd67d24e1404e1d1 Mon Sep 17 00:00:00 2001 From: rusefillc Date: Wed, 15 May 2024 16:17:29 -0400 Subject: [PATCH] bugfix? --- reader/src/main/java/com/rusefi/can/reader/dbc/DbcField.java | 2 ++ .../src/test/java/com/rusefi/can/reader/dbc/DbcFieldTest.java | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) 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 98ec1ee..694d12d 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 @@ -131,6 +131,8 @@ public class DbcField { public boolean coversByte(int byteIndex) { int startBit = byteIndex * 8; + if (isBigEndian && /* byte endianess less important for one byte fields */ length > 8) + startBit += 8; if (startOffset > startBit) return false; return startOffset + length >= startBit + 8; diff --git a/reader/src/test/java/com/rusefi/can/reader/dbc/DbcFieldTest.java b/reader/src/test/java/com/rusefi/can/reader/dbc/DbcFieldTest.java index df5bcf6..47c6fea 100644 --- a/reader/src/test/java/com/rusefi/can/reader/dbc/DbcFieldTest.java +++ b/reader/src/test/java/com/rusefi/can/reader/dbc/DbcFieldTest.java @@ -9,9 +9,9 @@ public class DbcFieldTest { @Test public void testBigEndian() { DbcField field = new DbcField("", 8, 16, 1, 0, null, true); - assertFalse(field.coversByte(0)); + assertTrue(field.coversByte(0)); assertTrue(field.coversByte(1)); - assertTrue(field.coversByte(2)); + assertFalse(field.coversByte(2)); assertFalse(field.coversByte(3)); }