diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/comm/OmnipodCommunicationService.java b/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/comm/OmnipodCommunicationService.java
index 7fdf504db2..139a3e8dc3 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/comm/OmnipodCommunicationService.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/comm/OmnipodCommunicationService.java
@@ -18,7 +18,7 @@ import info.nightscout.androidaps.plugins.pump.omnipod.comm.action.OmnipodAction
import info.nightscout.androidaps.plugins.pump.omnipod.comm.exception.CommunicationException;
import info.nightscout.androidaps.plugins.pump.omnipod.comm.exception.IllegalPacketTypeException;
import info.nightscout.androidaps.plugins.pump.omnipod.comm.exception.IllegalResponseException;
-import info.nightscout.androidaps.plugins.pump.omnipod.comm.exception.IllegalSequenceNumberException;
+import info.nightscout.androidaps.plugins.pump.omnipod.comm.exception.IllegalMessageSequenceNumberException;
import info.nightscout.androidaps.plugins.pump.omnipod.comm.exception.NonceOutOfSyncException;
import info.nightscout.androidaps.plugins.pump.omnipod.comm.exception.NonceResyncException;
import info.nightscout.androidaps.plugins.pump.omnipod.comm.exception.NotEnoughDataException;
@@ -37,6 +37,7 @@ import info.nightscout.androidaps.plugins.pump.omnipod.defs.PacketType;
import info.nightscout.androidaps.plugins.pump.omnipod.defs.PodInfoType;
import info.nightscout.androidaps.plugins.pump.omnipod.defs.state.PodState;
import info.nightscout.androidaps.plugins.pump.omnipod.exception.OmnipodException;
+import info.nightscout.androidaps.plugins.pump.omnipod.util.OmnipodConst;
/**
* Created by andy on 6/29/18.
@@ -218,7 +219,7 @@ public class OmnipodCommunicationService extends RileyLinkCommunicationManager {
try {
receivedMessage = OmnipodMessage.decodeMessage(receivedMessageData);
if (receivedMessage.getSequenceNumber() != podState.getMessageNumber()) {
- throw new IllegalSequenceNumberException(podState.getMessageNumber(), receivedMessage.getSequenceNumber());
+ throw new IllegalMessageSequenceNumberException(podState.getMessageNumber(), receivedMessage.getSequenceNumber());
}
} catch (NotEnoughDataException ex) {
// Message is (probably) not complete yet
@@ -332,7 +333,8 @@ public class OmnipodCommunicationService extends RileyLinkCommunicationManager {
}
continue;
}
- if (response.getAddress() != packet.getAddress()) {
+ if (response.getAddress() != packet.getAddress() &&
+ response.getAddress() != OmnipodConst.DEFAULT_ADDRESS) { // In some (strange) cases, the Pod remains a packet address of 0xffffffff during it's lifetime
if (isLoggingEnabled()) {
LOG.debug("Packet address " + response.getAddress() + " doesn't match " + packet.getAddress());
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/comm/exception/IllegalSequenceNumberException.java b/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/comm/exception/IllegalMessageSequenceNumberException.java
similarity index 61%
rename from app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/comm/exception/IllegalSequenceNumberException.java
rename to app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/comm/exception/IllegalMessageSequenceNumberException.java
index d47b1e8d0b..b26d2b6ff8 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/comm/exception/IllegalSequenceNumberException.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/comm/exception/IllegalMessageSequenceNumberException.java
@@ -2,12 +2,12 @@ package info.nightscout.androidaps.plugins.pump.omnipod.comm.exception;
import info.nightscout.androidaps.plugins.pump.omnipod.exception.OmnipodException;
-public class IllegalSequenceNumberException extends OmnipodException {
+public class IllegalMessageSequenceNumberException extends OmnipodException {
private final int expected;
private final int actual;
- public IllegalSequenceNumberException(int expected, int actual) {
- super("Invalid sequence number. Expected="+ expected +", actual="+ actual, false);
+ public IllegalMessageSequenceNumberException(int expected, int actual) {
+ super("Invalid message sequence number. Expected="+ expected +", actual="+ actual, false);
this.expected = expected;
this.actual = actual;
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/driver/comm/AapsOmnipodManager.java b/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/driver/comm/AapsOmnipodManager.java
index b1da16fca3..40b3454f71 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/driver/comm/AapsOmnipodManager.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/driver/comm/AapsOmnipodManager.java
@@ -37,7 +37,7 @@ import info.nightscout.androidaps.plugins.pump.common.utils.DateTimeUtil;
import info.nightscout.androidaps.plugins.pump.omnipod.comm.OmnipodCommunicationService;
import info.nightscout.androidaps.plugins.pump.omnipod.comm.OmnipodManager;
import info.nightscout.androidaps.plugins.pump.omnipod.comm.SetupActionResult;
-import info.nightscout.androidaps.plugins.pump.omnipod.comm.exception.IllegalSequenceNumberException;
+import info.nightscout.androidaps.plugins.pump.omnipod.comm.exception.IllegalMessageSequenceNumberException;
import info.nightscout.androidaps.plugins.pump.omnipod.comm.message.response.StatusResponse;
import info.nightscout.androidaps.plugins.pump.omnipod.comm.message.response.podinfo.PodInfoRecentPulseLog;
import info.nightscout.androidaps.plugins.pump.omnipod.comm.message.response.podinfo.PodInfoResponse;
@@ -613,8 +613,8 @@ public class AapsOmnipodManager implements OmnipodCommunicationManagerInterface
comment = getStringResource(R.string.omnipod_driver_error_invalid_progress_state);
} else if (ex instanceof IllegalResponseException) {
comment = getStringResource(R.string.omnipod_driver_error_invalid_response);
- } else if (ex instanceof IllegalSequenceNumberException) {
- comment = getStringResource(R.string.omnipod_driver_error_invalid_sequence_number);
+ } else if (ex instanceof IllegalMessageSequenceNumberException) {
+ comment = getStringResource(R.string.omnipod_driver_error_invalid_message_sequence_number);
} else if (ex instanceof MessageDecodingException) {
comment = getStringResource(R.string.omnipod_driver_error_message_decoding_failed);
} else if (ex instanceof NonceOutOfSyncException) {
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index be040f4ac8..a97887f5f8 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1756,7 +1756,7 @@
Communication failed: received an invalid packet from the Pod.
Communication failed: the Pod is in a wrong state.
Communication failed: received an invalid response from the Pod.
- Communication failed: received a message with an invalid sequence number from the Pod.
+ Communication failed: received a message with an invalid sequence number from the Pod.
Communication failed: failed to decode message from the Pod.
Communication failed: nonce resync failed.
Communication failed: nonce out of sync.