Ivan Valkou 5 лет назад
Родитель
Сommit
882eddb3a0

+ 5 - 2
FreeAPS/Sources/APS/APSManager.swift

@@ -29,17 +29,20 @@ enum APSError: LocalizedError {
     case invalidPumpState(message: String)
     case glucoseError(message: String)
     case apsError(message: String)
+    case deviceSyncError(message: String)
 
     var errorDescription: String? {
         switch self {
         case let .pumpError(error):
             return "Pump error: \(error.localizedDescription)"
         case let .invalidPumpState(message):
-            return "Invalid Pump State: \(message)"
+            return "Error: Invalid Pump State: \(message)"
         case let .glucoseError(message):
-            return "Invalid glucose: \(message)"
+            return "Error: Invalid glucose: \(message)"
         case let .apsError(message):
             return "APS error: \(message)"
+        case let .deviceSyncError(message):
+            return "Sync error: \(message)"
         }
     }
 }

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

@@ -250,6 +250,10 @@ extension BaseDeviceDataManager: PumpManagerDelegate {
             $0.pumpReservoirDidChange(Decimal(units))
         }
 
+        guard !pumpUpdateInProgress else {
+            completion(.failure(APSError.deviceSyncError(message: "Trying to update pump data while already updating")))
+            return
+        }
         completion(.success((
             newValue: Reservoir(startDate: Date(), unitVolume: units),
             lastValue: nil,