|
|
@@ -65,13 +65,16 @@ final class BaseDeviceDataManager: DeviceDataManager, Injectable {
|
|
|
}
|
|
|
pumpExpiresAtDate.send(endTime)
|
|
|
}
|
|
|
- pumpManager.setMustProvideBLEHeartbeat(true)
|
|
|
} else {
|
|
|
pumpDisplayState.value = nil
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ var hasBLEHeartbeat: Bool {
|
|
|
+ (pumpManager as? MockPumpManager) == nil
|
|
|
+ }
|
|
|
+
|
|
|
let pumpDisplayState = CurrentValueSubject<PumpDisplayState?, Never>(nil)
|
|
|
let pumpExpiresAtDate = CurrentValueSubject<Date?, Never>(nil)
|
|
|
let pumpName = CurrentValueSubject<String, Never>("Pump")
|
|
|
@@ -88,8 +91,6 @@ final class BaseDeviceDataManager: DeviceDataManager, Injectable {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- @SyncAccess(lock: accessLock) private var pumpUpdateInProgress = false
|
|
|
-
|
|
|
func createBolusProgressReporter() -> DoseProgressReporter? {
|
|
|
pumpManager?.createBolusProgressReporter(reportingOn: processQueue)
|
|
|
}
|
|
|
@@ -101,12 +102,12 @@ final class BaseDeviceDataManager: DeviceDataManager, Injectable {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- var updateInterval: TimeInterval = 5.minutes.timeInterval
|
|
|
+ var updateInterval: TimeInterval = 4.5 * 60
|
|
|
|
|
|
- switch lastHeartBeatTime.timeIntervalSince(date) {
|
|
|
- case let interval where interval < -10.minutes.timeInterval:
|
|
|
+ switch date.timeIntervalSince(lastHeartBeatTime) {
|
|
|
+ case let interval where interval > 10.minutes.timeInterval:
|
|
|
break
|
|
|
- case let interval where interval < -5.minutes.timeInterval:
|
|
|
+ case let interval where interval > 5.minutes.timeInterval:
|
|
|
updateInterval = 1.minutes.timeInterval
|
|
|
default:
|
|
|
break
|
|
|
@@ -128,16 +129,11 @@ final class BaseDeviceDataManager: DeviceDataManager, Injectable {
|
|
|
debug(.deviceManager, "Pump is not set, skip updating")
|
|
|
return
|
|
|
}
|
|
|
- guard !pumpUpdateInProgress else {
|
|
|
- debug(.deviceManager, "Pump update in progress, skip updating")
|
|
|
- return
|
|
|
- }
|
|
|
+
|
|
|
debug(.deviceManager, "Start updating the pump data")
|
|
|
- pumpUpdateInProgress = true
|
|
|
|
|
|
pumpManager.ensureCurrentPumpData {
|
|
|
debug(.deviceManager, "Pump Data updated")
|
|
|
- self.pumpUpdateInProgress = false
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -175,8 +171,6 @@ extension BaseDeviceDataManager: PumpManagerDelegate {
|
|
|
|
|
|
func pumpManagerBLEHeartbeatDidFire(_: PumpManager) {
|
|
|
debug(.deviceManager, "Pump Heartbeat")
|
|
|
- pumpUpdateInProgress = false
|
|
|
- heartbeat(date: Date(), force: false)
|
|
|
}
|
|
|
|
|
|
func pumpManagerMustProvideBLEHeartbeat(_: PumpManager) -> Bool {
|
|
|
@@ -225,7 +219,6 @@ extension BaseDeviceDataManager: PumpManagerDelegate {
|
|
|
func pumpManagerWillDeactivate(_: PumpManager) {
|
|
|
dispatchPrecondition(condition: .onQueue(processQueue))
|
|
|
pumpManager = nil
|
|
|
- pumpUpdateInProgress = false
|
|
|
}
|
|
|
|
|
|
func pumpManager(_: PumpManager, didUpdatePumpRecordsBasalProfileStartEvents _: Bool) {}
|
|
|
@@ -234,7 +227,6 @@ extension BaseDeviceDataManager: PumpManagerDelegate {
|
|
|
dispatchPrecondition(condition: .onQueue(processQueue))
|
|
|
debug(.deviceManager, "error: \(error.localizedDescription), reason: \(String(describing: error.failureReason))")
|
|
|
errorSubject.send(error)
|
|
|
- pumpUpdateInProgress = false
|
|
|
}
|
|
|
|
|
|
func pumpManager(
|
|
|
@@ -275,7 +267,6 @@ extension BaseDeviceDataManager: PumpManagerDelegate {
|
|
|
|
|
|
func pumpManagerRecommendsLoop(_: PumpManager) {
|
|
|
dispatchPrecondition(condition: .onQueue(processQueue))
|
|
|
- pumpUpdateInProgress = false
|
|
|
debug(.deviceManager, "Recomends loop")
|
|
|
recommendsLoop.send()
|
|
|
}
|