From fcd78f02a6c44f919ba7288dfdd7c877a7a5e63d Mon Sep 17 00:00:00 2001 From: "XI.CHEN" <2311041011@qq.com> Date: Wed, 18 Dec 2024 22:11:18 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=91=E5=8F=B0=E6=8E=A7=E5=88=B6=E7=BA=BF?= =?UTF-8?q?=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/cpp/PhoneDevice.cpp | 108 +++++++++++++++++-------------- 1 file changed, 59 insertions(+), 49 deletions(-) diff --git a/app/src/main/cpp/PhoneDevice.cpp b/app/src/main/cpp/PhoneDevice.cpp index 5108a00b..854f47fa 100644 --- a/app/src/main/cpp/PhoneDevice.cpp +++ b/app/src/main/cpp/PhoneDevice.cpp @@ -3681,64 +3681,74 @@ void CPhoneDevice::ConvertDngToPng(const std::string& dngPath, const std::string void CPhoneDevice::CameraCtrl(unsigned char waitTime, unsigned char delayTime, unsigned char channel, int cmdidx, unsigned char preset, const char *serfile, unsigned int baud, int addr) { - switch (cmdidx) { - case 2:{ + if(!(m_sensorsStatus && !m_cameraStatus)) { + CPhoneDevice *pThis = this; + std::thread ctrlThread([pThis, waitTime, delayTime, cmdidx, channel, preset, serfile, baud, + addr]() mutable { + switch (cmdidx) { + case 2: { // if(GetCameraStatus()) - OpenPTZSensors(waitTime); - CameraPhotoCmd(time(NULL), channel, MOVE_PRESETNO, 0, preset, serfile, baud, addr); - ClosePTZSensors(delayTime); - break; - } - case 3:{ + + pThis->OpenPTZSensors(waitTime); + CameraPhotoCmd(time(NULL), channel, MOVE_PRESETNO, 0, preset, serfile, baud, + addr); + pThis->ClosePTZSensors(delayTime); + break; + } + case 3: { // if(GetCameraStatus()) - OpenPTZSensors(waitTime); - CameraPhotoCmd(0, channel, MOVE_UP, 0, 0, serfile, baud, addr); - ClosePTZSensors(delayTime); - break; - } - case 4:{ + pThis->OpenPTZSensors(waitTime); + CameraPhotoCmd(0, channel, MOVE_UP, 0, 0, serfile, baud, addr); + pThis->ClosePTZSensors(delayTime); + break; + } + case 4: { // if(GetCameraStatus()) - OpenPTZSensors(waitTime); - CameraPhotoCmd(0, channel, MOVE_DOWN, 0, 0, serfile, baud, addr); - ClosePTZSensors(delayTime); - break; - } - case 5:{ + pThis->OpenPTZSensors(waitTime); + CameraPhotoCmd(0, channel, MOVE_DOWN, 0, 0, serfile, baud, addr); + pThis->ClosePTZSensors(delayTime); + break; + } + case 5: { // if(GetCameraStatus()) - OpenPTZSensors(waitTime); - CameraPhotoCmd(0, channel, MOVE_LEFT, 0, 0, serfile, baud, addr); - ClosePTZSensors(delayTime); - break; - } - case 6:{ + pThis->OpenPTZSensors(waitTime); + CameraPhotoCmd(0, channel, MOVE_LEFT, 0, 0, serfile, baud, addr); + pThis->ClosePTZSensors(delayTime); + break; + } + case 6: { // if(GetCameraStatus()) - OpenPTZSensors(waitTime); - CameraPhotoCmd(0, channel, MOVE_RIGHT, 0, 0, serfile, baud, addr); - ClosePTZSensors(delayTime); - break; - } - case 7:{ + pThis->OpenPTZSensors(waitTime); + CameraPhotoCmd(0, channel, MOVE_RIGHT, 0, 0, serfile, baud, addr); + pThis->ClosePTZSensors(delayTime); + break; + } + case 7: { // if(GetCameraStatus()) - OpenPTZSensors(waitTime); - CameraPhotoCmd(0, channel, ZOOM_WIDE, 0, 0, serfile, baud, addr); - ClosePTZSensors(delayTime); - break; - } - case 8:{ + pThis->OpenPTZSensors(waitTime); + CameraPhotoCmd(0, channel, ZOOM_WIDE, 0, 0, serfile, baud, addr); + pThis->ClosePTZSensors(delayTime); + break; + } + case 8: { // if(GetCameraStatus()) - OpenPTZSensors(waitTime); - CameraPhotoCmd(0, channel, ZOOM_TELE, 0, 0, serfile, baud, addr); - ClosePTZSensors(delayTime); - break; - } - case 9:{ + pThis->OpenPTZSensors(waitTime); + CameraPhotoCmd(0, channel, ZOOM_TELE, 0, 0, serfile, baud, addr); + pThis->ClosePTZSensors(delayTime); + break; + } + case 9: { // if(GetCameraStatus()) - OpenPTZSensors(waitTime); - CameraPhotoCmd(time(NULL), channel, SAVE_PRESETNO, 0, preset, serfile, baud, addr); - ClosePTZSensors(delayTime); - break; - } + pThis->OpenPTZSensors(waitTime); + CameraPhotoCmd(time(NULL), channel, SAVE_PRESETNO, 0, preset, serfile, baud, + addr); + pThis->ClosePTZSensors(delayTime); + break; + } + } + }); + ctrlThread.detach(); } }