增加电源控制关闭计数判断条件

N938
XI.CHEN 6 months ago
parent 23877165ab
commit 907836d3d6

@ -209,7 +209,8 @@ size_t GpioControl::TurnOffImmediately(int cmd)
if (it->cmd == cmd) if (it->cmd == cmd)
{ {
ref = it->references; ref = it->references;
it->closeCmds++; if(it->closeCmds < it->references)
it->closeCmds++;
it->closeTime = ts; it->closeTime = ts;
break; break;
} }
@ -237,7 +238,8 @@ size_t GpioControl::TurnOff(int cmd, uint32_t delayedCloseTime/* = 0*/)
if (it->cmd == cmd) if (it->cmd == cmd)
{ {
ref = it->references; ref = it->references;
it->closeCmds++; if(it->closeCmds < it->references)
it->closeCmds++;
if (ts > it->closeTime) if (ts > it->closeTime)
{ {
it->closeTime = ts; it->closeTime = ts;
@ -270,7 +272,8 @@ size_t GpioControl::TurnOff(const std::vector<int>& cmds, uint32_t delayedCloseT
{ {
if (it->cmd == *itCmd) if (it->cmd == *itCmd)
{ {
it->closeCmds++; if(it->closeCmds < it->references)
it->closeCmds++;
if (ts > it->closeTime) if (ts > it->closeTime)
{ {
it->closeTime = ts; it->closeTime = ts;
@ -298,7 +301,8 @@ size_t GpioControl::TurnOff(const std::vector<std::pair<int, uint32_t> >& cmds)
{ {
if (it->cmd == itCmd->first) if (it->cmd == itCmd->first)
{ {
it->closeCmds++; if(it->closeCmds < it->references)
it->closeCmds++;
if (itCmd->second != 0) if (itCmd->second != 0)
{ {
ts2 = itCmd->second + ts; ts2 = itCmd->second + ts;
@ -354,6 +358,8 @@ void GpioControl::PowerControlThreadProc()
else else
{ {
it->references -= it->closeCmds; it->references -= it->closeCmds;
if(it->references < 0)
it->references = 0;
} }
it->closeCmds = 0; it->closeCmds = 0;
} }

@ -2013,8 +2013,6 @@ bool CPhoneDevice::OpenPTZSensors(uint32_t sec)
ReleaseWakelock(wid); ReleaseWakelock(wid);
return m_cameraStatus; return m_cameraStatus;
} }
bool CPhoneDevice::ClosePTZSensors(uint32_t delayedCloseTime) bool CPhoneDevice::ClosePTZSensors(uint32_t delayedCloseTime)
@ -2023,6 +2021,7 @@ bool CPhoneDevice::ClosePTZSensors(uint32_t delayedCloseTime)
if(m_sensorsStatus && !m_cameraStatus) if(m_sensorsStatus && !m_cameraStatus)
{ {
localDelayTime = GetMicroTimeStamp();
m_shouldStopWaiting.store(true); m_shouldStopWaiting.store(true);
} }
else else

Loading…
Cancel
Save