Jelajahi Sumber

filter buggy TBRs > maxBasal from MDT

Ivan Valkou 4 tahun lalu
induk
melakukan
05b7324b07

+ 7 - 0
FreeAPS/Sources/APS/DeviceDataManager.swift

@@ -41,6 +41,7 @@ final class BaseDeviceDataManager: DeviceDataManager, Injectable {
     @Injected() private var storage: FileStorage!
     @Injected() private var broadcaster: Broadcaster!
     @Injected() private var glucoseStorage: GlucoseStorage!
+    @Injected() private var settingsManager: SettingsManager!
 
     @Persisted(key: "BaseDeviceDataManager.lastEventDate") var lastEventDate: Date? = nil
     @SyncAccess(lock: accessLock) @Persisted(key: "BaseDeviceDataManager.lastHeartBeatTime") var lastHeartBeatTime: Date =
@@ -321,6 +322,12 @@ extension BaseDeviceDataManager: PumpManagerDelegate {
     ) {
         dispatchPrecondition(condition: .onQueue(processQueue))
         debug(.deviceManager, "New pump events:\n\(events.map(\.title).joined(separator: "\n"))")
+
+        // filter buggy TBRs > maxBasal from MDT
+        let events = events.filter {
+            guard $0.type == .tempBasal else { return true }
+            return $0.dose?.unitsPerHour ?? 0 <= Double(settingsManager.pumpSettings.maxBasal)
+        }
         pumpHistoryStorage.storePumpEvents(events)
         lastEventDate = events.last?.date
         completion(nil)

+ 1 - 1
FreeAPS/Sources/APS/Storage/PumpHistoryStorage.swift

@@ -48,7 +48,7 @@ final class BasePumpHistoryStorage: PumpHistoryStorage, Injectable {
                 case .tempBasal:
                     guard let dose = event.dose else { return [] }
 
-                    let rate = Decimal(string: dose.unitsPerHour.description)
+                    let rate = Decimal(dose.unitsPerHour)
                     let minutes = (dose.endDate - dose.startDate).timeInterval / 60
                     let delivered = dose.deliveredUnits
                     let date = event.date