From a6a4a8837dfd2ed0e3eab40c4d86aa5048294f6b Mon Sep 17 00:00:00 2001 From: AdrianLxM Date: Wed, 25 Apr 2018 01:18:40 +0200 Subject: [PATCH 1/8] safety run if SMB fails --- .../androidaps/interfaces/APSInterface.java | 2 +- .../androidaps/plugins/Loop/LoopPlugin.java | 37 +++++++++++++------ .../OpenAPSAMA/OpenAPSAMAFragment.java | 2 +- .../plugins/OpenAPSAMA/OpenAPSAMAPlugin.java | 4 +- .../plugins/OpenAPSMA/OpenAPSMAFragment.java | 2 +- .../plugins/OpenAPSMA/OpenAPSMAPlugin.java | 4 +- .../DetermineBasalAdapterSMBJS.java | 10 ++--- .../OpenAPSSMB/OpenAPSSMBFragment.java | 2 +- .../plugins/OpenAPSSMB/OpenAPSSMBPlugin.java | 14 +++---- 9 files changed, 45 insertions(+), 32 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/interfaces/APSInterface.java b/app/src/main/java/info/nightscout/androidaps/interfaces/APSInterface.java index 11c01112ba..6c47dd9d6e 100644 --- a/app/src/main/java/info/nightscout/androidaps/interfaces/APSInterface.java +++ b/app/src/main/java/info/nightscout/androidaps/interfaces/APSInterface.java @@ -11,5 +11,5 @@ public interface APSInterface { public APSResult getLastAPSResult(); public Date getLastAPSRun(); - public void invoke(String initiator); + public void invoke(String initiator, boolean safety); } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Loop/LoopPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/Loop/LoopPlugin.java index a4cf0c60ac..9806df37a0 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Loop/LoopPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Loop/LoopPlugin.java @@ -9,6 +9,7 @@ import android.app.TaskStackBuilder; import android.content.Context; import android.content.Intent; import android.os.Build; +import android.os.SystemClock; import android.support.annotation.NonNull; import android.support.v4.app.NotificationCompat; @@ -253,7 +254,11 @@ public class LoopPlugin extends PluginBase { return isDisconnected; } - public void invoke(String initiator, boolean allowNotification) { + public void invoke(String initiator, boolean allowNotification){ + invoke(initiator, allowNotification, false); + } + + public void invoke(String initiator, boolean allowNotification, boolean safety) { try { if (Config.logFunctionCalls) log.debug("invoke from " + initiator); @@ -284,7 +289,7 @@ public class LoopPlugin extends PluginBase { APSInterface usedAPS = ConfigBuilderPlugin.getActiveAPS(); if (usedAPS != null && ((PluginBase) usedAPS).isEnabled(PluginType.APS)) { - usedAPS.invoke(initiator); + usedAPS.invoke(initiator, safety); result = usedAPS.getLastAPSResult(); } @@ -348,16 +353,24 @@ public class LoopPlugin extends PluginBase { if (result.enacted || result.success) { lastRun.tbrSetByPump = result; lastRun.lastEnact = lastRun.lastAPSRun; - } - MainApp.bus().post(new EventLoopUpdateGui()); - } - }); - MainApp.getConfigBuilder().applySMBRequest(resultAfterConstraints, new Callback() { - @Override - public void run() { - if (result.enacted || result.success) { - lastRun.smbSetByPump = result; - lastRun.lastEnact = lastRun.lastAPSRun; + + MainApp.getConfigBuilder().applySMBRequest(resultAfterConstraints, new Callback() { + @Override + public void run() { + //Callback is only called if a bolus was acutally requested + if (result.enacted || result.success) { + lastRun.smbSetByPump = result; + lastRun.lastEnact = lastRun.lastAPSRun; + } else { + new Thread(() -> { + SystemClock.sleep(1000); + LoopPlugin.getPlugin().invoke("safety", allowNotification, true); + }).start(); + FabricPrivacy.getInstance().logCustom(new CustomEvent("Loop_Run_Safety")); + } + MainApp.bus().post(new EventLoopUpdateGui()); + } + }); } MainApp.bus().post(new EventLoopUpdateGui()); } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/OpenAPSAMAFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/OpenAPSAMAFragment.java index 9c9ad7d222..2e6bb277e6 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/OpenAPSAMAFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/OpenAPSAMAFragment.java @@ -72,7 +72,7 @@ public class OpenAPSAMAFragment extends SubscriberFragment implements View.OnCli public void onClick(View view) { switch (view.getId()) { case R.id.openapsma_run: - OpenAPSAMAPlugin.getPlugin().invoke("OpenAPSAMA button"); + OpenAPSAMAPlugin.getPlugin().invoke("OpenAPSAMA button", false); FabricPrivacy.getInstance().logCustom(new CustomEvent("OpenAPS_AMA_Run")); break; } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/OpenAPSAMAPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/OpenAPSAMAPlugin.java index 2789c75252..49973d6cd5 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/OpenAPSAMAPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/OpenAPSAMAPlugin.java @@ -88,8 +88,8 @@ public class OpenAPSAMAPlugin extends PluginBase implements APSInterface { } @Override - public void invoke(String initiator) { - log.debug("invoke from " + initiator); + public void invoke(String initiator, boolean safety) { + log.debug("invoke from " + initiator + " safety: " + safety); lastAPSResult = null; DetermineBasalAdapterAMAJS determineBasalAdapterAMAJS; try { diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/OpenAPSMAFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/OpenAPSMAFragment.java index 6b8cb9d0aa..7360bb8b2a 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/OpenAPSMAFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/OpenAPSMAFragment.java @@ -66,7 +66,7 @@ public class OpenAPSMAFragment extends SubscriberFragment implements View.OnClic public void onClick(View view) { switch (view.getId()) { case R.id.openapsma_run: - OpenAPSMAPlugin.getPlugin().invoke("OpenAPSMA button"); + OpenAPSMAPlugin.getPlugin().invoke("OpenAPSMA button", false); FabricPrivacy.getInstance().logCustom(new CustomEvent("OpenAPS_MA_Run")); break; } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/OpenAPSMAPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/OpenAPSMAPlugin.java index 0d9895bad7..45a8ea470d 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/OpenAPSMAPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/OpenAPSMAPlugin.java @@ -88,8 +88,8 @@ public class OpenAPSMAPlugin extends PluginBase implements APSInterface { } @Override - public void invoke(String initiator) { - log.debug("invoke from " + initiator); + public void invoke(String initiator, boolean safety) { + log.debug("invoke from " + initiator + " safety: " + safety); lastAPSResult = null; DetermineBasalAdapterMAJS determineBasalAdapterMAJS = null; try { diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSSMB/DetermineBasalAdapterSMBJS.java b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSSMB/DetermineBasalAdapterSMBJS.java index 0d1cf1cca8..da96241e61 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSSMB/DetermineBasalAdapterSMBJS.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSSMB/DetermineBasalAdapterSMBJS.java @@ -214,7 +214,7 @@ public class DetermineBasalAdapterSMBJS { double autosensDataRatio, boolean tempTargetSet, boolean microBolusAllowed, - boolean smbAlwaysAllowed + boolean advancedFiltering ) throws JSONException { String units = profile.getUnits(); @@ -250,13 +250,13 @@ public class DetermineBasalAdapterSMBJS { mProfile.put("min_5m_carbimpact", SP.getDouble(R.string.key_openapsama_min_5m_carbimpact, SMBDefaults.min_5m_carbimpact)); } mProfile.put("remainingCarbsCap", SMBDefaults.remainingCarbsCap); - mProfile.put("enableUAM", SP.getBoolean(R.string.key_use_uam, false)); + mProfile.put("enableUAM", SP.getBoolean(R.string.key_use_uam, false)&& advancedFiltering); mProfile.put("A52_risk_enable", SMBDefaults.A52_risk_enable); mProfile.put("enableSMB_with_COB", SP.getBoolean(R.string.key_enableSMB_with_COB, false)); mProfile.put("enableSMB_with_temptarget", SP.getBoolean(R.string.key_enableSMB_with_temptarget, false)); mProfile.put("allowSMB_with_high_temptarget", SP.getBoolean(R.string.key_allowSMB_with_high_temptarget, false)); - mProfile.put("enableSMB_always", SP.getBoolean(R.string.key_enableSMB_always, false) && smbAlwaysAllowed); - mProfile.put("enableSMB_after_carbs", SP.getBoolean(R.string.key_enableSMB_after_carbs, false) && smbAlwaysAllowed); + mProfile.put("enableSMB_always", SP.getBoolean(R.string.key_enableSMB_always, false) && advancedFiltering); + mProfile.put("enableSMB_after_carbs", SP.getBoolean(R.string.key_enableSMB_after_carbs, false) && advancedFiltering); mProfile.put("maxSMBBasalMinutes", SP.getInt("key_smbmaxminutes", SMBDefaults.maxSMBBasalMinutes)); mProfile.put("carbsReqThreshold", SMBDefaults.carbsReqThreshold); @@ -315,7 +315,7 @@ public class DetermineBasalAdapterSMBJS { mAutosensData.put("ratio", 1.0); } mMicrobolusAllowed = microBolusAllowed; - mSMBAlwaysAllowed = smbAlwaysAllowed; + mSMBAlwaysAllowed = advancedFiltering; } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSSMB/OpenAPSSMBFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSSMB/OpenAPSSMBFragment.java index c35e229354..7780fcc9b4 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSSMB/OpenAPSSMBFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSSMB/OpenAPSSMBFragment.java @@ -66,7 +66,7 @@ public class OpenAPSSMBFragment extends SubscriberFragment { @OnClick(R.id.openapsma_run) public void onRunClick() { - OpenAPSSMBPlugin.getPlugin().invoke("OpenAPSSMB button"); + OpenAPSSMBPlugin.getPlugin().invoke("OpenAPSSMB button", false); FabricPrivacy.getInstance().logCustom(new CustomEvent("OpenAPS_SMB_Run")); } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSSMB/OpenAPSSMBPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSSMB/OpenAPSSMBPlugin.java index 60b516fc63..11fe65a082 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSSMB/OpenAPSSMBPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSSMB/OpenAPSSMBPlugin.java @@ -91,8 +91,8 @@ public class OpenAPSSMBPlugin extends PluginBase implements APSInterface { } @Override - public void invoke(String initiator) { - log.debug("invoke from " + initiator); + public void invoke(String initiator, boolean safety) { + log.debug("invoke from " + initiator + " safety: " + safety); lastAPSResult = null; DetermineBasalAdapterSMBJS determineBasalAdapterSMBJS = null; try { @@ -184,13 +184,13 @@ public class OpenAPSSMBPlugin extends PluginBase implements APSInterface { lastAutosensResult = new AutosensResult(); } - Constraint smbAllowed = new Constraint<>(true); + Constraint smbAllowed = new Constraint<>(!safety); MainApp.getConstraintChecker().isSMBModeEnabled(smbAllowed); inputConstraints.copyReasons(smbAllowed); - Constraint smbAlwaysEnabled = new Constraint<>(true); - MainApp.getConstraintChecker().isAdvancedFilteringEnabled(smbAlwaysEnabled); - inputConstraints.copyReasons(smbAlwaysEnabled); + Constraint advancedFiltering = new Constraint<>(!safety); + MainApp.getConstraintChecker().isAdvancedFilteringEnabled(advancedFiltering); + inputConstraints.copyReasons(advancedFiltering); Profiler.log(log, "detectSensitivityandCarbAbsorption()", startPart); Profiler.log(log, "SMB data gathering", start); @@ -201,7 +201,7 @@ public class OpenAPSSMBPlugin extends PluginBase implements APSInterface { lastAutosensResult.ratio, //autosensDataRatio isTempTarget, smbAllowed.value(), - smbAlwaysEnabled.value() + advancedFiltering.value() ); } catch (JSONException e) { log.error(e.getMessage()); From 2a50248ba53f483441f18ef9591df7320286a11c Mon Sep 17 00:00:00 2001 From: AdrianLxM Date: Wed, 25 Apr 2018 01:37:48 +0200 Subject: [PATCH 2/8] travis re-invoke commit with cleanup --- .../java/info/nightscout/androidaps/plugins/Loop/LoopPlugin.java | 1 - 1 file changed, 1 deletion(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Loop/LoopPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/Loop/LoopPlugin.java index 9806df37a0..c8737e1119 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Loop/LoopPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Loop/LoopPlugin.java @@ -353,7 +353,6 @@ public class LoopPlugin extends PluginBase { if (result.enacted || result.success) { lastRun.tbrSetByPump = result; lastRun.lastEnact = lastRun.lastAPSRun; - MainApp.getConfigBuilder().applySMBRequest(resultAfterConstraints, new Callback() { @Override public void run() { From 85bb085188b9bd4b867fc871b5d9d2cb9291ee47 Mon Sep 17 00:00:00 2001 From: AdrianLxM Date: Wed, 25 Apr 2018 12:51:27 +0200 Subject: [PATCH 3/8] rename safety to tempBasalFallback --- .../nightscout/androidaps/interfaces/APSInterface.java | 2 +- .../nightscout/androidaps/plugins/Loop/LoopPlugin.java | 8 ++++---- .../androidaps/plugins/OpenAPSAMA/OpenAPSAMAPlugin.java | 4 ++-- .../androidaps/plugins/OpenAPSMA/OpenAPSMAPlugin.java | 4 ++-- .../androidaps/plugins/OpenAPSSMB/OpenAPSSMBPlugin.java | 8 ++++---- 5 files changed, 13 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/interfaces/APSInterface.java b/app/src/main/java/info/nightscout/androidaps/interfaces/APSInterface.java index 6c47dd9d6e..0b965d48af 100644 --- a/app/src/main/java/info/nightscout/androidaps/interfaces/APSInterface.java +++ b/app/src/main/java/info/nightscout/androidaps/interfaces/APSInterface.java @@ -11,5 +11,5 @@ public interface APSInterface { public APSResult getLastAPSResult(); public Date getLastAPSRun(); - public void invoke(String initiator, boolean safety); + public void invoke(String initiator, boolean tempBasalFallback); } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Loop/LoopPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/Loop/LoopPlugin.java index 9806df37a0..694c5c841b 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Loop/LoopPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Loop/LoopPlugin.java @@ -258,7 +258,7 @@ public class LoopPlugin extends PluginBase { invoke(initiator, allowNotification, false); } - public void invoke(String initiator, boolean allowNotification, boolean safety) { + public void invoke(String initiator, boolean allowNotification, boolean tempBasalFallback) { try { if (Config.logFunctionCalls) log.debug("invoke from " + initiator); @@ -289,7 +289,7 @@ public class LoopPlugin extends PluginBase { APSInterface usedAPS = ConfigBuilderPlugin.getActiveAPS(); if (usedAPS != null && ((PluginBase) usedAPS).isEnabled(PluginType.APS)) { - usedAPS.invoke(initiator, safety); + usedAPS.invoke(initiator, tempBasalFallback); result = usedAPS.getLastAPSResult(); } @@ -364,9 +364,9 @@ public class LoopPlugin extends PluginBase { } else { new Thread(() -> { SystemClock.sleep(1000); - LoopPlugin.getPlugin().invoke("safety", allowNotification, true); + LoopPlugin.getPlugin().invoke("tempBasalFallback", allowNotification, true); }).start(); - FabricPrivacy.getInstance().logCustom(new CustomEvent("Loop_Run_Safety")); + FabricPrivacy.getInstance().logCustom(new CustomEvent("Loop_Run_TempBasalFallback")); } MainApp.bus().post(new EventLoopUpdateGui()); } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/OpenAPSAMAPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/OpenAPSAMAPlugin.java index 49973d6cd5..d31825cc4b 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/OpenAPSAMAPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/OpenAPSAMAPlugin.java @@ -88,8 +88,8 @@ public class OpenAPSAMAPlugin extends PluginBase implements APSInterface { } @Override - public void invoke(String initiator, boolean safety) { - log.debug("invoke from " + initiator + " safety: " + safety); + public void invoke(String initiator, boolean tempBasalFallback) { + log.debug("invoke from " + initiator + " safety: " + tempBasalFallback); lastAPSResult = null; DetermineBasalAdapterAMAJS determineBasalAdapterAMAJS; try { diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/OpenAPSMAPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/OpenAPSMAPlugin.java index 45a8ea470d..36e83e36e1 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/OpenAPSMAPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/OpenAPSMAPlugin.java @@ -88,8 +88,8 @@ public class OpenAPSMAPlugin extends PluginBase implements APSInterface { } @Override - public void invoke(String initiator, boolean safety) { - log.debug("invoke from " + initiator + " safety: " + safety); + public void invoke(String initiator, boolean tempBasalFallback) { + log.debug("invoke from " + initiator + " safety: " + tempBasalFallback); lastAPSResult = null; DetermineBasalAdapterMAJS determineBasalAdapterMAJS = null; try { diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSSMB/OpenAPSSMBPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSSMB/OpenAPSSMBPlugin.java index 11fe65a082..c6edf60866 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSSMB/OpenAPSSMBPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSSMB/OpenAPSSMBPlugin.java @@ -91,8 +91,8 @@ public class OpenAPSSMBPlugin extends PluginBase implements APSInterface { } @Override - public void invoke(String initiator, boolean safety) { - log.debug("invoke from " + initiator + " safety: " + safety); + public void invoke(String initiator, boolean tempBasalFallback) { + log.debug("invoke from " + initiator + " safety: " + tempBasalFallback); lastAPSResult = null; DetermineBasalAdapterSMBJS determineBasalAdapterSMBJS = null; try { @@ -184,11 +184,11 @@ public class OpenAPSSMBPlugin extends PluginBase implements APSInterface { lastAutosensResult = new AutosensResult(); } - Constraint smbAllowed = new Constraint<>(!safety); + Constraint smbAllowed = new Constraint<>(!tempBasalFallback); MainApp.getConstraintChecker().isSMBModeEnabled(smbAllowed); inputConstraints.copyReasons(smbAllowed); - Constraint advancedFiltering = new Constraint<>(!safety); + Constraint advancedFiltering = new Constraint<>(!tempBasalFallback); MainApp.getConstraintChecker().isAdvancedFilteringEnabled(advancedFiltering); inputConstraints.copyReasons(advancedFiltering); From a14345bb1aeb7ff086206bbafb7716724b3c0f04 Mon Sep 17 00:00:00 2001 From: AdrianLxM Date: Wed, 25 Apr 2018 16:14:21 +0200 Subject: [PATCH 4/8] synchronized loop invoke --- .../info/nightscout/androidaps/plugins/Loop/LoopPlugin.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Loop/LoopPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/Loop/LoopPlugin.java index b11634c6c9..b58a0d48a4 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Loop/LoopPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Loop/LoopPlugin.java @@ -254,11 +254,11 @@ public class LoopPlugin extends PluginBase { return isDisconnected; } - public void invoke(String initiator, boolean allowNotification){ + public synchronized void invoke(String initiator, boolean allowNotification){ invoke(initiator, allowNotification, false); } - public void invoke(String initiator, boolean allowNotification, boolean tempBasalFallback) { + public synchronized void invoke(String initiator, boolean allowNotification, boolean tempBasalFallback) { try { if (Config.logFunctionCalls) log.debug("invoke from " + initiator); From e79ef7f0186c759d99b5eedc2931c4da7f0e3feb Mon Sep 17 00:00:00 2001 From: AdrianLxM Date: Wed, 25 Apr 2018 16:28:54 +0200 Subject: [PATCH 5/8] always call callback on TBR-Request --- .../androidaps/plugins/ConfigBuilder/ConfigBuilderPlugin.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderPlugin.java index 06ddbef86f..df5b727749 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderPlugin.java @@ -417,6 +417,9 @@ public class ConfigBuilderPlugin extends PluginBase { */ public void applyTBRRequest(APSResult request, Profile profile, Callback callback) { if (!request.tempBasalRequested) { + if (callback != null) { + callback.result(new PumpEnactResult().enacted(false).success(true).comment(MainApp.gs(R.string.nochangerequested))).run(); + } return; } From b6cd56b90a5d674623b455e3d43106e466646ef1 Mon Sep 17 00:00:00 2001 From: AdrianLxM Date: Wed, 25 Apr 2018 23:31:15 +0200 Subject: [PATCH 6/8] cleanup logs --- .../androidaps/plugins/OpenAPSAMA/OpenAPSAMAPlugin.java | 2 +- .../androidaps/plugins/OpenAPSMA/OpenAPSMAPlugin.java | 2 +- .../androidaps/plugins/OpenAPSSMB/OpenAPSSMBPlugin.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/OpenAPSAMAPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/OpenAPSAMAPlugin.java index d31825cc4b..17e1dd77e9 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/OpenAPSAMAPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/OpenAPSAMAPlugin.java @@ -89,7 +89,7 @@ public class OpenAPSAMAPlugin extends PluginBase implements APSInterface { @Override public void invoke(String initiator, boolean tempBasalFallback) { - log.debug("invoke from " + initiator + " safety: " + tempBasalFallback); + log.debug("invoke from " + initiator + " tempBasalFallback: " + tempBasalFallback); lastAPSResult = null; DetermineBasalAdapterAMAJS determineBasalAdapterAMAJS; try { diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/OpenAPSMAPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/OpenAPSMAPlugin.java index 36e83e36e1..00f1888851 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/OpenAPSMAPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/OpenAPSMAPlugin.java @@ -89,7 +89,7 @@ public class OpenAPSMAPlugin extends PluginBase implements APSInterface { @Override public void invoke(String initiator, boolean tempBasalFallback) { - log.debug("invoke from " + initiator + " safety: " + tempBasalFallback); + log.debug("invoke from " + initiator + " tempBasalFallback: " + tempBasalFallback); lastAPSResult = null; DetermineBasalAdapterMAJS determineBasalAdapterMAJS = null; try { diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSSMB/OpenAPSSMBPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSSMB/OpenAPSSMBPlugin.java index c6edf60866..cd7872ecb1 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSSMB/OpenAPSSMBPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSSMB/OpenAPSSMBPlugin.java @@ -92,7 +92,7 @@ public class OpenAPSSMBPlugin extends PluginBase implements APSInterface { @Override public void invoke(String initiator, boolean tempBasalFallback) { - log.debug("invoke from " + initiator + " safety: " + tempBasalFallback); + log.debug("invoke from " + initiator + " tempBasalFallback: " + tempBasalFallback); lastAPSResult = null; DetermineBasalAdapterSMBJS determineBasalAdapterSMBJS = null; try { From 3ec5eaea63481b4f96edf13dfad57810e69bed74 Mon Sep 17 00:00:00 2001 From: AdrianLxM Date: Thu, 26 Apr 2018 00:14:51 +0200 Subject: [PATCH 7/8] don't trigger loop on treatment --- .../nightscout/androidaps/plugins/Loop/LoopPlugin.java | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Loop/LoopPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/Loop/LoopPlugin.java index b58a0d48a4..43d00b24af 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Loop/LoopPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Loop/LoopPlugin.java @@ -130,14 +130,7 @@ public class LoopPlugin extends PluginBase { PumpInterface pump = ConfigBuilderPlugin.getActivePump(); return pump == null || pump.getPumpDescription().isTempBasalCapable; } - - @Subscribe - public void onStatusEvent(final EventTreatmentChange ev) { - if (ev.treatment == null || !ev.treatment.isSMB) { - invoke("EventTreatmentChange", true); - } - } - + /** * This method is triggered once autosens calculation has completed, so the LoopPlugin * has current data to work with. However, autosens calculation can be triggered by multiple From 1eb2e59043deb2c62edc5f77d7cafa2101b34cd2 Mon Sep 17 00:00:00 2001 From: AdrianLxM Date: Wed, 25 Apr 2018 11:52:01 +0200 Subject: [PATCH 8/8] lastBolusTime - only treatments with insulin --- .../androidaps/plugins/Treatments/TreatmentsPlugin.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 209fee9c57..e50c88456c 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 @@ -175,7 +175,7 @@ public class TreatmentsPlugin extends PluginBase implements TreatmentsInterface Iob tIOB = t.iobCalc(time, dia); total.iob += tIOB.iobContrib; total.activity += tIOB.activityContrib; - if (t.date > total.lastBolusTime) + if (t.insulin > 0 && t.date > total.lastBolusTime) total.lastBolusTime = t.date; if (!t.isSMB) { // instead of dividing the DIA that only worked on the bilinear curves,