Przeglądaj źródła

Fix for Average loop interval calc.

Jon Mårtensson 3 lat temu
rodzic
commit
fc91ce1a71
1 zmienionych plików z 4 dodań i 8 usunięć
  1. 4 8
      FreeAPS/Sources/APS/APSManager.swift

+ 4 - 8
FreeAPS/Sources/APS/APSManager.swift

@@ -834,7 +834,7 @@ final class BaseAPSManager: APSManager, Injectable {
 
 
         if !lsData.isEmpty {
         if !lsData.isEmpty {
             var i = 0.0
             var i = 0.0
-
+            
             if let loopEnd = lsData[0].end {
             if let loopEnd = lsData[0].end {
                 previousTimeLoop = loopEnd
                 previousTimeLoop = loopEnd
             }
             }
@@ -848,12 +848,7 @@ final class BaseAPSManager: APSManager, Injectable {
                     }
                     }
                     i += 1
                     i += 1
 
 
-                    if previousTimeLoop != loopEnd {
-                        timeIntervalLoops = (previousTimeLoop - each.start).timeInterval / 60
-                    } else {
-                        timeIntervalLoops = 0.0
-                    }
-
+                    timeIntervalLoops = (previousTimeLoop - each.start).timeInterval / 60
                     if timeIntervalLoops > 0.0 {
                     if timeIntervalLoops > 0.0 {
                         timeIntervalLoopArray.append(timeIntervalLoops)
                         timeIntervalLoopArray.append(timeIntervalLoops)
                     }
                     }
@@ -884,7 +879,8 @@ final class BaseAPSManager: APSManager, Injectable {
 
 
             successRate = (successNR / Double(i)) * 100
             successRate = (successNR / Double(i)) * 100
 
 
-            averageIntervalLoops = timeIntervalLoopArray.reduce(0,+) / Double(timeIntervalLoopArray.count)
+            averageIntervalLoops = ((lsData[0].end ?? lsData[lsData.count - 1].start) - lsData[lsData.count - 1].start)
+                .timeInterval / 60 / Double(i)
 
 
             averageLoopTime /= Double(i)
             averageLoopTime /= Double(i)