From e813367bf6300da58cb5347d61d8b3ec7cf6cf38 Mon Sep 17 00:00:00 2001 From: houxiao <houxiao@454eff88-639b-444f-9e54-f578c98de674> Date: 星期五, 31 三月 2017 10:01:41 +0800 Subject: [PATCH] bugfix --- ProxyConsole/proxyconsole-hc.cpp | 93 ++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 84 insertions(+), 9 deletions(-) diff --git a/ProxyConsole/proxyconsole-hc.cpp b/ProxyConsole/proxyconsole-hc.cpp index b21a9de..b29f2b0 100644 --- a/ProxyConsole/proxyconsole-hc.cpp +++ b/ProxyConsole/proxyconsole-hc.cpp @@ -54,6 +54,7 @@ ET_HCNET_DECODER_POPWIN, // 3 ET_HCNET_DECODER_LOGO, // 4 ET_HCNET_DECODER_ALARMOUT, // 5 + ET_HCNET_DECODER_LOGO_ALARMOUT, // 6 ET_HCNET_DECODER__LAST, ET__LAST }; @@ -300,7 +301,7 @@ printf("hcnetsdk_ExceptionCallBack: %d\n", int(dwType)); } -int hcnetsdk_alarm_alarmout(LONG lUserID, const HCNetCameraConfig& camConfig) +int hcnetsdk_alarm_alarmout(LONG lUserID, const HCNetCameraConfig& camConfig, bool isDisalarm) { //鎶ヨ鏃堕棿娈� NET_DVR_SCHEDTIME net_dvr_schedtime = {0}; @@ -321,17 +322,28 @@ } //寮�鍚鎶� - if(NET_DVR_SetAlarmOut(lUserID,camConfig.lAlarmOutPort,1) == FALSE){ - printf("NET_DVR_SetAlarmOut failed, err: %d\n", NET_DVR_GetLastError()); - } + //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); + //sleep(2); - if (time(NULL) - last_alarmout >= 3) + if (isDisalarm) { - //瑙i櫎璀︽姤 - NET_DVR_SetAlarmOut(lUserID,camConfig.lAlarmOutPort,0); + //if (time(NULL) - last_alarmout >= 2) + //{ + //瑙i櫎璀︽姤 + NET_DVR_SetAlarmOut(lUserID,camConfig.lAlarmOutPort,0); + //} + } + else + { + //寮�鍚鎶� + if(NET_DVR_SetAlarmOut(lUserID,camConfig.lAlarmOutPort,1) == FALSE){ + printf("NET_DVR_SetAlarmOut failed, err: %d\n", NET_DVR_GetLastError()); + } + last_alarmout = time(NULL); } } @@ -597,6 +609,67 @@ //net_dvr_win_logo_cfg.byEnable = 0; //NET_DVR_SetDVRConfig(lUserID,NET_DVR_SET_WIN_LOGO_CFG,dwDecChanNum,&net_dvr_win_logo_cfg,net_dvr_win_logo_cfg.dwSize); } + + +int hcnetsdk_alarm_logo_alarmout(LONG lUserID, const HCNetCameraConfig& _camConfig, const std::string& ip, int channel, bool disalarm) +{ + HCNetCameraConfig camConfig(_camConfig); + //if (camConfig.channel != channel) + //{ + // camConfig.channel = -1; + // sockinfo* equipConfig = hcnetsdk_find_equip(ip, channel); + // if (equipConfig != NULL) + // camConfig = *(HCNetCameraConfig*)(equipConfig->user_config); + //} + + printf("hcnetsdk_alarm_logo, channel=%d, matchc=%d\n", channel, camConfig.channel); + + if (camConfig.channel < 0) + return -1; + + //绐楀彛閰嶇疆淇℃伅 + NET_DVR_WIN_LOGO_CFG net_dvr_win_logo_cfg; + net_dvr_win_logo_cfg.dwLogoNo = 1; + net_dvr_win_logo_cfg.byEnable = (disalarm ? 0 : 1);//0:hidden,1:visible + net_dvr_win_logo_cfg.byRes1[3] =0; + net_dvr_win_logo_cfg.dwCoordinateX = 5; + net_dvr_win_logo_cfg.dwCoordinateY =5; + net_dvr_win_logo_cfg.byFlash = 1; + net_dvr_win_logo_cfg.byTranslucent = 0; + net_dvr_win_logo_cfg.byRes2[34] = 0; + + net_dvr_win_logo_cfg.dwSize = sizeof(net_dvr_win_logo_cfg); + //璁剧疆绐楀彛杈撳嚭logo + int byWallNo=1,dwSubWinNo=2,dwWinNo=1; + + for (int i= 0; i < camConfig.dwWinNo.size(); i++) + { + DWORD dwDecChanNum=(camConfig.byWallNo << 24) | (camConfig.dwSubWinNo << 16) | camConfig.dwWinNo[i]; + if(!NET_DVR_SetDVRConfig(lUserID,NET_DVR_SET_WIN_LOGO_CFG,dwDecChanNum,&net_dvr_win_logo_cfg,net_dvr_win_logo_cfg.dwSize)) + { + printf("NET_DVR_SetDVRConfig2 error, err: %d\n", NET_DVR_GetLastError()); + //return -1; + } + else + { + printf("NET_DVR_SetDVRConfig2 done.\n"); + //return 0; + } + } + + //if (!disalarm) + //{ + //int hcnetsdk_alarm_alarmout(LONG lUserID, const HCNetCameraConfig& camConfig) + hcnetsdk_alarm_alarmout(lUserID, camConfig, disalarm); + //} + + return 0; + + //sleep(3); + //net_dvr_win_logo_cfg.byEnable = 0; + //NET_DVR_SetDVRConfig(lUserID,NET_DVR_SET_WIN_LOGO_CFG,dwDecChanNum,&net_dvr_win_logo_cfg,net_dvr_win_logo_cfg.dwSize); +} + int main(int argc,char **argv) { @@ -868,9 +941,11 @@ { std::cout << "......alarm begin k=" << k << std::endl; if (equipConfig.m_type == ET_HCNET_DECODER_ALARMOUT && !isDisalarm) - hcnetsdk_alarm_alarmout(lUserData, *camConfig); + hcnetsdk_alarm_alarmout(lUserData, *camConfig, isDisalarm); else if (equipConfig.m_type == ET_HCNET_DECODER_LOGO) hcnetsdk_alarm_logo(lUserData, *camConfig, ip, channel, isDisalarm); + else if (equipConfig.m_type == ET_HCNET_DECODER_LOGO_ALARMOUT) + hcnetsdk_alarm_logo_alarmout(lUserData, *camConfig, ip, channel, isDisalarm); std::cout << "......alarm end k=" << k << std::endl; } else -- Gitblit v1.8.0