Skip to content

Commit 381d957

Browse files
committed
Limit MB if current glucose below target
1 parent dc8b19e commit 381d957

1 file changed

Lines changed: 14 additions & 8 deletions

File tree

Loop/Managers/LoopDataManager.swift

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1136,12 +1136,6 @@ extension LoopDataManager {
11361136
return
11371137
}
11381138

1139-
guard recommendedBolus.recommendation.notice == nil else {
1140-
logger.debug("Recommendation notice: \(recommendedBolus.recommendation.notice!)")
1141-
completion(false, nil)
1142-
return
1143-
}
1144-
11451139
let lowTrend = controlGlucoseQuantity.map { $0 < glucose.quantity } ?? true
11461140

11471141
let safetyCheck = !(lowTrend && settings.microbolusesSafeMode == .enabled)
@@ -1151,17 +1145,29 @@ extension LoopDataManager {
11511145
return
11521146
}
11531147

1154-
let maxBasalMinutes: Double = {
1148+
let minSize = 30.0
1149+
1150+
var maxBasalMinutes: Double = {
11551151
switch (cob > 0, lowTrend, settings.microbolusesSafeMode == .disabled) {
11561152
case (true, false, _), (true, true, true):
11571153
return settings.microbolusesSize
11581154
case (false, false, _), (false, true, true):
11591155
return settings.microbolusesWithoutCarbsSize
11601156
default:
1161-
return 30
1157+
return minSize
11621158
}
11631159
}()
11641160

1161+
switch recommendedBolus.recommendation.notice {
1162+
case .glucoseBelowSuspendThreshold, .predictedGlucoseBelowTarget:
1163+
logger.debug("Microbolus canceled by recommendation notice: \(recommendedBolus.recommendation.notice!)")
1164+
completion(false, nil)
1165+
return
1166+
case .currentGlucoseBelowTarget:
1167+
maxBasalMinutes = minSize
1168+
case .none: break
1169+
}
1170+
11651171
let maxMicroBolus = currentBasalRate * maxBasalMinutes / 60
11661172

11671173
let volumeRounder = { (_ units: Double) in

0 commit comments

Comments
 (0)