实现摄像机控制延时关闭

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_shouldStopWaiting = false;
m_collecting = false;
localDelayTime = GetMicroTimeStamp();
RegisterHandlerForSignal(SIGUSR2);
@ -1835,6 +1836,16 @@ bool CPhoneDevice::TakePhoto(const IDevice::PHOTO_INFO& photoInfo, const vector<
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::unique_lock<std::mutex> lock(m_cameraLocker);
@ -1876,6 +1887,7 @@ bool CPhoneDevice::OpenPTZSensors(int sec)
m_cameraStatus = true;
}
}
ReleaseWakelock(wid);
return m_cameraStatus;
@ -1884,6 +1896,8 @@ bool CPhoneDevice::OpenPTZSensors(int sec)
bool CPhoneDevice::ClosePTZSensors(uint32_t delayedCloseTime)
{
localDelayTime = GetMicroTimeStamp() + delayedCloseTime*1000;
if(m_sensorsStatus && !m_cameraStatus)
{
m_shouldStopWaiting.store(true);

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

Loading…
Cancel
Save