From 907836d3d6cb7f8f85287b18213a5a4976b37fc4 Mon Sep 17 00:00:00 2001 From: "XI.CHEN" <2311041011@qq.com> Date: Mon, 23 Dec 2024 15:13:18 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=94=B5=E6=BA=90=E6=8E=A7?= =?UTF-8?q?=E5=88=B6=E5=85=B3=E9=97=AD=E8=AE=A1=E6=95=B0=E5=88=A4=E6=96=AD?= =?UTF-8?q?=E6=9D=A1=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/cpp/GPIOControl.cpp | 14 ++++++++++---- app/src/main/cpp/PhoneDevice.cpp | 3 +-- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/app/src/main/cpp/GPIOControl.cpp b/app/src/main/cpp/GPIOControl.cpp index 83492d05..0316084a 100644 --- a/app/src/main/cpp/GPIOControl.cpp +++ b/app/src/main/cpp/GPIOControl.cpp @@ -209,7 +209,8 @@ size_t GpioControl::TurnOffImmediately(int cmd) if (it->cmd == cmd) { ref = it->references; - it->closeCmds++; + if(it->closeCmds < it->references) + it->closeCmds++; it->closeTime = ts; break; } @@ -237,7 +238,8 @@ size_t GpioControl::TurnOff(int cmd, uint32_t delayedCloseTime/* = 0*/) if (it->cmd == cmd) { ref = it->references; - it->closeCmds++; + if(it->closeCmds < it->references) + it->closeCmds++; if (ts > it->closeTime) { it->closeTime = ts; @@ -270,7 +272,8 @@ size_t GpioControl::TurnOff(const std::vector& cmds, uint32_t delayedCloseT { if (it->cmd == *itCmd) { - it->closeCmds++; + if(it->closeCmds < it->references) + it->closeCmds++; if (ts > it->closeTime) { it->closeTime = ts; @@ -298,7 +301,8 @@ size_t GpioControl::TurnOff(const std::vector >& cmds) { if (it->cmd == itCmd->first) { - it->closeCmds++; + if(it->closeCmds < it->references) + it->closeCmds++; if (itCmd->second != 0) { ts2 = itCmd->second + ts; @@ -354,6 +358,8 @@ void GpioControl::PowerControlThreadProc() else { it->references -= it->closeCmds; + if(it->references < 0) + it->references = 0; } it->closeCmds = 0; } diff --git a/app/src/main/cpp/PhoneDevice.cpp b/app/src/main/cpp/PhoneDevice.cpp index 88a333ed..21b0ae43 100644 --- a/app/src/main/cpp/PhoneDevice.cpp +++ b/app/src/main/cpp/PhoneDevice.cpp @@ -2013,8 +2013,6 @@ bool CPhoneDevice::OpenPTZSensors(uint32_t sec) ReleaseWakelock(wid); return m_cameraStatus; - - } bool CPhoneDevice::ClosePTZSensors(uint32_t delayedCloseTime) @@ -2023,6 +2021,7 @@ bool CPhoneDevice::ClosePTZSensors(uint32_t delayedCloseTime) if(m_sensorsStatus && !m_cameraStatus) { + localDelayTime = GetMicroTimeStamp(); m_shouldStopWaiting.store(true); } else