polscm32 1 год назад
Родитель
Сommit
9fee936da5
1 измененных файлов с 21 добавлено и 6 удалено
  1. 21 6
      FreeAPS/Sources/APS/OpenAPS/OpenAPS.swift

+ 21 - 6
FreeAPS/Sources/APS/OpenAPS/OpenAPS.swift

@@ -142,8 +142,8 @@ final class OpenAPS {
         }
     }
 
-    private func fetchAndProcessCarbs() async -> String {
-        let results = await CoreDataStack.shared.fetchEntitiesAsync(
+    private func fetchAndProcessCarbs(additionalCarbs: Decimal? = nil) async -> String {
+        var results = await CoreDataStack.shared.fetchEntitiesAsync(
             ofType: CarbEntryStored.self,
             onContext: context,
             predicate: NSPredicate.predicateForOneDayAgo,
@@ -151,12 +151,27 @@ final class OpenAPS {
             ascending: false
         )
 
-        // convert to json
+        if let additionalCarbs = additionalCarbs {
+            let newCarbEntry = createCarbEntry(amount: additionalCarbs)
+            results.append(newCarbEntry)
+        }
+
         return await context.perform {
             return self.jsonConverter.convertToJSON(results)
         }
     }
 
+    private func createCarbEntry(amount: Decimal) -> CarbEntryStored {
+        let newCarbEntry = CarbEntryStored(context: context)
+        newCarbEntry.date = Date()
+        newCarbEntry.carbs = Double(amount)
+        newCarbEntry.fat = 0
+        newCarbEntry.isFPU = false
+        newCarbEntry.protein = 0
+        newCarbEntry.id = UUID()
+        return newCarbEntry
+    }
+
     private func fetchPumpHistoryObjectIDs() async -> [NSManagedObjectID]? {
         let results = await CoreDataStack.shared.fetchEntitiesAsync(
             ofType: PumpEventStored.self,
@@ -244,7 +259,7 @@ final class OpenAPS {
 
         // Perform asynchronous calls in parallel
         async let pumpHistoryObjectIDs = fetchPumpHistoryObjectIDs() ?? []
-        async let carbs = fetchAndProcessCarbs()
+        async let carbs = fetchAndProcessCarbs(additionalCarbs: carbs)
         async let glucose = fetchAndProcessGlucose()
         async let oref2 = oref2()
         async let profileAsync = loadFileFromStorageAsync(name: Settings.profile)
@@ -275,7 +290,7 @@ final class OpenAPS {
             reservoirAsync,
             preferencesAsync
         )
-//        print("carbs: \(carbsAsJSON)")
+        print("carbs: \(carbsAsJSON)")
 
         // Meal
         let meal = try await self.meal(
@@ -294,7 +309,7 @@ final class OpenAPS {
             clock: dateFormattedAsString,
             autosens: autosens.isEmpty ? .null : autosens
         )
-        print("pumphistory : \(pumpHistoryJSON)")
+//        print("pumphistory : \(pumpHistoryJSON)")
 //        print("iob: \(iob)")
 
         // Determine basal