diff --git a/app/src/main/java/info/nightscout/android/medtronic/message/EHSMMessage.java b/app/src/main/java/info/nightscout/android/medtronic/message/EHSMMessage.java index 1242361bdeb0a44c08ec7507912904926e4a45a6..d930a59e3ae785b1bfec5255b3f914c1ffb2422f 100644 --- a/app/src/main/java/info/nightscout/android/medtronic/message/EHSMMessage.java +++ b/app/src/main/java/info/nightscout/android/medtronic/message/EHSMMessage.java @@ -7,6 +7,7 @@ import info.nightscout.android.USB.UsbHidDriver; import info.nightscout.android.medtronic.MedtronicCnlSession; import info.nightscout.android.medtronic.exception.ChecksumException; import info.nightscout.android.medtronic.exception.EncryptionException; +import info.nightscout.android.medtronic.exception.UnexpectedMessageException; /** * Created by volker on 22.12.2016. @@ -18,7 +19,7 @@ public class EHSMMessage extends MedtronicSendMessageRequestMessage<ContourNext } @Override - public ContourNextLinkResponseMessage send(UsbHidDriver mDevice, int millis) throws IOException, TimeoutException { + public ContourNextLinkResponseMessage send(UsbHidDriver mDevice, int millis) throws IOException, TimeoutException, UnexpectedMessageException { sendMessage(mDevice); if (millis > 0) { try { @@ -28,6 +29,9 @@ public class EHSMMessage extends MedtronicSendMessageRequestMessage<ContourNext } // The End EHSM Session only has an 0x81 response readMessage(mDevice); + if (this.encode().length != 54) { + throw new UnexpectedMessageException("length of EHSMMessage response does not match"); + } return null; } } diff --git a/app/src/main/java/info/nightscout/android/utils/HexDump.java b/app/src/main/java/info/nightscout/android/utils/HexDump.java index 1e01ce78ed71eaf094579ec3f171fdcab1779ef8..0f7ccab2c47d427c20c4b3c02fa61d476fe9e3ff 100644 --- a/app/src/main/java/info/nightscout/android/utils/HexDump.java +++ b/app/src/main/java/info/nightscout/android/utils/HexDump.java @@ -63,19 +63,17 @@ public class HexDump { line[lineIndex++] = b; } - if (lineIndex != 16) { - int count = (16 - lineIndex) * 3; - count++; - for (int i = 0; i < count; i++) { - result.append(" "); - } + int count = (16 - lineIndex) * 3; + count++; + for (int i = 0; i < count; i++) { + result.append(" "); + } - for (int i = 0; i < lineIndex; i++) { - if (line[i] > ' ' && line[i] < '~') { - result.append(new String(line, i, 1)); - } else { - result.append("."); - } + for (int i = 0; i < lineIndex; i++) { + if (line[i] > ' ' && line[i] < '~') { + result.append(new String(line, i, 1)); + } else { + result.append("."); } }