From baab2dad4c50ff9e3ab7d93660f2204d3c2ffcf5 Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Tue, 27 Sep 2022 10:34:57 +0200 Subject: [PATCH] DASH, QUEUE: prevent skipping SMBs --- .../nightscout/androidaps/plugins/aps/loop/LoopPlugin.kt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/aps/loop/LoopPlugin.kt b/app/src/main/java/info/nightscout/androidaps/plugins/aps/loop/LoopPlugin.kt index dee30eeec1..a39d00d0bd 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/aps/loop/LoopPlugin.kt +++ b/app/src/main/java/info/nightscout/androidaps/plugins/aps/loop/LoopPlugin.kt @@ -370,12 +370,17 @@ class LoopPlugin @Inject constructor( if (resultAfterConstraints.bolusRequested()) lastRun.smbSetByPump = waiting rxBus.send(EventLoopUpdateGui()) fabricPrivacy.logCustom("APSRequest") + // TBR request must be applied first to prevent situation where + // SMB was executed and zero TBR afterwards failed applyTBRRequest(resultAfterConstraints, profile, object : Callback() { override fun run() { if (result.enacted || result.success) { lastRun.tbrSetByPump = result lastRun.lastTBRRequest = lastRun.lastAPSRun lastRun.lastTBREnact = dateUtil.now() + // deliverAt is used to prevent executing too old SMB request (older than 1 min) + // executing TBR may take some time thus give more time to SMB + resultAfterConstraints.deliverAt = lastRun.lastTBREnact rxBus.send(EventLoopUpdateGui()) applySMBRequest(resultAfterConstraints, object : Callback() { override fun run() {