DASH, QUEUE: prevent skipping SMBs

This commit is contained in:
Milos Kozak 2022-09-27 10:34:57 +02:00
parent 90853219d4
commit baab2dad4c

View file

@ -370,12 +370,17 @@ class LoopPlugin @Inject constructor(
if (resultAfterConstraints.bolusRequested()) lastRun.smbSetByPump = waiting if (resultAfterConstraints.bolusRequested()) lastRun.smbSetByPump = waiting
rxBus.send(EventLoopUpdateGui()) rxBus.send(EventLoopUpdateGui())
fabricPrivacy.logCustom("APSRequest") 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() { applyTBRRequest(resultAfterConstraints, profile, object : Callback() {
override fun run() { override fun run() {
if (result.enacted || result.success) { if (result.enacted || result.success) {
lastRun.tbrSetByPump = result lastRun.tbrSetByPump = result
lastRun.lastTBRRequest = lastRun.lastAPSRun lastRun.lastTBRRequest = lastRun.lastAPSRun
lastRun.lastTBREnact = dateUtil.now() 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()) rxBus.send(EventLoopUpdateGui())
applySMBRequest(resultAfterConstraints, object : Callback() { applySMBRequest(resultAfterConstraints, object : Callback() {
override fun run() { override fun run() {