From 0f51ca9aa6aee3d032da5dfa23707088afbcf7e6 Mon Sep 17 00:00:00 2001
From: Volker Richert <v.richert@addmore.de>
Date: Sun, 1 Jan 2017 22:14:11 +0100
Subject: [PATCH] show log for last line in every case. was missing with 16
 char in last line

---
 .../medtronic/message/EHSMMessage.java        |  6 ++++-
 .../nightscout/android/utils/HexDump.java     | 22 +++++++++----------
 2 files changed, 15 insertions(+), 13 deletions(-)

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 1242361..d930a59 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 1e01ce7..0f7ccab 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(".");
             }
         }
 
-- 
GitLab