Procházet zdrojové kódy

fix heartbeat for pump heartbeat

- fix the issue of heartbeat for pump (to confirm)
- improve minor variable management
Pierre L před 2 roky
rodič
revize
d06b2ce182

+ 1 - 1
FreeAPS/Sources/APS/CGM/PluginSource.swift

@@ -88,7 +88,7 @@ extension PluginSource: CGMManagerDelegate {
         dispatchPrecondition(condition: .onQueue(processQueue))
         debug(.deviceManager, " CGM Manager with identifier \(manager.pluginIdentifier) wants deletion")
         // TODO:
-        glucoseManager?.cgmGlucoseSourceType = nil
+        glucoseManager?.cgmGlucoseSourceType = .none
     }
 
     func cgmManager(_ manager: CGMManager, hasNew readingResult: CGMReadingResult) {

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

@@ -218,6 +218,7 @@ final class BaseDeviceDataManager: DeviceDataManager, Injectable {
 
     var glucoseManager: FetchGlucoseManager?
     var cgmManager: CGMManagerUI?
+    var cgmType: CGMType = .enlite
 
     func fetchIfNeeded() -> AnyPublisher<[BloodGlucose], Never> {
         fetch(nil)

+ 6 - 9
FreeAPS/Sources/APS/FetchGlucoseManager.swift

@@ -14,8 +14,8 @@ protocol FetchGlucoseManager: SourceInfoProvider {
     func removeCalibrations()
     var glucoseSource: GlucoseSource! { get }
     var cgmManager: CGMManagerUI? { get }
-    var cgmGlucoseSourceType: CGMType? { get set }
-    var cgmGlucosePluginId: String? { get }
+    var cgmGlucoseSourceType: CGMType { get set }
+    var cgmGlucosePluginId: String { get }
     var settingsManager: SettingsManager! { get }
     var shouldSyncToRemoteService: Bool { get }
 }
@@ -40,8 +40,8 @@ final class BaseFetchGlucoseManager: FetchGlucoseManager, Injectable {
 
     private var lifetime = Lifetime()
     private let timer = DispatchTimer(timeInterval: 1.minutes.timeInterval)
-    var cgmGlucoseSourceType: CGMType?
-    var cgmGlucosePluginId: String?
+    var cgmGlucoseSourceType: CGMType = .none
+    var cgmGlucosePluginId: String = ""
     var cgmManager: CGMManagerUI? {
         didSet {
             rawCGMManager = cgmManager?.rawValue
@@ -123,8 +123,7 @@ final class BaseFetchGlucoseManager: FetchGlucoseManager, Injectable {
         }
 
         switch self.cgmGlucoseSourceType {
-        case nil,
-             .none?:
+        case .none:
             glucoseSource = nil
         case .xdrip:
             glucoseSource = AppGroupSource(from: "xDrip", cgmType: .xdrip)
@@ -145,7 +144,6 @@ final class BaseFetchGlucoseManager: FetchGlucoseManager, Injectable {
     /// Upload cgmManager from raw value
     func cgmManagerFromRawValue(_ rawValue: [String: Any]) -> CGMManagerUI? {
         guard let rawState = rawValue["state"] as? CGMManager.RawStateValue,
-              let cgmGlucosePluginId = self.cgmGlucosePluginId,
               let Manager = pluginCGMManager.getCGMManagerTypeByIdentifier(cgmGlucosePluginId)
         else {
             return nil
@@ -262,9 +260,8 @@ final class BaseFetchGlucoseManager: FetchGlucoseManager, Injectable {
     private func subscribe() {
         timer.publisher
             .receive(on: processQueue)
-            .flatMap { _ -> AnyPublisher<[BloodGlucose], Never> in
+            .flatMap { [self] _ -> AnyPublisher<[BloodGlucose], Never> in
                 debug(.nightscout, "FetchGlucoseManager timer heartbeat")
-                // self.updateGlucoseSource(manager: nil)
                 if let glucoseSource = self.glucoseSource {
                     return glucoseSource.fetch(self.timer).eraseToAnyPublisher()
                 } else {

+ 2 - 2
FreeAPS/Sources/Modules/CGM/CGMStateModel.swift

@@ -140,7 +140,7 @@ extension CGM {
             case .plugin:
                 nameOfApp = "Open " + (cgmManager.cgmManager?.localizedTitle ?? "Application")
             default:
-                nameOfApp = "Open " + (cgmManager.cgmGlucoseSourceType?.displayName ?? "Application")
+                nameOfApp = "Open " + (cgmManager.cgmGlucoseSourceType.displayName ?? "Application")
             }
             return nameOfApp
         }
@@ -150,7 +150,7 @@ extension CGM {
             case .plugin:
                 return cgmManager.cgmManager?.appURL
             default:
-                return cgmManager.cgmGlucoseSourceType?.appURL
+                return cgmManager.cgmGlucoseSourceType.appURL
             }
         }
     }