From bd903c2ac65389760f46dffd3d9736011e11bc69 Mon Sep 17 00:00:00 2001 From: houxiao <houxiao@454eff88-639b-444f-9e54-f578c98de674> Date: 星期一, 19 十二月 2016 15:06:52 +0800 Subject: [PATCH] bugfix for alarmout overlap --- ProxyConsole/proxyconsole-hc.cpp | 19 ++++++++++++++----- 1 files changed, 14 insertions(+), 5 deletions(-) diff --git a/ProxyConsole/proxyconsole-hc.cpp b/ProxyConsole/proxyconsole-hc.cpp index df62d2e..fa10555 100644 --- a/ProxyConsole/proxyconsole-hc.cpp +++ b/ProxyConsole/proxyconsole-hc.cpp @@ -41,6 +41,8 @@ #define MAX 1024 #define fileread_buf 128 +volatile time_t last_alarmout; + typedef std::map<std::string, int> hcnetsdk_user_t; // decoder_ip, userid hcnetsdk_user_t g_hcnetsdk_user; @@ -311,11 +313,15 @@ if(NET_DVR_SetAlarmOut(lUserID,camConfig.lAlarmOutPort,1) == FALSE){ printf("NET_DVR_SetAlarmOut failed, err: %d\n", NET_DVR_GetLastError()); } + last_alarmout = time(NULL); sleep(3); - //瑙i櫎璀︽姤 - NET_DVR_SetAlarmOut(lUserID,camConfig.lAlarmOutPort,0); + if (time(NULL) - last_alarmout >= 3) + { + //瑙i櫎璀︽姤 + NET_DVR_SetAlarmOut(lUserID,camConfig.lAlarmOutPort,0); + } } int hcnetsdk_alarm_popwin(LONG lUserID, const HCNetCameraConfig& camConfig) @@ -496,13 +502,16 @@ timer.it_interval.tv_usec=250000; /*Start a virtual timer.It counts down whenever this process is executing.*/ - setitimer(ITIMER_VIRTUAL,&timer,NULL); + //setitimer(ITIMER_VIRTUAL,&timer,NULL); - while(1) - sleep(1); + while ( 1 ) + { + zclock_sleep(250); + timer_handler(0); + } } void* createServerthread_hcnetsdk(void* arg) -- Gitblit v1.8.0