Jon Fawcett před 6 roky
rodič
revize
c5ebac4769

+ 36 - 3
LoopFollow/Controllers/NightScout.swift

@@ -268,9 +268,12 @@ extension MainViewController {
     func webLoadNSDeviceStatus() {
     func webLoadNSDeviceStatus() {
         if UserDefaultsRepository.debugLog.value { self.writeDebugLog(value: "Download: device status") }
         if UserDefaultsRepository.debugLog.value { self.writeDebugLog(value: "Download: device status") }
         let urlUser = UserDefaultsRepository.url.value
         let urlUser = UserDefaultsRepository.url.value
-        var urlStringDeviceStatus = urlUser + "/api/v1/devicestatus.json?count=1"
+        
+        
+        // NS Api is not working to find by greater than date
+        var urlStringDeviceStatus = urlUser + "/api/v1/devicestatus.json?count=288"
         if token != "" {
         if token != "" {
-            urlStringDeviceStatus = urlUser + "/api/v1/devicestatus.json?token=" + token + "&count=1"
+            urlStringDeviceStatus = urlUser + "/api/v1/devicestatus.json?count=288&token=" + token
         }
         }
         let escapedAddress = urlStringDeviceStatus.addingPercentEncoding(withAllowedCharacters:NSCharacterSet.urlQueryAllowed)
         let escapedAddress = urlStringDeviceStatus.addingPercentEncoding(withAllowedCharacters:NSCharacterSet.urlQueryAllowed)
         guard let urlDeviceStatus = URL(string: escapedAddress!) else {
         guard let urlDeviceStatus = URL(string: escapedAddress!) else {
@@ -310,7 +313,7 @@ extension MainViewController {
             return
             return
         }
         }
         
         
-        //only grabbing one record since ns sorts by {created_at : -1}
+        //Process the current data first
         let lastDeviceStatus = jsonDeviceStatus[0] as [String : AnyObject]?
         let lastDeviceStatus = jsonDeviceStatus[0] as [String : AnyObject]?
         
         
         //pump and uploader
         //pump and uploader
@@ -434,6 +437,36 @@ extension MainViewController {
         }
         }
         
         
         infoTable.reloadData()
         infoTable.reloadData()
+        
+        
+        // Process Override Data
+        overrideData.removeAll()
+        for i in 0..<jsonDeviceStatus.count {
+            let deviceStatus = jsonDeviceStatus[i] as [String : AnyObject]?
+            if let override = deviceStatus?["override"] as! [String : AnyObject]? {
+                let formatter = ISO8601DateFormatter()
+                formatter.formatOptions = [.withFullDate,
+                                           .withTime,
+                                           .withDashSeparatorInDate,
+                                           .withColonSeparatorInTime]
+                if let timestamp = formatter.date(from: (override["timestamp"] as! String))?.timeIntervalSince1970 {
+                    if let isActive = override["active"] as? Bool {
+                        if isActive {
+                            if let multiplier = override["multiplier"] as? Double {
+                                let override = DataStructs.overrideGraphStruct(value: multiplier, date: timestamp, sgv: 200)
+                                overrideData.append(override)
+                            }
+                            
+                        } else {
+                            let multiplier = 1.0 as Double
+                            let override = DataStructs.overrideGraphStruct(value: multiplier, date: timestamp, sgv: 200)
+                            overrideData.append(override)
+                        }
+                    }
+                }
+            }
+        }
+        overrideData.reverse()
     }
     }
     
     
     // NS Cage Web Call
     // NS Cage Web Call

+ 1 - 0
LoopFollow/ViewControllers/MainViewController.swift

@@ -92,6 +92,7 @@ class MainViewController: UIViewController, UITableViewDataSource, ChartViewDele
     var basalScheduleData: [basalGraphStruct] = []
     var basalScheduleData: [basalGraphStruct] = []
     var bolusData: [bolusCarbGraphStruct] = []
     var bolusData: [bolusCarbGraphStruct] = []
     var carbData: [bolusCarbGraphStruct] = []
     var carbData: [bolusCarbGraphStruct] = []
+    var overrideData: [DataStructs.overrideGraphStruct] = []
     var predictionData: [Double] = []
     var predictionData: [Double] = []
     var chartData = LineChartData()
     var chartData = LineChartData()
     var newBGPulled = false
     var newBGPulled = false

+ 7 - 0
LoopFollow/helpers/DataStructs.swift

@@ -30,5 +30,12 @@ class DataStructs {
         var endDate: TimeInterval
         var endDate: TimeInterval
     }
     }
     
     
+    //NS Override Data  Struct
+    struct overrideGraphStruct: Codable {
+        var value: Double
+        var date: TimeInterval
+        var sgv: Int
+    }
+    
     
     
 }
 }