diff --git a/app/src/main/assets/OpenAPSSMB/determine-basal.js b/app/src/main/assets/OpenAPSSMB/determine-basal.js
index bb620bf5c9..9839f6bb1d 100644
--- a/app/src/main/assets/OpenAPSSMB/determine-basal.js
+++ b/app/src/main/assets/OpenAPSSMB/determine-basal.js
@@ -1091,17 +1091,23 @@ var determine_basal = function determine_basal(glucose_status, currenttemp, iob_
}
rT.reason += ". ";
- //allow SMBs every 3 minutes
- var nextBolusMins = round(3-lastBolusAge,1);
+ //allow SMBs every 3 minutes by default
+ var SMBInterval = 3;
+ if (profile.SMBInterval) {
+ // allow SMBIntervals between 1 and 10 minutes
+ SMBInterval = Math.min(10,Math.max(1,profile.SMBInterval));
+ }
+ var nextBolusMins = round(SMBInterval-lastBolusAge,0);
+ var nextBolusSeconds = round((SMBInterval - lastBolusAge) * 60, 0) % 60;
//console.error(naive_eventualBG, insulinReq, worstCaseInsulinReq, durationReq);
console.error("naive_eventualBG",naive_eventualBG+",",durationReq+"m "+smbLowTempReq+"U/h temp needed; last bolus",lastBolusAge+"m ago; maxBolus: "+maxBolus);
- if (lastBolusAge > 3) {
+ if (lastBolusAge > SMBInterval) {
if (microBolus > 0) {
rT.units = microBolus;
rT.reason += "Microbolusing " + microBolus + "U. ";
}
} else {
- rT.reason += "Waiting " + nextBolusMins + "m to microbolus again. ";
+ rT.reason += "Waiting " + nextBolusMins + "m " + nextBolusSeconds + "s to microbolus again. ";
}
//rT.reason += ". ";
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/aps/openAPSSMB/DetermineBasalAdapterSMBJS.java b/app/src/main/java/info/nightscout/androidaps/plugins/aps/openAPSSMB/DetermineBasalAdapterSMBJS.java
index bea67358b4..e445a1043d 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/aps/openAPSSMB/DetermineBasalAdapterSMBJS.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/aps/openAPSSMB/DetermineBasalAdapterSMBJS.java
@@ -267,6 +267,7 @@ public class DetermineBasalAdapterSMBJS {
mProfile.put("enableSMB_after_carbs", smbEnabled && SP.getBoolean(R.string.key_enableSMB_after_carbs, false) && advancedFiltering);
mProfile.put("maxSMBBasalMinutes", SP.getInt(R.string.key_smbmaxminutes, SMBDefaults.maxSMBBasalMinutes));
mProfile.put("maxUAMSMBBasalMinutes", SP.getInt("key_uamsmbmaxminutes", SMBDefaults.maxUAMSMBBasalMinutes));
+ mProfile.put("SMBInterval", SP.getInt("key_smbinterval", SMBDefaults.SMBInterval));
if (bolusincrement < pumpbolusstep){
//the bolus incrument is less than what the pump can support (by pump settings or pump restriction), set to value supported by the pump
bolusincrement = pumpbolusstep;
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/aps/openAPSSMB/SMBDefaults.java b/app/src/main/java/info/nightscout/androidaps/plugins/aps/openAPSSMB/SMBDefaults.java
index 0c129e998e..5f2216b5ae 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/aps/openAPSSMB/SMBDefaults.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/aps/openAPSSMB/SMBDefaults.java
@@ -55,6 +55,7 @@ public class SMBDefaults {
// *** WARNING *** DO NOT USE enableSMB_always or enableSMB_after_carbs with xDrip+, Libre, or similar
//public final static boolean enableSMB_after_carbs = false; // enable supermicrobolus for 6h after carbs, even with 0 COB
//public final static boolean allowSMB_with_high_temptarget = false; // allow supermicrobolus (if otherwise enabled) even with high temp targets
+ public final static int SMBInterval = 3; // minimum interval between SMBs, in minutes. (limited between 1 and 10 min)
public final static int maxSMBBasalMinutes = 30; // maximum minutes of basal that can be delivered as a single SMB with uncovered COB
public final static int maxUAMSMBBasalMinutes = 30; // maximum minutes of basal that can be delivered as a single SMB when IOB exceeds COB
// curve:"rapid-acting" // Supported curves: "bilinear", "rapid-acting" (Novolog, Novorapid, Humalog, Apidra) and "ultra-rapid" (Fiasp)
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 25b3e40a9a..1f42c6eb2b 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -838,6 +838,8 @@
BG upload settings
Show detailed delta
Show delta with one more decimal place
+ key_smbinterval
+ How frequently SMBs will be given in min
45 60 75 90 105 120
Max minutes of basal to limit SMB to
45 60 75 90 105 120
diff --git a/app/src/main/res/xml/pref_openapssmb.xml b/app/src/main/res/xml/pref_openapssmb.xml
index d165c12fc2..45375df376 100644
--- a/app/src/main/res/xml/pref_openapssmb.xml
+++ b/app/src/main/res/xml/pref_openapssmb.xml
@@ -65,6 +65,19 @@
android:summary="@string/enablesmbaftercarbs_summary"
android:title="@string/enablesmbaftercarbs" />
+
+