云台控制增加唤醒锁,调整判断条件

N938
XI.CHEN 6 months ago
parent 7a2acd5f97
commit a4deb30423

@ -1924,9 +1924,7 @@ bool CPhoneDevice::OpenPTZSensors(uint32_t sec)
m_cameraStatus = true; m_cameraStatus = true;
OpenSensors(MAIN_POWER_OPEN); OpenSensors(MAIN_POWER_OPEN);
OpenSensors(CAMERA_SENSOR_OPEN); OpenSensors(CAMERA_SENSOR_OPEN);
} }else if (!m_cameraStatus && !m_sensorsStatus)
if (!m_cameraStatus && !m_sensorsStatus)
{ {
m_sensorsStatus = true; m_sensorsStatus = true;
OpenSensors(MAIN_POWER_OPEN); OpenSensors(MAIN_POWER_OPEN);
@ -1996,12 +1994,10 @@ bool CPhoneDevice::ClosePTZSensors(uint32_t delayedCloseTime)
bool CPhoneDevice::GetPTZSensorsStatus() bool CPhoneDevice::GetPTZSensorsStatus()
{ {
std::lock_guard<std::mutex> lock(m_cameraLocker);
return m_sensorsStatus; return m_sensorsStatus;
} }
bool CPhoneDevice::GetCameraStatus() bool CPhoneDevice::GetCameraStatus()
{ {
std::lock_guard<std::mutex> lock(m_cameraLocker);
return m_cameraStatus; return m_cameraStatus;
} }
@ -3692,11 +3688,12 @@ void CPhoneDevice::CameraCtrl(unsigned char waitTime, unsigned char delayTime, u
string serfileStr(serfile); string serfileStr(serfile);
std::thread ctrlThread([pThis, waitTime, delayTime, cmdidx, channel, preset, serfileStr, baud, std::thread ctrlThread([pThis, waitTime, delayTime, cmdidx, channel, preset, serfileStr, baud,
addr]() mutable { addr]() mutable {
uint64_t wid = pThis->RequestWakelock(0);
pThis->OpenPTZSensors(waitTime); pThis->OpenPTZSensors(waitTime);
CameraPhotoCmd(time(NULL), channel, cmdidx, 0, preset, serfileStr.c_str(), baud, CameraPhotoCmd(time(NULL), channel, cmdidx, 0, preset, serfileStr.c_str(), baud,
addr); addr);
pThis->ClosePTZSensors(delayTime); pThis->ClosePTZSensors(delayTime);
pThis->ReleaseWakelock(wid);
}); });
ctrlThread.detach(); ctrlThread.detach();
} }

Loading…
Cancel
Save