From 0029fdad01043d35f1f435ff19b5870046ef0885 Mon Sep 17 00:00:00 2001 From: Johannes Mockenhaupt Date: Thu, 20 Jul 2017 13:05:16 +0200 Subject: [PATCH] Combo-specifici hack: Consider a TBR with less than 60 seconds left as completed when determining whether to set a new TBR. Setting a new TBR overrides an running TBR if any, so this won't fail on the Combo. Without this, a TBR mostly runs out 20 seconds after a loop iteration (when receiving a SGV), so for that almost 5 minutes to TBR is set. Note that this is Combo-specific and needs to be revised when integrating this with mainline. --- .../java/info/nightscout/androidaps/db/TemporaryBasal.java | 7 +++++++ .../androidaps/plugins/Treatments/TreatmentsPlugin.java | 4 +++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/info/nightscout/androidaps/db/TemporaryBasal.java b/app/src/main/java/info/nightscout/androidaps/db/TemporaryBasal.java index 83ef07fbc8..c401c47574 100644 --- a/app/src/main/java/info/nightscout/androidaps/db/TemporaryBasal.java +++ b/app/src/main/java/info/nightscout/androidaps/db/TemporaryBasal.java @@ -252,6 +252,11 @@ public class TemporaryBasal implements Interval { return Math.round(msecs / 60f / 1000); } + public int getPlannedRemainingSeconds() { + Float remainingMin = (end() - System.currentTimeMillis()) / 1000f; + return remainingMin.intValue(); + } + public int getPlannedRemainingMinutes() { float remainingMin = (end() - System.currentTimeMillis()) / 1000f / 60; return (remainingMin < 0) ? 0 : Math.round(remainingMin); @@ -280,6 +285,8 @@ public class TemporaryBasal implements Interval { ", isAbsolute=" + isAbsolute + ", isFakeExtended=" + isFakeExtended + ", netExtendedRate=" + netExtendedRate + + ", minutesRemaining=" + getPlannedRemainingMinutes() + + ", secondsRemaining=" + getPlannedRemainingSeconds() + '}'; } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/TreatmentsPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/TreatmentsPlugin.java index 8a999cbcd6..6e8b092442 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/TreatmentsPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/TreatmentsPlugin.java @@ -263,7 +263,9 @@ public class TreatmentsPlugin implements PluginBase, TreatmentsInterface { @Override public boolean isTempBasalInProgress() { - return getTempBasalFromHistory(System.currentTimeMillis()) != null; + TemporaryBasal tempBasalFromHistory = getTempBasalFromHistory(System.currentTimeMillis()); + log.debug("activeTempbasal: " + tempBasalFromHistory); + return tempBasalFromHistory != null && tempBasalFromHistory.getPlannedRemainingSeconds() > 60; } @Override