/// <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);
     }
 }
Esempio n. 2
0
        /// <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);
        }
Esempio n. 3
0
        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;
        }
Esempio n. 5
0
        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);
        }
Esempio n. 7
0
        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);
                }
            }
        }
Esempio n. 8
0
        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");
                }
            }
        }
Esempio n. 9
0
        //不需要发送通知,在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);
            }
        }
Esempio n. 10
0
 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;
     }
 }
Esempio n. 11
0
        //摄像头初始化
        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,摄像头连接失败!");
            }
        }
Esempio n. 12
0
        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);
            }
        }
Esempio n. 13
0
        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);
                }
            }
        }
Esempio n. 14
0
        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");
                }
            }
        }