From adf1d892da468409981178829108427f3b02ea0a Mon Sep 17 00:00:00 2001 From: Andy Rozman Date: Sat, 4 Jan 2020 16:23:35 +0100 Subject: [PATCH] - saving last error data, when error comes --- .../plugins/pump/common/data/PumpStatus.java | 14 ++++++++++---- .../pump/omnipod/driver/ui/OmnipodUITask.java | 8 +++++--- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/pump/common/data/PumpStatus.java b/app/src/main/java/info/nightscout/androidaps/plugins/pump/common/data/PumpStatus.java index da86a1ce60..fee0ac914d 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/pump/common/data/PumpStatus.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/pump/common/data/PumpStatus.java @@ -1,9 +1,9 @@ package info.nightscout.androidaps.plugins.pump.common.data; -import java.util.Date; - import org.joda.time.LocalDateTime; +import java.util.Date; + import info.nightscout.androidaps.data.ProfileStore; import info.nightscout.androidaps.interfaces.PumpDescription; import info.nightscout.androidaps.plugins.pump.common.defs.PumpStatusType; @@ -19,7 +19,9 @@ public abstract class PumpStatus { public LocalDateTime lastDataTime; public long lastConnection = 0L; public long previousConnection = 0L; // here should be stored last connection of previous session (so needs to be - // read before lastConnection is modified for first time). + // read before lastConnection is modified for first time). + + public long lastErrorConnection = 0L; // last bolus public Date lastBolusTime; @@ -30,7 +32,7 @@ public abstract class PumpStatus { public double reservoirRemainingUnits = 0.0d; public int reservoirFullUnits = 0; public int batteryRemaining = 0; // percent, so 0-100 - public Double batteryVoltage = null; + public Double batteryVoltage = null; // iob @@ -68,6 +70,10 @@ public abstract class PumpStatus { this.lastConnection = System.currentTimeMillis(); } + public void setLastFailedCommunicationToNow() { + this.lastErrorConnection = System.currentTimeMillis(); + } + public abstract String getErrorInfo(); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/driver/ui/OmnipodUITask.java b/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/driver/ui/OmnipodUITask.java index 527c8f9b62..3749a80ec2 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/driver/ui/OmnipodUITask.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/driver/ui/OmnipodUITask.java @@ -74,7 +74,7 @@ public class OmnipodUITask { break; case SetBolus: { - DetailedBolusInfo detailedBolusInfo = (DetailedBolusInfo)parameters[0]; + DetailedBolusInfo detailedBolusInfo = (DetailedBolusInfo) parameters[0]; if (detailedBolusInfo != null) returnData = communicationManager.setBolus(detailedBolusInfo); @@ -85,7 +85,7 @@ public class OmnipodUITask { // This command is very error prone, so retry a few times if it fails // Can take some time, but that's ok since this is a very specific feature for experts // And will not be used by normal users - for(int i = 0; 3 > i; i++) { + for (int i = 0; 3 > i; i++) { try { returnDataObject = communicationManager.readPulseLog(); responseType = PodResponseType.Acknowledgment; @@ -135,7 +135,7 @@ public class OmnipodUITask { } - if (returnData!=null) { + if (returnData != null) { responseType = returnData.success ? PodResponseType.Acknowledgment : PodResponseType.Error; } @@ -197,10 +197,12 @@ public class OmnipodUITask { if (responseType == PodResponseType.Invalid) { statusChange = new EventOmnipodDeviceStatusChange(PodDeviceState.ErrorWhenCommunicating, "Unsupported command in OmnipodUITask"); + OmnipodUtil.getPumpStatus().setLastFailedCommunicationToNow(); RxBus.INSTANCE.send(statusChange); } else if (responseType == PodResponseType.Error) { statusChange = new EventOmnipodDeviceStatusChange(PodDeviceState.ErrorWhenCommunicating, errorDescription); + OmnipodUtil.getPumpStatus().setLastFailedCommunicationToNow(); RxBus.INSTANCE.send(statusChange); } else { OmnipodUtil.getPumpStatus().setLastCommunicationToNow();