From 29a83d222a9cc8d8a39cad57d1a05bcc1bf591c0 Mon Sep 17 00:00:00 2001 From: rusefillc Date: Fri, 16 Feb 2024 00:31:00 -0500 Subject: [PATCH] things are turning nasty --- reader/src/main/java/com/rusefi/can/reader/dbc/DbcField.java | 1 + .../java/com/rusefi/can/reader/impl/GetValueFromTrcTest.java | 5 ++++- 2 files changed, 5 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 5080d28..971f6f2 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 @@ -99,6 +99,7 @@ public class DbcField { public static int getBitRange(byte[] data, int bitIndex, int bitWidth, boolean isBigEndian) { if (bitIndex < 0) throw new IllegalArgumentException("Huh? " + bitIndex + " " + bitWidth); + int byteIndex = bitIndex >> 3; int shift = bitIndex - byteIndex * 8; if (byteIndex >= data.length) 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 b2a1848..089b932 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 @@ -24,8 +24,11 @@ public class GetValueFromTrcTest { @Test public void testBigEndian() { + byte[] rpm = {(byte) 0x70, 0x04, 0x1F}; + assertEquals(0x41f, DbcField.getBitRange(rpm, 16, 16, true)); + byte[] data = {(byte) 0xAB, 0x56, 0x34}; - // hmmm + assertEquals(0x56AB, DbcField.getBitRange(data, 0, 16, false)); assertEquals(0xAB56, DbcField.getBitRange(data, 8, 16, true));