From fbf1a799f7dc3b5c4dcc6577b5937b12c10661b0 Mon Sep 17 00:00:00 2001 From: Matthew Date: Fri, 26 Apr 2024 13:20:53 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=8A=A0=E5=AF=86=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E7=9A=84=E5=88=9D=E5=A7=8B=E5=8C=96=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/cpp/MicroPhoto.cpp | 28 +++++++++++++++---- .../com/xypower/mpapp/MicroPhotoService.java | 8 ++++-- 2 files changed, 29 insertions(+), 7 deletions(-) diff --git a/app/src/main/cpp/MicroPhoto.cpp b/app/src/main/cpp/MicroPhoto.cpp index 42db41d2..0f6c3b6e 100644 --- a/app/src/main/cpp/MicroPhoto.cpp +++ b/app/src/main/cpp/MicroPhoto.cpp @@ -8,6 +8,7 @@ #include "PhoneDevice2.h" #include #include +#include #include @@ -272,7 +273,7 @@ Java_com_xypower_mpapp_MicroPhotoService_init( JNIEnv* env, jobject pThis, jstring appPath, jstring ip, jint port, jstring cmdid, jint protocol, - jint networkProtocol, jint encryptData, jlong netHandle, jint signalLevel, jint versionCode) { + jint networkProtocol, jint encryptData, jlong netHandle, jint signalLevel, jint versionCode, jstring simcard) { /* google_breakpad::MinidumpDescriptor descriptor("."); @@ -300,6 +301,7 @@ Java_com_xypower_mpapp_MicroPhotoService_init( const char *appPathStr = env->GetStringUTFChars(appPath, 0); const char *ipStr = env->GetStringUTFChars(ip, 0); const char *cmdidStr = env->GetStringUTFChars(cmdid, 0); + const char *simcardStr = env->GetStringUTFChars(simcard, 0); JavaVM* vm = NULL; jint ret = env->GetJavaVM(&vm); @@ -316,11 +318,15 @@ Java_com_xypower_mpapp_MicroPhotoService_init( pTerminal->InitServerInfo(appPathStr, cmdidStr, ipStr, port, udpOrTcp, encryptData); // pTerminal->SetPacketSize(1 * 1024); // 1K +#ifdef USING_NRSEC + pTerminal->InitEncryptionInfo(simcardStr, "/dev/spidev0.0", ""); +#endif bool res = pTerminal->Startup(device); env->ReleaseStringUTFChars(appPath, appPathStr); env->ReleaseStringUTFChars(ip, ipStr); env->ReleaseStringUTFChars(cmdid, cmdidStr); + env->ReleaseStringUTFChars(simcard, simcardStr); if (!res) { @@ -753,6 +759,11 @@ Java_com_xypower_mpapp_MicroPhotoService_importPublicKey( return JNI_FALSE; } + std::string version = nrsec.Version(); + + char buf[128] = { 0 }; + strcpy(buf, version.c_str()); + jbyte* byteCert = env->GetByteArrayElements(cert, 0); bool res = nrsec.SM2ImportPublicKey(index, (const uint8_t*)byteCert); @@ -772,10 +783,14 @@ Java_com_xypower_mpapp_MicroPhotoService_genKeys( #ifdef USING_NRSEC - GpioControl::setRS485Enable(true); + // GpioControl::setRS485Enable(true); - // const char *port = "/dev/mtkgpioctrl"; - const char *port = "/dev/spidevSE"; + GpioControl::setSpiMode(SPI_MODE_3); + GpioControl::setSpiBitsPerWord(8); + GpioControl::setSpiMaxSpeedHz(33000000); + + const char *port = "/dev/mtkgpioctrl"; + // const char *port = "/dev/spidevSE"; NrsecPort nrsec; if (!nrsec.Open(port)) @@ -783,7 +798,10 @@ Java_com_xypower_mpapp_MicroPhotoService_genKeys( return JNI_FALSE; } - // std::string version = nrsec.Version(); + std::string version = nrsec.Version(); + + char buf[128] = { 0 }; + strcpy(buf, version.c_str()); bool res = nrsec.SM2keypair(index) == 0; diff --git a/app/src/main/java/com/xypower/mpapp/MicroPhotoService.java b/app/src/main/java/com/xypower/mpapp/MicroPhotoService.java index efe9ea2d..a2befe3a 100644 --- a/app/src/main/java/com/xypower/mpapp/MicroPhotoService.java +++ b/app/src/main/java/com/xypower/mpapp/MicroPhotoService.java @@ -662,8 +662,12 @@ public class MicroPhotoService extends Service { MicroPhotoService service = MicroPhotoService.this; int versionCode = MicroPhotoContext.getVersionCode(MicroPhotoService.this.getApplicationContext()); + String simcard = SysApi.getImei(getApplicationContext()); + if (simcard == null) { + simcard = ""; + } - service.mNativeHandle = init(appPath, server, port, cmdid, protocol, networkProtocol, encryptData, 0, service.getSignalLevel(), versionCode); + service.mNativeHandle = init(appPath, server, port, cmdid, protocol, networkProtocol, encryptData, 0, service.getSignalLevel(), versionCode, simcard); if (service.mNativeHandle != 0) { isRunning = true; @@ -1078,7 +1082,7 @@ CellSignalStrengthGsm cellSignalStrengthGsm = cellInfoGsm.getCellSignalStrength( cellSignalStrengthGsm.getDbm(); */ - protected native long init(String appPath, String ip, int port, String cmdid, int protocol, int networkProtocl, int encryptData, long netHandle, int signalLevel, int versionCode); + protected native long init(String appPath, String ip, int port, String cmdid, int protocol, int networkProtocl, int encryptData, long netHandle, int signalLevel, int versionCode, String simcard); protected native long getHeartbeatDuration(long handler); protected native long[] getPhotoTimeData(long handler, long startTime); protected native long[] getPhotoTimeData2(long handler);