diff --git a/app/src/main/java/info/nightscout/androidaps/Constants.java b/app/src/main/java/info/nightscout/androidaps/Constants.java
index aeb4977584..56fd2b6de9 100644
--- a/app/src/main/java/info/nightscout/androidaps/Constants.java
+++ b/app/src/main/java/info/nightscout/androidaps/Constants.java
@@ -59,6 +59,7 @@ public class Constants {
//Autosens
public static final double DEVIATION_TO_BE_EQUAL = 2.0;
+ public static final double DEFAULT_MAX_ABSORPTION_TIME = 6.0;
// Pump
public static final int PUMP_MAX_CONNECTION_TIME_IN_SECONDS = 120 - 1;
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/IobCobCalculator/AutosensData.java b/app/src/main/java/info/nightscout/androidaps/plugins/IobCobCalculator/AutosensData.java
index 397656306b..4fe46f3a80 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/IobCobCalculator/AutosensData.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/IobCobCalculator/AutosensData.java
@@ -7,9 +7,11 @@ import java.util.ArrayList;
import java.util.Date;
import java.util.List;
+import info.nightscout.androidaps.Constants;
import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R;
import info.nightscout.androidaps.data.Profile;
+import info.nightscout.androidaps.plugins.OpenAPSSMB.SMBDefaults;
import info.nightscout.androidaps.plugins.Treatments.Treatment;
import info.nightscout.androidaps.interfaces.PluginType;
import info.nightscout.androidaps.plugins.SensitivityAAPS.SensitivityAAPSPlugin;
@@ -34,14 +36,14 @@ public class AutosensData {
carbs = t.carbs;
remaining = t.carbs;
if (SensitivityAAPSPlugin.getPlugin().isEnabled(PluginType.SENSITIVITY) || SensitivityWeightedAveragePlugin.getPlugin().isEnabled(PluginType.SENSITIVITY)) {
- double maxAbsorptionHours = SP.getDouble(R.string.key_absorption_maxtime, 4d);
+ double maxAbsorptionHours = SP.getDouble(R.string.key_absorption_maxtime, Constants.DEFAULT_MAX_ABSORPTION_TIME);
Profile profile = MainApp.getConfigBuilder().getProfile(t.date);
double sens = Profile.toMgdl(profile.getIsf(t.date), profile.getUnits());
double ic = profile.getIc(t.date);
min5minCarbImpact = t.carbs / (maxAbsorptionHours * 60 / 5) * sens / ic;
log.debug("Min 5m carbs impact for " + carbs + "g @" + new Date(t.date).toLocaleString() + " for " + maxAbsorptionHours + "h calculated to " + min5minCarbImpact + " ISF: " + sens + " IC: " + ic);
} else {
- min5minCarbImpact = SP.getDouble("openapsama_min_5m_carbimpact", 3.0);
+ min5minCarbImpact = SP.getDouble("openapsama_min_5m_carbimpact", SMBDefaults.min_5m_carbimpact);
}
}
}
@@ -73,7 +75,7 @@ public class AutosensData {
return (int) ((System.currentTimeMillis() - time) / 1000 / 60);
}
- // remove carbs older than 4h
+ // remove carbs older than timeframe
public void removeOldCarbs(long toTime) {
for (int i = 0; i < activeCarbsList.size(); i++) {
CarbsInPast c = activeCarbsList.get(i);
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/IobCobCalculator/IobCobThread.java b/app/src/main/java/info/nightscout/androidaps/plugins/IobCobCalculator/IobCobThread.java
index e3f12cbea6..7789f8a5a6 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/IobCobCalculator/IobCobThread.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/IobCobCalculator/IobCobThread.java
@@ -20,12 +20,17 @@ import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.data.IobTotal;
import info.nightscout.androidaps.data.Profile;
import info.nightscout.androidaps.db.BgReading;
+import info.nightscout.androidaps.interfaces.PluginType;
+import info.nightscout.androidaps.plugins.OpenAPSSMB.SMBDefaults;
+import info.nightscout.androidaps.plugins.SensitivityAAPS.SensitivityAAPSPlugin;
+import info.nightscout.androidaps.plugins.SensitivityWeightedAverage.SensitivityWeightedAveragePlugin;
import info.nightscout.androidaps.plugins.Treatments.Treatment;
import info.nightscout.androidaps.events.Event;
import info.nightscout.androidaps.plugins.IobCobCalculator.events.EventAutosensCalculationFinished;
import info.nightscout.androidaps.plugins.Treatments.TreatmentsPlugin;
import info.nightscout.utils.DateUtil;
import info.nightscout.utils.FabricPrivacy;
+import info.nightscout.utils.SP;
/**
* Created by mike on 23.01.2018.
@@ -199,9 +204,15 @@ public class IobCobThread extends Thread {
if (previous != null && previous.cob > 0) {
// calculate sum of min carb impact from all active treatments
double totalMinCarbsImpact = 0d;
- for (int ii = 0; ii < autosensData.activeCarbsList.size(); ++ii) {
- AutosensData.CarbsInPast c = autosensData.activeCarbsList.get(ii);
- totalMinCarbsImpact += c.min5minCarbImpact;
+ if (SensitivityAAPSPlugin.getPlugin().isEnabled(PluginType.SENSITIVITY) || SensitivityWeightedAveragePlugin.getPlugin().isEnabled(PluginType.SENSITIVITY)) {
+ //when the impact depends on a max time, sum them up as smaller carb sizes make them smaller
+ for (int ii = 0; ii < autosensData.activeCarbsList.size(); ++ii) {
+ AutosensData.CarbsInPast c = autosensData.activeCarbsList.get(ii);
+ totalMinCarbsImpact += c.min5minCarbImpact;
+ }
+ } else {
+ //Oref sensitivity
+ totalMinCarbsImpact = SP.getDouble("openapsama_min_5m_carbimpact", SMBDefaults.min_5m_carbimpact);
}
// figure out how many carbs that represents
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 8dcce74685..c721b7adb5 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -619,6 +619,8 @@
Sensitivity AAPS
Absorption settings
absorption_maxtime
+ absorption_cutoff
+
Meal max absorption time [h]
Time in hours where is expected all carbs from meal will be absorbed
rangetodisplay
diff --git a/app/src/main/res/xml/pref_absorption_oref0.xml b/app/src/main/res/xml/pref_absorption_oref0.xml
index bac14608c7..4cdd7fb8f0 100644
--- a/app/src/main/res/xml/pref_absorption_oref0.xml
+++ b/app/src/main/res/xml/pref_absorption_oref0.xml
@@ -28,7 +28,7 @@
android:maxLines="20"
android:title="@string/absorption_cutoff_title"
android:dialogMessage="@string/absorption_cutoff_summary"
- android:key="@string/key_absorption_maxtime" />
+ android:key="@string/key_absorption_cutoff" />