|
|
@ -115,6 +115,7 @@ void PtzController::PtzProc()
|
|
|
|
PTZ_STATE ptz_state;
|
|
|
|
PTZ_STATE ptz_state;
|
|
|
|
bool hasCmd = false;
|
|
|
|
bool hasCmd = false;
|
|
|
|
int i=0;
|
|
|
|
int i=0;
|
|
|
|
|
|
|
|
int closecmd=0;
|
|
|
|
|
|
|
|
|
|
|
|
std::shared_ptr<PowerControl> powerCtrl;
|
|
|
|
std::shared_ptr<PowerControl> powerCtrl;
|
|
|
|
time_t selfTestingStartTime = 0;
|
|
|
|
time_t selfTestingStartTime = 0;
|
|
|
@ -243,6 +244,7 @@ void PtzController::PtzProc()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (state == PTZS_POWER_OFF)
|
|
|
|
if (state == PTZS_POWER_OFF)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
|
|
|
|
closecmd = 0;
|
|
|
|
XYLOG(XYLOG_SEVERITY_INFO, "自动关机触发,摄像机本来就处于关机状态!");
|
|
|
|
XYLOG(XYLOG_SEVERITY_INFO, "自动关机触发,摄像机本来就处于关机状态!");
|
|
|
|
// Do Nothing
|
|
|
|
// Do Nothing
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -255,6 +257,7 @@ void PtzController::PtzProc()
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
powerCtrl.reset();
|
|
|
|
powerCtrl.reset();
|
|
|
|
|
|
|
|
closecmd = 0;
|
|
|
|
state = PTZS_POWER_OFF;
|
|
|
|
state = PTZS_POWER_OFF;
|
|
|
|
XYLOG(XYLOG_SEVERITY_INFO, "自动触发关闭云台电源!state=%d", state);
|
|
|
|
XYLOG(XYLOG_SEVERITY_INFO, "自动触发关闭云台电源!state=%d", state);
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -286,8 +289,15 @@ void PtzController::PtzProc()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if(cmd.photoParams->mPhotoInfo.scheduleTime == 0)
|
|
|
|
if(cmd.photoParams->mPhotoInfo.scheduleTime == 0)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
start_delay_time = time(NULL);
|
|
|
|
if(1 == closecmd)
|
|
|
|
XYLOG(XYLOG_SEVERITY_INFO, "3、收到手动拍照指令,state=%d!", state);
|
|
|
|
{
|
|
|
|
|
|
|
|
XYLOG(XYLOG_SEVERITY_INFO, "3、收到手动拍照指令,但同时后续收到关机指令,等待拍完照片再关机。state=%d!", state);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
start_delay_time = time(NULL);
|
|
|
|
|
|
|
|
XYLOG(XYLOG_SEVERITY_INFO, "3、收到手动拍照指令,state=%d!", state);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else
|
|
|
|
else
|
|
|
|
XYLOG(XYLOG_SEVERITY_INFO, "2、收到自动拍照指令,state=%d!", state);
|
|
|
|
XYLOG(XYLOG_SEVERITY_INFO, "2、收到自动拍照指令,state=%d!", state);
|
|
|
@ -363,17 +373,20 @@ void PtzController::PtzProc()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
XYLOG(XYLOG_SEVERITY_INFO, "收到手动开机指令,摄像机处于state=%d!", state);
|
|
|
|
XYLOG(XYLOG_SEVERITY_INFO, "收到手动开机指令,摄像机处于state=%d!", state);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
closecmd = 0;
|
|
|
|
start_delay_time = time(NULL);
|
|
|
|
start_delay_time = time(NULL);
|
|
|
|
XYLOG(XYLOG_SEVERITY_INFO, "收到手动打开摄像机指令,刷新关机计时初始值,state=%d", state);
|
|
|
|
XYLOG(XYLOG_SEVERITY_INFO, "收到手动打开摄像机指令,刷新关机计时初始值,state=%d", state);
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case CLOSE_TOTAL:
|
|
|
|
case CLOSE_TOTAL:
|
|
|
|
if (state == PTZS_POWER_OFF)
|
|
|
|
if (state == PTZS_POWER_OFF)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
|
|
|
|
closecmd = 0;
|
|
|
|
XYLOG(XYLOG_SEVERITY_INFO, "收到关机指令,摄像机本来就处于关机状态!");
|
|
|
|
XYLOG(XYLOG_SEVERITY_INFO, "收到关机指令,摄像机本来就处于关机状态!");
|
|
|
|
// Do Nothing
|
|
|
|
// Do Nothing
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else if(PTZS_PHOTO_SELF_TESTING == state)
|
|
|
|
else if(PTZS_PHOTO_SELF_TESTING == state)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
|
|
|
|
closecmd = 1;
|
|
|
|
XYLOG(XYLOG_SEVERITY_INFO, "在拍照自检过程中收到关机指令,取消延时关机,转到自动关机处理!state=%d", state);
|
|
|
|
XYLOG(XYLOG_SEVERITY_INFO, "在拍照自检过程中收到关机指令,取消延时关机,转到自动关机处理!state=%d", state);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else
|
|
|
|
else
|
|
|
@ -384,6 +397,7 @@ void PtzController::PtzProc()
|
|
|
|
if(0 == QueryPtzState(&ptz_state, NOTIFY_PTZ_CLOSE, cmd.serfile, cmd.baud, cmd.addr))
|
|
|
|
if(0 == QueryPtzState(&ptz_state, NOTIFY_PTZ_CLOSE, cmd.serfile, cmd.baud, cmd.addr))
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
closecmd = 0;
|
|
|
|
powerCtrl.reset();
|
|
|
|
powerCtrl.reset();
|
|
|
|
state = PTZS_POWER_OFF;
|
|
|
|
state = PTZS_POWER_OFF;
|
|
|
|
XYLOG(XYLOG_SEVERITY_INFO, "关闭云台电源!state=%d", state);
|
|
|
|
XYLOG(XYLOG_SEVERITY_INFO, "关闭云台电源!state=%d", state);
|
|
|
@ -392,6 +406,11 @@ void PtzController::PtzProc()
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
default:
|
|
|
|
{
|
|
|
|
{
|
|
|
|
|
|
|
|
if (state == PTZS_POWER_OFF)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
XYLOG(XYLOG_SEVERITY_INFO, "收到手动控制摄像机指令,摄像机处于关机状态,无法执行!");
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
}
|
|
|
|
start_delay_time = time(NULL);
|
|
|
|
start_delay_time = time(NULL);
|
|
|
|
XYLOG(XYLOG_SEVERITY_INFO, "收到手动控制摄像机指令,刷新关机计时初始值,state=%d", state);
|
|
|
|
XYLOG(XYLOG_SEVERITY_INFO, "收到手动控制摄像机指令,刷新关机计时初始值,state=%d", state);
|
|
|
|
if(cmd.ts <= photo_move_preset_time)
|
|
|
|
if(cmd.ts <= photo_move_preset_time)
|
|
|
|