From 30c01f797f460a20d762ba83c5d03bc2b7f2e2f8 Mon Sep 17 00:00:00 2001 From: Nick S Date: Tue, 9 Jan 2018 14:18:59 -0800 Subject: [PATCH] Get model from API for android --- .../com/lwansbrough/RCTCamera/DeepBelief.java | 6 ++++- .../RCTCamera/RCTCameraModule.java | 27 +++++++++++++++++++ 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/android/src/main/java/com/lwansbrough/RCTCamera/DeepBelief.java b/android/src/main/java/com/lwansbrough/RCTCamera/DeepBelief.java index 9abbb2f9a..9d8373eda 100644 --- a/android/src/main/java/com/lwansbrough/RCTCamera/DeepBelief.java +++ b/android/src/main/java/com/lwansbrough/RCTCamera/DeepBelief.java @@ -57,7 +57,7 @@ static void initDeepBelief() { String predictorFileName = "VoltAGE_2_predictor.txt"; String predictorFile = dataDir + "/" + predictorFileName; copyAsset(am, predictorFileName, predictorFile); - predictorHandle = JPCNNLibrary.INSTANCE.jpcnn_load_predictor(predictorFile); + //setPredictor(predictorFile); Bitmap lenaBitmap = getBitmapFromAsset(am,"lena.png"); @@ -68,6 +68,10 @@ static void initDeepBelief() { } + public static void setPredictor(String predictorFilePath){ + predictorHandle = JPCNNLibrary.INSTANCE.jpcnn_load_predictor(predictorFilePath); + } + private static boolean copyAsset(AssetManager assetManager, String fromAssetPath, String toPath) { InputStream in = null; diff --git a/android/src/main/java/com/lwansbrough/RCTCamera/RCTCameraModule.java b/android/src/main/java/com/lwansbrough/RCTCamera/RCTCameraModule.java index ca2530262..53eb9720e 100644 --- a/android/src/main/java/com/lwansbrough/RCTCamera/RCTCameraModule.java +++ b/android/src/main/java/com/lwansbrough/RCTCamera/RCTCameraModule.java @@ -506,6 +506,33 @@ public void orientationEvent() { @ReactMethod public void setCNNModel(final String model) { Log.d(TAG, "setCNNModel called"); + + //write string to file + String predictorFileName = "VoltAGE_predictor_from_api.txt"; + FileOutputStream outputStream; + + try { + outputStream = DeepBelief.ctx.openFileOutput(predictorFileName, DeepBelief.ctx.MODE_PRIVATE); + outputStream.write(model.getBytes()); + outputStream.close(); + } catch (Exception e) { + e.printStackTrace(); + } + + //get file path + String dataDir = DeepBelief.ctx.getFilesDir().getAbsolutePath(); + Log.d(TAG, dataDir); + String predictorFilePath = dataDir + "/" + predictorFileName; + Log.d(TAG, predictorFilePath); + + //if file exists, DeepBelief.setPredictor(predictorFile); + File file = new File(predictorFilePath); + if(file.exists()){ + Log.d(TAG, "File exists. Setting predictor"); + DeepBelief.setPredictor(predictorFilePath); + + } + } private void captureWithOrientation(final ReadableMap options, final Promise promise, int deviceOrientation) {