From e6228f7dfa86e3dddde4940f8393f49692f64f84 Mon Sep 17 00:00:00 2001 From: jxjajs Date: Thu, 27 Mar 2025 16:01:28 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=94=B5=E6=BA=90=E6=8E=A7?= =?UTF-8?q?=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/cpp/PtzController.cpp | 21 ++++++++++++++------- app/src/main/cpp/PtzController.h | 1 + 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/app/src/main/cpp/PtzController.cpp b/app/src/main/cpp/PtzController.cpp index 098f3583..a64ce4e3 100644 --- a/app/src/main/cpp/PtzController.cpp +++ b/app/src/main/cpp/PtzController.cpp @@ -27,7 +27,7 @@ void PtzController::AddCommand(uint8_t channel, int cmdidx, uint8_t bImageSize, { SERIAL_CMD cmd = { 0 }; cmd.channel = channel; - cmd.channel = preset; + cmd.preset = preset; cmd.cmdidx = cmdidx; cmd.bImageSize = bImageSize; strcpy(cmd.serfile, serfile); @@ -112,8 +112,10 @@ void PtzController::PtzProc() std::shared_ptr powerCtrl; time_t selfTestingStartTime = 0; time_t selfTestingWaitTime = 0; - time_t PTZ_preset_start_time=0; - time_t PTZ_preset_wait_time=0; + time_t PTZ_preset_start_time = 0; + time_t PTZ_preset_wait_time = 0; + time_t close_delay_time = CAMERA_CLOSE_DELAYTIME; + time_t start_delay_time = 0; while(true) { @@ -183,11 +185,15 @@ void PtzController::PtzProc() m_sem.release(); continue; } - - powerCtrl.reset(); + if(time(NULL) - start_delay_time >= close_delay_time) + { + XYLOG(XYLOG_SEVERITY_INFO, "摄像机空闲时间超过%d秒!关闭摄像机!", close_delay_time); + powerCtrl.reset(); + } continue; } + start_delay_time = time(NULL); switch (cmd.cmdidx) { case Take_Photo: @@ -196,7 +202,8 @@ void PtzController::PtzProc() { if (!powerCtrl) { - powerCtrl = std::make_shared(cmd.photoParams->mPhotoInfo.closeDelayTime); + //powerCtrl = std::make_shared(cmd.photoParams->mPhotoInfo.closeDelayTime); + powerCtrl = std::make_shared(0); selfTestingStartTime = time(NULL); selfTestingWaitTime = cmd.photoParams->mPhotoInfo.selfTestingTime; state = PTZS_SELF_TESTING; @@ -247,7 +254,7 @@ void PtzController::PtzProc() { if (!powerCtrl) { - powerCtrl = std::make_shared(150); + powerCtrl = std::make_shared(0); selfTestingStartTime = time(NULL); selfTestingWaitTime = 150; state = PTZS_SELF_TESTING; diff --git a/app/src/main/cpp/PtzController.h b/app/src/main/cpp/PtzController.h index cfd712f0..6a4b3916 100644 --- a/app/src/main/cpp/PtzController.h +++ b/app/src/main/cpp/PtzController.h @@ -25,6 +25,7 @@ enum PROC_PTZ_STATE #define CAMERA_SELF_TEST_TIME 60 /* Camera self-test time (excluding PTZ self-test)*/ #define MOVE_PRESET_WAIT_TIME 20 /* Waiting for the maximum time for the PTZ to move to the preset position*/ +#define CAMERA_CLOSE_DELAYTIME 480 /* Auto Power-Off Timer Setting After Manual Power-On (for Camera)*/ class PtzPhotoParams {