Explorar el Código

SAGE for Libre 2 fix (missing commit)

Jon B.M hace 3 años
padre
commit
efd1bf4a4e

+ 6 - 2
Dependencies/LibreTransmitter/Sources/LibreTransmitter/LibreGlucose.swift

@@ -23,6 +23,8 @@ public struct LibreGlucose {
     public var timestamp: Date
     //public let collector: String?
 
+    public var sensorStartDate: Date? = nil
+
     public static func timeDifference(oldGlucose: LibreGlucose, newGlucose: LibreGlucose) -> TimeInterval {
         newGlucose.startDate.timeIntervalSince(oldGlucose.startDate)
     }
@@ -180,7 +182,8 @@ extension LibreGlucose {
         return arr
     }
 
-    static func fromTrendMeasurements(_ measurements: [Measurement], nativeCalibrationData: SensorData.CalibrationInfo, returnAll: Bool) -> [LibreGlucose] {
+    static func fromTrendMeasurements(_ measurements: [Measurement], nativeCalibrationData: SensorData.CalibrationInfo, returnAll: Bool,
+                                      sensorStartDate: Date? = nil) -> [LibreGlucose] {
         var arr = [LibreGlucose]()
 
         var shouldSmoothGlucose = true
@@ -193,7 +196,8 @@ extension LibreGlucose {
                 unsmoothedGlucose: trend.roundedGlucoseValueFromRaw2(calibrationInfo: nativeCalibrationData),
                 glucoseDouble: 0.0,
                 error: trend.error,
-                timestamp: trend.date)
+                timestamp: trend.date,
+                sensorStartDate: sensorStartDate)
             // if sensor is ripped off body while transmitter is attached, values below 1 might be created
 
             if glucose.unsmoothedGlucose > 0 && glucose.unsmoothedGlucose <= 500 {

+ 3 - 1
Dependencies/LibreTransmitter/Sources/LibreTransmitter/LibreTransmitterManager.swift

@@ -431,6 +431,8 @@ extension LibreTransmitterManager {
 
         }
 
+        let sensorStartDate = Date().addingTimeInterval(-1 * TimeInterval(minutes: Double(bleData.age)))
+        NSLog("Libre age \(bleData.age), Start Date calculated: \(sensorStartDate)")
 
 //        let device = self.proxy?.device
 
@@ -438,7 +440,7 @@ extension LibreTransmitterManager {
 
         let sortedTrends = bleData.trend.sorted{ $0.date > $1.date}
 
-        let glucose = LibreGlucose.fromTrendMeasurements(sortedTrends, nativeCalibrationData: calibrationData, returnAll: UserDefaults.standard.mmBackfillFromTrend)
+        let glucose = LibreGlucose.fromTrendMeasurements(sortedTrends, nativeCalibrationData: calibrationData, returnAll: UserDefaults.standard.mmBackfillFromTrend, sensorStartDate: sensorStartDate)
         //glucose += LibreGlucose.fromHistoryMeasurements(bleData.history, nativeCalibrationData: calibrationData)
         // while libre2 fram scans contains historymeasurements for the last 8 hours,
         // history from bledata contains just a couple of data points, so we don't bother

+ 2 - 2
FreeAPS/Sources/APS/CGM/LibreTransmitterSource.swift

@@ -74,8 +74,8 @@ extension BaseLibreTransmitterSource: LibreTransmitterManagerDelegate {
                     noise: nil,
                     glucose: Int(value.glucose),
                     type: "sgv",
-                    activationDate: manager.sensorStartDate,
-                    sessionStartDate: manager.sensorStartDate,
+                    activationDate: value.sensorStartDate ?? manager.sensorStartDate,
+                    sessionStartDate: value.sensorStartDate ?? manager.sensorStartDate,
                     transmitterID: manager.sensorSerialNumber
                 )
             }