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

G6 SAGE upload to NS - Add back sensor start and transmitter activation date

bjornoleh 2 лет назад
Родитель
Сommit
e5d44431c9
1 измененных файлов с 28 добавлено и 18 удалено
  1. 28 18
      FreeAPS/Sources/APS/CGM/DexcomSourceG6.swift

+ 28 - 18
FreeAPS/Sources/APS/CGM/DexcomSourceG6.swift

@@ -145,25 +145,35 @@ extension DexcomSourceG6: CGMManagerDelegate {
         debug(.deviceManager, "DEXCOM - Process CGM Reading Result launched with \(readingResult)")
         switch readingResult {
         case let .newData(values):
-            let bloodGlucose = values.compactMap { newGlucoseSample -> BloodGlucose? in
-                let quantity = newGlucoseSample.quantity
-                let value = Int(quantity.doubleValue(for: .milligramsPerDeciliter))
-                return BloodGlucose(
-                    _id: newGlucoseSample.syncIdentifier,
-                    sgv: value,
-                    direction: .init(trendType: newGlucoseSample.trend),
-                    date: Decimal(Int(newGlucoseSample.date.timeIntervalSince1970 * 1000)),
-                    dateString: newGlucoseSample.date,
-                    unfiltered: Decimal(value),
-                    filtered: nil,
-                    noise: nil,
-                    glucose: value,
-                    type: "sgv",
-                    transmitterID: self.transmitterID
-                )
+            if let cgmG6Manager = cgmManager as? G6CGMManager,
+               let activationDate = cgmG6Manager.latestReading?.activationDate,
+               let sessionStartDate = cgmG6Manager.latestReading?.sessionStartDate
+            {
+                let bloodGlucose = values.compactMap { newGlucoseSample -> BloodGlucose? in
+                    let quantity = newGlucoseSample.quantity
+                    let value = Int(quantity.doubleValue(for: .milligramsPerDeciliter))
+                    return BloodGlucose(
+                        _id: newGlucoseSample.syncIdentifier,
+                        sgv: value,
+                        direction: .init(trendType: newGlucoseSample.trend),
+                        date: Decimal(Int(newGlucoseSample.date.timeIntervalSince1970 * 1000)),
+                        dateString: newGlucoseSample.date,
+                        unfiltered: Decimal(value),
+                        filtered: nil,
+                        noise: nil,
+                        glucose: value,
+                        type: "sgv",
+                        activationDate: activationDate,
+                        sessionStartDate: sessionStartDate,
+                        transmitterID: self.transmitterID
+                    )
+                }
+                promise?(.success(bloodGlucose))
+                completion()
+            } else {
+                // Handle the case where activationDate or sessionStartDate is nil
+                completion()
             }
-            promise?(.success(bloodGlucose))
-            completion()
         case .unreliableData:
             // loopManager.receivedUnreliableCGMReading()
             promise?(.failure(GlucoseDataError.unreliableData))