From 180b2efe0b47e5678937f0a7bcfb71b7633c0359 Mon Sep 17 00:00:00 2001 From: Matthew Date: Wed, 26 Mar 2025 20:07:57 +0800 Subject: [PATCH 1/7] =?UTF-8?q?938=E7=A6=81=E7=94=A8AI=E8=AF=86=E5=88=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 移除部分日志 --- app/src/main/cpp/PhoneDevice.cpp | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/app/src/main/cpp/PhoneDevice.cpp b/app/src/main/cpp/PhoneDevice.cpp index 23384de4..a0486d9d 100644 --- a/app/src/main/cpp/PhoneDevice.cpp +++ b/app/src/main/cpp/PhoneDevice.cpp @@ -627,6 +627,7 @@ void CPhoneDevice::SetRecognizationCfg(const IDevice::CFG_RECOGNIZATION* pRecogn } else { +#ifndef ISING_N938 XYLOG(XYLOG_SEVERITY_INFO, "AI Enabled and will Init NCNN"); ncnn_init(); mAIInitialized = true; @@ -639,6 +640,7 @@ void CPhoneDevice::SetRecognizationCfg(const IDevice::CFG_RECOGNIZATION* pRecogn { XYLOG(XYLOG_SEVERITY_ERROR, "Failed to Init NCNN"); } +#endif // #ifndef ISING_N938 } } else @@ -1251,11 +1253,11 @@ float CPhoneDevice::QueryBattaryVoltage(int timesForAvg, bool* isCharging) XYLOG(XYLOG_SEVERITY_DEBUG, "WorkStatus BusVoltage"); for (idx = 0; idx < timesForAvg; idx++) { - auto now = std::chrono::system_clock::now(); + // auto now = std::chrono::system_clock::now(); val = GpioControl::getChargingBusVoltage(); - auto now2 = std::chrono::system_clock::now(); - auto duration = std::chrono::duration_cast(now2 - now).count(); - XYLOG(XYLOG_SEVERITY_DEBUG, "WorkStatus BusVoltage val=%d, time=%lld", val, static_cast(duration)); + // auto now2 = std::chrono::system_clock::now(); + // auto duration = std::chrono::duration_cast(now2 - now).count(); + // XYLOG(XYLOG_SEVERITY_DEBUG, "WorkStatus BusVoltage val=%d, time=%lld", val, static_cast(duration)); if (val > 1000) { chargingBusVoltage = (float)val / 1000.0; @@ -1272,11 +1274,11 @@ float CPhoneDevice::QueryBattaryVoltage(int timesForAvg, bool* isCharging) int matched = 0; for (int idx = 0; idx < timesForAvg; idx++) { - auto now3 = std::chrono::system_clock::now(); + // auto now3 = std::chrono::system_clock::now(); val = GpioControl::getBatteryVoltage(); // // BatVol - auto now4 = std::chrono::system_clock::now(); - auto duration = std::chrono::duration_cast(now4 - now3).count(); - XYLOG(XYLOG_SEVERITY_DEBUG, "WorkStatus BatteryVoltage val=%d, time=%lld", val, static_cast(duration)); + // auto now4 = std::chrono::system_clock::now(); + // auto duration = std::chrono::duration_cast(now4 - now3).count(); + // XYLOG(XYLOG_SEVERITY_DEBUG, "WorkStatus BatteryVoltage val=%d, time=%lld", val, static_cast(duration)); if (val > 0) { totalVals += val > BATTARY_VOLTAGE_MAX ? BATTARY_VOLTAGE_MAX : val; From 7b0c32e7b9af0acdcbdf2281d38870698f7ce20c Mon Sep 17 00:00:00 2001 From: Matthew Date: Wed, 26 Mar 2025 20:44:30 +0800 Subject: [PATCH 2/7] Update version to 1.3.99 Based Core Version to 1.4.56 --- app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index d393b2be..bb7125a6 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -5,7 +5,7 @@ plugins { // 10,00,000 major-minor-build def AppMajorVersion = 1 def AppMinorVersion = 3 -def AppBuildNumber = 98 +def AppBuildNumber = 99 def AppVersionName = AppMajorVersion + "." + AppMinorVersion + "." + AppBuildNumber def AppVersionCode = AppMajorVersion * 100000 + AppMinorVersion * 1000 + AppBuildNumber From 09dae147259fd5b178afda19e3a4fa0f604ce177 Mon Sep 17 00:00:00 2001 From: Matthew Date: Wed, 26 Mar 2025 22:04:38 +0800 Subject: [PATCH 3/7] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=BC=96=E8=AF=91?= =?UTF-8?q?=E9=94=99=E8=AF=AF=E6=88=96=E8=80=85=E6=8A=A5=E8=AD=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/cpp/DngCreator.cpp | 8 ++++---- app/src/main/cpp/SensorsProtocol.cpp | 6 +++--- app/src/main/cpp/SensorsProtocol.h | 6 +++--- app/src/main/cpp/netcamera/HangYuCtrl.cpp | 2 +- app/src/main/cpp/netcamera/YuShiCtrl.cpp | 1 + 5 files changed, 12 insertions(+), 11 deletions(-) diff --git a/app/src/main/cpp/DngCreator.cpp b/app/src/main/cpp/DngCreator.cpp index 0c1727fb..12d31d5a 100644 --- a/app/src/main/cpp/DngCreator.cpp +++ b/app/src/main/cpp/DngCreator.cpp @@ -2509,8 +2509,8 @@ void DngCreator::writeInputStream(std::vector& outStream, uint64_t uOffset = static_cast(offset); ALOGV("%s: nativeWriteInputStream called with: width=%u, height=%u, " - "rowStride=%d, pixStride=%d, offset=%" PRId64, __FUNCTION__, uWidth, - uHeight, rowStride, pixStride, offset); + "rowStride=%d, pixStride=%d, offset=%lld", __FUNCTION__, uWidth, + uHeight, rowStride, pixStride, (int64_t)offset); ByteVectorOutput out(outStream); // std::vector& out = outStream; @@ -2578,8 +2578,8 @@ void DngCreator::writeInputBuffer(std::vector& outStream, uint64_t uOffset = static_cast(offset); ALOGV("%s: nativeWriteInputStream called with: width=%u, height=%u, " - "rowStride=%d, pixStride=%d, offset=%" PRId64, __FUNCTION__, uWidth, - uHeight, rowStride, pixStride, offset); + "rowStride=%d, pixStride=%d, offset=%lld", __FUNCTION__, uWidth, + uHeight, rowStride, pixStride, (int64_t)offset); ByteVectorOutput out(outStream); // std::vector& out = outStream; diff --git a/app/src/main/cpp/SensorsProtocol.cpp b/app/src/main/cpp/SensorsProtocol.cpp index b81dc5e6..ba7d5582 100644 --- a/app/src/main/cpp/SensorsProtocol.cpp +++ b/app/src/main/cpp/SensorsProtocol.cpp @@ -445,7 +445,7 @@ uint8_t getdevtype(int devno) return devparam[devno].ProtocolIdx; } // 初始化所有串口及所接传感器的配置 -void Gm_InitSerialComm(SENSOR_PARAM *sensorParam, char *filedir,const char *log) +void Gm_InitSerialComm(SENSOR_PARAM *sensorParam, const char *filedir,const char *log) { int i; char szbuf[128]; @@ -1124,7 +1124,7 @@ void SerialDataProcess(int devidx, u_char *buf, int len) } } -void DebugLog(int commid, char *szbuf, char flag) +void DebugLog(int commid, const char *szbuf, char flag) { if (NULL == szbuf) return; @@ -1152,7 +1152,7 @@ void DebugLog(int commid, char *szbuf, char flag) } } -int SaveLogTofile(int commid, char *szbuf) +int SaveLogTofile(int commid, const char *szbuf) { int status; time_t now; diff --git a/app/src/main/cpp/SensorsProtocol.h b/app/src/main/cpp/SensorsProtocol.h index 488d01c6..42e388fa 100644 --- a/app/src/main/cpp/SensorsProtocol.h +++ b/app/src/main/cpp/SensorsProtocol.h @@ -346,11 +346,11 @@ void Gm_OpenSerialPort(int devidx); // 关闭串口通讯 void Gm_CloseSerialPort(); -void DebugLog(int commid, char *szbuf, char flag); -int SaveLogTofile(int commid, char *szbuf); +void DebugLog(int commid, const char *szbuf, char flag); +int SaveLogTofile(int commid, const char *szbuf); // 功能说明:串口发送数据 返回实际发送的字节数 int GM_SerialComSend(const unsigned char * cSendBuf, size_t nSendLen, int commid); -void Gm_InitSerialComm(SENSOR_PARAM *sensorParam, char *filedir,const char *log); +void Gm_InitSerialComm(SENSOR_PARAM *sensorParam, const char *filedir,const char *log); // 启动串口通讯 void GM_StartSerialComm(); // 启动使用串口拍照 diff --git a/app/src/main/cpp/netcamera/HangYuCtrl.cpp b/app/src/main/cpp/netcamera/HangYuCtrl.cpp index 2d1fbde4..2bd71214 100644 --- a/app/src/main/cpp/netcamera/HangYuCtrl.cpp +++ b/app/src/main/cpp/netcamera/HangYuCtrl.cpp @@ -182,5 +182,5 @@ bool HangYuCtrl::TakePhoto(std::vector& img) bool HangYuCtrl::TakeVideo(uint32_t duration, std::string path) { - + return false; } \ No newline at end of file diff --git a/app/src/main/cpp/netcamera/YuShiCtrl.cpp b/app/src/main/cpp/netcamera/YuShiCtrl.cpp index 43fc0cf9..93bd2bdb 100644 --- a/app/src/main/cpp/netcamera/YuShiCtrl.cpp +++ b/app/src/main/cpp/netcamera/YuShiCtrl.cpp @@ -158,6 +158,7 @@ bool YuShiCtrl::TakePhoto(std::vector& img) bool YuShiCtrl::TakeVideo(uint32_t duration, std::string path) { + return false; } From 7212994a5ff637576847aec272eff3ef53e4444b Mon Sep 17 00:00:00 2001 From: Matthew Date: Thu, 27 Mar 2025 01:17:23 +0800 Subject: [PATCH 4/7] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=BC=96=E8=AF=91?= =?UTF-8?q?=E9=94=99=E8=AF=AF=E5=92=8C=E8=AD=A6=E5=91=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/cpp/MicroPhoto.cpp | 21 ++++++++++++++++++--- app/src/main/cpp/PhoneDevice.cpp | 2 +- app/src/main/cpp/netcamera/YuShiCtrl.cpp | 2 +- 3 files changed, 20 insertions(+), 5 deletions(-) diff --git a/app/src/main/cpp/MicroPhoto.cpp b/app/src/main/cpp/MicroPhoto.cpp index 1103db69..abcfd73f 100644 --- a/app/src/main/cpp/MicroPhoto.cpp +++ b/app/src/main/cpp/MicroPhoto.cpp @@ -171,10 +171,26 @@ void Runner::RequestCapture(CTerminal* pTerminal, unsigned int channel, unsigned pTerminal->RequestCapture(channel, preset, type, scheduleTime); } +#include +#include + +#if 0 +void sighandler(int sig) { + __android_log_print(ANDROID_LOG_ERROR, "NativeCrash", "Caught signal %d", sig); + + exit(1); +} +#endif + jint JNI_OnLoad(JavaVM* vm, void* reserved) { JNIEnv* env = NULL; jint result = -1; + + // 在 JNI_OnLoad 或其他初始化函数中注册 +#if 0 + signal(SIGSEGV, sighandler); +#endif #if defined(JNI_VERSION_1_6) if (result==-1 && vm->GetEnv((void**)&env, JNI_VERSION_1_6) == JNI_OK) @@ -983,9 +999,8 @@ Java_com_xypower_mpapp_MicroPhotoService_infoLog( return; } - const char *msgStr = env->GetStringUTFChars(msg, 0); - XYLOG(XYLOG_SEVERITY_INFO, msgStr); - env->ReleaseStringUTFChars(msg, msgStr); + std::string str = jstring2string(env, msg); + XYLOG(XYLOG_SEVERITY_INFO, str.c_str()); } extern "C" JNIEXPORT jboolean JNICALL diff --git a/app/src/main/cpp/PhoneDevice.cpp b/app/src/main/cpp/PhoneDevice.cpp index a0486d9d..a8775892 100644 --- a/app/src/main/cpp/PhoneDevice.cpp +++ b/app/src/main/cpp/PhoneDevice.cpp @@ -1846,7 +1846,7 @@ bool CPhoneDevice::TakeVideoWithNetCamera(IDevice::PHOTO_INFO& localPhotoInfo, c { TakePhotoCb(0, localPhotoInfo, "", 0); XYLOG(XYLOG_SEVERITY_ERROR, "Failed to TP on NET Camera CH=%u PR=%X PHOTOID=%u URL=%s", (uint32_t)localPhotoInfo.channel, (uint32_t)localPhotoInfo.preset, - localPhotoInfo.photoId, ip, streamingUrl.c_str()); + localPhotoInfo.photoId, ip.c_str(), streamingUrl.c_str()); } // Notify to take next photo // TakePhotoCb(1, localPhotoInfo, "", takingTime); diff --git a/app/src/main/cpp/netcamera/YuShiCtrl.cpp b/app/src/main/cpp/netcamera/YuShiCtrl.cpp index 93bd2bdb..1943300d 100644 --- a/app/src/main/cpp/netcamera/YuShiCtrl.cpp +++ b/app/src/main/cpp/netcamera/YuShiCtrl.cpp @@ -62,7 +62,7 @@ void YuShiCtrl::EnableOsd(bool enable, uint8_t channel) std::istringstream s(jsonString); if (!Json::parseFromStream(reader, s, &root, &errors)) { - XYLOG(XYLOG_SEVERITY_ERROR,"Failed to parse JSON:%s", errors); + XYLOG(XYLOG_SEVERITY_ERROR, "Failed to parse JSON:%s", errors.c_str()); return; } From 5f4af242bedda1db28796b231524feb01b2988da Mon Sep 17 00:00:00 2001 From: Matthew Date: Thu, 27 Mar 2025 01:19:01 +0800 Subject: [PATCH 5/7] Update version to 1.3.100 Based Core Version to 1.4.57 --- app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index bb7125a6..6913dc2a 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -5,7 +5,7 @@ plugins { // 10,00,000 major-minor-build def AppMajorVersion = 1 def AppMinorVersion = 3 -def AppBuildNumber = 99 +def AppBuildNumber = 100 def AppVersionName = AppMajorVersion + "." + AppMinorVersion + "." + AppBuildNumber def AppVersionCode = AppMajorVersion * 100000 + AppMinorVersion * 1000 + AppBuildNumber From c106ae42fda1ad9e558a9696ebfe355d0efd0d32 Mon Sep 17 00:00:00 2001 From: Matthew Date: Thu, 27 Mar 2025 01:31:19 +0800 Subject: [PATCH 6/7] =?UTF-8?q?=E7=94=A8=E6=9B=B4=E5=AE=89=E5=85=A8?= =?UTF-8?q?=E7=9A=84=E6=96=B9=E5=BC=8F=E8=AE=BF=E9=97=AEjstring?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/cpp/MicroPhoto.cpp | 47 ++++++++++++--------------------- 1 file changed, 17 insertions(+), 30 deletions(-) diff --git a/app/src/main/cpp/MicroPhoto.cpp b/app/src/main/cpp/MicroPhoto.cpp index abcfd73f..e624286c 100644 --- a/app/src/main/cpp/MicroPhoto.cpp +++ b/app/src/main/cpp/MicroPhoto.cpp @@ -186,7 +186,7 @@ jint JNI_OnLoad(JavaVM* vm, void* reserved) { JNIEnv* env = NULL; jint result = -1; - + // 在 JNI_OnLoad 或其他初始化函数中注册 #if 0 signal(SIGSEGV, sighandler); @@ -314,12 +314,10 @@ Java_com_xypower_mpapp_MainActivity_takePhoto( unsigned char id = (unsigned char)channel - 1; Camera2Reader *camera = new Camera2Reader(id); - const char *pathStr = env->GetStringUTFChars(path, 0); - const char *fileNameStr = env->GetStringUTFChars(fileName, 0); + std::string pathStr = jstring2string(env, path); + std::string fileNameStr = jstring2string(env, fileName); - camera->Open(pathStr, fileNameStr); - env->ReleaseStringUTFChars(fileName, fileNameStr); - env->ReleaseStringUTFChars(path, pathStr); + camera->Open(pathStr.c_str(), fileNameStr.c_str()); camera->start(); @@ -351,12 +349,12 @@ Java_com_xypower_mpapp_MicroPhotoService_init( env->SetObjectField(pThis, fieldId, modelName); bool udpOrTcp = (networkProtocol != 0); // 0: tcp - const char *appPathStr = appPath == NULL ? NULL : env->GetStringUTFChars(appPath, 0); - const char *ipStr = ip == NULL ? NULL : env->GetStringUTFChars(ip, 0); - const char *cmdidStr = cmdid == NULL ? NULL : env->GetStringUTFChars(cmdid, 0); - const char *simcardStr = simcard == NULL ? NULL : env->GetStringUTFChars(simcard, 0); - const char *tfCardPathStr = tfCardPath == NULL ? NULL : env->GetStringUTFChars(tfCardPath, 0); - const char *nativeLibraryDirStr = nativeLibraryDir == NULL ? NULL : env->GetStringUTFChars(nativeLibraryDir, 0); + std::string appPathStr = jstring2string(env, appPath); + std::string ipStr = jstring2string(env, ip); + std::string cmdidStr = jstring2string(env, cmdid); + std::string simcardStr = jstring2string(env, simcard); + std::string tfCardPathStr = jstring2string(env, tfCardPath); + std::string nativeLibraryDirStr = jstring2string(env, nativeLibraryDir); JavaVM* vm = NULL; jint ret = env->GetJavaVM(&vm); @@ -367,14 +365,14 @@ Java_com_xypower_mpapp_MicroPhotoService_init( CTerminal* pTerminal = NewTerminal(protocol); - CPhoneDevice* device = new CPhoneDevice(vm, pThis, MakeString(appPathStr), (uint64_t)netHandle, versionCode, MakeString(nativeLibraryDirStr)); + CPhoneDevice* device = new CPhoneDevice(vm, pThis, appPathStr, (uint64_t)netHandle, versionCode, nativeLibraryDirStr); device->SetListener(pTerminal); device->UpdateSignalLevel(signalLevel); device->SetBuildTime(buildTime / 1000); - device->UpdateSimcard(MakeString(simcardStr)); - device->UpdateTfCardPath(MakeString(tfCardPathStr)); + device->UpdateSimcard(simcardStr); + device->UpdateTfCardPath(tfCardPathStr); - pTerminal->InitServerInfo(MakeString(appPathStr), MakeString(cmdidStr), MakeString(ipStr), port, udpOrTcp, encryptData); + pTerminal->InitServerInfo(appPathStr, cmdidStr, ipStr, port, udpOrTcp, encryptData); // pTerminal->SetPacketSize(1 * 1024); // 1K #if defined(USING_NRSEC) && !defined(USING_NRSEC_VPN) pTerminal->InitEncryptionInfo(simcardStr, "/dev/spidev0.0", ""); @@ -386,12 +384,6 @@ Java_com_xypower_mpapp_MicroPhotoService_init( #ifdef _DEBUG ALOGD("Finish Startup"); #endif - if (appPathStr != NULL) env->ReleaseStringUTFChars(appPath, appPathStr); - if (ipStr != NULL) env->ReleaseStringUTFChars(ip, ipStr); - if (cmdidStr != NULL) env->ReleaseStringUTFChars(cmdid, cmdidStr); - if (simcardStr != NULL) env->ReleaseStringUTFChars(simcard, simcardStr); - if (tfCardPathStr != NULL) env->ReleaseStringUTFChars(tfCardPath, tfCardPathStr); - if (nativeLibraryDirStr != NULL) env->ReleaseStringUTFChars(nativeLibraryDir, nativeLibraryDirStr); if (!res) { @@ -492,11 +484,8 @@ Java_com_xypower_mpapp_MicroPhotoService_takePhoto( osds[2].text = cfg.osd.rightBottom; osds[3].text = cfg.osd.leftBottom; - const char* pathStr = env->GetStringUTFChars(path, 0); - - device->TakePhoto(photoInfo, osds, MakeString(pathStr)); - - env->ReleaseStringUTFChars(path, pathStr); + std::string pathStr = jstring2string(env, path); + device->TakePhoto(photoInfo, osds, pathStr); // device->TurnOffCameraPower(NULL); // if (photoInfo.usbCamera) @@ -730,9 +719,7 @@ Java_com_xypower_mpapp_MicroPhotoService_recoganizePicture( JNIEnv* env, jclass cls, jstring paramPath, jstring binPath, jstring blobName8, jstring blobName16, jstring blobName32, jstring picPath) { - const char* pParamPathStr = env->GetStringUTFChars(paramPath, 0); - std::string paramPathStr = MakeString(pParamPathStr); - env->ReleaseStringUTFChars(paramPath, pParamPathStr); + std::string paramPathStr = jstring2string(env, paramPath); const char* pBinPathStr = env->GetStringUTFChars(binPath, 0); std::string binPathStr = MakeString(pBinPathStr); From d7a9212d90b1dbb2810c8cd09e38face53831d09 Mon Sep 17 00:00:00 2001 From: Matthew Date: Thu, 27 Mar 2025 01:34:23 +0800 Subject: [PATCH 7/7] Update version to 1.3.101 Based Core Version to 1.4.57 --- app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index 6913dc2a..0ed6d9a0 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -5,7 +5,7 @@ plugins { // 10,00,000 major-minor-build def AppMajorVersion = 1 def AppMinorVersion = 3 -def AppBuildNumber = 100 +def AppBuildNumber = 101 def AppVersionName = AppMajorVersion + "." + AppMinorVersion + "." + AppBuildNumber def AppVersionCode = AppMajorVersion * 100000 + AppMinorVersion * 1000 + AppBuildNumber