first rhino

This commit is contained in:
AdrianLxM 2017-10-15 02:52:57 +02:00
parent 1db158670a
commit 7f2451934c
4 changed files with 57 additions and 1 deletions

View file

@ -43,6 +43,7 @@ android {
applicationId "info.nightscout.androidaps" applicationId "info.nightscout.androidaps"
minSdkVersion 21 minSdkVersion 21
targetSdkVersion 23 targetSdkVersion 23
multiDexEnabled true
versionCode 1500 versionCode 1500
version "1.54-dev" version "1.54-dev"
buildConfigField "String", "VERSION", '"' + version + '"' buildConfigField "String", "VERSION", '"' + version + '"'

BIN
app/libs/rhino-1.7.7.2.jar Normal file

Binary file not shown.

View file

@ -16,6 +16,9 @@ var determine_basal = function determine_basal(glucose_status, currenttemp, iob_
var rT = { //short for requestedTemp var rT = { //short for requestedTemp
}; };
rT.error ='Error: could not get current basal rate';
return rT;
if (typeof profile === 'undefined' || typeof profile.current_basal === 'undefined') { if (typeof profile === 'undefined' || typeof profile.current_basal === 'undefined') {
rT.error ='Error: could not get current basal rate'; rT.error ='Error: could not get current basal rate';
return rT; return rT;
@ -313,4 +316,4 @@ var determine_basal = function determine_basal(glucose_status, currenttemp, iob_
}; };
module.exports = determine_basal; //module.exports = determine_basal;

View file

@ -4,9 +4,14 @@ import com.eclipsesource.v8.JavaVoidCallback;
import com.eclipsesource.v8.V8; import com.eclipsesource.v8.V8;
import com.eclipsesource.v8.V8Array; import com.eclipsesource.v8.V8Array;
import com.eclipsesource.v8.V8Object; import com.eclipsesource.v8.V8Object;
import com.j256.ormlite.logger.Log;
import org.json.JSONException; import org.json.JSONException;
import org.json.JSONObject; import org.json.JSONObject;
import org.mozilla.javascript.Context;
import org.mozilla.javascript.Function;
import org.mozilla.javascript.NativeObject;
import org.mozilla.javascript.Scriptable;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@ -60,9 +65,56 @@ public class DetermineBasalAdapterMAJS {
initProcessExitCallback(); initProcessExitCallback();
initModuleParent(); initModuleParent();
loadScript(); loadScript();
rhinotest();
}
public void rhinotest(){
Context rhino = Context.enter();
Scriptable scope = rhino.initStandardObjects();
// Turn off optimization to make Rhino Android compatible
rhino.setOptimizationLevel(-1);
try {
// Note the forth argument is 1, which means the JavaScript source has
// been compressed to only one line using something like YUI
//rhino.evaluateString(scope, javaScriptCode, "JavaScript", 1, null);
rhino.evaluateString(scope, readFile("OpenAPSMA/determine-basal.js"), "JavaScript", 0, null);
// Get the functionName defined in JavaScriptCode
//Object obj = scope.get(functionNameInJavaScriptCode, scope);
Object obj = scope.get("determine_basal", scope);
if (obj instanceof Function) {
Function jsFunction = (Function) obj;
// Call the function with params
String[] params = {
"undefined",
"undefined",
"undefined",
"undefined",
"undefined",
"undefined",
"setTempBasal"};
NativeObject jsResult = (NativeObject) jsFunction.call(rhino, scope, scope, params);
// Parse the jsResult object to a String
String result = rhino.toString(jsResult);
log.debug("rhino result: + " + result);
} else {
log.debug("hod ned kloppt");
}
} catch (IOException e) {
e.printStackTrace();
} finally {
Context.exit();
}
} }
public void init() { public void init() {
// Profile // Profile
mProfile = new V8Object(mV8rt); mProfile = new V8Object(mV8rt);
mProfile.add("max_iob", 0); mProfile.add("max_iob", 0);