Quellcode durchsuchen

fix omnipod reservooir

Ivan Valkou vor 5 Jahren
Ursprung
Commit
81e07a26c0

+ 2 - 0
FreeAPS.xcodeproj/project.pbxproj

@@ -1948,6 +1948,7 @@
 				ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
 				CODE_SIGN_ENTITLEMENTS = FreeAPS/Resources/FreeAPS.entitlements;
 				CODE_SIGN_STYLE = Automatic;
+				CURRENT_PROJECT_VERSION = Automatic;
 				DEVELOPMENT_ASSET_PATHS = "";
 				DEVELOPMENT_TEAM = BA7ZHP4963;
 				ENABLE_PREVIEWS = YES;
@@ -1972,6 +1973,7 @@
 				ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
 				CODE_SIGN_ENTITLEMENTS = FreeAPS/Resources/FreeAPS.entitlements;
 				CODE_SIGN_STYLE = Automatic;
+				CURRENT_PROJECT_VERSION = Automatic;
 				DEVELOPMENT_ASSET_PATHS = "";
 				DEVELOPMENT_TEAM = BA7ZHP4963;
 				ENABLE_PREVIEWS = YES;

+ 1 - 1
FreeAPS/Resources/Info.plist

@@ -17,7 +17,7 @@
 	<key>CFBundleShortVersionString</key>
 	<string>$(MARKETING_VERSION)</string>
 	<key>CFBundleVersion</key>
-	<string>240</string>
+	<string>241</string>
 	<key>LSApplicationQueriesSchemes</key>
 	<array>
 		<string>dexcomg6</string>

+ 9 - 2
FreeAPS/Sources/APS/DeviceDataManager.swift

@@ -165,7 +165,7 @@ extension BaseDeviceDataManager: PumpManagerDelegate {
         true
     }
 
-    func pumpManager(_: PumpManager, didUpdate status: PumpManagerStatus, oldStatus _: PumpManagerStatus) {
+    func pumpManager(_ pumpManager: PumpManager, didUpdate status: PumpManagerStatus, oldStatus _: PumpManagerStatus) {
         debug(.deviceManager, "New pump status Bolus: \(status.bolusState)")
         debug(.deviceManager, "New pump status Basal: \(String(describing: status.basalDeliveryState))")
 
@@ -174,7 +174,7 @@ extension BaseDeviceDataManager: PumpManagerDelegate {
             percent: batteryPercent,
             voltage: nil,
             string: batteryPercent >= 10 ? .normal : .low,
-            display: pumpManager?.status.pumpBatteryChargeRemaining != nil
+            display: pumpManager.status.pumpBatteryChargeRemaining != nil
         )
         storage.save(battery, as: OpenAPS.Monitor.battery)
         broadcaster.notify(PumpBatteryObserver.self, on: processQueue) {
@@ -182,6 +182,13 @@ extension BaseDeviceDataManager: PumpManagerDelegate {
         }
 
         if let omnipod = pumpManager as? OmnipodPumpManager {
+            let reservoir = omnipod.state.podState?.lastInsulinMeasurements?.reservoirLevel ?? 0xDEAD_BEEF
+
+            storage.save(Decimal(reservoir), as: OpenAPS.Monitor.reservoir)
+            broadcaster.notify(PumpReservoirObserver.self, on: processQueue) {
+                $0.pumpReservoirDidChange(Decimal(reservoir))
+            }
+
             guard let endTime = omnipod.state.podState?.expiresAt else {
                 pumpExpiresAtDate.send(nil)
                 return

+ 9 - 4
FreeAPS/Sources/Modules/Home/View/Header/PumpView.swift

@@ -29,7 +29,12 @@ struct PumpView: View {
                         .aspectRatio(contentMode: .fit)
                         .frame(height: 8)
                         .foregroundColor(reservoirColor)
-                    Text(reservoirFormatter.string(from: reservoir as NSNumber)! + " U").font(.system(size: 12, weight: .bold))
+                    if reservoir == 0xDEAD_BEEF {
+                        Text("50+ U").font(.system(size: 12, weight: .bold))
+                    } else {
+                        Text(reservoirFormatter.string(from: reservoir as NSNumber)! + " U")
+                            .font(.system(size: 12, weight: .bold))
+                    }
                 }
             }
             if let battery = battery, battery.display ?? false, expiresAtDate == nil {
@@ -118,11 +123,11 @@ struct PumpView: View {
 
         switch time {
         case ...8.hours.timeInterval:
-            return .red
+            return .loopRed
         case ...1.days.timeInterval:
-            return .orange
+            return .loopYellow
         default:
-            return .green
+            return .loopGreen
         }
     }
 }

+ 4 - 1
FreeAPS/Sources/Services/Network/NightscoutManager.swift

@@ -150,7 +150,10 @@ final class BaseNightscoutManager: NightscoutManager, Injectable {
         )
 
         let battery = storage.retrieve(OpenAPS.Monitor.battery, as: Battery.self)
-        let reservoir = Decimal(from: storage.retrieveRaw(OpenAPS.Monitor.reservoir) ?? "0")
+        var reservoir = Decimal(from: storage.retrieveRaw(OpenAPS.Monitor.reservoir) ?? "0")
+        if reservoir == 0xDEAD_BEEF {
+            reservoir = nil
+        }
         let pumpStatus = storage.retrieve(OpenAPS.Monitor.status, as: PumpStatus.self)
 
         let pump = NSPumpStatus(clock: Date(), battery: battery, reservoir: reservoir, status: pumpStatus)