From 3b03dce9e461b385420261237a14dba14e313f10 Mon Sep 17 00:00:00 2001 From: "XI.CHEN" <2311041011@qq.com> Date: Fri, 27 Dec 2024 16:13:05 +0800 Subject: [PATCH 01/25] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E7=BC=93=E5=86=B2=E5=8C=BA=E5=A4=AA=E5=B0=8F=E5=AF=BC=E8=87=B4?= =?UTF-8?q?=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/cpp/SensorsProtocol.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/cpp/SensorsProtocol.cpp b/app/src/main/cpp/SensorsProtocol.cpp index c57bff12..7c0c97b7 100644 --- a/app/src/main/cpp/SensorsProtocol.cpp +++ b/app/src/main/cpp/SensorsProtocol.cpp @@ -2969,7 +2969,7 @@ void ShxyProtocolDataProcess(int devno) int i, j, aipnt, datanum; SERIAL_DEV_DEF *pPortParam; SIO_PARAM_SERIAL_DEF *curserial; - char szbuf[64]; + char szbuf[128]; pPortParam = &srdt.ms_dev[devno]; curserial = &serialport[devparam[devno].commid]; From 2354403941c79337c1712950cf9f93765c9f2ce6 Mon Sep 17 00:00:00 2001 From: "XI.CHEN" <2311041011@qq.com> Date: Fri, 27 Dec 2024 17:20:18 +0800 Subject: [PATCH 02/25] Update version to 1.1.41 Based Core Version to 1.2.28 --- app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index 1eb51d1a..c736fd9a 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 = 1 -def AppBuildNumber = 40 +def AppBuildNumber = 41 def AppVersionName = AppMajorVersion + "." + AppMinorVersion + "." + AppBuildNumber def AppVersionCode = AppMajorVersion * 100000 + AppMinorVersion * 1000 + AppBuildNumber From 43fde7df763cd0b1850553a395e09cad482f9865 Mon Sep 17 00:00:00 2001 From: liuguijing <123456> Date: Mon, 30 Dec 2024 17:57:40 +0800 Subject: [PATCH 03/25] =?UTF-8?q?=E5=A4=9A=E6=B8=A0=E9=81=93=E6=89=93?= =?UTF-8?q?=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 44 +++++++++++++++++++++++++++++++++----------- 1 file changed, 33 insertions(+), 11 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 89d04459..76089345 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -39,17 +39,7 @@ android { buildConfigField "long","BUILD_TIMESTAMP", System.currentTimeMillis() + "L" testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner' - externalNativeBuild { - cmake { - // cppFlags '-std=c++17 -frtti -fexceptions -Wno-error=format-security' - cppFlags '-std=c++17 -fexceptions -Wno-error=format-security -fopenmp' - // cppFlags '-std=c++17 -Wno-error=format-security' - // arguments "-DANDROID_STL=c++_shared" - arguments "-DNCNN_DISABLE_EXCEPTION=OFF", "-DTERM_CORE_ROOT=" + coreroot, "-DOpenCV_DIR=" + opencvsdk + "/sdk/native/jni", "-DHDRPLUS_ROOT=" + hdrplusroot, "-DNCNN_ROOT=" + ncnnroot, "-DHALIDE_ROOT=" + halideroot - abiFilters 'arm64-v8a', 'armeabi-v7a' - // setAbiFilters(['arm64-v8a']) - } - } + } buildTypes { @@ -125,6 +115,38 @@ android { } } + + flavorDimensions "version" + productFlavors { + N938 { + dimension "version" + externalNativeBuild { + cmake { + // cppFlags '-std=c++17 -frtti -fexceptions -Wno-error=format-security' + cppFlags '-std=c++17 -fexceptions -Wno-error=format-security -fopenmp' + // cppFlags '-std=c++17 -Wno-error=format-security' + // arguments "-DANDROID_STL=c++_shared" + arguments "-DNCNN_DISABLE_EXCEPTION=OFF", "-DTERM_CORE_ROOT=" + coreroot, "-DOpenCV_DIR=" + opencvsdk + "/sdk/native/jni", "-DHDRPLUS_ROOT=" + hdrplusroot, "-DNCNN_ROOT=" + ncnnroot, "-DHALIDE_ROOT=" + halideroot + abiFilters 'arm64-v8a', 'armeabi-v7a' + // setAbiFilters(['arm64-v8a']) + } + } + } + weipai { + dimension "version" + externalNativeBuild { + cmake { + // cppFlags '-std=c++17 -frtti -fexceptions -Wno-error=format-security' + cppFlags '-std=c++17 -fexceptions -Wno-error=format-security -fopenmp' + // cppFlags '-std=c++17 -Wno-error=format-security' + // arguments "-DANDROID_STL=c++_shared" + arguments "-DNCNN_DISABLE_EXCEPTION=OFF", "-DTERM_CORE_ROOT=" + coreroot, "-DOpenCV_DIR=" + opencvsdk + "/sdk/native/jni", "-DHDRPLUS_ROOT=" + hdrplusroot, "-DNCNN_ROOT=" + ncnnroot, "-DHALIDE_ROOT=" + halideroot + abiFilters 'arm64-v8a', 'armeabi-v7a' + // setAbiFilters(['arm64-v8a']) + } + } + } + } } dependencies { From 8c1492052d3b1d07c7e43bbcebbb778c235ed677 Mon Sep 17 00:00:00 2001 From: Matthew Date: Tue, 31 Dec 2024 13:17:18 +0800 Subject: [PATCH 04/25] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=89=8B=E5=8A=A8?= =?UTF-8?q?=E6=8B=8D=E7=85=A7=E5=90=84=E6=95=B0=E6=8D=AE=E7=BB=84=E5=90=88?= =?UTF-8?q?=E7=9A=84=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/java/com/xypower/mpapp/MicroPhotoService.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/xypower/mpapp/MicroPhotoService.java b/app/src/main/java/com/xypower/mpapp/MicroPhotoService.java index 7f2ac1ef..f3cede8c 100644 --- a/app/src/main/java/com/xypower/mpapp/MicroPhotoService.java +++ b/app/src/main/java/com/xypower/mpapp/MicroPhotoService.java @@ -812,8 +812,8 @@ public class MicroPhotoService extends Service { long ts = System.currentTimeMillis() / 1000; // long val = (ts << 24); long val = 0; - val |= ((long)channel << 16); - val |= ((long)preset << 8); + val |= ((long)channel << 12); + val |= ((long)preset << 4); val |= photoOrVideo ? 0L : 1L; schedules.add(Long.valueOf(val)); From d5b46fb3432b73e60d23cf1d6cb33af55121eca3 Mon Sep 17 00:00:00 2001 From: "XI.CHEN" <2311041011@qq.com> Date: Tue, 31 Dec 2024 13:56:40 +0800 Subject: [PATCH 05/25] =?UTF-8?q?=E5=8F=B3=E4=B8=8AOSD=E6=8D=A2=E8=A1=8C?= =?UTF-8?q?=E4=BD=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/cpp/PhoneDevice.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/app/src/main/cpp/PhoneDevice.cpp b/app/src/main/cpp/PhoneDevice.cpp index 6af7fc80..028aa0fe 100644 --- a/app/src/main/cpp/PhoneDevice.cpp +++ b/app/src/main/cpp/PhoneDevice.cpp @@ -3421,6 +3421,8 @@ bool CPhoneDevice::PostProcessPhoto(const PHOTO_INFO& photoInfo, const vector (int)width - 1) { @@ -3467,6 +3469,16 @@ bool CPhoneDevice::PostProcessPhoto(const PHOTO_INFO& photoInfo, const vectoralignment == OSD_ALIGNMENT_TOP_RIGHT) { + std::size_t newlinePos = it->text.find('\n'); + if (newlinePos != std::string::npos) + { + std::string textBeforeNewline = it->text.substr(0, newlinePos); + std::string textAfterNewline = it->text.substr(newlinePos + 1); + if(textBeforeNewline.length()>=textAfterNewline.length()) + textSize = ft2->getTextSize(textBeforeNewline, fontSize, thickness, &baseline); + else + textSize = ft2->getTextSize(textAfterNewline, fontSize, thickness, &baseline); + } pt.x = width - textSize.width - it->x * ratio; pt.y= it->y * ratio; } From 2b6db343be5f9b3cb5188646b63b9bfd721823f1 Mon Sep 17 00:00:00 2001 From: "XI.CHEN" <2311041011@qq.com> Date: Tue, 31 Dec 2024 15:22:51 +0800 Subject: [PATCH 06/25] Update version to 1.1.42 Based Core Version to 1.2.29 --- app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index 0549a4c3..a1642527 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 = 1 -def AppBuildNumber = 41 +def AppBuildNumber = 42 def AppVersionName = AppMajorVersion + "." + AppMinorVersion + "." + AppBuildNumber def AppVersionCode = AppMajorVersion * 100000 + AppMinorVersion * 1000 + AppBuildNumber From fa7b1d2bfa37f03190feb46f125816864b0bdf5b Mon Sep 17 00:00:00 2001 From: Matthew Date: Tue, 31 Dec 2024 17:56:24 +0800 Subject: [PATCH 07/25] =?UTF-8?q?=E4=BD=BF=E7=94=A8IPv4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/xypower/mpapp/MicroPhotoService.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/xypower/mpapp/MicroPhotoService.java b/app/src/main/java/com/xypower/mpapp/MicroPhotoService.java index f3cede8c..cd8efe21 100644 --- a/app/src/main/java/com/xypower/mpapp/MicroPhotoService.java +++ b/app/src/main/java/com/xypower/mpapp/MicroPhotoService.java @@ -78,6 +78,7 @@ import java.io.InputStreamReader; import java.io.RandomAccessFile; import java.io.Reader; import java.lang.reflect.Method; +import java.net.Inet4Address; import java.net.InetAddress; import java.net.URI; import java.nio.channels.FileLock; @@ -1519,9 +1520,12 @@ public class MicroPhotoService extends Service { if (lp != null) { List addresses = lp.getLinkAddresses(); if (addresses != null && addresses.size() > 0) { - InetAddress inetAddress = addresses.get(0).getAddress(); - if (inetAddress != null) { - ip = inetAddress.getHostAddress(); + for (LinkAddress linkAddress : addresses) { + InetAddress inetAddress = linkAddress.getAddress(); + if (inetAddress != null && inetAddress instanceof Inet4Address) { + ip = inetAddress.getHostAddress(); + break; + } } } } From 65f9e617e83abb055885c796c72382ded5b9e26c Mon Sep 17 00:00:00 2001 From: Matthew Date: Tue, 31 Dec 2024 17:58:39 +0800 Subject: [PATCH 08/25] =?UTF-8?q?Revert=20"=E5=A4=9A=E6=B8=A0=E9=81=93?= =?UTF-8?q?=E6=89=93=E5=8C=85"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 43fde7df763cd0b1850553a395e09cad482f9865. --- app/build.gradle | 44 +++++++++++--------------------------------- 1 file changed, 11 insertions(+), 33 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index a1642527..96299feb 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -39,7 +39,17 @@ android { buildConfigField "long","BUILD_TIMESTAMP", System.currentTimeMillis() + "L" testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner' - + externalNativeBuild { + cmake { + // cppFlags '-std=c++17 -frtti -fexceptions -Wno-error=format-security' + cppFlags '-std=c++17 -fexceptions -Wno-error=format-security -fopenmp' + // cppFlags '-std=c++17 -Wno-error=format-security' + // arguments "-DANDROID_STL=c++_shared" + arguments "-DNCNN_DISABLE_EXCEPTION=OFF", "-DTERM_CORE_ROOT=" + coreroot, "-DOpenCV_DIR=" + opencvsdk + "/sdk/native/jni", "-DHDRPLUS_ROOT=" + hdrplusroot, "-DNCNN_ROOT=" + ncnnroot, "-DHALIDE_ROOT=" + halideroot + abiFilters 'arm64-v8a', 'armeabi-v7a' + // setAbiFilters(['arm64-v8a']) + } + } } buildTypes { @@ -117,38 +127,6 @@ android { } } - - flavorDimensions "version" - productFlavors { - N938 { - dimension "version" - externalNativeBuild { - cmake { - // cppFlags '-std=c++17 -frtti -fexceptions -Wno-error=format-security' - cppFlags '-std=c++17 -fexceptions -Wno-error=format-security -fopenmp' - // cppFlags '-std=c++17 -Wno-error=format-security' - // arguments "-DANDROID_STL=c++_shared" - arguments "-DNCNN_DISABLE_EXCEPTION=OFF", "-DTERM_CORE_ROOT=" + coreroot, "-DOpenCV_DIR=" + opencvsdk + "/sdk/native/jni", "-DHDRPLUS_ROOT=" + hdrplusroot, "-DNCNN_ROOT=" + ncnnroot, "-DHALIDE_ROOT=" + halideroot - abiFilters 'arm64-v8a', 'armeabi-v7a' - // setAbiFilters(['arm64-v8a']) - } - } - } - weipai { - dimension "version" - externalNativeBuild { - cmake { - // cppFlags '-std=c++17 -frtti -fexceptions -Wno-error=format-security' - cppFlags '-std=c++17 -fexceptions -Wno-error=format-security -fopenmp' - // cppFlags '-std=c++17 -Wno-error=format-security' - // arguments "-DANDROID_STL=c++_shared" - arguments "-DNCNN_DISABLE_EXCEPTION=OFF", "-DTERM_CORE_ROOT=" + coreroot, "-DOpenCV_DIR=" + opencvsdk + "/sdk/native/jni", "-DHDRPLUS_ROOT=" + hdrplusroot, "-DNCNN_ROOT=" + ncnnroot, "-DHALIDE_ROOT=" + halideroot - abiFilters 'arm64-v8a', 'armeabi-v7a' - // setAbiFilters(['arm64-v8a']) - } - } - } - } } dependencies { From 03628c4a70fb4c930086c8f81c59c5d378190bb6 Mon Sep 17 00:00:00 2001 From: Matthew Date: Tue, 31 Dec 2024 18:09:15 +0800 Subject: [PATCH 09/25] =?UTF-8?q?=E8=B0=83=E6=95=B4=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/cpp/CMakeLists.txt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/src/main/cpp/CMakeLists.txt b/app/src/main/cpp/CMakeLists.txt index 736422ad..393acd36 100644 --- a/app/src/main/cpp/CMakeLists.txt +++ b/app/src/main/cpp/CMakeLists.txt @@ -47,12 +47,11 @@ add_definitions(-DUSING_EXEC_HDRP=1) set(USING_EXEC_HDRP 1) -# add_definitions(-DUSING_PLZ) - if(ANDROID_ABI STREQUAL "armeabi-v7a") add_definitions(-DUSING_N938) elseif(ANDROID_ABI STREQUAL "arm64-v8a") # add_definitions(-DUSING_N938) + add_definitions(-DUSING_PLZ) endif() # include_directories(${OpenCV_DIR}/include) From 69a634edab31dd93d2dd89e09a17a4e028db963a Mon Sep 17 00:00:00 2001 From: Matthew Date: Tue, 31 Dec 2024 18:34:24 +0800 Subject: [PATCH 10/25] =?UTF-8?q?=E7=BD=91=E7=BB=9C=E6=91=84=E5=83=8F?= =?UTF-8?q?=E6=9C=BA=E7=9A=84=E9=80=9A=E9=81=93=E5=8F=B7=E9=9C=80=E8=A6=81?= =?UTF-8?q?=E7=8B=AC=E7=AB=8B=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 复用CameraId字段 --- app/src/main/cpp/PhoneDevice.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/cpp/PhoneDevice.cpp b/app/src/main/cpp/PhoneDevice.cpp index 028aa0fe..9bffede4 100644 --- a/app/src/main/cpp/PhoneDevice.cpp +++ b/app/src/main/cpp/PhoneDevice.cpp @@ -1526,7 +1526,7 @@ bool CPhoneDevice::TakePhotoWithNetCamera(IDevice::PHOTO_INFO& localPhotoInfo, c { // Hai Kang netPhotoInfo.authType = HTTP_AUTH_TYPE_DIGEST; - snprintf(netPhotoInfo.url, sizeof(netPhotoInfo.url), "/ISAPI/Streaming/channels/%u/picture", (uint32_t)localPhotoInfo.channel); + snprintf(netPhotoInfo.url, sizeof(netPhotoInfo.url), "/ISAPI/Streaming/channels/%u/picture", (uint32_t)localPhotoInfo.cameraId); } else if (localPhotoInfo.vendor == 2) { @@ -1538,7 +1538,7 @@ bool CPhoneDevice::TakePhotoWithNetCamera(IDevice::PHOTO_INFO& localPhotoInfo, c // Yu Shi netPhotoInfo.authType = HTTP_AUTH_TYPE_DIGEST; int streamSid = 0; // should put into config - snprintf(netPhotoInfo.url, sizeof(netPhotoInfo.url), "/LAPI/V1.0/Channels/%u/Media/Video/Streams/%d/Snapshot", (uint32_t)localPhotoInfo.channel, streamSid); + snprintf(netPhotoInfo.url, sizeof(netPhotoInfo.url), "/LAPI/V1.0/Channels/%u/Media/Video/Streams/%d/Snapshot", (uint32_t)localPhotoInfo.cameraId, streamSid); } else if (localPhotoInfo.vendor == 5) { @@ -1547,7 +1547,7 @@ bool CPhoneDevice::TakePhotoWithNetCamera(IDevice::PHOTO_INFO& localPhotoInfo, c // http://192.168.1.46/Snapshot/%u/RemoteImageCapture?ImageFormat=2&HorizontalPixel=1920&VerticalPixel=1080 // http://192.168.1.101/Snapshot/1/2/RemoteImageCaptureV2?ImageFormat=jpg // http://192.168.1.101/Snapshot/1/1/RemoteImageCaptureV2?ImageFormat=jpg - snprintf(netPhotoInfo.url, sizeof(netPhotoInfo.url), "/Snapshot/%u/1/RemoteImageCaptureV2?ImageFormat=jpg", (uint32_t)localPhotoInfo.channel); + snprintf(netPhotoInfo.url, sizeof(netPhotoInfo.url), "/Snapshot/%u/1/RemoteImageCaptureV2?ImageFormat=jpg", (uint32_t)localPhotoInfo.cameraId); } else { From a59144c97b5df24e4befea00d73163b275d8c647 Mon Sep 17 00:00:00 2001 From: Matthew Date: Tue, 31 Dec 2024 19:53:05 +0800 Subject: [PATCH 11/25] Update version to 1.1.43 Based Core Version to 1.2.29 --- app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index 96299feb..5119f6db 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 = 1 -def AppBuildNumber = 42 +def AppBuildNumber = 43 def AppVersionName = AppMajorVersion + "." + AppMinorVersion + "." + AppBuildNumber def AppVersionCode = AppMajorVersion * 100000 + AppMinorVersion * 1000 + AppBuildNumber From 0243d9b7d4318bb9e48cf47ecccbf67ab3aae4fb Mon Sep 17 00:00:00 2001 From: Matthew Date: Thu, 2 Jan 2025 12:47:51 +0800 Subject: [PATCH 12/25] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dgpio=20bug=E5=92=8C?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/cpp/GPIOControl.cpp | 8 ++-- app/src/main/cpp/GPIOControl.h | 74 ++++++++++++++++++-------------- app/src/main/cpp/PhoneDevice.cpp | 4 ++ 3 files changed, 49 insertions(+), 37 deletions(-) diff --git a/app/src/main/cpp/GPIOControl.cpp b/app/src/main/cpp/GPIOControl.cpp index 5e9f1893..78866f76 100644 --- a/app/src/main/cpp/GPIOControl.cpp +++ b/app/src/main/cpp/GPIOControl.cpp @@ -47,7 +47,7 @@ size_t GpioControl::turnOnImpl(const IOT_PARAM& param) if (it->cmd == param.cmd) { it->references++; - it->closeTime = 0; + // it->closeTime = 0; references = it->references; SetCamerastatus(it->cmd, true); break; @@ -360,7 +360,7 @@ void GpioControl::PowerControlThreadProc() if (it->references == 0 && it->closeCmds == 0 && it->closeTime == 0) { #ifdef _DEBUG - ALOGI("PWR TH cmd=%d ref=%u closeCmds=%u", it->cmd, (uint32_t)it->references, (uint32_t)it->closeCmds); + ALOGI("PWR THREAD cmd=%d ref=%u closeCmds=%u", it->cmd, (uint32_t)it->references, (uint32_t)it->closeCmds); #endif continue; } @@ -389,7 +389,7 @@ void GpioControl::PowerControlThreadProc() setInt(it->cmd, 0); it->closeTime = 0; #ifdef _DEBUG - ALOGI("PWR TH DO TurnOff cmd=%d", it->cmd); + ALOGI("PWR THREAD DO TurnOff cmd=%d", it->cmd); #endif SetCamerastatus(it->cmd, false); } @@ -404,7 +404,7 @@ void GpioControl::PowerControlThreadProc() } } #ifdef _DEBUG - ALOGI("PWR TH cmd=%d ref=%u closeCmds=%u", it->cmd, (uint32_t)it->references, (uint32_t)it->closeCmds); + ALOGI("PWR THREAD cmd=%d ref=%u closeCmds=%u", it->cmd, (uint32_t)it->references, (uint32_t)it->closeCmds); #endif } m_locker.unlock(); diff --git a/app/src/main/cpp/GPIOControl.h b/app/src/main/cpp/GPIOControl.h index 49c9d5e9..5a77c437 100644 --- a/app/src/main/cpp/GPIOControl.h +++ b/app/src/main/cpp/GPIOControl.h @@ -26,16 +26,16 @@ #define CMD_SET_NETWORK_STATE 106 #define CMD_SET_OTG_STATE 107 #define CMD_GET_OTG_STATE 108 -#define CMD_GET_CHARGING_VOL_STATE 110 -#define CMD_GET_CHARGING_SHUNT_VOLTAGE_STATE 111 +//#define CMD_GET_CHARGING_VOL_STATE 110 +//#define CMD_GET_CHARGING_SHUNT_VOLTAGE_STATE 111 #define CMD_GET_CHARGING_BUS_VOLTAGE_STATE 112 -#define CMD_GET_CHARGING_POWER_STATE 113 -#define CMD_GET_CHARGING_CURRENT_STATE 114 -#define CMD_GET_BAT_VOL_STATE 115 -#define CMD_GET_BAT_SHUNT_VOLTAGE_STATE 116 +//#define CMD_GET_CHARGING_POWER_STATE 113 +//#define CMD_GET_CHARGING_CURRENT_STATE 114 +//#define CMD_GET_BAT_VOL_STATE 115 +//#define CMD_GET_BAT_SHUNT_VOLTAGE_STATE 116 #define CMD_GET_BAT_BUS_VOLTAGE_STATE 117 -#define CMD_GET_BAT_POWER_STATE 118 -#define CMD_GET_BAT_CURRENT_STATE 119 +//#define CMD_GET_BAT_POWER_STATE 118 +//#define CMD_GET_BAT_CURRENT_STATE 119 #define CMD_SET_485_STATE 121 #define CMD_SET_SPI_MODE 123 #define CMD_SET_SPI_BITS_PER_WORD 124 @@ -56,18 +56,13 @@ #define CMD_GET_OTG_STATE 108 #define CMD_SET_SPI_POWER 129 + #define CMD_SET_12V_EN_STATE 0 // TO BE ADDED -#define CMD_SET_SYSTEM_RESET 0 // TO BE ADDED -#define CMD_GET_CHARGING_VOL_STATE 0 // TO BE ADDED -#define CMD_GET_CHARGING_SHUNT_VOLTAGE_STATE 0 // TO BE ADDED -#define CMD_GET_CHARGING_BUS_VOLTAGE_STATE 0 // TO BE ADDED -#define CMD_GET_CHARGING_POWER_STATE 0 // TO BE ADDED -#define CMD_GET_CHARGING_CURRENT_STATE 0 // TO BE ADDED -#define CMD_GET_BAT_VOL_STATE 0 // TO BE ADDED -#define CMD_GET_BAT_SHUNT_VOLTAGE_STATE 0 // TO BE ADDED -#define CMD_GET_BAT_BUS_VOLTAGE_STATE 0 // TO BE ADDED -#define CMD_GET_BAT_POWER_STATE 0 // TO BE ADDED -#define CMD_GET_BAT_CURRENT_STATE 0 // TO BE ADDED +#define CMD_SET_SYSTEM_RESET 202 +#define CMD_GET_LIGHT_ADC 101 +#define CMD_SET_LIGHT_ADC 102 +#define CMD_GET_CHARGING_BUS_VOLTAGE_STATE 112 +#define CMD_GET_BAT_BUS_VOLTAGE_STATE 117 #define CMD_SET_SPI_MODE 0 // TO BE ADDED #define CMD_SET_SPI_BITS_PER_WORD 0 // TO BE ADDED #define CMD_SET_SPI_MAXSPEEDHZ 0 // TO BE ADDED @@ -132,6 +127,9 @@ #define CMD_SET_485_EN_STATE 131 #define CMD_SET_OTG_STATE 107 +#define CMD_GET_CHARGING_BUS_VOLTAGE_STATE 112 +#define CMD_GET_BAT_BUS_VOLTAGE_STATE 117 + #endif // USING_N938 @@ -320,12 +318,13 @@ public: static int getChargingVoltage() { #ifndef USING_N938 - return getInt(CMD_GET_CHARGING_VOL_STATE); + return getInt(CMD_GET_CHARGING_BUS_VOLTAGE_STATE); #else return -1; #endif } +#if 0 static int getChargingShuntVoltage() { #ifndef USING_N938 @@ -334,6 +333,7 @@ public: return -1; #endif } +#endif static int getChargingBusVoltage() { #ifndef USING_N938 @@ -343,6 +343,7 @@ public: #endif } +#if 0 static int getChargingPower() { #ifndef USING_N938 return getInt(CMD_GET_CHARGING_POWER_STATE); @@ -358,15 +359,13 @@ public: return -1; #endif } +#endif static int getBatteryVoltage() { -#ifndef USING_N938 - return getInt(CMD_GET_BAT_VOL_STATE); -#else - return -1; -#endif + return getInt(CMD_GET_BAT_BUS_VOLTAGE_STATE); } +#if 0 static int getBatteryShuntVoltage() { #ifndef USING_N938 return getInt(CMD_GET_BAT_SHUNT_VOLTAGE_STATE); @@ -374,15 +373,13 @@ public: return -1; #endif } +#endif static int getBatteryBusVoltage() { -#ifndef USING_N938 return getInt(CMD_GET_BAT_BUS_VOLTAGE_STATE); -#else - return -1; -#endif } +#if 0 static int getBatteryPower() { #ifndef USING_N938 return getInt(CMD_GET_BAT_POWER_STATE); @@ -398,6 +395,7 @@ public: return -1; #endif } +#endif static void set485WriteMode() { #if 0 @@ -463,7 +461,7 @@ public: m_cmds.resize(4, cmd1); m_cmds[1] = cmd2; m_cmds[2] = cmd3; - m_cmds[3] = cmd3; + m_cmds[3] = cmd4; TurnOn(); } PowerControl(int cmd1, int cmd2, int cmd3, int cmd4, int cmd5, uint32_t closeDelayTime) : m_delayCloseTime(closeDelayTime) @@ -471,8 +469,18 @@ public: m_cmds.resize(5, cmd1); m_cmds[1] = cmd2; m_cmds[2] = cmd3; - m_cmds[3] = cmd3; - m_cmds[4] = cmd4; + m_cmds[3] = cmd4; + m_cmds[4] = cmd5; + TurnOn(); + } + PowerControl(int cmd1, int cmd2, int cmd3, int cmd4, int cmd5, int cmd6, uint32_t closeDelayTime) : m_delayCloseTime(closeDelayTime) + { + m_cmds.resize(5, cmd1); + m_cmds[1] = cmd2; + m_cmds[2] = cmd3; + m_cmds[3] = cmd4; + m_cmds[4] = cmd5; + m_cmds[4] = cmd6; TurnOn(); } @@ -534,7 +542,7 @@ public: PowerControl(CMD_SET_OTG_STATE, CMD_SET_NETWORK_POWER_EN, CMD_SET_PIC1_POWER, CMD_SET_485_EN_STATE, closeDelayTime) #else // USING_N938 #ifdef USING_PLZ - PowerControl(CMD_SET_OTG_STATE, CMD_SET_PTZ_PWR_ENABLE, CMD_SET_100M_ENABLE, CMD_SET_100M_SWITCH_PWR_ENABLE, CMD_SET_12V_EN_STATE, closeDelayTime) + PowerControl(CMD_SET_OTG_STATE, CMD_SET_PTZ_PWR_ENABLE, CMD_SET_100M_ENABLE, CMD_SET_100M_SWITCH_PWR_ENABLE, CMD_SET_485_ENABLE, CMD_SET_12V_EN_STATE, closeDelayTime) #else // USING_PLZ PowerControl(CMD_SET_OTG_STATE, CMD_SET_12V_EN_STATE, closeDelayTime) #endif // USING_PLZ diff --git a/app/src/main/cpp/PhoneDevice.cpp b/app/src/main/cpp/PhoneDevice.cpp index 9bffede4..f142b841 100644 --- a/app/src/main/cpp/PhoneDevice.cpp +++ b/app/src/main/cpp/PhoneDevice.cpp @@ -970,6 +970,7 @@ bool CPhoneDevice::QuerySystemProperties(std::map& pro int val = GpioControl::getLightAdc(); it->second = std::to_string(val); } +#if 0 else if (it->first == (PROP_CHARGING_CURRENT)) { it->second = std::to_string(GpioControl::getChargingCurrent()); @@ -978,6 +979,7 @@ bool CPhoneDevice::QuerySystemProperties(std::map& pro { it->second = std::to_string(GpioControl::getChargingPower()); } +#endif else if (it->first == (PROP_CHARGING_BUS_VOL) || it->first == (PROP_CHARGING_VOLTAGE)) { double val = -1; @@ -994,10 +996,12 @@ bool CPhoneDevice::QuerySystemProperties(std::map& pro break; } } +#if 0 else if (it->first == (PROP_BATTERY_POWER)) { it->second = std::to_string(GpioControl::getBatteryPower()); } +#endif else if (it->first == (PROP_BATTERY_BUS_VOL) || it->first == (PROP_BATTERY_VOLTAGE)) { int val = QueryBatteryVoltage(DEFAULT_BATTERY_QUERY_RETRIES); // // BatVol From 9231d205ca55aea2b9c44f4a21b79c45d350e201 Mon Sep 17 00:00:00 2001 From: Matthew Date: Thu, 2 Jan 2025 13:03:11 +0800 Subject: [PATCH 13/25] Fix bug --- app/src/main/cpp/GPIOControl.h | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/app/src/main/cpp/GPIOControl.h b/app/src/main/cpp/GPIOControl.h index 5a77c437..09752c38 100644 --- a/app/src/main/cpp/GPIOControl.h +++ b/app/src/main/cpp/GPIOControl.h @@ -475,12 +475,24 @@ public: } PowerControl(int cmd1, int cmd2, int cmd3, int cmd4, int cmd5, int cmd6, uint32_t closeDelayTime) : m_delayCloseTime(closeDelayTime) { - m_cmds.resize(5, cmd1); + m_cmds.resize(6, cmd1); + m_cmds[1] = cmd2; + m_cmds[2] = cmd3; + m_cmds[3] = cmd4; + m_cmds[4] = cmd5; + m_cmds[5] = cmd6; + TurnOn(); + } + + PowerControl(int cmd1, int cmd2, int cmd3, int cmd4, int cmd5, int cmd6, int cmd7, uint32_t closeDelayTime) : m_delayCloseTime(closeDelayTime) + { + m_cmds.resize(7, cmd1); m_cmds[1] = cmd2; m_cmds[2] = cmd3; m_cmds[3] = cmd4; m_cmds[4] = cmd5; - m_cmds[4] = cmd6; + m_cmds[5] = cmd6; + m_cmds[6] = cmd7; TurnOn(); } @@ -542,7 +554,7 @@ public: PowerControl(CMD_SET_OTG_STATE, CMD_SET_NETWORK_POWER_EN, CMD_SET_PIC1_POWER, CMD_SET_485_EN_STATE, closeDelayTime) #else // USING_N938 #ifdef USING_PLZ - PowerControl(CMD_SET_OTG_STATE, CMD_SET_PTZ_PWR_ENABLE, CMD_SET_100M_ENABLE, CMD_SET_100M_SWITCH_PWR_ENABLE, CMD_SET_485_ENABLE, CMD_SET_12V_EN_STATE, closeDelayTime) + PowerControl(CMD_SET_3V3_PWR_EN, CMD_SET_OTG_STATE, CMD_SET_PTZ_PWR_ENABLE, CMD_SET_100M_ENABLE, CMD_SET_100M_SWITCH_PWR_ENABLE, CMD_SET_485_ENABLE, CMD_SET_12V_EN_STATE, closeDelayTime) #else // USING_PLZ PowerControl(CMD_SET_OTG_STATE, CMD_SET_12V_EN_STATE, closeDelayTime) #endif // USING_PLZ From ac5905f9fc484f46d7ba4ec4814ff388ee3728b4 Mon Sep 17 00:00:00 2001 From: Matthew Date: Thu, 2 Jan 2025 14:30:45 +0800 Subject: [PATCH 14/25] Update version to 1.1.44 Based Core Version to 1.2.29 --- app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index 5119f6db..da311b96 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 = 1 -def AppBuildNumber = 43 +def AppBuildNumber = 44 def AppVersionName = AppMajorVersion + "." + AppMinorVersion + "." + AppBuildNumber def AppVersionCode = AppMajorVersion * 100000 + AppMinorVersion * 1000 + AppBuildNumber From dd35758e5981f75f0d8c812709982a646e685313 Mon Sep 17 00:00:00 2001 From: "XI.CHEN" <2311041011@qq.com> Date: Thu, 2 Jan 2025 17:16:41 +0800 Subject: [PATCH 15/25] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BA=91=E5=8F=B0?= =?UTF-8?q?=E6=8E=A7=E5=88=B6=E5=BC=80=E5=90=AF=E6=9D=A1=E4=BB=B6=E5=88=A4?= =?UTF-8?q?=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/cpp/GPIOControl.cpp | 1 + app/src/main/cpp/PhoneDevice.cpp | 2 ++ 2 files changed, 3 insertions(+) diff --git a/app/src/main/cpp/GPIOControl.cpp b/app/src/main/cpp/GPIOControl.cpp index 78866f76..1619c2d4 100644 --- a/app/src/main/cpp/GPIOControl.cpp +++ b/app/src/main/cpp/GPIOControl.cpp @@ -57,6 +57,7 @@ size_t GpioControl::turnOnImpl(const IOT_PARAM& param) { ITEM item = {param.cmd, references, 0, 0}; m_items.push_back(item); + SetCamerastatus(param.cmd, true); } } #ifdef _DEBUG diff --git a/app/src/main/cpp/PhoneDevice.cpp b/app/src/main/cpp/PhoneDevice.cpp index f142b841..fe6972ff 100644 --- a/app/src/main/cpp/PhoneDevice.cpp +++ b/app/src/main/cpp/PhoneDevice.cpp @@ -3762,10 +3762,12 @@ void CPhoneDevice::CameraCtrl(unsigned short waitTime, unsigned short delayTime, std::thread ctrlThread([pThis, waitTime, delayTime, cmdidx, channel, preset, serfileStr, baud, addr]() mutable { uint64_t wid = pThis->RequestWakelock(0); + XYLOG(XYLOG_SEVERITY_INFO,"CameraCtrl Command= %d, preset = %u", cmdidx, preset); pThis->OpenPTZSensors(waitTime); CameraPhotoCmd(time(NULL), channel, cmdidx, 0, preset, serfileStr.c_str(), baud, addr); pThis->ClosePTZSensors(delayTime); + XYLOG(XYLOG_SEVERITY_INFO,"CameraCtrl over"); pThis->ReleaseWakelock(wid); }); ctrlThread.detach(); From a3599ccfc1754d87fb9250a479899567b2d35833 Mon Sep 17 00:00:00 2001 From: "XI.CHEN" <2311041011@qq.com> Date: Thu, 2 Jan 2025 17:19:39 +0800 Subject: [PATCH 16/25] Update version to 1.1.45 Based Core Version to 1.2.30 --- app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index da311b96..c6014262 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 = 1 -def AppBuildNumber = 44 +def AppBuildNumber = 45 def AppVersionName = AppMajorVersion + "." + AppMinorVersion + "." + AppBuildNumber def AppVersionCode = AppMajorVersion * 100000 + AppMinorVersion * 1000 + AppBuildNumber From c7c91af66d477e714d241ccf3246de064beac974 Mon Sep 17 00:00:00 2001 From: Matthew Date: Fri, 3 Jan 2025 12:31:27 +0800 Subject: [PATCH 17/25] =?UTF-8?q?=E8=B0=83=E6=95=B4=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/java/com/xypower/mpapp/MainActivity.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/src/main/java/com/xypower/mpapp/MainActivity.java b/app/src/main/java/com/xypower/mpapp/MainActivity.java index e2ee7f05..5f140950 100644 --- a/app/src/main/java/com/xypower/mpapp/MainActivity.java +++ b/app/src/main/java/com/xypower/mpapp/MainActivity.java @@ -426,7 +426,6 @@ public class MainActivity extends AppCompatActivity { public void onClick(View view) { MicroPhotoService.setOtgState(true); - // SysApi.setOtgState(true); MicroPhotoService.setCam3V3Enable(true); Runnable runnable = new Runnable() { @@ -439,7 +438,7 @@ public class MainActivity extends AppCompatActivity { MicroPhotoService.setCam3V3Enable(false); MicroPhotoService.setOtgState(false); - binding.logs.append(cameraInfo + "\r\n"); + MicroPhotoService.infoLog(cameraInfo); Toast.makeText(view.getContext(), cameraInfo, Toast.LENGTH_LONG).show(); } }; From 7eac44e6ce4ce2e38987e15d7c985d4f9bc3bd91 Mon Sep 17 00:00:00 2001 From: Matthew Date: Fri, 3 Jan 2025 12:32:06 +0800 Subject: [PATCH 18/25] =?UTF-8?q?=E7=A7=BB=E9=99=A4=E5=BC=82=E5=B8=B8?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/cpp/hdrplus2/src/HDRPlus.cpp | 3 +++ app/src/main/cpp/hdrplus2/src/InputSource.cpp | 2 ++ 2 files changed, 5 insertions(+) diff --git a/app/src/main/cpp/hdrplus2/src/HDRPlus.cpp b/app/src/main/cpp/hdrplus2/src/HDRPlus.cpp index 3c979399..05096ebd 100644 --- a/app/src/main/cpp/hdrplus2/src/HDRPlus.cpp +++ b/app/src/main/cpp/hdrplus2/src/HDRPlus.cpp @@ -50,9 +50,12 @@ public: Halide::Runtime::Buffer imgs = burst.ToBuffer(); if (imgs.dimensions() != 3 || imgs.extent(2) < 2) { + return output_img; +#if 0 throw std::invalid_argument( "The input of HDRPlus must be a 3-dimensional buffer with at least " "two channels."); +#endif } const int cfa_pattern = static_cast(burst.GetCfaPattern()); diff --git a/app/src/main/cpp/hdrplus2/src/InputSource.cpp b/app/src/main/cpp/hdrplus2/src/InputSource.cpp index cf82118d..2910a485 100644 --- a/app/src/main/cpp/hdrplus2/src/InputSource.cpp +++ b/app/src/main/cpp/hdrplus2/src/InputSource.cpp @@ -136,7 +136,9 @@ CfaPattern RawImage::GetCfaPattern() const { } else if (cfa_pattern == std::string{1, 2, 0, 1}) { return CfaPattern::CFA_GBRG; } +#if 0 throw std::invalid_argument("Unsupported CFA pattern: " + cfa_pattern); +#endif return CfaPattern::CFA_UNKNOWN; } From 8b79de92081ced48035f47d64cb469717b63712c Mon Sep 17 00:00:00 2001 From: Matthew Date: Fri, 3 Jan 2025 12:32:24 +0800 Subject: [PATCH 19/25] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=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/netcamera/httpclient.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/cpp/netcamera/httpclient.cpp b/app/src/main/cpp/netcamera/httpclient.cpp index 2f16d3b3..874ef20d 100644 --- a/app/src/main/cpp/netcamera/httpclient.cpp +++ b/app/src/main/cpp/netcamera/httpclient.cpp @@ -90,7 +90,7 @@ int DoGetRequest(const char* url, int authType, const char* userName, const char char * log = new char[data.size() + 1]; log[data.size()] = 0; memcpy(log, &data[0], data.size()); - printf(log); + printf("%s", log); delete[] log; #endif } From f910187a480e11fe5351cf8595d927a20e1744b8 Mon Sep 17 00:00:00 2001 From: Matthew Date: Fri, 3 Jan 2025 17:57:12 +0800 Subject: [PATCH 20/25] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=AF=B9=E7=84=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/cpp/camera2/ndkcamera.cpp | 223 ++----------------------- app/src/main/cpp/camera2/ndkcamera.h | 2 + 2 files changed, 20 insertions(+), 205 deletions(-) diff --git a/app/src/main/cpp/camera2/ndkcamera.cpp b/app/src/main/cpp/camera2/ndkcamera.cpp index 66183675..d6e3d0eb 100644 --- a/app/src/main/cpp/camera2/ndkcamera.cpp +++ b/app/src/main/cpp/camera2/ndkcamera.cpp @@ -164,6 +164,7 @@ NdkCamera::NdkCamera(int32_t width, int32_t height, const NdkCamera::CAMERA_PARA mHeight = height; mCaptureTriggered = false; + mFocusTriggered = false; maxFrameDuration = 0; afSupported = false; @@ -732,201 +733,6 @@ int NdkCamera::open(const std::string& cameraId) { CaptureRequest *request = CreateRequest(true); mCaptureRequests.push_back(request); -#if 0 - for (int idx = 0; idx <= burstCaptures; idx++) - { - CaptureRequest *request = new CaptureRequest(); - std::memset(request, 0, sizeof(CaptureRequest)); - - bool isPreviewRequest = (idx == PREVIEW_REQUEST_IDX); - - request->pThis = this; - request->imageReader = isPreviewRequest ? mPreviewImageReader : mImageReader; - request->imageWindow = isPreviewRequest ? mPreviewImageWindow : mImageWindow; - request->imageTarget = isPreviewRequest ? mPreviewOutputTarget : mOutputTarget; - request->templateId = isPreviewRequest ? TEMPLATE_PREVIEW : (ACameraDevice_request_template)m_params.requestTemplate; - - // capture request - status = ACameraDevice_createCaptureRequest(camera_device, request->templateId, &request->request); - ACaptureRequest_setUserContext(request->request, request); - - // uint8_t ctrlMode = sceneModeSupported ? ACAMERA_CONTROL_MODE_USE_SCENE_MODE : ACAMERA_CONTROL_MODE_AUTO; - uint8_t ctrlMode = ACAMERA_CONTROL_MODE_AUTO; - status = ACaptureRequest_setEntry_u8(request->request, ACAMERA_CONTROL_MODE, 1, &ctrlMode); - - uint8_t captureIntent = isPreviewRequest ? ACAMERA_CONTROL_CAPTURE_INTENT_PREVIEW : GetCaptureIntent(ACameraDevice_request_template)m_params.requestTemplate); - status = ACaptureRequest_setEntry_u8(request->request, ACAMERA_CONTROL_CAPTURE_INTENT, 1, &captureIntent); - - uint8_t flashMode = ACAMERA_FLASH_MODE_OFF; - status = ACaptureRequest_setEntry_u8(request->request, ACAMERA_FLASH_MODE, 1, &flashMode); - - uint8_t nrMode = ACAMERA_NOISE_REDUCTION_MODE_HIGH_QUALITY; - status = ACaptureRequest_setEntry_u8(request->request, ACAMERA_NOISE_REDUCTION_MODE, 1, &nrMode); - - uint8_t edgeMode = ACAMERA_EDGE_MODE_FAST; - // status = ACaptureRequest_setEntry_u8(request->request, ACAMERA_EDGE_MODE, 1, &edgeMode); - - if (afSupported && m_params.autoFocus) - { - if (!m_params.zoom) - { - if (maxRegions[2] > 0) - { - int32_t centerX = activeArraySize[0] >> 1; - int32_t centerY = activeArraySize[1] >> 1; - - int32_t sizeX = activeArraySize[0] >> 4; - int32_t sizeY = activeArraySize[1] >> 4; - - int32_t afRegions[] = { centerX - sizeX, centerY - sizeY, centerX + sizeX, centerY + sizeY, 1000 }; - // status = ACaptureRequest_setEntry_i32(request->request, ACAMERA_CONTROL_AF_REGIONS, 5, afRegions); - if (status == ACAMERA_OK) - { -#ifdef _DEBUG - int aa = 0; -#endif - } - } - - // uint8_t afMode = ACAMERA_CONTROL_AF_MODE_CONTINUOUS_VIDEO; - uint8_t afMode = ACAMERA_CONTROL_AF_MODE_CONTINUOUS_PICTURE; - // uint8_t afMode = ACAMERA_CONTROL_AF_MODE_AUTO; - status = ACaptureRequest_setEntry_u8(request->request, ACAMERA_CONTROL_AF_MODE, 1, &afMode); - - // uint8_t trig = ACAMERA_CONTROL_AF_TRIGGER_CANCEL; - // status = ACaptureRequest_setEntry_u8(request->request, ACAMERA_CONTROL_AF_TRIGGER, 1, &trig); - - trig = ACAMERA_CONTROL_AF_TRIGGER_START; - // status = ACaptureRequest_setEntry_u8(request->request, ACAMERA_CONTROL_AF_TRIGGER, 1, &trig); - } - } - else - { - uint8_t trig = ACAMERA_CONTROL_AF_TRIGGER_START; - // status = ACaptureRequest_setEntry_u8(request->request, ACAMERA_CONTROL_AF_TRIGGER, 1, &trig); - } - - if (m_params.sceneMode != 0) - { - uint8_t sceneMode = m_params.sceneMode; - status = ACaptureRequest_setEntry_u8(request->request, ACAMERA_CONTROL_SCENE_MODE, 1, &sceneMode); - } - - if (m_params.autoExposure) - { - uint8_t aeMode = ACAMERA_CONTROL_AE_MODE_ON; - status = ACaptureRequest_setEntry_u8(request->request, ACAMERA_CONTROL_AE_MODE, 1, &aeMode); - // ACaptureRequest_setEntry_i32(capture_request, ACAMERA_SENSOR_SENSITIVITY, 1, &sensitivity_); - - if ((aeCompensationRange.min_ != 0 || aeCompensationRange.max_ != 0) && m_params.compensation != 0) - { - int32_t compensation = m_params.compensation; - if (compensation < aeCompensationRange.min_) - { - compensation = aeCompensationRange.min_; - } - if (compensation > aeCompensationRange.max_) - { - compensation = aeCompensationRange.max_; - } - // int32_t aeCompensation = aeCompensationRange.max_; - status = ACaptureRequest_setEntry_i32(request->request, ACAMERA_CONTROL_AE_EXPOSURE_COMPENSATION, 1, &compensation); - if (status != ACAMERA_OK) - { - int aa = 0; - } - } - - if (maxRegions[0] > 0) - { - int32_t aeRegions[] = { 0, 0, activeArraySize[0] - 1, activeArraySize[1] - 1, 1000 }; - // status = ACaptureRequest_setEntry_i32(capture_request, ACAMERA_CONTROL_AE_REGIONS, 5, aeRegions); - if (status == ACAMERA_OK) - { -#ifdef _DEBUG - int aa = 0; -#endif - } - } - - if (isPreviewRequest) - { - if (aeLockAvailable && (m_params.wait3ALocked & WAIT_AE_LOCKED)) - { - uint8_t aeLock = ACAMERA_CONTROL_AE_LOCK_ON; - status = ACaptureRequest_setEntry_u8(request->request, ACAMERA_CONTROL_AE_LOCK, 1, &aeLock); - - XYLOG(XYLOG_SEVERITY_DEBUG, "Try to Lock AE"); - mResult.aeLockSetted = 1; - } - else - { - uint8_t aeLock = ACAMERA_CONTROL_AE_LOCK_OFF; - status = ACaptureRequest_setEntry_u8(request->request, ACAMERA_CONTROL_AE_LOCK, 1, &aeLock); - XYLOG(XYLOG_SEVERITY_DEBUG, "AE_Lock Not Supported"); - } - - uint8_t aePrecatureTrigger = ACAMERA_CONTROL_AE_PRECAPTURE_TRIGGER_START; - status = ACaptureRequest_setEntry_u8(request->request, ACAMERA_CONTROL_AE_PRECAPTURE_TRIGGER, 1, &aePrecatureTrigger); - XYLOG(XYLOG_SEVERITY_DEBUG, "Trigger PRECAPTURE status=%d", (int)status); - m_precaptureStartTime = m_startTime; - - // ACaptureRequest_setEntry_u8(capture_request, ACAMERA_CONTROL_AE_LOCK, 1, &aeLockOff); - } - } - else - { - uint8_t aeMode = ACAMERA_CONTROL_AE_MODE_OFF; - status = ACaptureRequest_setEntry_u8(request->request, ACAMERA_CONTROL_AE_MODE, 1, &aeMode); - - if (m_params.sensitivity > 0) - { - int32_t sensitivity = m_params.sensitivity; - status = ACaptureRequest_setEntry_i32(request->request, ACAMERA_SENSOR_SENSITIVITY, 1, &sensitivity); - } - if (m_params.exposureTime > 0) - { - int64_t exposureTime = m_params.exposureTime; - status = ACaptureRequest_setEntry_i64(request->request, ACAMERA_SENSOR_EXPOSURE_TIME, 1, &exposureTime); - } - - int64_t frameDuration = maxFrameDuration / 2; - // status = ACaptureRequest_setEntry_i64(request->request, ACAMERA_SENSOR_FRAME_DURATION, 1, &frameDuration); - } - - status = ACaptureRequest_setEntry_u8(request->request, ACAMERA_CONTROL_AWB_MODE, 1, &awbMode); - if ((awbMode == ACAMERA_CONTROL_AWB_MODE_AUTO) && awbLockAvailable && (m_params.wait3ALocked & WAIT_AWB_LOCKED)) - { - uint8_t awbLock = ACAMERA_CONTROL_AWB_LOCK_ON; - status = ACaptureRequest_setEntry_u8(request->request, ACAMERA_CONTROL_AWB_LOCK, 1, &awbLock); - mResult.awbLockSetted = 1; - - XYLOG(XYLOG_SEVERITY_DEBUG, "Try to Lock AWB AWBS=%u", (unsigned int)mResult.awbState); - } - -#if 0 - uint8_t antiBandingMode = ACAMERA_CONTROL_AE_ANTIBANDING_MODE_60HZ; - status = ACaptureRequest_setEntry_u8(request->request, ACAMERA_CONTROL_AE_ANTIBANDING_MODE, 1, &antiBandingMode); - uint8_t flicker = ACAMERA_STATISTICS_SCENE_FLICKER_60HZ; - status = ACaptureRequest_setEntry_u8(request->request, ACAMERA_STATISTICS_SCENE_FLICKER, 1, &flicker); -#endif - - if (m_params.zoom) - { - float zoomRatio = m_params.zoomRatio; - // uint8_t afMode = ACAMERA_CONTROL_AF_MODE_AUTO; - status = ACaptureRequest_setEntry_float(request->request, ACAMERA_CONTROL_ZOOM_RATIO, 1, &zoomRatio); - if (status != ACAMERA_OK) - { - } - } - - status = ACaptureRequest_addTarget(request->request, request->imageTarget); - - status = ACaptureSessionOutput_create(request->imageWindow, &request->sessionOutput); - status = ACaptureSessionOutputContainer_add(capture_session_output_container, request->sessionOutput); - } -#endif // capture session ACameraCaptureSession_stateCallbacks camera_capture_session_state_callbacks; @@ -1023,14 +829,18 @@ NdkCamera::CaptureRequest* NdkCamera::CreateRequest(bool isPreviewRequest) // uint8_t afMode = ACAMERA_CONTROL_AF_MODE_AUTO; status = ACaptureRequest_setEntry_u8(request->request, ACAMERA_CONTROL_AF_MODE, 1, &afMode); +#if 0 + // For ACAMERA_CONTROL_AF_MODE_CONTINUOUS_PICTURE, we SHOULD NOT call ACAMERA_CONTROL_AF_TRIGGER_START + // Refer to: https://source.android.google.cn/docs/core/camera/camera3_3Amodes?hl=zh-cn if (isPreviewRequest) { - uint8_t trig = ACAMERA_CONTROL_AF_TRIGGER_CANCEL; + // uint8_t trig = ACAMERA_CONTROL_AF_TRIGGER_CANCEL; // status = ACaptureRequest_setEntry_u8(request->request, ACAMERA_CONTROL_AF_TRIGGER, 1, &trig); - trig = ACAMERA_CONTROL_AF_TRIGGER_START; - status = ACaptureRequest_setEntry_u8(request->request, ACAMERA_CONTROL_AF_TRIGGER, 1, &trig); + // trig = ACAMERA_CONTROL_AF_TRIGGER_START; + // status = ACaptureRequest_setEntry_u8(request->request, ACAMERA_CONTROL_AF_TRIGGER, 1, &trig); } +#endif } } else @@ -1163,6 +973,11 @@ NdkCamera::CaptureRequest* NdkCamera::CreateRequest(bool isPreviewRequest) return request; } +void NdkCamera::DestroyRequest(CaptureRequest* request) +{ + +} + void NdkCamera::close() { XYLOG(XYLOG_SEVERITY_DEBUG, "CameraStatus::try close %s", mCameraId.c_str()); @@ -1724,8 +1539,7 @@ void NdkCamera::onCaptureCompleted(ACameraCaptureSession* session, ACaptureReque status = ACameraMetadata_getConstEntry(result, ACAMERA_CONTROL_AF_STATE, &val); afState = (status == ACAMERA_OK) ? *(val.data.u8) : ACAMERA_CONTROL_AF_STATE_INACTIVE; - // XYLOG(XYLOG_SEVERITY_DEBUG, "Preview State AFS=%u AES=%u AWBS=%u Time=%u", - // (unsigned int)afState, (unsigned int)aeState, (unsigned int)awbState, (unsigned int)(ts - m_startTime)); + // XYLOG(XYLOG_SEVERITY_DEBUG, "Preview State AFS=%u AES=%u AWBS=%u Time=%u", (unsigned int)afState, (unsigned int)aeState, (unsigned int)awbState, (unsigned int)(ts - m_startTime)); // Check if timeout if (ts - m_startTime < m_params.focusTimeout) @@ -1749,8 +1563,8 @@ void NdkCamera::onCaptureCompleted(ACameraCaptureSession* session, ACaptureReque */ if (afState != ACAMERA_CONTROL_AF_STATE_PASSIVE_FOCUSED && - afState != ACAMERA_CONTROL_AF_STATE_FOCUSED_LOCKED && - afState != ACAMERA_CONTROL_AF_STATE_NOT_FOCUSED_LOCKED) + afState != ACAMERA_CONTROL_AF_STATE_FOCUSED_LOCKED/* && + afState != ACAMERA_CONTROL_AF_STATE_NOT_FOCUSED_LOCKED*/) // if (afState != ACAMERA_CONTROL_AF_STATE_INACTIVE) { //XYLOG(XYLOG_SEVERITY_DEBUG, "AF Enabled And Focused"); @@ -1767,7 +1581,7 @@ void NdkCamera::onCaptureCompleted(ACameraCaptureSession* session, ACaptureReque aePrecatureTrigger = ACAMERA_CONTROL_AE_PRECAPTURE_TRIGGER_START; status = ACaptureRequest_setEntry_u8(request, ACAMERA_CONTROL_AE_PRECAPTURE_TRIGGER, 1, &aePrecatureTrigger); - //XYLOG(XYLOG_SEVERITY_DEBUG, "Trigger PRECAPTURE status=%d AES=%u", (int)status, (unsigned int)mResult.aeState); + //XYLOG(XYLOG_SEVERITY_DEBUG, "Trigger PRECAPTURE status=%d AES=%u", (int)status, (unsigned int)aeState); AASSERT(status == ACAMERA_OK, "Failed to call PRECAPTURE_TRIGGER, status=%d", status); readyForCapture = false; @@ -1894,11 +1708,10 @@ void NdkCamera::onCaptureCompleted(ACameraCaptureSession* session, ACaptureReque status = ACameraMetadata_getConstEntry(result, ACAMERA_SENSOR_SENSITIVITY, &val); int sensitivity = (status == ACAMERA_OK) ? *(val.data.i32) : 0; - uint8_t aeModeOff = ACAMERA_CONTROL_AE_MODE_OFF; - XYLOG(XYLOG_SEVERITY_INFO, "HDR: Base Exp=%lld ISO=%d", exTime / 1000, sensitivity); if (exTime != -1 && sensitivity > 0) { + uint8_t aeModeOff = ACAMERA_CONTROL_AE_MODE_OFF; for (int idx = 0; idx < burstCaptures; idx++) { ACaptureRequest_setEntry_u8(requests[idx], ACAMERA_CONTROL_AE_MODE, 1, &aeModeOff); diff --git a/app/src/main/cpp/camera2/ndkcamera.h b/app/src/main/cpp/camera2/ndkcamera.h index da2caa3a..d8e8bdf0 100644 --- a/app/src/main/cpp/camera2/ndkcamera.h +++ b/app/src/main/cpp/camera2/ndkcamera.h @@ -161,6 +161,7 @@ public: void CreateSession(ANativeWindow* previewWindow); CaptureRequest* CreateRequest(bool isPreviewRequest); + void DestroyRequest(CaptureRequest* request); void DestroySession(); @@ -234,6 +235,7 @@ protected: int32_t maxRegions[3]; bool mCaptureTriggered; + bool mFocusTriggered; CAPTURE_RESULT mResult; unsigned long long m_startTime; From 50074054698bc0ff08f53df0a846718a15433e73 Mon Sep 17 00:00:00 2001 From: Matthew Date: Fri, 3 Jan 2025 18:17:50 +0800 Subject: [PATCH 21/25] Update version to 1.1.46 Based Core Version to 1.2.31 --- app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index c6014262..ff158f12 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 = 1 -def AppBuildNumber = 45 +def AppBuildNumber = 46 def AppVersionName = AppMajorVersion + "." + AppMinorVersion + "." + AppBuildNumber def AppVersionCode = AppMajorVersion * 100000 + AppMinorVersion * 1000 + AppBuildNumber From 0d9b6a17368b8b65251e776a719d21feab4a3762 Mon Sep 17 00:00:00 2001 From: Matthew Date: Fri, 3 Jan 2025 19:02:00 +0800 Subject: [PATCH 22/25] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/cpp/camera2/ndkcamera.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/cpp/camera2/ndkcamera.cpp b/app/src/main/cpp/camera2/ndkcamera.cpp index d6e3d0eb..c7ac545e 100644 --- a/app/src/main/cpp/camera2/ndkcamera.cpp +++ b/app/src/main/cpp/camera2/ndkcamera.cpp @@ -81,7 +81,7 @@ static void onSessionReady(void* context, ACameraCaptureSession *session) static void onSessionClosed(void* context, ACameraCaptureSession *session) { - XYLOG(XYLOG_SEVERITY_INFO, "onSessionClosed %p", session); + XYLOG(XYLOG_SEVERITY_DEBUG, "onSessionClosed %p", session); } void onCaptureFailed(void* context, ACameraCaptureSession* session, ACaptureRequest* request, ACameraCaptureFailure* failure) From e4b9245bedf9c68d3c675f117b77ba0f68b2a763 Mon Sep 17 00:00:00 2001 From: "XI.CHEN" <2311041011@qq.com> Date: Fri, 3 Jan 2025 19:08:45 +0800 Subject: [PATCH 23/25] =?UTF-8?q?=E7=BD=91=E7=BB=9C=E8=BF=9E=E7=BB=AD?= =?UTF-8?q?=E6=8B=8D=E7=85=A7=E4=B8=8D=E9=87=8D=E5=A4=8D=E8=87=AA=E6=A3=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/cpp/GPIOControl.cpp | 32 +++++++++++++++++++++++++++++++- app/src/main/cpp/GPIOControl.h | 2 ++ app/src/main/cpp/PhoneDevice.cpp | 7 +++++-- 3 files changed, 38 insertions(+), 3 deletions(-) diff --git a/app/src/main/cpp/GPIOControl.cpp b/app/src/main/cpp/GPIOControl.cpp index 1619c2d4..fd1227e1 100644 --- a/app/src/main/cpp/GPIOControl.cpp +++ b/app/src/main/cpp/GPIOControl.cpp @@ -35,6 +35,7 @@ size_t GpioControl::turnOnImpl(const IOT_PARAM& param) std::vector::iterator it; int res = 0; int fd = -1; + time_t now = time(NULL); fd = open(GPIO_NODE_MP, O_RDONLY); if( fd > 0 ) @@ -49,13 +50,16 @@ size_t GpioControl::turnOnImpl(const IOT_PARAM& param) it->references++; // it->closeTime = 0; references = it->references; + if(it->openTime == 0) + it->openTime = now; SetCamerastatus(it->cmd, true); break; } } if (it == m_items.end()) { - ITEM item = {param.cmd, references, 0, 0}; + ITEM item = {param.cmd, references, 0, 0, 0}; + item.openTime = now; m_items.push_back(item); SetCamerastatus(param.cmd, true); } @@ -328,7 +332,10 @@ bool GpioControl::SetCamerastatus(int cmd, bool status) #endif #ifdef USING_PLZ if(cmd == CMD_SET_PTZ_PWR_ENABLE) + { m_cameraPowerStatus = status; + } + #endif return true; } @@ -337,6 +344,28 @@ bool GpioControl::GetCamerastatus() return m_cameraPowerStatus; } +bool GpioControl::GetSelftestStatus(time_t wait_time) +{ + int cmd; +#ifdef USING_N938 + cmd = CMD_SET_PIC1_POWER; +#endif +#ifdef USING_PLZ + cmd = CMD_SET_PTZ_PWR_ENABLE; +#endif + time_t now = time(NULL); + std::vector::iterator it; + for (it = m_items.begin(); it != m_items.end(); ++it) + { + if (it->cmd == cmd && (now - it->openTime >= wait_time)) + { + return true; + } + } + return false; + +} + void GpioControl::PowerControlThreadProc() { time_t ts = 0; @@ -389,6 +418,7 @@ void GpioControl::PowerControlThreadProc() // close it directly setInt(it->cmd, 0); it->closeTime = 0; + it->openTime = 0; #ifdef _DEBUG ALOGI("PWR THREAD DO TurnOff cmd=%d", it->cmd); #endif diff --git a/app/src/main/cpp/GPIOControl.h b/app/src/main/cpp/GPIOControl.h index 09752c38..3f8716a6 100644 --- a/app/src/main/cpp/GPIOControl.h +++ b/app/src/main/cpp/GPIOControl.h @@ -154,6 +154,7 @@ public: size_t references; size_t closeCmds; time_t closeTime; + time_t openTime; }; private: @@ -179,6 +180,7 @@ public: static size_t TurnOffImmediately(int cmd); static bool SetCamerastatus(int cmd, bool status); static bool GetCamerastatus(); + static bool GetSelftestStatus(time_t wait_time); static void PowerControlThreadProc(); diff --git a/app/src/main/cpp/PhoneDevice.cpp b/app/src/main/cpp/PhoneDevice.cpp index fe6972ff..6855ba5b 100644 --- a/app/src/main/cpp/PhoneDevice.cpp +++ b/app/src/main/cpp/PhoneDevice.cpp @@ -1491,8 +1491,11 @@ bool CPhoneDevice::TakePhotoWithNetCamera(IDevice::PHOTO_INFO& localPhotoInfo, c // AutoEnv autoEnv(pThis->m_vm); time_t ts = time(NULL); uint32_t waitTime = localPhotoInfo.selfTestingTime; - waitTime = (waitTime!= 0) ? (waitTime * 1024) : 10240; - std::this_thread::sleep_for(std::chrono::milliseconds(waitTime)); + if(!GpioControl::GetSelftestStatus(waitTime)) + { + waitTime = (waitTime != 0) ? (waitTime * 1024) : 10240; + std::this_thread::sleep_for(std::chrono::milliseconds(waitTime)); + } SetStaticIp(); std::this_thread::sleep_for(std::chrono::milliseconds(256)); From 25e465df3bdf0808d9f7a6d8ce94121bb7c3ad41 Mon Sep 17 00:00:00 2001 From: Matthew Date: Fri, 3 Jan 2025 19:33:31 +0800 Subject: [PATCH 24/25] Update version to 1.1.47 Based Core Version to 1.2.31 --- app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index ff158f12..f2a1bf7f 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 = 1 -def AppBuildNumber = 46 +def AppBuildNumber = 47 def AppVersionName = AppMajorVersion + "." + AppMinorVersion + "." + AppBuildNumber def AppVersionCode = AppMajorVersion * 100000 + AppMinorVersion * 1000 + AppBuildNumber From 6e337a986f1e23cf684eb6d3369b0a9d45aababf Mon Sep 17 00:00:00 2001 From: "XI.CHEN" <2311041011@qq.com> Date: Tue, 7 Jan 2025 11:53:29 +0800 Subject: [PATCH 25/25] =?UTF-8?q?=E5=BF=83=E8=B7=B3=E5=91=A8=E6=9C=9F?= =?UTF-8?q?=E5=B0=8F=E4=BA=8E10min=E6=97=B6=EF=BC=8C=E8=BF=90=E7=BB=B4580?= =?UTF-8?q?=E7=A7=92=E6=9C=AA=E6=94=B6=E5=88=B0=E5=BF=83=E8=B7=B3=E6=89=8D?= =?UTF-8?q?=E9=87=8D=E5=90=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/xypower/mpmaster/MpMasterService.java | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/mpmaster/src/main/java/com/xypower/mpmaster/MpMasterService.java b/mpmaster/src/main/java/com/xypower/mpmaster/MpMasterService.java index 0b9219f2..2ba8944a 100644 --- a/mpmaster/src/main/java/com/xypower/mpmaster/MpMasterService.java +++ b/mpmaster/src/main/java/com/xypower/mpmaster/MpMasterService.java @@ -390,9 +390,6 @@ public class MpMasterService extends Service { public boolean shouldSyncTime() { return mSyncTime; } public void startMpApp() { - if (true) { - return; - } try { final Context context = getApplicationContext(); long ts = System.currentTimeMillis(); @@ -422,7 +419,7 @@ public class MpMasterService extends Service { long tempduration = mMpHeartbeatDuration; if(mMpHeartbeatDuration < 600000) - tempduration = 300000; + tempduration = 290000; if (mPreviousMpHbTime <= ts && ts - mPreviousMpHbTime > tempduration * 2) { // MpApp is not running if (ts - mTimeToStartMpApp >= 1800000) {