From 4d1af4d7f4e2b0073f3984010ae68d906fc90f66 Mon Sep 17 00:00:00 2001 From: Volker Richert <v.richert@addmore.de> Date: Sat, 10 Dec 2016 18:14:01 +0100 Subject: [PATCH] refactoring --- .../android/medtronic/MedtronicCnlReader.java | 50 +++++++------------ .../message/ContourNextLinkBinaryMessage.java | 8 +-- .../ContourNextLinkCommandMessage.java | 4 ++ 3 files changed, 26 insertions(+), 36 deletions(-) diff --git a/app/src/main/java/info/nightscout/android/medtronic/MedtronicCnlReader.java b/app/src/main/java/info/nightscout/android/medtronic/MedtronicCnlReader.java index 7e1e44b..7acee74 100644 --- a/app/src/main/java/info/nightscout/android/medtronic/MedtronicCnlReader.java +++ b/app/src/main/java/info/nightscout/android/medtronic/MedtronicCnlReader.java @@ -187,13 +187,13 @@ public class MedtronicCnlReader implements ContourNextLinkMessageHandler { do { doRetry = false; try { - new ContourNextLinkCommandMessage(ASCII.NAK.value) - .send(mDevice).checkControlMessage(ASCII.EOT.value); - new ContourNextLinkCommandMessage(ASCII.ENQ.value) - .send(mDevice).checkControlMessage(ASCII.ACK.value); + new ContourNextLinkCommandMessage(ContourNextLinkCommandMessage.ASCII.NAK) + .send(mDevice).checkControlMessage(ContourNextLinkCommandMessage.ASCII.EOT); + new ContourNextLinkCommandMessage(ContourNextLinkCommandMessage.ASCII.ENQ) + .send(mDevice).checkControlMessage(ContourNextLinkCommandMessage.ASCII.ACK); } catch (UnexpectedMessageException e2) { try { - new ContourNextLinkCommandMessage(ASCII.EOT.value).send(this); + new ContourNextLinkCommandMessage(ContourNextLinkCommandMessage.ASCII.EOT).send(this); } catch (IOException e) {} finally { doRetry = true; @@ -205,11 +205,11 @@ public class MedtronicCnlReader implements ContourNextLinkMessageHandler { public void enterPassthroughMode() throws IOException, TimeoutException, UnexpectedMessageException, ChecksumException, EncryptionException { Log.d(TAG, "Begin enterPasshtroughMode"); new ContourNextLinkCommandMessage("W|") - .send(mDevice).checkControlMessage(ASCII.ACK.value); + .send(mDevice).checkControlMessage(ContourNextLinkCommandMessage.ASCII.ACK); new ContourNextLinkCommandMessage("Q|") - .send(mDevice).checkControlMessage(ASCII.ACK.value); + .send(mDevice).checkControlMessage(ContourNextLinkCommandMessage.ASCII.ACK); new ContourNextLinkCommandMessage("1|") - .send(mDevice).checkControlMessage(ASCII.ACK.value); + .send(mDevice).checkControlMessage(ContourNextLinkCommandMessage.ASCII.ACK); Log.d(TAG, "Finished enterPasshtroughMode"); } @@ -466,35 +466,21 @@ public class MedtronicCnlReader implements ContourNextLinkMessageHandler { Log.d(TAG, "Finished closeConnection"); } - public void endPassthroughMode() throws IOException, TimeoutException, UnexpectedMessageException { + public void endPassthroughMode() throws IOException, TimeoutException, UnexpectedMessageException, ChecksumException, EncryptionException { Log.d(TAG, "Begin endPassthroughMode"); - new ContourNextLinkCommandMessage("W|").send(this); - checkControlMessage(readMessage(), ASCII.ACK.value); - new ContourNextLinkCommandMessage("Q|").send(this); - checkControlMessage(readMessage(), ASCII.ACK.value); - new ContourNextLinkCommandMessage("0|").send(this); - checkControlMessage(readMessage(), ASCII.ACK.value); + new ContourNextLinkCommandMessage("W|") + .send(mDevice).checkControlMessage(ContourNextLinkCommandMessage.ASCII.ACK); + new ContourNextLinkCommandMessage("Q|") + .send(mDevice).checkControlMessage(ContourNextLinkCommandMessage.ASCII.ACK); + new ContourNextLinkCommandMessage("0|") + .send(mDevice).checkControlMessage(ContourNextLinkCommandMessage.ASCII.ACK); Log.d(TAG, "Finished endPassthroughMode"); } - public void endControlMode() throws IOException, TimeoutException, UnexpectedMessageException { + public void endControlMode() throws IOException, TimeoutException, UnexpectedMessageException, ChecksumException, EncryptionException { Log.d(TAG, "Begin endControlMode"); - new ContourNextLinkCommandMessage(ASCII.EOT.value).send(this); - checkControlMessage(readMessage(), ASCII.ENQ.value); + new ContourNextLinkCommandMessage(ContourNextLinkCommandMessage.ASCII.EOT) + .send(mDevice).checkControlMessage(ContourNextLinkCommandMessage.ASCII.ENQ); Log.d(TAG, "Finished endControlMode"); } - - public enum ASCII { - STX(0x02), - EOT(0x04), - ENQ(0x05), - ACK(0x06), - NAK(0x15); - - private byte value; - - ASCII(int code) { - this.value = (byte) code; - } - } } diff --git a/app/src/main/java/info/nightscout/android/medtronic/message/ContourNextLinkBinaryMessage.java b/app/src/main/java/info/nightscout/android/medtronic/message/ContourNextLinkBinaryMessage.java index c93aa7f..51ff599 100644 --- a/app/src/main/java/info/nightscout/android/medtronic/message/ContourNextLinkBinaryMessage.java +++ b/app/src/main/java/info/nightscout/android/medtronic/message/ContourNextLinkBinaryMessage.java @@ -64,7 +64,7 @@ public class ContourNextLinkBinaryMessage extends ContourNextLinkMessage { } - public void checkControlMessage(byte controlCharacter) throws IOException, TimeoutException, UnexpectedMessageException { + public void checkControlMessage(ASCII controlCharacter) throws IOException, TimeoutException, UnexpectedMessageException { checkControlMessage(mPayload.array(), controlCharacter); } @@ -119,10 +119,10 @@ public class ContourNextLinkBinaryMessage extends ContourNextLinkMessage { } } - protected void checkControlMessage(byte[] msg, byte controlCharacter) throws IOException, TimeoutException, UnexpectedMessageException { - if (msg.length != 1 || msg[0] != controlCharacter) { + protected void checkControlMessage(byte[] msg, ASCII controlCharacter) throws IOException, TimeoutException, UnexpectedMessageException { + if (msg.length != 1 || msg[0] != controlCharacter.value) { throw new UnexpectedMessageException(String.format(Locale.getDefault(), "Expected to get control character '%d' Got '%d'.", - (int) controlCharacter, (int) msg[0])); + (int) controlCharacter.value, (int) msg[0])); } } diff --git a/app/src/main/java/info/nightscout/android/medtronic/message/ContourNextLinkCommandMessage.java b/app/src/main/java/info/nightscout/android/medtronic/message/ContourNextLinkCommandMessage.java index c7dc1ab..151fe48 100644 --- a/app/src/main/java/info/nightscout/android/medtronic/message/ContourNextLinkCommandMessage.java +++ b/app/src/main/java/info/nightscout/android/medtronic/message/ContourNextLinkCommandMessage.java @@ -9,6 +9,10 @@ import info.nightscout.android.USB.UsbHidDriver; * Created by lgoedhart on 26/03/2016. */ public class ContourNextLinkCommandMessage extends ContourNextLinkMessage { + public ContourNextLinkCommandMessage(ASCII command) { + super(new byte[]{command.value}); + } + public ContourNextLinkCommandMessage(byte command) { super(new byte[]{command}); } -- GitLab