progress or bug? I am very confused
This commit is contained in:
parent
2dfff3a3e9
commit
416c11423c
|
@ -149,8 +149,18 @@ 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 (isBigEndian) {
|
||||
if (!DbcFile.compatibilityWithBrokenRusEfiLogic) {
|
||||
startBit = DbcField.crazyMotorolaMath(startBit, length, true);
|
||||
|
||||
} else {
|
||||
if (/* byte endianess less important for one byte fields */ length > 8) {
|
||||
startBit += 8;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (startOffset > startBit)
|
||||
return false;
|
||||
return startOffset + length >= startBit + 8;
|
||||
|
|
|
@ -10,12 +10,13 @@ public class DbcFieldTest {
|
|||
@Test
|
||||
public void testBigEndian() {
|
||||
{
|
||||
// todo: sorry I do not trust this test :(
|
||||
compatibilityWithBrokenRusEfiLogic = false;
|
||||
DbcField field = create(true);
|
||||
assertFalse(field.coversByte(0));
|
||||
assertFalse(field.coversByte(1));
|
||||
assertFalse(field.coversByte(2));
|
||||
assertTrue(field.coversByte(3));
|
||||
assertFalse(field.coversByte(0));
|
||||
assertFalse(field.coversByte(3));
|
||||
}
|
||||
{
|
||||
compatibilityWithBrokenRusEfiLogic = true;
|
||||
|
@ -28,7 +29,11 @@ public class DbcFieldTest {
|
|||
}
|
||||
|
||||
private static DbcField create(boolean isBigEndian) {
|
||||
return new DbcField("", 8, 16, 1, 0, null, isBigEndian);
|
||||
int startBit = 8;
|
||||
int length = 16;
|
||||
|
||||
startBit = DbcField.crazyMotorolaMath(startBit, length, isBigEndian);
|
||||
return new DbcField("", startBit, length, 1, 0, null, isBigEndian);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
|
@ -123,7 +123,6 @@ public class ParseDBCTest {
|
|||
|
||||
|
||||
DbcFile dbc = new DbcFile(false);
|
||||
DbcFile.compatibilityWithBrokenRusEfiLogic = false;
|
||||
dbc.read(reader);
|
||||
|
||||
assertEquals(dbc.packets.size(), 1);
|
||||
|
@ -136,14 +135,11 @@ public class ParseDBCTest {
|
|||
|
||||
@Test
|
||||
public void crazyMotorola() {
|
||||
DbcFile.compatibilityWithBrokenRusEfiLogic = false;
|
||||
assertEquals(24, DbcField.crazyMotorolaMath(27, 4, true));
|
||||
assertEquals(24, DbcField.crazyMotorolaMath(30, 7, true));
|
||||
assertEquals(24, DbcField.crazyMotorolaMath(31, 8, true));
|
||||
assertEquals(24, DbcField.crazyMotorolaMath(17, 10, true));
|
||||
|
||||
assertEquals(24, DbcField.crazyMotorolaMath(17, 10, true));
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue