From d83474582773ba7fa0993472329013471eadef22 Mon Sep 17 00:00:00 2001
From: houxiao <houxiao@454eff88-639b-444f-9e54-f578c98de674>
Date: 星期一, 17 四月 2017 17:13:37 +0800
Subject: [PATCH] update librtspface.so
---
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