소스 검색

fetch glucose timer to 1 second and cgm transmitter address in UI

Jon B.M 3 년 전
부모
커밋
1c5fd2c737

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

@@ -21,7 +21,7 @@ struct AppGroupSource: GlucoseSource {
         }
 
         debug(.deviceManager, "in fetchLastBGs")
-        
+
         HeartBeatManager.shared.checkCGMBluetoothTransmitter(sharedUserDefaults: sharedDefaults)
 
         let decoded = try? JSONSerialization.jsonObject(with: sharedData, options: [])

+ 17 - 6
FreeAPS/Sources/APS/CGM/HeartBeatManager.swift

@@ -23,11 +23,15 @@ class HeartBeatManager {
     /// - parameters:
     ///     - sharedData : shared User Defaults
     public func checkCGMBluetoothTransmitter(sharedUserDefaults: UserDefaults) {
-        
+        if let sharedTransmitterAddress = sharedUserDefaults.string(forKey: keyForcgmTransmitterDeviceAddress) {
+            debug(.deviceManager, "in checkCGMBluetoothTransmitter, sharedTransmitterAddress = \(sharedTransmitterAddress)")
+        } else {
+            debug(.deviceManager, "in checkCGMBluetoothTransmitter, sharedTransmitterAddress = nil")
+        }
+
         if !initialSetupDone {
-            
             debug(.deviceManager, "in checkCGMBluetoothTransmitter, initial setup")
-            
+
             initialSetupDone = true
 
             // set to nil, this will force recreation of bluetooth transmitter at app startup
@@ -38,6 +42,10 @@ class HeartBeatManager {
         if UserDefaults.standard.cgmTransmitterDeviceAddress != sharedUserDefaults
             .string(forKey: keyForcgmTransmitterDeviceAddress)
         {
+            debug(
+                .deviceManager,
+                "UserDefaults.standard.cgmTransmitterDeviceAddress != sharedUserDefaults.string(forKey: keyForcgmTransmitterDeviceAddress)"
+            )
 
             debug(.deviceManager, "UserDefaults.standard.cgmTransmitterDeviceAddress != sharedUserDefaults.string(forKey: keyForcgmTransmitterDeviceAddress)")
             if let sharedTransmitterAddress = sharedUserDefaults.string(forKey: keyForcgmTransmitterDeviceAddress) {
@@ -75,8 +83,11 @@ class HeartBeatManager {
                     heartbeat: {}
                 )
 
-                debug(.deviceManager, "in setupBluetoothTransmitter, cgmTransmitterDeviceAddress in shared user defaults is not nil")
-                
+                debug(
+                    .deviceManager,
+                    "in setupBluetoothTransmitter, cgmTransmitterDeviceAddress in shared user defaults is not nil"
+                )
+
                 return newBluetoothTransmitter
 
             } else {
@@ -87,7 +98,7 @@ class HeartBeatManager {
         }
 
         debug(.deviceManager, "in setupBluetoothTransmitter, cgmTransmitterDeviceAddress in shared user defaults is nil")
-        
+
         return nil
     }
 }

+ 1 - 1
FreeAPS/Sources/APS/FetchGlucoseManager.swift

@@ -16,7 +16,7 @@ final class BaseFetchGlucoseManager: FetchGlucoseManager, Injectable {
     @Injected() var deviceDataManager: DeviceDataManager!
 
     private var lifetime = Lifetime()
-    private let timer = DispatchTimer(timeInterval: 1.minutes.timeInterval)
+    private let timer = DispatchTimer(timeInterval: TimeInterval(1.0))
 
     private lazy var dexcomSource = DexcomSource()
     private lazy var simulatorSource = GlucoseSimulatorSource()

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

@@ -13,12 +13,14 @@ extension CGM {
         @Published var calendarIDs: [String] = []
         @Published var currentCalendarID: String = ""
         @Persisted(key: "CalendarManager.currentCalendarID") var storedCalendarID: String? = nil
+        @Published var cgmTransmitterDeviceAddress: String? = nil
 
         override func subscribe() {
             cgm = settingsManager.settings.cgm
             transmitterID = UserDefaults.standard.dexcomTransmitterID ?? ""
             currentCalendarID = storedCalendarID ?? ""
             calendarIDs = calendarManager.calendarIDs()
+            cgmTransmitterDeviceAddress = UserDefaults.standard.cgmTransmitterDeviceAddress
 
             subscribeSetting(\.useCalendar, on: $createCalendarEvents) { createCalendarEvents = $0 }
             subscribeSetting(\.uploadGlucose, on: $uploadGlucose) { uploadGlucose = $0 }

+ 15 - 0
FreeAPS/Sources/Modules/CGM/View/CGMRootView.swift

@@ -6,6 +6,8 @@ extension CGM {
         let resolver: Resolver
         @StateObject var state = StateModel()
 
+        // @AppStorage(UserDefaults.BTKey.cgmTransmitterDeviceAddress.rawValue) private var cgmTransmitterDeviceAddress: String? = nil
+
         var body: some View {
             Form {
                 Section {
@@ -45,6 +47,19 @@ extension CGM {
                     Text("Calibrations").navigationLink(to: .calibrations, from: self)
                 }
 
+                if state.cgm == .xdrip {
+                    Section(header: Text("Heartbeat")) {
+                        VStack(alignment: .leading) {
+                            if let cgmTransmitterDeviceAddress = state.cgmTransmitterDeviceAddress {
+                                Text("CGM address :")
+                                Text(cgmTransmitterDeviceAddress)
+                            } else {
+                                Text("CGM is not used as heartbeat.")
+                            }
+                        }
+                    }
+                }
+
                 Section(header: Text("Calendar")) {
                     Toggle("Create events in calendar", isOn: $state.createCalendarEvents)
                     if state.calendarIDs.isNotEmpty {