@@ -16,7 +16,7 @@ import Combine
1616
1717protocol LoopControl {
1818 var lastLoopCompleted : Date ? { get }
19- func cancelActiveTempBasal( for reason: CancelActiveTempBasalReason ) async
19+ func cancelActiveTempBasal( for reason: CancelActiveTempBasalReason ) async throws
2020 func loop( ) async
2121}
2222
@@ -440,7 +440,7 @@ final class DeviceDataManager {
440440 }
441441
442442 // Cancel active high temp basal
443- await loopControl. cancelActiveTempBasal ( for: . unreliableCGMData)
443+ try ? await loopControl. cancelActiveTempBasal ( for: . unreliableCGMData)
444444 }
445445
446446 private func processCGMReadingResult( _ manager: CGMManager , readingResult: CGMReadingResult ) async {
@@ -1277,7 +1277,7 @@ extension GlucoseStore : CGMStalenessMonitorDelegate { }
12771277
12781278
12791279//MARK: TherapySettingsViewModelDelegate
1280- struct CancelTempBasalFailedError : LocalizedError {
1280+ struct CancelTempBasalFailedMaximumBasalRateChangedError : LocalizedError {
12811281 let reason : Error ?
12821282
12831283 var errorDescription : String ? {
@@ -1317,19 +1317,16 @@ extension DeviceDataManager: TherapySettingsViewModelDelegate {
13171317
13181318 func syncDeliveryLimits( deliveryLimits: DeliveryLimits ) async throws -> DeliveryLimits
13191319 {
1320- do {
1321- // FIRST we need to check to make sure if we have to cancel temp basal first
1322- if let maxRate = deliveryLimits. maximumBasalRate? . doubleValue ( for: . internationalUnitsPerHour) ,
1323- case . tempBasal( let dose) = basalDeliveryState,
1324- dose. unitsPerHour > maxRate
1325- {
1326- // Temp basal is higher than proposed rate, so should cancel
1327- await self . loopControl. cancelActiveTempBasal ( for: . maximumBasalRateChanged)
1328- }
1329- return try await pumpManager? . syncDeliveryLimits ( limits: deliveryLimits) ?? deliveryLimits
1330- } catch {
1331- throw CancelTempBasalFailedError ( reason: error)
1320+ // FIRST we need to check to make sure if we have to cancel temp basal first
1321+ if let maxRate = deliveryLimits. maximumBasalRate? . doubleValue ( for: . internationalUnitsPerHour) ,
1322+ case . tempBasal( let dose) = basalDeliveryState,
1323+ dose. unitsPerHour > maxRate
1324+ {
1325+ // Temp basal is higher than proposed rate, so should cancel
1326+ try await self . loopControl. cancelActiveTempBasal ( for: . maximumBasalRateChanged)
13321327 }
1328+
1329+ return try await pumpManager? . syncDeliveryLimits ( limits: deliveryLimits) ?? deliveryLimits
13331330 }
13341331
13351332 func saveCompletion( therapySettings: TherapySettings ) {
0 commit comments