diff --git a/src/enginuity/io/connection/TestSSMConnectionImpl.java b/src/enginuity/io/connection/TestSSMConnectionImpl.java index 692c23b1..5953d020 100644 --- a/src/enginuity/io/connection/TestSSMConnectionImpl.java +++ b/src/enginuity/io/connection/TestSSMConnectionImpl.java @@ -23,7 +23,10 @@ import java.util.Random; @SuppressWarnings({"PointlessArithmeticExpression"}) public final class TestSSMConnectionImpl implements SerialConnection { private static final Random RANDOM = new Random(System.currentTimeMillis()); - private static final String ECU_INIT_RESPONSE = "8010F001BF4080F01039FFA21011315258400673FACB842B83FEA800000060CED4FDB060000F200000000000DC0000551E30C0F222000040FB00E1000000000000000059"; + private static final String ECU_INIT_RESPONSE_01_UP = "8010F001BF4080F01039FFA21011315258400673FACB842B83FEA800000060CED4FDB060000F200000000000DC0000551E30C0F222000040FB00E1000000000000000059"; + private static final String ECU_INIT_RESPONSE_PRE_01 = "8010F001BF4080F01029FFA1100B195458050561C4EB800808000000000070CE64F8BA080000E00000000000DC0000108000007B"; + private static final String ECU_INIT_RESPONSE = ECU_INIT_RESPONSE_01_UP; +// private static final String ECU_INIT_RESPONSE = ECU_INIT_RESPONSE_PRE_01; private byte[] request = new byte[0]; public TestSSMConnectionImpl(ConnectionProperties connectionProperties, String portName) { diff --git a/src/enginuity/logger/definition/xml/LoggerDefinitionHandler.java b/src/enginuity/logger/definition/xml/LoggerDefinitionHandler.java index 940194c7..60b6ba22 100644 --- a/src/enginuity/logger/definition/xml/LoggerDefinitionHandler.java +++ b/src/enginuity/logger/definition/xml/LoggerDefinitionHandler.java @@ -251,10 +251,16 @@ public final class LoggerDefinitionHandler extends DefaultHandler { } } - private boolean isSupportedParameter(final EcuInit ecuInit, final String ecuByteIndex, final String ecuBit) { - byte[] bytes = new byte[1]; - System.arraycopy(ecuInit.getEcuInitBytes(), Integer.parseInt(ecuByteIndex), bytes, 0, 1); - return (bytes[0] & 1 << Integer.parseInt(ecuBit)) > 0; + private boolean isSupportedParameter(EcuInit ecuInit, String ecuByteIndex, String ecuBit) { + byte[] ecuInitBytes = ecuInit.getEcuInitBytes(); + int index = Integer.parseInt(ecuByteIndex); + if (index < ecuInitBytes.length) { + byte[] bytes = new byte[1]; + System.arraycopy(ecuInitBytes, index, bytes, 0, 1); + return (bytes[0] & 1 << Integer.parseInt(ecuBit)) > 0; + } else { + return false; + } } public List getEcuParameters() {