From d49eea854c342973aa19faa63d133594317023f2 Mon Sep 17 00:00:00 2001 From: AdrianLxM Date: Sat, 19 Aug 2017 20:12:37 +0200 Subject: [PATCH 1/2] Multiply time passed instead of divide dia. --- .../main/java/info/nightscout/androidaps/db/Treatment.java | 4 +--- .../androidaps/plugins/Treatments/TreatmentsPlugin.java | 6 +++++- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/db/Treatment.java b/app/src/main/java/info/nightscout/androidaps/db/Treatment.java index aebd52ac30..971e1d55f1 100644 --- a/app/src/main/java/info/nightscout/androidaps/db/Treatment.java +++ b/app/src/main/java/info/nightscout/androidaps/db/Treatment.java @@ -183,10 +183,8 @@ public class Treatment implements DataPointWithLabelInterface { public Iob iobCalc(long time, double dia) { if (!isValid) return new Iob(); - InsulinInterface insulinInterface = MainApp.getInsulinIterfaceById(insulinInterfaceID); - if (insulinInterface == null) - insulinInterface = ConfigBuilderPlugin.getActiveInsulin(); + InsulinInterface insulinInterface = ConfigBuilderPlugin.getActiveInsulin(); return insulinInterface.iobCalcForTreatment(this, time, dia); } } 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 acaecac190..44b54876ef 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 @@ -185,7 +185,11 @@ public class TreatmentsPlugin implements PluginBase, TreatmentsInterface { total.iob += tIOB.iobContrib; total.activity += tIOB.activityContrib; if (!t.isSMB) { - Iob bIOB = t.iobCalc(time, dia / SP.getDouble("openapsama_bolussnooze_dia_divisor", 2.0)); + // instead of dividing the DIA that only worked on the bilinear curves, + // multiply the time the treatment is seen active. + long timeSinceTreatent = t.date - time; + long snoozeTime = t.date - (long)(timeSinceTreatent * SP.getDouble("openapsama_bolussnooze_dia_divisor", 2.0)); + Iob bIOB = t.iobCalc(snoozeTime, dia); total.bolussnooze += bIOB.iobContrib; } else { total.basaliob += t.insulin; From 9c2808bf6f163182b4fb8be9b8b7274f7d03dcdf Mon Sep 17 00:00:00 2001 From: AdrianLxM Date: Sat, 19 Aug 2017 20:37:25 +0200 Subject: [PATCH 2/2] small refactoring --- .../androidaps/plugins/Treatments/TreatmentsPlugin.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 44b54876ef..5178c8484e 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 @@ -187,8 +187,8 @@ public class TreatmentsPlugin implements PluginBase, TreatmentsInterface { if (!t.isSMB) { // instead of dividing the DIA that only worked on the bilinear curves, // multiply the time the treatment is seen active. - long timeSinceTreatent = t.date - time; - long snoozeTime = t.date - (long)(timeSinceTreatent * SP.getDouble("openapsama_bolussnooze_dia_divisor", 2.0)); + long timeSinceTreatment = time - t.date; + long snoozeTime = t.date + (long)(timeSinceTreatment * SP.getDouble("openapsama_bolussnooze_dia_divisor", 2.0)); Iob bIOB = t.iobCalc(snoozeTime, dia); total.bolussnooze += bIOB.iobContrib; } else {