|
|
@@ -385,7 +385,7 @@ final class OpenAPS {
|
|
|
func determineBasal(
|
|
|
currentTemp: TempBasal,
|
|
|
shouldSmoothGlucose: Bool,
|
|
|
- useSwiftOref: Bool,
|
|
|
+ useJavascriptOref: Bool,
|
|
|
clock: Date = Date(),
|
|
|
simulatedCarbsAmount: Decimal? = nil,
|
|
|
simulatedBolusAmount: Decimal? = nil,
|
|
|
@@ -448,7 +448,7 @@ final class OpenAPS {
|
|
|
clock: clock,
|
|
|
carbs: carbsAsJSON,
|
|
|
glucose: glucoseAsJSON,
|
|
|
- useSwiftOref: useSwiftOref
|
|
|
+ useJavascriptOref: useJavascriptOref
|
|
|
)
|
|
|
|
|
|
// IOB calculation
|
|
|
@@ -457,7 +457,7 @@ final class OpenAPS {
|
|
|
profile: profile,
|
|
|
clock: clock,
|
|
|
autosens: autosens.isEmpty ? .null : autosens,
|
|
|
- useSwiftOref: useSwiftOref
|
|
|
+ useJavascriptOref: useJavascriptOref
|
|
|
)
|
|
|
|
|
|
// TODO: refactor this to core data
|
|
|
@@ -485,7 +485,7 @@ final class OpenAPS {
|
|
|
preferences: preferences,
|
|
|
basalProfile: basalProfile,
|
|
|
trioCustomOrefVariables: trioCustomOrefVariables,
|
|
|
- useSwiftOref: useSwiftOref
|
|
|
+ useJavascriptOref: useJavascriptOref
|
|
|
)
|
|
|
|
|
|
debug(.openAPS, "\(simulation ? "[SIMULATION]" : "") OREF DETERMINATION: \(orefDetermination)")
|
|
|
@@ -578,7 +578,7 @@ final class OpenAPS {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- func autosense(shouldSmoothGlucose: Bool, useSwiftOref: Bool) async throws -> Autosens? {
|
|
|
+ func autosense(shouldSmoothGlucose: Bool, useJavascriptOref: Bool) async throws -> Autosens? {
|
|
|
debug(.openAPS, "Start autosens")
|
|
|
|
|
|
// Perform asynchronous calls in parallel
|
|
|
@@ -607,7 +607,7 @@ final class OpenAPS {
|
|
|
profile: profile,
|
|
|
carbs: carbsAsJSON,
|
|
|
temptargets: tempTargets,
|
|
|
- useSwiftOref: useSwiftOref
|
|
|
+ useJavascriptOref: useJavascriptOref
|
|
|
)
|
|
|
|
|
|
debug(.openAPS, "AUTOSENS: \(autosenseResult)")
|
|
|
@@ -621,7 +621,7 @@ final class OpenAPS {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- func createProfiles(useSwiftOref: Bool) async throws {
|
|
|
+ func createProfiles(useJavascriptOref: Bool) async throws {
|
|
|
debug(.openAPS, "Start creating pump profile and user profile")
|
|
|
|
|
|
// Load required settings and profiles asynchronously
|
|
|
@@ -698,7 +698,7 @@ final class OpenAPS {
|
|
|
model: model,
|
|
|
autotune: RawJSON.null,
|
|
|
trioSettings: trioSettings,
|
|
|
- useSwiftOref: useSwiftOref,
|
|
|
+ useJavascriptOref: useJavascriptOref,
|
|
|
clock: clock
|
|
|
)
|
|
|
|
|
|
@@ -713,7 +713,7 @@ final class OpenAPS {
|
|
|
model: model,
|
|
|
autotune: RawJSON.null,
|
|
|
trioSettings: trioSettings,
|
|
|
- useSwiftOref: useSwiftOref,
|
|
|
+ useJavascriptOref: useJavascriptOref,
|
|
|
clock: clock
|
|
|
)
|
|
|
|
|
|
@@ -729,20 +729,26 @@ final class OpenAPS {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private func iob(pumphistory: JSON, profile: JSON, clock: JSON, autosens: JSON, useSwiftOref: Bool) async throws -> RawJSON {
|
|
|
+ private func iob(
|
|
|
+ pumphistory: JSON,
|
|
|
+ profile: JSON,
|
|
|
+ clock: JSON,
|
|
|
+ autosens: JSON,
|
|
|
+ useJavascriptOref: Bool
|
|
|
+ ) async throws -> RawJSON {
|
|
|
// FIXME: For now we'll just remove duplicate suspends here (ISSUE-399)
|
|
|
var pumphistory = pumphistory
|
|
|
if let pumpHistoryArray = try? JSONBridge.pumpHistory(from: pumphistory) {
|
|
|
pumphistory = pumpHistoryArray.removingDuplicateSuspendResumeEvents().rawJSON
|
|
|
}
|
|
|
|
|
|
- if useSwiftOref {
|
|
|
+ if useJavascriptOref {
|
|
|
+ let jsResult = await iobJavascript(pumphistory: pumphistory, profile: profile, clock: clock, autosens: autosens)
|
|
|
+ return try jsResult.returnOrThrow()
|
|
|
+ } else {
|
|
|
let swiftResult = OpenAPSSwift
|
|
|
.iob(pumphistory: pumphistory, profile: profile, clock: clock, autosens: autosens)
|
|
|
return try swiftResult.returnOrThrow()
|
|
|
- } else {
|
|
|
- let jsResult = await iobJavascript(pumphistory: pumphistory, profile: profile, clock: clock, autosens: autosens)
|
|
|
- return try jsResult.returnOrThrow()
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -777,9 +783,19 @@ final class OpenAPS {
|
|
|
clock: JSON,
|
|
|
carbs: JSON,
|
|
|
glucose: JSON,
|
|
|
- useSwiftOref: Bool
|
|
|
+ useJavascriptOref: Bool
|
|
|
) async throws -> RawJSON {
|
|
|
- if useSwiftOref {
|
|
|
+ if useJavascriptOref {
|
|
|
+ let jsResult = await mealJavascript(
|
|
|
+ pumphistory: pumphistory,
|
|
|
+ profile: profile,
|
|
|
+ basalProfile: basalProfile,
|
|
|
+ clock: clock,
|
|
|
+ carbs: carbs,
|
|
|
+ glucose: glucose
|
|
|
+ )
|
|
|
+ return try jsResult.returnOrThrow()
|
|
|
+ } else {
|
|
|
let swiftResult = OpenAPSSwift
|
|
|
.meal(
|
|
|
pumphistory: pumphistory,
|
|
|
@@ -790,16 +806,6 @@ final class OpenAPS {
|
|
|
glucose: glucose
|
|
|
)
|
|
|
return try swiftResult.returnOrThrow()
|
|
|
- } else {
|
|
|
- let jsResult = await mealJavascript(
|
|
|
- pumphistory: pumphistory,
|
|
|
- profile: profile,
|
|
|
- basalProfile: basalProfile,
|
|
|
- clock: clock,
|
|
|
- carbs: carbs,
|
|
|
- glucose: glucose
|
|
|
- )
|
|
|
- return try jsResult.returnOrThrow()
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -843,9 +849,19 @@ final class OpenAPS {
|
|
|
profile: JSON,
|
|
|
carbs: JSON,
|
|
|
temptargets: JSON,
|
|
|
- useSwiftOref: Bool
|
|
|
+ useJavascriptOref: Bool
|
|
|
) async throws -> RawJSON {
|
|
|
- if useSwiftOref {
|
|
|
+ if useJavascriptOref {
|
|
|
+ let jsResult = await autosenseJavascript(
|
|
|
+ glucose: glucose,
|
|
|
+ pumpHistory: pumpHistory,
|
|
|
+ basalprofile: basalprofile,
|
|
|
+ profile: profile,
|
|
|
+ carbs: carbs,
|
|
|
+ temptargets: temptargets
|
|
|
+ )
|
|
|
+ return try jsResult.returnOrThrow()
|
|
|
+ } else {
|
|
|
let swiftResult = OpenAPSSwift
|
|
|
.autosense(
|
|
|
glucose: glucose,
|
|
|
@@ -857,16 +873,6 @@ final class OpenAPS {
|
|
|
clock: Date()
|
|
|
)
|
|
|
return try swiftResult.returnOrThrow()
|
|
|
- } else {
|
|
|
- let jsResult = await autosenseJavascript(
|
|
|
- glucose: glucose,
|
|
|
- pumpHistory: pumpHistory,
|
|
|
- basalprofile: basalprofile,
|
|
|
- profile: profile,
|
|
|
- carbs: carbs,
|
|
|
- temptargets: temptargets
|
|
|
- )
|
|
|
- return try jsResult.returnOrThrow()
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -916,12 +922,12 @@ final class OpenAPS {
|
|
|
preferences: JSON,
|
|
|
basalProfile: JSON,
|
|
|
trioCustomOrefVariables: JSON,
|
|
|
- useSwiftOref: Bool
|
|
|
+ useJavascriptOref: Bool
|
|
|
) async throws -> RawJSON {
|
|
|
let clock = Date()
|
|
|
|
|
|
- if useSwiftOref {
|
|
|
- let swiftResult = OpenAPSSwift.determineBasal(
|
|
|
+ if useJavascriptOref {
|
|
|
+ let jsResult = await determineBasalJavascript(
|
|
|
glucose: glucose,
|
|
|
currentTemp: currentTemp,
|
|
|
iob: iob,
|
|
|
@@ -936,9 +942,9 @@ final class OpenAPS {
|
|
|
trioCustomOrefVariables: trioCustomOrefVariables,
|
|
|
clock: clock
|
|
|
)
|
|
|
- return try swiftResult.returnOrThrow()
|
|
|
+ return try jsResult.returnOrThrow()
|
|
|
} else {
|
|
|
- let jsResult = await determineBasalJavascript(
|
|
|
+ let swiftResult = OpenAPSSwift.determineBasal(
|
|
|
glucose: glucose,
|
|
|
currentTemp: currentTemp,
|
|
|
iob: iob,
|
|
|
@@ -953,7 +959,7 @@ final class OpenAPS {
|
|
|
trioCustomOrefVariables: trioCustomOrefVariables,
|
|
|
clock: clock
|
|
|
)
|
|
|
- return try jsResult.returnOrThrow()
|
|
|
+ return try swiftResult.returnOrThrow()
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -1073,11 +1079,11 @@ final class OpenAPS {
|
|
|
model: JSON,
|
|
|
autotune: JSON,
|
|
|
trioSettings: JSON,
|
|
|
- useSwiftOref: Bool,
|
|
|
+ useJavascriptOref: Bool,
|
|
|
clock: Date
|
|
|
) async throws -> RawJSON {
|
|
|
- if useSwiftOref {
|
|
|
- let swiftResult = OpenAPSSwift.makeProfile(
|
|
|
+ if useJavascriptOref {
|
|
|
+ let jsResult = await makeProfileJavascript(
|
|
|
preferences: preferences,
|
|
|
pumpSettings: pumpSettings,
|
|
|
bgTargets: bgTargets,
|
|
|
@@ -1086,12 +1092,12 @@ final class OpenAPS {
|
|
|
carbRatio: carbRatio,
|
|
|
tempTargets: tempTargets,
|
|
|
model: model,
|
|
|
- trioSettings: trioSettings,
|
|
|
- clock: clock
|
|
|
+ autotune: autotune,
|
|
|
+ trioSettings: trioSettings
|
|
|
)
|
|
|
- return try swiftResult.returnOrThrow()
|
|
|
+ return try jsResult.returnOrThrow()
|
|
|
} else {
|
|
|
- let jsResult = await makeProfileJavascript(
|
|
|
+ let swiftResult = OpenAPSSwift.makeProfile(
|
|
|
preferences: preferences,
|
|
|
pumpSettings: pumpSettings,
|
|
|
bgTargets: bgTargets,
|
|
|
@@ -1100,10 +1106,10 @@ final class OpenAPS {
|
|
|
carbRatio: carbRatio,
|
|
|
tempTargets: tempTargets,
|
|
|
model: model,
|
|
|
- autotune: autotune,
|
|
|
- trioSettings: trioSettings
|
|
|
+ trioSettings: trioSettings,
|
|
|
+ clock: clock
|
|
|
)
|
|
|
- return try jsResult.returnOrThrow()
|
|
|
+ return try swiftResult.returnOrThrow()
|
|
|
}
|
|
|
}
|
|
|
|