实现摄像机控制延时关闭

N938
XI.CHEN 6 months ago
parent af475d2795
commit 3ccd293f4a

@ -439,6 +439,7 @@ CPhoneDevice::CPhoneDevice(JavaVM* vm, jobject service, const std::string& appPa
m_lastTime = 0; m_lastTime = 0;
m_shouldStopWaiting = false; m_shouldStopWaiting = false;
m_collecting = false; m_collecting = false;
localDelayTime = GetMicroTimeStamp();
RegisterHandlerForSignal(SIGUSR2); RegisterHandlerForSignal(SIGUSR2);
@ -1835,6 +1836,16 @@ bool CPhoneDevice::TakePhoto(const IDevice::PHOTO_INFO& photoInfo, const vector<
bool CPhoneDevice::OpenPTZSensors(int sec) bool CPhoneDevice::OpenPTZSensors(int sec)
{ {
unsigned long wid = RequestWakelock(0);
unsigned long long time_now = GetMicroTimeStamp();
if(time_now < localDelayTime-1000)
{
std::lock_guard<std::mutex> lock(m_cameraLocker);
m_sensorsStatus = true;
m_cameraStatus = true;
OpenSensors(MAIN_POWER_OPEN);
OpenSensors(CAMERA_SENSOR_OPEN);
}
{ {
std::lock_guard<std::mutex> lock(m_cameraLocker); std::lock_guard<std::mutex> lock(m_cameraLocker);
// std::unique_lock<std::mutex> lock(m_cameraLocker); // std::unique_lock<std::mutex> lock(m_cameraLocker);
@ -1876,6 +1887,7 @@ bool CPhoneDevice::OpenPTZSensors(int sec)
m_cameraStatus = true; m_cameraStatus = true;
} }
} }
ReleaseWakelock(wid);
return m_cameraStatus; return m_cameraStatus;
@ -1884,6 +1896,8 @@ bool CPhoneDevice::OpenPTZSensors(int sec)
bool CPhoneDevice::ClosePTZSensors(uint32_t delayedCloseTime) bool CPhoneDevice::ClosePTZSensors(uint32_t delayedCloseTime)
{ {
localDelayTime = GetMicroTimeStamp() + delayedCloseTime*1000;
if(m_sensorsStatus && !m_cameraStatus) if(m_sensorsStatus && !m_cameraStatus)
{ {
m_shouldStopWaiting.store(true); m_shouldStopWaiting.store(true);

@ -405,6 +405,7 @@ protected:
mutable std::mutex m_collectDataLocker; mutable std::mutex m_collectDataLocker;
std::condition_variable m_CollectDatacv; std::condition_variable m_CollectDatacv;
std::atomic<bool> m_collecting; std::atomic<bool> m_collecting;
unsigned long long localDelayTime;
}; };

Loading…
Cancel
Save