From 6f2dc73bb6bd5ff48cb4a2e77e9e7b6a93828902 Mon Sep 17 00:00:00 2001
From: yy1717 <fctom1215@outlook.com>
Date: 星期二, 07 一月 2020 19:21:39 +0800
Subject: [PATCH] 修改进程间接口,统一为foo(int, string)
---
lib/src/main/cpp/native-lib.cpp | 49 +++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 47 insertions(+), 2 deletions(-)
diff --git a/lib/src/main/cpp/native-lib.cpp b/lib/src/main/cpp/native-lib.cpp
index db4f1e8..211125f 100644
--- a/lib/src/main/cpp/native-lib.cpp
+++ b/lib/src/main/cpp/native-lib.cpp
@@ -13,6 +13,7 @@
#include "rtk_module/rtk.h"
#include "mcu/mcu_if.h"
#include "driver_test.h"
+#include "master/comm_if.h"
static JavaVM *sg_jvm = NULL;
static jobject sg_obj = NULL;
@@ -407,6 +408,36 @@
}
}
+void SendMsgToMainProc(int cmd, const char *value)
+{
+ JNIEnv *env;
+ bool ready_in_java_env = false;
+
+ if (sg_jvm->GetEnv((void **)&env, JNI_VERSION_1_6) != JNI_OK) {
+ // Attach涓荤嚎绋�
+ if (sg_jvm->AttachCurrentThread(&env, NULL) != JNI_OK) {
+ LOGE("%s: AttachCurrentThread() failed", __FUNCTION__);
+ return;
+ }
+ } else {
+ ready_in_java_env = true;
+ }
+
+ jclass cls = env->GetObjectClass(sg_obj);
+ jmethodID fun = env->GetMethodID(cls, "SendMsgToMainProc", "(ILjava/lang/String;)V");
+
+ env->CallVoidMethod(sg_obj, fun, cmd, value != NULL ? env->NewStringUTF(value) : NULL);
+
+ env->DeleteLocalRef(cls);
+
+ if (!ready_in_java_env) {
+ //Detach涓荤嚎绋�
+ if (sg_jvm->DetachCurrentThread() != JNI_OK) {
+ LOGE("%s: DetachCurrentThread() failed", __FUNCTION__);
+ }
+ }
+}
+
void DisplayText(const char *string)
{
DEBUG("DisplayText: %s", string);
@@ -422,11 +453,25 @@
// 涓嶈兘鐩存帴璧嬪��(g_obj = ojb)
sg_obj = env->NewGlobalRef(thiz);
+ MA_NdkStart();
AppTimer_Init();
-
ConfigMCU();
DriverTestInit();
ConfigRTKModule();
InitPlatform(phone, RTK_PLATFORM_IP, RTK_PLATFORM_PORT);
-}
\ No newline at end of file
+}
+
+extern "C"
+JNIEXPORT void JNICALL
+Java_com_anyun_exam_lib_RemoteService_MainProcMsgEntry(JNIEnv *env, jobject thiz, jint cmd,
+ jstring value) {
+ // TODO: implement MainProcMsgEntry()
+ if (value != NULL) {
+ const char *str = env->GetStringUTFChars(value, 0);
+ MA_MainProcMsgEntry(cmd, str);
+ env->ReleaseStringUTFChars(value, str);
+ } else {
+ MA_MainProcMsgEntry(cmd, NULL);
+ }
+}
--
Gitblit v1.8.0