/// <summary> /// 报警回调函数 /// </summary> /// <param name="userID"></param> /// <param name="channel"></param> public override void AlarmCallBackFun(int userID, int channel) { try { IntPtr pUser = IntPtr.Zero; m_falarmData = new CHCNetSDK.MSGCallBack(MsgCallback); //注册回调函数 bool test = CHCNetSDK.NET_DVR_SetDVRMessageCallBack_V30(m_falarmData, pUser); //海康回调SDK GC.KeepAlive(m_falarmData); GC.KeepAlive(test); if (!test) { iLastErr = CHCNetSDK.NET_DVR_GetLastError(); MessageBox.Show("Error" + iLastErr); } else { //Console.WriteLine("启动报警成功"); } CHCNetSDK.NET_DVR_SETUPALARM_PARAM struAlarmParam = new CHCNetSDK.NET_DVR_SETUPALARM_PARAM(); //设置布防SDK struAlarmParam.dwSize = (uint)Marshal.SizeOf(struAlarmParam); struAlarmParam.byLevel = 1; //0- 一级布防,1- 二级布防 CHCNetSDK.NET_DVR_SetupAlarmChan_V41(userID, ref struAlarmParam); } catch (Exception e) { StaticUtils.ShowEventMsg("HikvisionAlarmCallBackFun.class-AlarmCallBackFun : 报警回调函数出现异常!\n"); Console.WriteLine(e); } }
/// <summary> /// 初始化 /// </summary> private bool Init() { bool rtn = true; try { //初始化 bool initResult = CHCNetSDK.NET_DVR_Init(); log.Info("NET_DVR_Init()调用成功。initResult=" + initResult.ToString()); if (initResult) { //登录 _userId = CHCNetSDK.NET_DVR_Login(_curIOconfig.Ip, ushort.Parse(_curIOconfig.Port), _userName, _password, ref _deviceInfo); if (_userId >= 0) { log.Error(string.Format("登录成功。IP:{0},端口:{1},用户名:{2},密码:{3}", _curIOconfig.Ip, _curIOconfig.Port, _userName, _password)); //设置报警回调函数 _falarmData = new CHCNetSDK.MSGCallBack(MsgCallback); if (CHCNetSDK.NET_DVR_SetDVRMessageCallBack_V30(_falarmData, IntPtr.Zero)) { log.Info("设置回调成功。"); _alarmHandel = CHCNetSDK.NET_DVR_SetupAlarmChan(_userId); log.Info("布防成功。"); _alarmSignalTimer.Change(0, 100); log.Info("红外监控计时器启动成功。"); } else { rtn = false; log.Error("NET_DVR_SetDVRMessageCallBack_V30() 布防失败。"); ShowMsg("NET_DVR_SetDVRMessageCallBack_V30() 布防失败。"); } } else { rtn = false; log.Error(string.Format("登录失败。IP:{0},端口:{1},用户名:{2},密码:{3}", _curIOconfig.Ip, _curIOconfig.Port, _userName, _password)); ShowMsg("NET_DVR_Login() 登录失败。"); } } else { rtn = false; log.Error("NET_DVR_Init() 初始化失败。"); ShowMsg("NET_DVR_Init() 初始化失败。"); } } catch (Exception ex) { rtn = false; log.Error("未知异常。", ex); ShowMsg(ex.Message); } // ShowMsg("初始化成功。"); return(rtn); }
public Form1() { InitializeComponent(); bool m_bInitSDK = CHCNetSDK.NET_DVR_Init(); if (m_bInitSDK == false) { MessageBox.Show("NET_DVR_Init error!"); return; } else { //保存SDK日志 To save the SDK log //CHCNetSDK.NET_DVR_SetLogToFile(3, "C:\\SdkLog\\", true); for (int i = 0; i < 200; i++) { m_lAlarmHandle[i] = -1; } //设置报警回调函数 m_falarmData = new CHCNetSDK.MSGCallBack(MsgCallback); CHCNetSDK.NET_DVR_SetDVRMessageCallBack_V30(m_falarmData, IntPtr.Zero); //添加到布防 string ip = txt_ip.Text; string port = txt_port.Text; string name = txt_name.Text; string password = txt_password.Text; setAlarm(ip, port, name, password);//登录,布防 //启动监听 byte[] strIP = new byte[16 * 16]; uint dwValidNum = 0; Boolean bEnableBind = false; //获取本地PC网卡IP,启动监听 if (CHCNetSDK.NET_DVR_GetLocalIP(strIP, ref dwValidNum, ref bEnableBind)) { if (dwValidNum > 0) { //取第一张网卡的IP地址为默认监听端口 textBoxListenIP.Text = System.Text.Encoding.UTF8.GetString(strIP, 0, 16); string sLocalIP = textBoxListenIP.Text; ushort wLocalPort = ushort.Parse(textBoxListenPort.Text); iListenHandle = CHCNetSDK.NET_DVR_StartListen_V30(sLocalIP, wLocalPort, m_falarmData, IntPtr.Zero); if (iListenHandle >= 0) { //启动成功 } } } } }
public int startAlarm(int m_lUserID) { struAlarmParam = new CHCNetSDK.NET_DVR_SETUPALARM_PARAM(); struAlarmParam.dwSize = (uint)Marshal.SizeOf(struAlarmParam); struAlarmParam.byAlarmInfoType = 1;//智能交通设备有效 //一级布防最大连接数为1个,二级最大连接数为3个,三级最大连接数为5个,设备支持一级、二级和 //三级布防同时进行,一级布防优先上传信息 struAlarmParam.byLevel = 1; m_falarmData = new CHCNetSDK.MSGCallBack(MsgCallback); CHCNetSDK.NET_DVR_SetDVRMessageCallBack_V30(m_falarmData, IntPtr.Zero); int AlarmHandle = CHCNetSDK.NET_DVR_SetupAlarmChan_V41(m_lUserID, ref struAlarmParam); return AlarmHandle; }
public int Initial(string savePath = null, double traceFaceScore = 0D) { bool m_bInitSDK = CHCNetSDK.NET_DVR_Init(); if (m_bInitSDK == false) { // NET_DVR_Init error!; return(-1); } else { byte[] strIP = new byte[16 * 16]; uint dwValidNum = 0; Boolean bEnableBind = false; //获取本地PC网卡IP信息 if (CHCNetSDK.NET_DVR_GetLocalIP(strIP, ref dwValidNum, ref bEnableBind)) { if (dwValidNum > 0) { //取第一张网卡的IP地址为默认监听端口 m_ListenIP = System.Text.Encoding.UTF8.GetString(strIP, 0, 16); } } //保存SDK日志 To save the SDK log CHCNetSDK.NET_DVR_SetLogToFile(3, AppDomain.CurrentDomain.BaseDirectory + "logs\\", true); for (int i = 0; i < 200; i++) { m_lAlarmHandle[i] = -1; } //设置报警回调函数 m_falarmData = new CHCNetSDK.MSGCallBack(MsgCallback); CHCNetSDK.NET_DVR_SetDVRMessageCallBack_V30(m_falarmData, IntPtr.Zero); // 重置输出图像文件路径 if (!string.IsNullOrEmpty(savePath)) { m_OutputDir = savePath; } if (traceFaceScore > 0D) { _traceFaceScore = traceFaceScore; } return(1); } }
public int startAlarm(int m_lUserID) { struAlarmParam = new CHCNetSDK.NET_DVR_SETUPALARM_PARAM(); struAlarmParam.dwSize = (uint)Marshal.SizeOf(struAlarmParam); struAlarmParam.byAlarmInfoType = 1;//智能交通设备有效 //一级布防最大连接数为1个,二级最大连接数为3个,三级最大连接数为5个,设备支持一级、二级和 //三级布防同时进行,一级布防优先上传信息 struAlarmParam.byLevel = 1; m_falarmData = new CHCNetSDK.MSGCallBack(MsgCallback); CHCNetSDK.NET_DVR_SetDVRMessageCallBack_V30(m_falarmData, IntPtr.Zero); int AlarmHandle = CHCNetSDK.NET_DVR_SetupAlarmChan_V41(m_lUserID, ref struAlarmParam); return(AlarmHandle); }
public void InitCHC() { try { m_bInitSDK = CHCNetSDK.NET_DVR_Init(); } catch (Exception ex) { ShowMsgEvent("NET_DVR_Init调用错误", ex); } if (m_bInitSDK == false) { ShowMsgEvent("海康设备初始化失败", null); return; } else { byte[] strIP = new byte[16 * 16]; uint dwValidNum = 0; Boolean bEnableBind = false; m_filePathCHC = System.IO.Directory.GetCurrentDirectory(); m_filePathCHC = Path.Combine(m_filePathCHC, "FileCHC"); if (!Directory.Exists(m_filePathCHC))//如果不存在就创建file文件夹 { Directory.CreateDirectory(m_filePathCHC); } //保存SDK日志 To save the SDK log CHCNetSDK.NET_DVR_SetLogToFile(3, m_filePathCHC, true); //获取本地PC网卡IP信息 if (CHCNetSDK.NET_DVR_GetLocalIP(strIP, ref dwValidNum, ref bEnableBind)) { if (dwValidNum > 0) { //取第一张网卡的IP地址为默认监听端口 sLocalIP = System.Text.Encoding.UTF8.GetString(strIP, 0, 16); } //设置报警回调函数 m_falarmData = new CHCNetSDK.MSGCallBack(MsgCallback); CHCNetSDK.NET_DVR_SetDVRMessageCallBack_V30(m_falarmData, IntPtr.Zero); } } }
private void btnFortify_Click(object sender, EventArgs e) { if (m_bGuard) { if (m_lFortifyHandle != -1) { if (CHCNetSDK.NET_DVR_CloseAlarmChan_V30(m_lFortifyHandle)) { DebugInfo("NET_DVR_CloseAlarmChan_V30 Succ"); btnFortify.Text = "Guard"; m_bGuard = !m_bGuard; } else { DebugInfo("NET_DVR_CloseAlarmChan_V30 Fail"); } } } else { m_lFortifyHandle = CHCNetSDK.NET_DVR_SetupAlarmChan_V30(m_lUserID); if (m_lFortifyHandle != -1) { btnFortify.Text = "Unguard"; m_bGuard = !m_bGuard; DebugInfo("NET_DVR_SetupAlarmChan_V30 Succ"); } else { DebugInfo("NET_DVR_SetupAlarmChan_V30 Succ"); } m_falarmData = new CHCNetSDK.MSGCallBack(MsgCallback); if (CHCNetSDK.NET_DVR_SetDVRMessageCallBack_V30(m_falarmData, IntPtr.Zero)) { DebugInfo("NET_DVR_SetDVRMessageCallBack_V30 Succ"); } else { uint i = CHCNetSDK.NET_DVR_GetLastError(); DebugInfo("NET_DVR_SetDVRMessageCallBack_V30 Fail"); } } }
//不需要发送通知,在5分钟的数据处理中,会发送通知! //private com.zjwist.qy.CarStatByDay carstatbyday = new com.zjwist.qy.CarStatByDay(); public DeviceAPI() { devicelists = new List <DeviceInfo>(); iListenHandle = DeviceInfo.Const_DeviceDisable; IsSaveImage = false; ServiceIPAddress = ""; ServicePort = 0; if (!CHCNetSDK.NET_DVR_Init()) { MessageBox.Show("初始化SDK失败!"); } else { m_falarmData = new CHCNetSDK.MSGCallBack(MsgCallback); CHCNetSDK.NET_DVR_SetDVRMessageCallBack_V30(m_falarmData, IntPtr.Zero); } }
private void btnListenBegin_Click(object sender, EventArgs e) { //开始监听 if (m_falarmData == null) { m_falarmData = new CHCNetSDK.MSGCallBack(MsgCallback); } iListenHandle = CHCNetSDK.NET_DVR_StartListen_V30(txtIP.Text, Convert.ToUInt16(txtPort.Text), m_falarmData, IntPtr.Zero); if (iListenHandle == -1) { MessageBox.Show(CHCNetSDK.NET_DVR_GetLastError().ToString()); } else { MessageBox.Show("监听成功!"); btnListenBegin.Enabled = false; btnListenEnd.Enabled = true; } }
//摄像头初始化 public void initHK(string HKCameraip, string HKCameraUsername, string HKCameraPassword) { int res = 0; bool m_bInitSDK = CHCNetSDK.NET_DVR_Init(); if (m_bInitSDK == true) { m_falarmData = new CHCNetSDK.MSGCallBack(MsgCallback); bool btemp = CHCNetSDK.NET_DVR_SetDVRMessageCallBack_V30(m_falarmData, IntPtr.Zero); if (btemp != true) { MF.AddOperLogCacheStr("SetDVRMessageCallBack_V30返回失败"); return; } res = camera_Login(HKCameraip, HKCameraUsername, HKCameraPassword); if (res != 0) { MF.AddOperLogCacheStr("摄像头登录失败"); return; } res = camera_SetAlarm(); if (res != 0) { MF.AddOperLogCacheStr("摄像头布防失败"); return; } res = camera_StartListen(); if (res != 0) { MF.AddOperLogCacheStr("摄像头启动监听失败"); return; } HKConnState = true; MF.AddOperLogCacheStr("Initialize返回0,摄像头连接成功!"); } else { MF.AddOperLogCacheStr("Initialize返回-1,摄像头连接失败!"); } }
public AlarmDemo() { InitializeComponent(); bool m_bInitSDK = CHCNetSDK.NET_DVR_Init(); if (m_bInitSDK == false) { MessageBox.Show("NET_DVR_Init error!"); return; } else { byte[] strIP = new byte[16 * 16]; uint dwValidNum = 0; Boolean bEnableBind = false; //获取本地PC网卡IP信息 if (CHCNetSDK.NET_DVR_GetLocalIP(strIP, ref dwValidNum, ref bEnableBind)) { if (dwValidNum > 0) { //取第一张网卡的IP地址为默认监听端口 textBoxListenIP.Text = System.Text.Encoding.UTF8.GetString(strIP, 0, 16); } } //保存SDK日志 To save the SDK log CHCNetSDK.NET_DVR_SetLogToFile(3, "C:\\SdkLog\\", true); for (int i = 0; i < 200; i++) { m_lAlarmHandle[i] = -1; } //设置报警回调函数 m_falarmData = new CHCNetSDK.MSGCallBack(MsgCallback); CHCNetSDK.NET_DVR_SetDVRMessageCallBack_V30(m_falarmData, IntPtr.Zero); } }
private void btnDeploy_Click(object sender, EventArgs e) { if (m_UserID < 0) { MessageBox.Show("Please Login First!"); return; } else { CHCNetSDK.NET_DVR_SETUPALARM_PARAM struSetupAlarmParam = new CHCNetSDK.NET_DVR_SETUPALARM_PARAM(); struSetupAlarmParam.dwSize = (uint)Marshal.SizeOf(struSetupAlarmParam); struSetupAlarmParam.byLevel = 1; struSetupAlarmParam.byAlarmInfoType = 1; struSetupAlarmParam.byDeployType = (byte)cbDeployType.SelectedIndex; if (CHCNetSDK.NET_DVR_SetupAlarmChan_V41(m_UserID, ref struSetupAlarmParam) < 0) { MessageBox.Show("NET_DVR_SetupAlarmChan_V41 fail error: " + CHCNetSDK.NET_DVR_GetLastError(), "Setup alarm chan failed"); return; } else { MessageBox.Show("Setup alarm chan succeed"); } m_falarmData = new CHCNetSDK.MSGCallBack(MsgCallback); if (CHCNetSDK.NET_DVR_SetDVRMessageCallBack_V50(0, m_falarmData, IntPtr.Zero)) { MessageBox.Show("NET_DVR_SetDVRMessageCallBack_V50 succ", "succ", MessageBoxButtons.OK); } else { MessageBox.Show("NET_DVR_SetDVRMessageCallBack_V50 fail", "operation fail", MessageBoxButtons.OK); } } }
private void btnFortify_Click(object sender, EventArgs e) { if (m_bGuard) { if (m_lFortifyHandle != -1) { if (CHCNetSDK.NET_DVR_CloseAlarmChan_V30(m_lFortifyHandle)) { DebugInfo("NET_DVR_CloseAlarmChan_V30 Success"); btnFortify.Text = "Guard"; m_bGuard = !m_bGuard; } else { DebugInfo("NET_DVR_CloseAlarmChan_V30 Fail"); } } } else { m_lFortifyHandle = CHCNetSDK.NET_DVR_SetupAlarmChan_V30(m_lUserID); if (m_lFortifyHandle != -1) { btnFortify.Text = "Unguard"; m_bGuard = !m_bGuard; DebugInfo("NET_DVR_SetupAlarmChan_V30 Success"); } else { DebugInfo("NET_DVR_SetupAlarmChan_V30 Success"); } m_falarmData = new CHCNetSDK.MSGCallBack(MsgCallback); if (CHCNetSDK.NET_DVR_SetDVRMessageCallBack_V30(m_falarmData, IntPtr.Zero)) { DebugInfo("NET_DVR_SetDVRMessageCallBack_V30 Success"); } else { uint i = CHCNetSDK.NET_DVR_GetLastError(); DebugInfo("NET_DVR_SetDVRMessageCallBack_V30 Fail"); } } }