From f82393cb9b4925ee206b2d6caf022ee4eee0f4f9 Mon Sep 17 00:00:00 2001 From: Joe Moran Date: Sat, 18 Jan 2025 00:53:30 -0800 Subject: [PATCH] Logic fix for 049 pod fault with concurrent temp basal commands + Fixes Trio issue #455, see for more details + Tweaks to runTemporaryBasalProgram() to avoid using stale podState + Change enactBolus() to use same updated pod suspended testing logic --- OmniKit/PumpManager/OmnipodPumpManager.swift | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/OmniKit/PumpManager/OmnipodPumpManager.swift b/OmniKit/PumpManager/OmnipodPumpManager.swift index 734bc52..00aebeb 100644 --- a/OmniKit/PumpManager/OmnipodPumpManager.swift +++ b/OmniKit/PumpManager/OmnipodPumpManager.swift @@ -1870,7 +1870,7 @@ extension OmnipodPumpManager: PumpManager { state.bolusEngageState = .engaging }) - if let podState = self.state.podState, podState.isSuspended || podState.lastDeliveryStatusReceived?.suspended == true { + guard let podState = self.state.podState, !podState.isSuspended && podState.lastDeliveryStatusReceived?.suspended == false else { self.log.info("Not enacting bolus because podState or last status received indicates pod is suspended") completion(.deviceState(PodCommsError.podSuspended)) return @@ -1968,7 +1968,7 @@ extension OmnipodPumpManager: PumpManager { public func runTemporaryBasalProgram(unitsPerHour: Double, for duration: TimeInterval, automatic: Bool, completion: @escaping (PumpManagerError?) -> Void) { - guard self.hasActivePod, let podState = self.state.podState else { + guard self.hasActivePod else { completion(.configuration(OmnipodPumpManagerError.noPodPaired)) return } @@ -2009,7 +2009,7 @@ extension OmnipodPumpManager: PumpManager { return } - if let podState = self.state.podState, podState.isSuspended || podState.lastDeliveryStatusReceived?.suspended == true { + guard let podState = self.state.podState, !podState.isSuspended && podState.lastDeliveryStatusReceived?.suspended == false else { self.log.info("Not enacting temp basal because podState or last status received indicates pod is suspended") completion(.deviceState(PodCommsError.podSuspended)) return