Ivan Valkou 5 anni fa
parent
commit
9ea29b3fc8

+ 4 - 0
FreeAPS.xcodeproj/project.pbxproj

@@ -7,6 +7,7 @@
 	objects = {
 
 /* Begin PBXBuildFile section */
+		3811DDFF25C9593400A708ED /* MealInputs.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3811DDFE25C9593400A708ED /* MealInputs.swift */; };
 		384E803425C385E60086DB71 /* JavaScriptWorker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 384E803325C385E60086DB71 /* JavaScriptWorker.swift */; };
 		384E803825C388640086DB71 /* Script.swift in Sources */ = {isa = PBXBuildFile; fileRef = 384E803725C388640086DB71 /* Script.swift */; };
 		388E595C25AD948C0019842D /* FreeAPSApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 388E595B25AD948C0019842D /* FreeAPSApp.swift */; };
@@ -22,6 +23,7 @@
 /* End PBXBuildFile section */
 
 /* Begin PBXFileReference section */
+		3811DDFE25C9593400A708ED /* MealInputs.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MealInputs.swift; sourceTree = "<group>"; };
 		384E803325C385E60086DB71 /* JavaScriptWorker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JavaScriptWorker.swift; sourceTree = "<group>"; };
 		384E803725C388640086DB71 /* Script.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Script.swift; sourceTree = "<group>"; };
 		388E595825AD948C0019842D /* FreeAPS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = FreeAPS.app; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -105,6 +107,7 @@
 			children = (
 				388E5A5F25B6F2310019842D /* Autosens.swift */,
 				3895E4C525B9E00D00214B37 /* Profile.swift */,
+				3811DDFE25C9593400A708ED /* MealInputs.swift */,
 			);
 			path = Models;
 			sourceTree = "<group>";
@@ -189,6 +192,7 @@
 			buildActionMask = 2147483647;
 			files = (
 				388E5A6025B6F2310019842D /* Autosens.swift in Sources */,
+				3811DDFF25C9593400A708ED /* MealInputs.swift in Sources */,
 				3895E4C625B9E00D00214B37 /* Profile.swift in Sources */,
 				388E596C25AD95110019842D /* OpenAPS.swift in Sources */,
 				388E595E25AD948C0019842D /* ContentView.swift in Sources */,

+ 17 - 0
FreeAPS/Models/MealInputs.swift

@@ -0,0 +1,17 @@
+//
+//  MealInputs.swift
+//  FreeAPS
+//
+//  Created by Ivan Valkou on 02.02.2021.
+//
+
+import Foundation
+
+struct MealInputs: JSON {
+    let history: String
+    let profile: String
+    let basalprofile: String
+    let clock: String
+    let carbs: String
+    let glucose: String
+}

+ 9 - 16
FreeAPS/OpenAPS/OpenAPS.swift

@@ -18,22 +18,15 @@ final class OpenAPS {
     func meal() {
         let jsWorker = JavaScriptWorker()
 
-        let pumphistory = loadJSON(name: "pumphistory")
-        let profile = loadJSON(name: "profile")
-        let clock = loadJSON(name: "clock")
-        let glucose = loadJSON(name: "glucose")
-        let basalProfile = loadJSON(name: "basal_profile")
-        let carbhistory = loadJSON(name: "carbhistory")
-
-
-        jsWorker.evaluate(script: Script(name:"lib-meal-index-bundle"))
-        let result = jsWorker.call(function: "MEAL_JS_GENERATE", with: [
-            pumphistory,
-            profile,
-            clock,
-            glucose,
-            basalProfile,
-            carbhistory
+        jsWorker.evaluate(script: Script(name:"lib-meal-bundle"))
+        jsWorker.evaluate(script: Script(name:"prepare-meal"))
+        let result = jsWorker.call(function: "generate", with: [
+            loadJSON(name: "pumphistory"),
+            loadJSON(name: "profile"),
+            loadJSON(name: "basal_profile"),
+            loadJSON(name: "clock"),
+            loadJSON(name: "carbhistory"),
+            loadJSON(name: "glucose")
         ])
         print(result)
     }

File diff suppressed because it is too large
+ 0 - 2
javascript/iob.js


File diff suppressed because it is too large
+ 39717 - 0
javascript/lib-iob-bundle.js


File diff suppressed because it is too large
+ 2110 - 23012
javascript/lib-meal-index-bundle.js


File diff suppressed because it is too large
+ 0 - 2
javascript/meal.js


+ 20 - 0
javascript/prepare-meal.js

@@ -0,0 +1,20 @@
+function generate(pumphistory_data, profile_data, basalprofile_data, clock_data, carb_data, glucose_data) {
+    var inputs = {
+        history: pumphistory_data
+    , profile: profile_data
+    , basalprofile: basalprofile_data
+    , clock: clock_data
+    , carbs: carb_data
+    , glucose: glucose_data
+    };
+
+    var recentCarbs = freeaps(inputs);
+
+    if (glucose_data.length < 36) {
+        console.error("Not enough glucose data to calculate carb absorption; found:", glucose_data.length);
+        recentCarbs.mealCOB = 0;
+        recentCarbs.reason = "not enough glucose data to calculate carb absorption";
+    }
+
+    return recentCarbs;
+}

+ 0 - 4
javascript/prepare.js

@@ -1,7 +1,3 @@
-//var require = function(arg) {
-//    return function(basal, profile) { return basal; };
-//};
-
 var exports = {};
 var module = {
     exports: {}