diff --git a/Loop/Managers/DeviceDataManager.swift b/Loop/Managers/DeviceDataManager.swift index dd578c6873..b4d83d3e35 100644 --- a/Loop/Managers/DeviceDataManager.swift +++ b/Loop/Managers/DeviceDataManager.swift @@ -132,6 +132,8 @@ extension DeviceDataManager: CGMManagerDelegate { /// TODO: Isolate to queue switch result { case .newData(let values): + log.default("CGMManager:\(type(of: manager)) did update with new data") + loopManager.addGlucose(values) { result in if manager.shouldSyncToRemoteService { switch result { @@ -145,8 +147,12 @@ extension DeviceDataManager: CGMManagerDelegate { self.pumpManager?.assertCurrentPumpData() } case .noData: + log.default("CGMManager:\(type(of: manager)) did update with no data") + pumpManager?.assertCurrentPumpData() case .error(let error): + log.default("CGMManager:\(type(of: manager)) did update with error: \(error)") + self.setLastError(error: error) pumpManager?.assertCurrentPumpData() } @@ -162,10 +168,14 @@ extension DeviceDataManager: CGMManagerDelegate { extension DeviceDataManager: PumpManagerDelegate { func pumpManager(_ pumpManager: PumpManager, didAdjustPumpClockBy adjustment: TimeInterval) { + log.default("PumpManager:\(type(of: pumpManager)) did adjust pump block by \(adjustment)s") + AnalyticsManager.shared.pumpTimeDidDrift(adjustment) } func pumpManagerDidUpdatePumpBatteryChargeRemaining(_ pumpManager: PumpManager, oldValue: Double?) { + log.default("PumpManager:\(type(of: pumpManager)) did update pump battery from \(String(describing: oldValue))") + if let newValue = pumpManager.pumpBatteryChargeRemaining { if newValue == 0 { NotificationManager.sendPumpBatteryLowNotification() @@ -180,10 +190,14 @@ extension DeviceDataManager: PumpManagerDelegate { } func pumpManagerDidUpdateState(_ pumpManager: PumpManager) { + log.default("PumpManager:\(type(of: pumpManager)) did update state") + UserDefaults.appGroup.pumpManager = pumpManager } func pumpManagerBLEHeartbeatDidFire(_ pumpManager: PumpManager) { + log.default("PumpManager:\(type(of: pumpManager)) did fire BLE heartbeat") + cgmManager?.fetchNewDataIfNeeded { (result) in if case .newData = result { AnalyticsManager.shared.didFetchNewCGMData() @@ -201,6 +215,8 @@ extension DeviceDataManager: PumpManagerDelegate { } func pumpManager(_ pumpManager: PumpManager, didUpdateStatus status: PumpManagerStatus) { + log.default("PumpManager:\(type(of: pumpManager)) did update status") + loopManager.doseStore.device = status.device // Update the pump-schedule based settings loopManager.setScheduleTimeZone(status.timeZone) @@ -208,20 +224,28 @@ extension DeviceDataManager: PumpManagerDelegate { } func pumpManagerWillDeactivate(_ pumpManager: PumpManager) { + log.default("PumpManager:\(type(of: pumpManager)) will deactivate") + loopManager.doseStore.resetPumpData() self.pumpManager = nil } func pumpManager(_ pumpManager: PumpManager, didUpdatePumpRecordsBasalProfileStartEvents pumpRecordsBasalProfileStartEvents: Bool) { + log.default("PumpManager:\(type(of: pumpManager)) did update pumpRecordsBasalProfileStartEvents to \(pumpRecordsBasalProfileStartEvents)") + loopManager.doseStore.pumpRecordsBasalProfileStartEvents = pumpRecordsBasalProfileStartEvents } func pumpManager(_ pumpManager: PumpManager, didError error: PumpManagerError) { + log.error("PumpManager:\(type(of: pumpManager)) did error: \(error)") + setLastError(error: error) nightscoutDataManager.uploadLoopStatus(loopError: error) } func pumpManager(_ pumpManager: PumpManager, didReadPumpEvents events: [NewPumpEvent], completion: @escaping (_ error: Error?) -> Void) { + log.default("PumpManager:\(type(of: pumpManager)) did read pump events") + loopManager.addPumpEvents(events) { (error) in if let error = error { self.log.error("Failed to addPumpEvents to DoseStore: \(error)") @@ -232,10 +256,12 @@ extension DeviceDataManager: PumpManagerDelegate { } func pumpManager(_ pumpManager: PumpManager, didReadReservoirValue units: Double, at date: Date, completion: @escaping (_ result: PumpManagerResult<(newValue: ReservoirValue, lastValue: ReservoirValue?, areStoredValuesContinuous: Bool)>) -> Void) { + log.default("PumpManager:\(type(of: pumpManager)) did read reservoir value") + loopManager.addReservoirValue(units, at: date) { (result) in switch result { case .failure(let error): - self.logger.addError(error, fromSource: "Bolus") + self.log.error("Failed to addReservoirValue: \(error)") completion(.failure(error)) case .success(let (newValue, lastValue, areStoredValuesContinuous)): completion(.success((newValue: newValue, lastValue: lastValue, areStoredValuesContinuous: areStoredValuesContinuous))) @@ -267,6 +293,7 @@ extension DeviceDataManager: PumpManagerDelegate { } func pumpManagerRecommendsLoop(_ pumpManager: PumpManager) { + log.default("PumpManager:\(type(of: pumpManager)) recommends loop") loopManager.loop() } @@ -338,6 +365,8 @@ extension DeviceDataManager: LoopDataManagerDelegate { return } + log.default("LoopManager did recommend basal change") + pumpManager.enactTempBasal( unitsPerHour: basal.recommendation.unitsPerHour, for: basal.recommendation.duration, diff --git a/Loop/Managers/LoopDataManager.swift b/Loop/Managers/LoopDataManager.swift index 32a455df17..010b1ac993 100644 --- a/Loop/Managers/LoopDataManager.swift +++ b/Loop/Managers/LoopDataManager.swift @@ -554,6 +554,7 @@ extension LoopDataManager { /// temporary basal rate. func loop() { self.dataAccessQueue.async { + self.logger.default("Loop running") NotificationCenter.default.post(name: .LoopRunning, object: self) self.lastLoopError = nil @@ -582,6 +583,7 @@ extension LoopDataManager { self.lastLoopError = error } + self.logger.default("Loop ended") self.notify(forChange: .tempBasal) } }