Просмотр исходного кода

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

(cherry picked from commit 01ab953a2e13a4bed3b35af9d37b816b6d4022e7)
Johan Degraeve 3 лет назад
Родитель
Сommit
4f34fcaf2c

+ 0 - 1
FreeAPS/Sources/APS/CGM/HeartBeatManager.swift

@@ -23,7 +23,6 @@ class HeartBeatManager {
     /// - parameters:
     /// - parameters:
     ///     - sharedData : shared User Defaults
     ///     - sharedData : shared User Defaults
     public func checkCGMBluetoothTransmitter(sharedUserDefaults: UserDefaults) {
     public func checkCGMBluetoothTransmitter(sharedUserDefaults: UserDefaults) {
-
         if let sharedTransmitterAddress = sharedUserDefaults.string(forKey: keyForcgmTransmitterDeviceAddress) {
         if let sharedTransmitterAddress = sharedUserDefaults.string(forKey: keyForcgmTransmitterDeviceAddress) {
             debug(.deviceManager, "in checkCGMBluetoothTransmitter, sharedTransmitterAddress = \(sharedTransmitterAddress)")
             debug(.deviceManager, "in checkCGMBluetoothTransmitter, sharedTransmitterAddress = \(sharedTransmitterAddress)")
         } else {
         } else {

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

@@ -16,7 +16,7 @@ final class BaseFetchGlucoseManager: FetchGlucoseManager, Injectable {
     @Injected() var deviceDataManager: DeviceDataManager!
     @Injected() var deviceDataManager: DeviceDataManager!
 
 
     private var lifetime = Lifetime()
     private var lifetime = Lifetime()
-    private let timer = DispatchTimer(timeInterval: TimeInterval(3.0))
+    private let timer = DispatchTimer(timeInterval: TimeInterval(1.0))
 
 
     private lazy var dexcomSource = DexcomSource()
     private lazy var dexcomSource = DexcomSource()
     private lazy var simulatorSource = GlucoseSimulatorSource()
     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 calendarIDs: [String] = []
         @Published var currentCalendarID: String = ""
         @Published var currentCalendarID: String = ""
         @Persisted(key: "CalendarManager.currentCalendarID") var storedCalendarID: String? = nil
         @Persisted(key: "CalendarManager.currentCalendarID") var storedCalendarID: String? = nil
+        @Published var cgmTransmitterDeviceAddress: String? = nil
 
 
         override func subscribe() {
         override func subscribe() {
             cgm = settingsManager.settings.cgm
             cgm = settingsManager.settings.cgm
             transmitterID = UserDefaults.standard.dexcomTransmitterID ?? ""
             transmitterID = UserDefaults.standard.dexcomTransmitterID ?? ""
             currentCalendarID = storedCalendarID ?? ""
             currentCalendarID = storedCalendarID ?? ""
             calendarIDs = calendarManager.calendarIDs()
             calendarIDs = calendarManager.calendarIDs()
+            cgmTransmitterDeviceAddress = UserDefaults.standard.cgmTransmitterDeviceAddress
 
 
             subscribeSetting(\.useCalendar, on: $createCalendarEvents) { createCalendarEvents = $0 }
             subscribeSetting(\.useCalendar, on: $createCalendarEvents) { createCalendarEvents = $0 }
             subscribeSetting(\.uploadGlucose, on: $uploadGlucose) { uploadGlucose = $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
         let resolver: Resolver
         @StateObject var state = StateModel()
         @StateObject var state = StateModel()
 
 
+        // @AppStorage(UserDefaults.BTKey.cgmTransmitterDeviceAddress.rawValue) private var cgmTransmitterDeviceAddress: String? = nil
+
         var body: some View {
         var body: some View {
             Form {
             Form {
                 Section {
                 Section {
@@ -45,6 +47,19 @@ extension CGM {
                     Text("Calibrations").navigationLink(to: .calibrations, from: self)
                     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")) {
                 Section(header: Text("Calendar")) {
                     Toggle("Create events in calendar", isOn: $state.createCalendarEvents)
                     Toggle("Create events in calendar", isOn: $state.createCalendarEvents)
                     if state.calendarIDs.isNotEmpty {
                     if state.calendarIDs.isNotEmpty {