Exemplo n.º 1
0
        private void btnGet_Click(object sender, EventArgs e)
        {
            if (m_lGetFaceParamCfgHandle != -1)
            {
                CHCNetSDK.NET_DVR_StopRemoteConfig(m_lGetFaceParamCfgHandle);
            }

            listViewFaceConfig.Items.Clear();
            LpArr.Clear();

            CHCNetSDK.NET_DVR_FACE_PARAM_COND struCond = new CHCNetSDK.NET_DVR_FACE_PARAM_COND();
            struCond.Init();
            struCond.dwSize    = (uint)Marshal.SizeOf(struCond);
            struCond.dwFaceNum = (uint)IndexOfListview;
            struCond.byFaceID  = Convert.ToByte(textBoxFaceID.Text.ToString());
            StrToByteArray(ref struCond.byCardNo, textBoxAssociatedCardNo.Text);
            GetCardReaderIndex(ref struCond.byEnableCardReader);

            int    dwSize      = Marshal.SizeOf(struCond);
            IntPtr ptrStruCond = Marshal.AllocHGlobal(dwSize);

            Marshal.StructureToPtr(struCond, ptrStruCond, true);
            g_fGetFaceParamCallback  = new CHCNetSDK.RemoteConfigCallback(ProcessGetFaceParam);
            m_lGetFaceParamCfgHandle = CHCNetSDK.NET_DVR_StartRemoteConfig(m_lServerID, CHCNetSDK.NET_DVR_GET_FACE_PARAM_CFG, ptrStruCond, dwSize, g_fGetFaceParamCallback, this.Handle);
            if (-1 == m_lGetFaceParamCfgHandle)
            {
                g_formList.AddLog(m_iDevIndex, AcsDemoPublic.OPERATION_FAIL_T, "NET_DVR_GET_FACE_PARAM_CFG failed");
            }
            else
            {
                g_formList.AddLog(m_iDevIndex, AcsDemoPublic.OPERATION_SUCC_T, "NET_DVR_GET_FACE_PARAM_CFG success");
            }

            Marshal.FreeHGlobal(ptrStruCond);
        }
Exemplo n.º 2
0
        private bool SendCardInfoToDevice()
        {
            if (-1 != m_lSetCardCfgHandle)
            {
                if (CHCNetSDK.NET_DVR_StopRemoteConfig(m_lSetCardCfgHandle))
                {
                    m_lSetCardCfgHandle = -1;
                }
            }
            CHCNetSDK.NET_DVR_CARD_CFG_COND struCond = new CHCNetSDK.NET_DVR_CARD_CFG_COND();
            struCond.dwSize    = (uint)Marshal.SizeOf(struCond);
            struCond.dwCardNum = 1;

            int    dwSize      = Marshal.SizeOf(struCond);
            IntPtr ptrStruCond = Marshal.AllocHGlobal(dwSize);

            Marshal.StructureToPtr(struCond, ptrStruCond, false);
            g_fSetGatewayCardCallback = new CHCNetSDK.RemoteConfigCallback(ProcessSetGatewayCardCallback);
            m_lSetCardCfgHandle       = CHCNetSDK.NET_DVR_StartRemoteConfig(m_lUserID, CHCNetSDK.NET_DVR_SET_CARD_CFG_V50, ptrStruCond, dwSize, g_fSetGatewayCardCallback, this.Handle);
            if (-1 == m_lSetCardCfgHandle)
            {
                g_formList.AddLog(m_lDeviceIndex, AcsDemoPublic.OPERATION_FAIL_T, "NET_DVR_SET_CARD_CFG_V50");
                Marshal.FreeHGlobal(ptrStruCond);
                return(false);
            }
            else
            {
                g_formList.AddLog(m_lDeviceIndex, AcsDemoPublic.OPERATION_SUCC_T, "NET_DVR_SET_CARD_CFG_V50");
            }

            Marshal.FreeHGlobal(ptrStruCond);

            return(SendCardData(m_struCardInfo));
        }
Exemplo n.º 3
0
        private void btnSet_Click(object sender, EventArgs e)
        {
            if (m_lSetFaceParamCfgHandle != -1)
            {
                CHCNetSDK.NET_DVR_StopRemoteConfig(m_lSetFaceParamCfgHandle);
            }

            CHCNetSDK.NET_DVR_FACE_PARAM_COND StruCond = new CHCNetSDK.NET_DVR_FACE_PARAM_COND();
            StruCond.dwSize    = (uint)Marshal.SizeOf(StruCond);
            StruCond.dwFaceNum = (uint)IndexOfListview;
            int    dwSize      = (int)StruCond.dwSize;
            IntPtr PtrStruCond = Marshal.AllocHGlobal(dwSize);

            Marshal.StructureToPtr(StruCond, PtrStruCond, true);
            g_fSetFaceParamCallback  = new CHCNetSDK.RemoteConfigCallback(ProcessSetFaceParamCallback);
            m_lSetFaceParamCfgHandle = CHCNetSDK.NET_DVR_StartRemoteConfig(m_lServerID, CHCNetSDK.NET_DVR_SET_FACE_PARAM_CFG, PtrStruCond, dwSize, g_fSetFaceParamCallback, this.Handle);
            //int i =(int)CHCNetSDK.NET_DVR_GetLastError();
            if (-1 == m_lSetFaceParamCfgHandle)
            {
                g_formList.AddLog(m_iDevIndex, AcsDemoPublic.OPERATION_FAIL_T, "NET_DVR_SET_FACE_PARAM_CFG failed");
            }
            else
            {
                g_formList.AddLog(m_iDevIndex, AcsDemoPublic.OPERATION_SUCC_T, "NET_DVR_SET_FACE_PARAM_CFG success");
            }
            Marshal.FreeHGlobal(PtrStruCond);

            m_dwSendIndex = 0;
            if (!SendFirstFace())
            {
                CHCNetSDK.NET_DVR_StopRemoteConfig(m_lSetFaceParamCfgHandle);
                m_lSetFaceParamCfgHandle = -1;
            }
        }
Exemplo n.º 4
0
        private void btnGetFacePic_Click(object sender, EventArgs e)
        {
            if (-1 != m_lGetFacePicHandle)
            {
                if (CHCNetSDK.NET_DVR_StopRemoteConfig(m_lGetFacePicHandle))
                {
                    m_lGetFacePicHandle = -1;
                }
            }
            CHCNetSDK.NET_DVR_CAPTURE_FACE_COND struCond = new CHCNetSDK.NET_DVR_CAPTURE_FACE_COND();
            struCond.dwSize = (uint)Marshal.SizeOf(struCond);

            int    dwSize      = Marshal.SizeOf(struCond);
            IntPtr ptrStruCond = Marshal.AllocHGlobal(dwSize);

            Marshal.StructureToPtr(struCond, ptrStruCond, false);
            g_fGetFacePicCallback = new CHCNetSDK.RemoteConfigCallback(ProcessGetFacePicCallback);
            m_lGetFacePicHandle   = CHCNetSDK.NET_DVR_StartRemoteConfig(m_lUserID, CHCNetSDK.NET_DVR_CAPTURE_FACE_INFO, ptrStruCond, dwSize, g_fGetFacePicCallback, this.Handle);
            if (-1 == m_lGetFacePicHandle)
            {
                g_formList.AddLog(m_lDeviceIndex, AcsDemoPublic.OPERATION_FAIL_T, "NET_DVR_CAPTURE_FACE_INFO");
            }
            else
            {
                g_formList.AddLog(m_lDeviceIndex, AcsDemoPublic.OPERATION_SUCC_T, "NET_DVR_CAPTURE_FACE_INFO");
            }
            Marshal.FreeHGlobal(ptrStruCond);
        }
Exemplo n.º 5
0
        //指纹参数设置,建立长连接
        //和指纹参数下发用同一个长连接句柄
        private void btnSetUpFpCfg_Click(object sender, EventArgs e)
        {
            listViewMessage.Items.Clear();
            m_iFingerPrintIndex = 0;
            m_iFingerPrintNum   = listViewFingerPrint.Items.Count;
            if (m_lFingerPrintDownloadHandle != -1)
            {
                CHCNetSDK.NET_DVR_StopRemoteConfig(m_lFingerPrintDownloadHandle);
                m_lFingerPrintDownloadHandle = -1;
            }

            if (m_iFingerPrintNum < 1)
            {
                MessageBox.Show("Please add some fingerprints!");
                return;
            }

            g_fFingerPrintSetUpCallback = new CHCNetSDK.RemoteConfigCallback(ProcessFingerPrintSetUpCallback);
            string sURL   = "POST /ISAPI/AccessControl/FingerPrint/SetUp?format=json";
            IntPtr ptrURL = Marshal.StringToHGlobalAnsi(sURL);

            m_lFingerPrintDownloadHandle = CHCNetSDK.NET_DVR_StartRemoteConfig(m_lUserID, CHCNetSDK.NET_DVR_JSON_CONFIG, ptrURL, sURL.Length, g_fFingerPrintSetUpCallback, this.Handle);
            Marshal.FreeHGlobal(ptrURL);
            if (!POSTFingerPrintCfg())
            {
                CHCNetSDK.NET_DVR_StopRemoteConfig(m_lFingerPrintDownloadHandle);
                m_lFingerPrintDownloadHandle = -1;
            }
        }
Exemplo n.º 6
0
 public ISAPIRemoteConfig(Int32 UserID, int commandCode, string url, CHCNetSDK.RemoteConfigCallback callback)
 {
     this.url                = url;
     this.cmd                = commandCode;
     this.listener           = callback;
     this.remoteConfigHandle = -1;
     this.lUserID            = UserID;
 }
Exemplo n.º 7
0
        private void buttonSendAll_Click(object sender, EventArgs e)
        {
            if (-1 != m_lSetCardCfgHandle)
            {
                if (CHCNetSDK.NET_DVR_StopRemoteConfig(m_lSetCardCfgHandle))
                {
                    m_lSetCardCfgHandle = -1;
                }
            }
            m_dwCardNum = (uint)listViewGataManage.Items.Count;
            if (listViewGataManage.Items.Count < 1)
            {
                MessageBox.Show("Please add some cards!");
                return;
            }
            CHCNetSDK.NET_DVR_CARD_CFG_COND struCond = new CHCNetSDK.NET_DVR_CARD_CFG_COND();
            struCond.dwSize    = (uint)Marshal.SizeOf(struCond);
            struCond.dwCardNum = m_dwCardNum;
            ushort.TryParse(textBoxControllerNo.Text, out struCond.wLocalControllerID);
            if (checkBoxCheckNumber.Checked)
            {
                struCond.byCheckCardNo = 1;
            }
            else
            {
                struCond.byCheckCardNo = 0;
            }

            int    dwSize      = Marshal.SizeOf(struCond);
            IntPtr ptrStruCond = Marshal.AllocHGlobal(dwSize);

            Marshal.StructureToPtr(struCond, ptrStruCond, false);
            g_fSetGatewayCardCallback = new CHCNetSDK.RemoteConfigCallback(ProcessSetGatewayCardCallback);
            m_lSetCardCfgHandle       = CHCNetSDK.NET_DVR_StartRemoteConfig(m_lUserID, CHCNetSDK.NET_DVR_SET_CARD_CFG_V50, ptrStruCond, dwSize, g_fSetGatewayCardCallback, this.Handle);
            if (-1 == m_lSetCardCfgHandle)
            {
                ListViewItem listItem = new ListViewItem();
                listItem.Text = "FAIL";
                string strTemp = string.Format("NET_DVR_SET_CARD_CFG_V50 FAIL, ERROR CODE {0}", CHCNetSDK.NET_DVR_GetLastError());
                listItem.SubItems.Add(strTemp);
                this.AddList(listViewMessage, listItem);
                Marshal.FreeHGlobal(ptrStruCond);
                return;
            }
            else
            {
                ListViewItem listItem = new ListViewItem();
                listItem.Text = "SUCC";
                listItem.SubItems.Add("NET_DVR_SET_CARD_CFG_V50");
                this.AddList(listViewMessage, listItem);
            }
            Marshal.FreeHGlobal(ptrStruCond);
            if (!SendFirstCard())
            {
                CHCNetSDK.NET_DVR_StopRemoteConfig(m_lSetCardCfgHandle);
                m_lSetCardCfgHandle = -1;
            }
        }
Exemplo n.º 8
0
        private bool GetCardInfoFromDevice()
        {
            if (-1 != m_lGetCardCfgHandle)
            {
                if (CHCNetSDK.NET_DVR_StopRemoteConfig(m_lGetCardCfgHandle))
                {
                    m_lGetCardCfgHandle = -1;
                }
            }

            CHCNetSDK.NET_DVR_CARD_CFG_SEND_DATA struSendData = new CHCNetSDK.NET_DVR_CARD_CFG_SEND_DATA();
            struSendData.dwSize = (uint)Marshal.SizeOf(struSendData);
            string strTemp = System.Text.Encoding.UTF8.GetString(m_struCardInfo.byCardNo);

            struSendData.byCardNo = System.Text.Encoding.UTF8.GetBytes(strTemp);

            CHCNetSDK.NET_DVR_CARD_CFG_COND struCond = new CHCNetSDK.NET_DVR_CARD_CFG_COND();
            struCond.dwSize        = (uint)Marshal.SizeOf(struCond);
            struCond.dwCardNum     = 1;
            struCond.byCheckCardNo = 1;

            int    dwSize      = Marshal.SizeOf(struCond);
            IntPtr ptrStruCond = Marshal.AllocHGlobal(dwSize);

            Marshal.StructureToPtr(struCond, ptrStruCond, false);
            g_fGetGatewayCardCallback = new CHCNetSDK.RemoteConfigCallback(ProcessGetGatewayCardCallback);
            m_lGetCardCfgHandle       = CHCNetSDK.NET_DVR_StartRemoteConfig(m_lUserID, CHCNetSDK.NET_DVR_GET_CARD_CFG_V50, ptrStruCond, dwSize, g_fGetGatewayCardCallback, this.Handle);
            if (-1 == m_lGetCardCfgHandle)
            {
                g_formList.AddLog(m_lDeviceIndex, AcsDemoPublic.OPERATION_FAIL_T, "NET_DVR_GET_CARD_CFG_V50");
                Marshal.FreeHGlobal(ptrStruCond);
                return(false);
            }
            else
            {
                g_formList.AddLog(m_lDeviceIndex, AcsDemoPublic.OPERATION_SUCC_T, "NET_DVR_GET_CARD_CFG_V50");
                uint   dwSizeData      = (uint)Marshal.SizeOf(struSendData);
                IntPtr ptrStruSendData = Marshal.AllocHGlobal((int)dwSizeData);
                Marshal.StructureToPtr(struSendData, ptrStruSendData, false);
                if (!CHCNetSDK.NET_DVR_SendRemoteConfig(m_lGetCardCfgHandle, 3, ptrStruSendData, dwSizeData))
                {
                    g_formList.AddLog(m_lDeviceIndex, AcsDemoPublic.OPERATION_FAIL_T, "NET_DVR_SendRemoteConfig ENUM_ACS_SEND_DATA FAIL");
                    return(false);
                }
                else
                {
                    g_formList.AddLog(m_lDeviceIndex, AcsDemoPublic.OPERATION_SUCC_T, "NET_DVR_SendRemoteConfig ENUM_ACS_SEND_DATA SUCC");
                }
                Marshal.FreeHGlobal(ptrStruSendData);
            }
            Marshal.FreeHGlobal(ptrStruCond);

            return(true);
        }
Exemplo n.º 9
0
        private bool SetFingerPrint()
        {
            if (UpdateFingerPrintCfg(ref m_struFingerPrintOne))
            {
                if (m_lSetFingerPrintCfgHandle != -1)
                {
                    CHCNetSDK.NET_DVR_StopRemoteConfig(m_lSetFingerPrintCfgHandle);
                }
                CHCNetSDK.NET_DVR_FINGER_PRINT_INFO_COND struCond = new CHCNetSDK.NET_DVR_FINGER_PRINT_INFO_COND();
                struCond.byCardNo           = new byte[32];
                struCond.byEnableCardReader = new byte[512];
                struCond.dwSize             = (uint)Marshal.SizeOf(struCond);
                uint.TryParse(m_userInfo.fingerPrintNum, out struCond.dwFingerPrintNum);
                if (checkBoxNonBlock.Checked)
                {
                    struCond.byCallbackMode = 1;
                }
                else
                {
                    struCond.byCallbackMode = 0;
                }
                int    dwSize      = Marshal.SizeOf(struCond);
                IntPtr ptrStruCond = Marshal.AllocHGlobal(dwSize);
                Marshal.StructureToPtr(struCond, ptrStruCond, false);
                g_fSetFingerPrintCallback  = new CHCNetSDK.RemoteConfigCallback(ProcessSetFingerPrintCfgCallbackData);
                m_lSetFingerPrintCfgHandle = CHCNetSDK.NET_DVR_StartRemoteConfig(m_lUserID,
                                                                                 CHCNetSDK.NET_DVR_SET_FINGERPRINT_CFG, ptrStruCond, dwSize, g_fSetFingerPrintCallback, this.Handle);
                if (-1 == m_lSetFingerPrintCfgHandle)
                {
                    g_formList.AddLog(m_lDeviceIndex, AcsDemoPublic.OPERATION_FAIL_T, "NET_DVR_SET_FINGERPRINT_CFG");
                    Marshal.FreeHGlobal(ptrStruCond);
                    return(false);
                }
                else
                {
                    g_formList.AddLog(m_lDeviceIndex, AcsDemoPublic.OPERATION_SUCC_T, "NET_DVR_SET_FINGERPRINT_CFG");
                }

                if (!SendFirstCard())
                {
                    CHCNetSDK.NET_DVR_StopRemoteConfig(m_lSetFingerPrintCfgHandle);
                    m_lSetFingerPrintCfgHandle = -1;
                    Marshal.FreeHGlobal(ptrStruCond);
                    return(false);
                }
                Marshal.FreeHGlobal(ptrStruCond);
                return(true);
            }
            else
            {
                return(false);
            }
        }
Exemplo n.º 10
0
        private void buttonSet_Click(object sender, EventArgs e)
        {
            if (m_lSetFingerPrintCfgHandle != -1)
            {
                CHCNetSDK.NET_DVR_StopRemoteConfig(m_lSetFingerPrintCfgHandle);
            }
            CHCNetSDK.NET_DVR_FINGER_PRINT_INFO_COND struCond = new CHCNetSDK.NET_DVR_FINGER_PRINT_INFO_COND();
            struCond.byCardNo           = new byte[32];
            struCond.byEnableCardReader = new byte[512];
            struCond.dwSize             = (uint)Marshal.SizeOf(struCond);
            uint.TryParse(textBoxNumber.Text, out struCond.dwFingerPrintNum);
            if (checkBoxNonBlock.Checked)
            {
                struCond.byCallbackMode = 1;
            }
            else
            {
                struCond.byCallbackMode = 0;
            }
            int    dwSize      = Marshal.SizeOf(struCond);
            IntPtr ptrStruCond = Marshal.AllocHGlobal(dwSize);

            Marshal.StructureToPtr(struCond, ptrStruCond, false);
            g_fSetFingerPrintCallback  = new CHCNetSDK.RemoteConfigCallback(ProcessSetFingerPrintCfgCallbackData);
            m_lSetFingerPrintCfgHandle = CHCNetSDK.NET_DVR_StartRemoteConfig(m_lUserID,
                                                                             CHCNetSDK.NET_DVR_SET_FINGERPRINT_CFG, ptrStruCond, dwSize, g_fSetFingerPrintCallback, this.Handle);
            if (-1 == m_lSetFingerPrintCfgHandle)
            {
                ListViewItem listItem = new ListViewItem();
                listItem.Text = "FAIL";
                string strTemp = string.Format("NET_DVR_SET_FINGERPRINT_CFG FAIL, ERROR CODE {0}", CHCNetSDK.NET_DVR_GetLastError());
                listItem.SubItems.Add(strTemp);
                this.AddList(listViewMessage, listItem);
                Marshal.FreeHGlobal(ptrStruCond);
                return;
            }
            else
            {
                ListViewItem listItem = new ListViewItem();
                listItem.Text = "SUCC";
                listItem.SubItems.Add("NET_DVR_SET_FINGERPRINT_CFG");
                this.AddList(listViewMessage, listItem);
            }
            m_iSendIndex = 0;
            if (!SendFirstCard())
            {
                CHCNetSDK.NET_DVR_StopRemoteConfig(m_lSetFingerPrintCfgHandle);
                m_lSetFingerPrintCfgHandle = -1;
            }
            Marshal.FreeHGlobal(ptrStruCond);
        }
Exemplo n.º 11
0
        private void buttonGet_Click(object sender, EventArgs e)
        {
            if (-1 != m_lGetFaceCfgHandle)
            {
                if (CHCNetSDK.NET_DVR_StopRemoteConfig(m_lGetFaceCfgHandle))
                {
                    m_lGetFaceCfgHandle = -1;
                }
            }
            CHCNetSDK.NET_DVR_FACE_PARAM_COND struCond = new CHCNetSDK.NET_DVR_FACE_PARAM_COND();
            struCond.dwSize                = (uint)Marshal.SizeOf(struCond);
            struCond.dwFaceNum             = 1;
            struCond.byFaceID              = 1;
            struCond.byEnableCardReader    = new byte[CHCNetSDK.MAX_CARD_READER_NUM_512];
            struCond.byEnableCardReader[0] = 1;
            if ("" == textBoxCardNo.Text)
            {
                MessageBox.Show("Please input the card number!");
                return;
            }
            struCond.byCardNo = new byte[CHCNetSDK.ACS_CARD_NO_LEN];
            byte[] byTempCardNo = System.Text.Encoding.UTF8.GetBytes(textBoxCardNo.Text);
            for (int i = 0; i < byTempCardNo.Length; i++)
            {
                if (i > struCond.byCardNo.Length)
                {
                    MessageBox.Show("card number length too long!");
                    return;
                }
                struCond.byCardNo[i] = byTempCardNo[i];
            }

            int    dwSize      = Marshal.SizeOf(struCond);
            IntPtr ptrStruCond = Marshal.AllocHGlobal(dwSize);

            Marshal.StructureToPtr(struCond, ptrStruCond, false);
            g_fGetFaceParamCallback = new CHCNetSDK.RemoteConfigCallback(ProcessGetFaceParamCallback);
            m_lGetFaceCfgHandle     = CHCNetSDK.NET_DVR_StartRemoteConfig(m_lUserID, CHCNetSDK.NET_DVR_GET_FACE_PARAM_CFG, ptrStruCond, dwSize, g_fGetFaceParamCallback, this.Handle);
            if (-1 == m_lGetFaceCfgHandle)
            {
                g_formList.AddLog(m_lDeviceIndex, AcsDemoPublic.OPERATION_FAIL_T, "NET_DVR_GET_FACE_PARAM_CFG");
            }
            else
            {
                g_formList.AddLog(m_lDeviceIndex, AcsDemoPublic.OPERATION_SUCC_T, "NET_DVR_GET_FACE_PARAM_CFG");
            }
            Marshal.FreeHGlobal(ptrStruCond);
        }
        private void buttonModify_Click(object sender, EventArgs e)
        {
            m_iFaceDataRecordIndex = 0;
            if (-1 != m_lFaceDataRecordHandle)
            {
                if (CHCNetSDK.NET_DVR_StopRemoteConfig(m_lFaceDataRecordHandle))
                {
                    m_lFaceDataRecordHandle = -1;
                }
            }

            if (m_iFaceDataRecordCount < 1)
            {
                MessageBox.Show("Please add some face records!");
                return;
            }

            g_fFaceDataModifyCallback = new CHCNetSDK.RemoteConfigCallback(ProcessFaceDataModifyCallback);
            string sURL   = "PUT /ISAPI/Intelligent/FDLib/FDModify?format=json";
            IntPtr ptrURL = Marshal.StringToHGlobalAnsi(sURL);

            m_lFaceDataRecordHandle = CHCNetSDK.NET_DVR_StartRemoteConfig(m_lUserID, CHCNetSDK.NET_DVR_FACE_DATA_MODIFY, ptrURL, sURL.Length, g_fFaceDataModifyCallback, this.Handle);
            if (-1 == m_lFaceDataRecordHandle)
            {
                ListViewItem listItem = new ListViewItem();
                listItem.Text = "Fail";
                string strTemp = string.Format("Face Data Modify Fail,Error Code={0}", CHCNetSDK.NET_DVR_GetLastError());
                listItem.SubItems.Add(strTemp);
                this.AddList(listViewMessage, listItem);
                Marshal.FreeHGlobal(ptrURL);
                return;
            }
            else
            {
                ListViewItem listItem = new ListViewItem();
                listItem.Text = "Succ";
                listItem.SubItems.Add("Face Data Modify Success");
                this.AddList(listViewMessage, listItem);
            }
            Marshal.FreeHGlobal(ptrURL);
            if (!SendFaceModify())
            {
                CHCNetSDK.NET_DVR_StopRemoteConfig(m_lFaceDataRecordHandle);
                m_lFaceDataRecordHandle = -1;
            }
        }
Exemplo n.º 13
0
        private void buttonGet_Click(object sender, EventArgs e)
        {
            if (m_lGetFingerPrintCfgHandle != -1)
            {
                CHCNetSDK.NET_DVR_StopRemoteConfig((int)m_lGetFingerPrintCfgHandle);
            }
            listViewFingerPrint.Items.Clear();
            CHCNetSDK.NET_DVR_FINGER_PRINT_INFO_COND struCond = new CHCNetSDK.NET_DVR_FINGER_PRINT_INFO_COND();
            struCond.byCardNo = new byte[32];
            struCond.dwSize   = (uint)Marshal.SizeOf(struCond);
            uint.TryParse(textBoxNumber.Text, out struCond.dwFingerPrintNum);
            byte.TryParse(textBoxFingerPrintNumber.Text, out struCond.byFingerPrintID);
            byte[] byTemp = System.Text.Encoding.UTF8.GetBytes(testBoxCard.Text);
            for (int i = 0; i < byTemp.Length; i++)
            {
                struCond.byCardNo[i] = byTemp[i];
            }
            GetTreeSel();
            struCond.byEnableCardReader = m_struFingerPrintOne.byEnableCardReader;
            int    dwSize      = Marshal.SizeOf(struCond);
            IntPtr ptrStruCond = Marshal.AllocHGlobal(dwSize);

            Marshal.StructureToPtr(struCond, ptrStruCond, false);
            g_fGetFingerPrintCallback  = new CHCNetSDK.RemoteConfigCallback(ProcessGetFingerPrintCfgCallbackData);
            m_lGetFingerPrintCfgHandle = CHCNetSDK.NET_DVR_StartRemoteConfig(m_lUserID, CHCNetSDK.NET_DVR_GET_FINGERPRINT_CFG, ptrStruCond, dwSize, g_fGetFingerPrintCallback, this.Handle);
            if (-1 == m_lGetFingerPrintCfgHandle)
            {
                ListViewItem listItem = new ListViewItem();
                listItem.Text = "FAIL";
                string strTemp = string.Format("NET_DVR_GET_FINGERPRINT_CFG FAIL, ERROR CODE {0}", CHCNetSDK.NET_DVR_GetLastError());
                listItem.SubItems.Add(strTemp);
                this.AddList(listViewMessage, listItem);
                Marshal.FreeHGlobal(ptrStruCond);
                return;
            }
            else
            {
                ListViewItem listItem = new ListViewItem();
                listItem.Text = "SUCC";
                listItem.SubItems.Add("NET_DVR_GET_FINGERPRINT_CFG");
                this.AddList(listViewMessage, listItem);
                Marshal.FreeHGlobal(ptrStruCond);
            }
        }
Exemplo n.º 14
0
        /// <summary>
        /// 给指定的卡号下发人脸数据
        /// </summary>
        /// <param name="deviceUserId"></param>
        /// <param name="cbStateCallback"></param>
        /// <param name="pUserData"></param>
        /// <param name="sCardNo"></param>
        /// <param name="byFacePic"></param>
        /// <returns></returns>
        public int StartRemoteConfigForFaceInsert(
            int deviceUserId,
            CHCNetSDK.RemoteConfigCallback cbStateCallback,
            IntPtr pUserData,
            string sCardNo)
        {
            int  handle  = -1;
            uint command = CHCNetSDK.NET_DVR_SET_FACE_PARAM_CFG;

            CHCNetSDK.NET_DVR_FACE_PARAM_COND struFaceParamCond = BuildFaceParamCondStruct(sCardNo);
            int    struFaceParamCondSize = Marshal.SizeOf(struFaceParamCond);
            IntPtr ptrFaceParaCond       = Marshal.AllocHGlobal(struFaceParamCondSize);

            Marshal.StructureToPtr(struFaceParamCond, ptrFaceParaCond, false);

            handle = CHCNetSDK.NET_DVR_StartRemoteConfig(deviceUserId, command, ptrFaceParaCond, (uint)struFaceParamCondSize, cbStateCallback, pUserData);

            Marshal.FreeHGlobal(ptrFaceParaCond);

            return(handle);
        }
        private void buttonSearch_Click(object sender, EventArgs e)
        {
            m_iFaceDataRecordIndex = 0;
            if (-1 != m_lFaceDataSearchHandle)
            {
                if (CHCNetSDK.NET_DVR_StopRemoteConfig(m_lFaceDataSearchHandle))
                {
                    m_lFaceDataSearchHandle = -1;
                }
            }

            g_fFaceDataSearchCallback = new CHCNetSDK.RemoteConfigCallback(ProcessFaceDataSearchCallback);
            string sURL   = "POST /ISAPI/Intelligent/FDLib/FDSearch?format=json";
            IntPtr ptrURL = Marshal.StringToHGlobalAnsi(sURL);

            m_lFaceDataSearchHandle = CHCNetSDK.NET_DVR_StartRemoteConfig(m_lUserID, CHCNetSDK.NET_DVR_FACE_DATA_SEARCH, ptrURL, sURL.Length, g_fFaceDataSearchCallback, this.Handle);
            if (-1 == m_lFaceDataSearchHandle)
            {
                ListViewItem listItem = new ListViewItem();
                listItem.Text = "Fail";
                string strTemp = string.Format("Face Data Search Fail,Error Code={0}", CHCNetSDK.NET_DVR_GetLastError());
                listItem.SubItems.Add(strTemp);
                this.AddList(listViewMessage, listItem);
                Marshal.FreeHGlobal(ptrURL);
                return;
            }
            else
            {
                ListViewItem listItem = new ListViewItem();
                listItem.Text = "Succ";
                listItem.SubItems.Add("Face Data Search Success");
                this.AddList(listViewMessage, listItem);
            }
            Marshal.FreeHGlobal(ptrURL);
            if (!SearchFaceData())
            {
                CHCNetSDK.NET_DVR_StopRemoteConfig(m_lFaceDataSearchHandle);
                m_lFaceDataSearchHandle = -1;
            }
        }
Exemplo n.º 16
0
        void StartRemoteCfg()
        {
            CHCNetSDK.NET_DVR_VIDEO_CALL_COND struCond = new CHCNetSDK.NET_DVR_VIDEO_CALL_COND();
            struCond.dwSize = (uint)Marshal.SizeOf(struCond);

            int    dwSize      = Marshal.SizeOf(struCond);
            IntPtr ptrStruCond = Marshal.AllocHGlobal(dwSize);

            Marshal.StructureToPtr(struCond, ptrStruCond, false);

            g_fProcessVideoCallDataCallBack = new CHCNetSDK.RemoteConfigCallback(ProcessVideoCallDataCallBack);
            m_lRemoteHandle = CHCNetSDK.NET_DVR_StartRemoteConfig(m_lUserID, CHCNetSDK.NET_DVR_VIDEO_CALL_SIGNAL_PROCESS, ptrStruCond, dwSize, g_fProcessVideoCallDataCallBack, this.Handle);
            if (m_lRemoteHandle == -1)
            {
                g_formList.AddLog(m_iDevIndex, AcsDemoPublic.OPERATION_FAIL_T, "NET_DVR_VIDEO_CALL_SIGNAL_PROCESS FAIL");
            }
            else
            {
                g_formList.AddLog(m_iDevIndex, AcsDemoPublic.OPERATION_SUCC_T, "NET_DVR_VIDEO_CALL_SIGNAL_PROCESS SUCCESS");
            }
            Marshal.FreeHGlobal(ptrStruCond);
        }
Exemplo n.º 17
0
        private bool GetFingerPrint()
        {
            if (m_lGetFingerPrintCfgHandle != -1)
            {
                CHCNetSDK.NET_DVR_StopRemoteConfig((int)m_lGetFingerPrintCfgHandle);
            }

            CHCNetSDK.NET_DVR_FINGER_PRINT_INFO_COND struCond = new CHCNetSDK.NET_DVR_FINGER_PRINT_INFO_COND();
            struCond.byCardNo = new byte[32];
            struCond.dwSize   = (uint)Marshal.SizeOf(struCond);
            uint.TryParse(m_userInfo.fingerPrintNum, out struCond.dwFingerPrintNum);
            byte.TryParse(textBoxFingerPrintNumber.Text, out struCond.byFingerPrintID);
            byte[] byTemp = System.Text.Encoding.UTF8.GetBytes(m_userInfo.cards[0].cardNumber);
            for (int i = 0; i < byTemp.Length; i++)
            {
                struCond.byCardNo[i] = byTemp[i];
            }
            struCond.byEnableCardReader = m_struFingerPrintOne.byEnableCardReader;

            int    dwSize      = Marshal.SizeOf(struCond);
            IntPtr ptrStruCond = Marshal.AllocHGlobal(dwSize);

            Marshal.StructureToPtr(struCond, ptrStruCond, false);
            g_fGetFingerPrintCallback  = new CHCNetSDK.RemoteConfigCallback(ProcessGetFingerPrintCfgCallbackData);
            m_lGetFingerPrintCfgHandle = CHCNetSDK.NET_DVR_StartRemoteConfig(m_lUserID, CHCNetSDK.NET_DVR_GET_FINGERPRINT_CFG, ptrStruCond, dwSize, g_fGetFingerPrintCallback, this.Handle);
            if (-1 == m_lGetFingerPrintCfgHandle)
            {
                g_formList.AddLog(m_lDeviceIndex, AcsDemoPublic.OPERATION_FAIL_T, "NET_DVR_GET_FINGERPRINT_CFG");
                Marshal.FreeHGlobal(ptrStruCond);
                return(false);
            }
            else
            {
                g_formList.AddLog(m_lDeviceIndex, AcsDemoPublic.OPERATION_SUCC_T, "NET_DVR_GET_FINGERPRINT_CFG");
                Marshal.FreeHGlobal(ptrStruCond);
                return(true);
            }
        }
        private void buttonSearch_Click(object sender, EventArgs e)
        {
            if (rConfig != null)
            {
                rConfig.stop();
                bFirst      = true;
                totalMaches = 1;
                iSearchPos  = 0;
            }

            rConfig           = new ISAPIRemoteConfig(m_lUserID, CHCNetSDK.NET_DVR_CAPTURE_DATA_SEARCH, "POST /ISAPI/AccessControl/OfflineCapture/DataCollections/searchTask?format=json");
            g_fSearchCallback = new CHCNetSDK.RemoteConfigCallback(ProcessDataSearchCallback);
            rConfig.SetListener(g_fSearchCallback);

            if (rConfig.start())
            {
                iSearchPos = int.Parse(textBoxSearchPos.Text);
                string strCond = BuildCondJson();
                if (strCond == null)
                {
                    addLog(false, "GenerateCondJson failed, Parameters invalid");
                    rConfig.stop();
                    return;
                }

                if (!rConfig.send(strCond))
                {
                    addLog(false, "Send Failed");
                    rConfig.stop();
                }
            }
            else
            {
                addLog(false, "Data Search Fail");
                rConfig.stop();
            }
            return;
        }
Exemplo n.º 19
0
        /// <summary>
        /// 下发卡号数据
        /// </summary>
        /// <param name="deviceUserId">NET_DVR_Login_V40等登录接口的返回值</param>
        /// <param name="cbStateCallback"></param>
        /// <param name="pUserData"></param>
        /// <param name="cardNo"></param>
        /// <returns></returns>
        public int StartRemoteConfigForCardInsert(
            int deviceUserId,
            CHCNetSDK.RemoteConfigCallback cbStateCallback,
            IntPtr pUserData,
            Core.Domain.EntranceControl.UserInfo userInfo
            )
        {
            int  handle  = -1;
            uint command = CHCNetSDK.NET_DVR_SET_CARD_CFG_V50;

            CHCNetSDK.NET_DVR_CARD_CFG_COND struCardCfgCond = BuildCardCfgCondStruct();

            int    struCardCfgCondSize = Marshal.SizeOf(struCardCfgCond);
            IntPtr ptrCardCfgCond      = Marshal.AllocHGlobal(struCardCfgCondSize);

            Marshal.StructureToPtr(struCardCfgCond, ptrCardCfgCond, false);

            handle = CHCNetSDK.NET_DVR_StartRemoteConfig(deviceUserId, command, ptrCardCfgCond, (uint)struCardCfgCondSize, cbStateCallback, pUserData);

            Marshal.FreeHGlobal(ptrCardCfgCond);

            return(handle);
        }
Exemplo n.º 20
0
        //获取指纹,建立长连接
        private void btnGetFpCfg_Click(object sender, EventArgs e)
        {
            listViewMessage.Items.Clear();
            m_iFingerPrintCondIndex = 0;
            m_iFingerPrintCondNum   = listViewFpCond.Items.Count;
            listViewFingerPrint.Items.Clear();
            if (-1 != m_lFingerPrintUploadHandle)
            {
                CHCNetSDK.NET_DVR_StopRemoteConfig(m_lFingerPrintUploadHandle);
                m_lFingerPrintUploadHandle = -1;
            }

            g_fFingerPrintUploadCallback = new CHCNetSDK.RemoteConfigCallback(ProcessFingerPrintUploadCallback);
            string sURL   = "POST /ISAPI/AccessControl/FingerPrintUpload?format=json";
            IntPtr ptrURL = Marshal.StringToHGlobalAnsi(sURL);

            m_lFingerPrintUploadHandle = CHCNetSDK.NET_DVR_StartRemoteConfig(m_lUserID, CHCNetSDK.NET_DVR_JSON_CONFIG, ptrURL, sURL.Length, g_fFingerPrintUploadCallback, this.Handle);
            Marshal.FreeHGlobal(ptrURL);
            if (!GetFingerPrintCfg())
            {
                CHCNetSDK.NET_DVR_StopRemoteConfig(m_lFingerPrintDownloadHandle);
                m_lFingerPrintDownloadHandle = -1;
            }
        }
Exemplo n.º 21
0
        /// <summary>
        /// 下发卡数据
        /// </summary>
        /// <param name="message"></param>
        /// <param name="deviceIPAddr"></param>
        /// <param name="devicePort"></param>
        /// <param name="userInfo"></param>
        /// <param name="user"></param>
        /// <param name="password"></param>
        /// <param name="cbSetRemoteConfig"></param>
        /// <returns></returns>
        public bool CardInsert(
            out string message,
            string deviceIPAddr,
            int devicePort,
            Core.Domain.EntranceControl.UserInfo userInfo,
            string user     = "******",
            string password = "",
            CHCNetSDK.RemoteConfigCallback cbSetRemoteConfig = null)
        {
            bool ret = false;

            message = string.Empty;
            uint errCode = 0;
            int  iUserId = -1;
            //用户数据指针
            IntPtr ptrUserData = IntPtr.Zero;
            //长连接句柄
            int hndRemoteConfig = -1;
            //长连接数据发送是否成功
            bool retSendRemoteConfig  = false;
            bool retCloseRemoteConfig = false;

            #region init

            //初始化
            coreInfrastructure.NetDvrInit();

            //设置连接超时时间与重连功能
            //CHCNetSDK.NET_DVR_SetConnectTime(PreSettings.dwWaitTime, PreSettings.dwTryTimes);
            coreInfrastructure.NetDvrSetConnectTime(PreSettings.dwWaitTime, PreSettings.dwTryTimes);

            //CHCNetSDK.NET_DVR_SetReconnect(PreSettings.dwInterval, PreSettings.enableRecon);
            coreInfrastructure.NetDvrSetReconnect(PreSettings.dwInterval, PreSettings.enableRecon);

            #endregion

            #region login

            CHCNetSDK.NET_DVR_DEVICEINFO_V40 struDeviceInfoV40 = new CHCNetSDK.NET_DVR_DEVICEINFO_V40();

            //登录设备 Login the device
            iUserId = coreInfrastructure.NetDvrLoginV40(deviceIPAddr, devicePort, user, password, ref struDeviceInfoV40);

            if (iUserId < 0)
            {
                errCode = coreInfrastructure.NetDvrGetLastError();
                message = "NET_DVR_Login_V40 failed, error code= " + errCode; //登录失败,输出错误号
                coreInfrastructure.NetDvrCleanUp();
                return(false);
            }

            #endregion

            #region start remote config 启动长连接配置

            if (null == cbSetRemoteConfig)
            {
                SetRemoteConfigDelegate = new CHCNetSDK.RemoteConfigCallback(ProcessCardInsertCallback);
            }
            else
            {
                SetRemoteConfigDelegate = cbSetRemoteConfig;
            }

            hndRemoteConfig = logicCardManage.StartRemoteConfigForCardInsert(iUserId, GetRemoteConfigDelegate, ptrUserData, userInfo);

            if (hndRemoteConfig < 0)
            {
                errCode = coreInfrastructure.NetDvrGetLastError();
                message = "NET_DVR_StartRemoteConfig, error code= " + errCode; //登录失败,输出错误号
                coreInfrastructure.NetDvrCleanUp();
                return(false);
            }

            #endregion

            #region send remote config 发送长连接数据

            retSendRemoteConfig = logicCardManage.SendRemoteConfigForCardInsert(hndRemoteConfig, userInfo);

            if (!retSendRemoteConfig)
            {
                errCode = coreInfrastructure.NetDvrGetLastError();
                message = "NET_DVR_SendRemoteConfig, error code= " + errCode; //登录失败,输出错误号
                coreInfrastructure.NetDvrCleanUp();
                return(false);
            }

            #endregion

            System.Threading.Thread.Sleep(PreSettings.durationCallback);

            #region 获取数据

            ret = retSendRemoteConfig && errCode == 0;

            message = errCode + "";

            #endregion

            #region 关闭长连接配置接口所创建的句柄,释放资源

            if (bSetCardCfgFinish)
            {
                retCloseRemoteConfig = coreInfrastructure.NetDvrStopRemoteConfig(hndRemoteConfig);
            }

            bSetCardCfgFinish = false;

            #endregion


            //注销用户
            //CHCNetSDK.NET_DVR_Logout(iUserId);
            coreInfrastructure.NetDvrLogout(iUserId);
            //释放 SDK 资源
            //CHCNetSDK.NET_DVR_Cleanup();
            coreInfrastructure.NetDvrCleanUp();

            return(errCode == 0);
        }
Exemplo n.º 22
0
        private void buttonStart_Click(object sender, EventArgs e)
        {
            if (-1 != m_lInfoSynHandle)
            {
                if (CHCNetSDK.NET_DVR_StopRemoteConfig(m_lInfoSynHandle))
                {
                    m_lInfoSynHandle = -1;
                }
            }

            if (m_bStart)
            {
                return;
            }

            m_bStart           = true;
            g_fInfoSynCallback = new CHCNetSDK.RemoteConfigCallback(ProcessInfoSynCallback);
            string sURL = GetRoute(m_command);

            if (sURL == null)
            {
                return;
            }

            IntPtr ptrURL = Marshal.StringToHGlobalAnsi(sURL);

            m_lInfoSynHandle = CHCNetSDK.NET_DVR_StartRemoteConfig(m_lUserID, CHCNetSDK.NET_DVR_JSON_CONFIG, ptrURL, sURL.Length, g_fInfoSynCallback, this.Handle);

            string strInfoSyn = null;

            if (m_command == SynInfoCommand.USER_INFO_SYN)
            {
                CUserInfoSynCond JsonUserInfoSynCond = new CUserInfoSynCond();
                JsonUserInfoSynCond.UserInfoSyncCond            = new CUserInfoSynCondContent();
                JsonUserInfoSynCond.UserInfoSyncCond.command    = "startSync";
                JsonUserInfoSynCond.UserInfoSyncCond.maxResults = 30;

                strInfoSyn = JsonConvert.SerializeObject(JsonUserInfoSynCond);
            }
            else
            {
                CCardInfoSynCond JsonCardInfoSynCond = new CCardInfoSynCond();
                JsonCardInfoSynCond.CardInfoSyncCond            = new CCardInfoSynCondContent();
                JsonCardInfoSynCond.CardInfoSyncCond.command    = "startSync";
                JsonCardInfoSynCond.CardInfoSyncCond.maxResults = 30;

                strInfoSyn = JsonConvert.SerializeObject(JsonCardInfoSynCond);
            }

            IntPtr ptrInfoSyn = Marshal.StringToHGlobalAnsi(strInfoSyn);

            if (!CHCNetSDK.NET_DVR_SendRemoteConfig(m_lInfoSynHandle, (int)CHCNetSDK.LONG_CFG_SEND_DATA_TYPE_ENUM.ENUM_SEND_JSON_DATA, ptrInfoSyn, (uint)strInfoSyn.Length))
            {
                Marshal.FreeHGlobal(ptrInfoSyn);
                return;
            }
            Marshal.FreeHGlobal(ptrInfoSyn);

            //获取结果
            Thread thread = new Thread(new ThreadStart(GetSynResult));  

            thread.IsBackground = true;
            thread.Start();
        }
Exemplo n.º 23
0
        /// <summary>
        /// 查询卡数据
        /// </summary>
        /// <param name="message"></param>
        /// <param name="employeeNo"></param>
        /// <param name="deviceIPAddr"></param>
        /// <param name="devicePort"></param>
        /// <param name="cardNo"></param>
        /// <param name="user"></param>
        /// <param name="password"></param>
        /// <param name="cbGetRemoteConfig"></param>
        /// <returns></returns>
        public bool CardQuery(
            out string message,
            out uint employeeNo,
            string deviceIPAddr,
            int devicePort,
            string cardNo,
            string user     = "******",
            string password = "",
            CHCNetSDK.RemoteConfigCallback cbGetRemoteConfig = null)
        {
            bool ret = false;

            message    = string.Empty;
            employeeNo = 0;
            uint   errCode   = 0;
            int    iUserId   = -1;
            IntPtr pUserData = IntPtr.Zero;
            //长连接句柄
            int hndRemoteConfig = -1;
            //长连接数据发送是否成功
            bool retSendRemoteConfig  = false;
            bool retCloseRemoteConfig = false;

            #region init

            //初始化
            coreInfrastructure.NetDvrInit();

            //设置连接超时时间与重连功能
            //CHCNetSDK.NET_DVR_SetConnectTime(PreSettings.dwWaitTime, PreSettings.dwTryTimes);
            coreInfrastructure.NetDvrSetConnectTime(PreSettings.dwWaitTime, PreSettings.dwTryTimes);

            //CHCNetSDK.NET_DVR_SetReconnect(PreSettings.dwInterval, PreSettings.enableRecon);
            coreInfrastructure.NetDvrSetReconnect(PreSettings.dwInterval, PreSettings.enableRecon);

            #endregion

            #region login

            CHCNetSDK.NET_DVR_DEVICEINFO_V40 struDeviceInfoV40 = new CHCNetSDK.NET_DVR_DEVICEINFO_V40();

            //登录设备 Login the device
            iUserId = coreInfrastructure.NetDvrLoginV40(deviceIPAddr, devicePort, user, password, ref struDeviceInfoV40);

            if (iUserId < 0)
            {
                errCode = coreInfrastructure.NetDvrGetLastError();
                message = "NET_DVR_Login_V40 failed, error code= " + errCode; //登录失败,输出错误号
                coreInfrastructure.NetDvrCleanUp();
                return(false);
            }

            #endregion

            #region start remote config 启动长连接配置

            if (null == cbGetRemoteConfig)
            {
                GetRemoteConfigDelegate = new CHCNetSDK.RemoteConfigCallback(ProcessCardQueryCallback);
            }
            else
            {
                GetRemoteConfigDelegate = cbGetRemoteConfig;
            }

            hndRemoteConfig = logicCardManage.StartRemoteConfigForCardQuery(iUserId, GetRemoteConfigDelegate, pUserData, cardNo);

            if (hndRemoteConfig < 0)
            {
                errCode = coreInfrastructure.NetDvrGetLastError();
                message = "NET_DVR_StartRemoteConfig, error code= " + errCode; //登录失败,输出错误号
                coreInfrastructure.NetDvrCleanUp();
                return(false);
            }

            #endregion

            #region send remote config 发送长连接数据

            retSendRemoteConfig = logicCardManage.SendRemoteConfigForCardQuery(hndRemoteConfig, cardNo);

            if (!retSendRemoteConfig)
            {
                errCode = coreInfrastructure.NetDvrGetLastError();
                message = "NET_DVR_SendRemoteConfig, error code= " + errCode; //登录失败,输出错误号
                coreInfrastructure.NetDvrCleanUp();
                return(false);
            }

            #endregion

            System.Threading.Thread.Sleep(PreSettings.durationCallback);

            #region 获取数据

            ret = retSendRemoteConfig;

            employeeNo = struCardInfo.dwEmployeeNo;

            //struCardInfo = (CHCNetSDK.NET_DVR_CARD_CFG_V50)Marshal.PtrToStructure(buffer, typeof(CHCNetSDK.NET_DVR_CARD_CFG_V50));

            message = "error:" + errCode;

            #endregion

            #region 关闭长连接配置接口所创建的句柄,释放资源

            if (bGetCardCfgFinish)
            {
                retCloseRemoteConfig = coreInfrastructure.NetDvrStopRemoteConfig(hndRemoteConfig);
            }

            bGetCardCfgFinish = false;
            #endregion

            //System.Threading.Thread.Sleep(PreSettings.durationCallback);
            //注销用户
            //CHCNetSDK.NET_DVR_Logout(iUserId);
            coreInfrastructure.NetDvrLogout(iUserId);
            //释放 SDK 资源
            //CHCNetSDK.NET_DVR_Cleanup();
            coreInfrastructure.NetDvrCleanUp();

            return(ret);
        }
Exemplo n.º 24
0
 public void SetListener(CHCNetSDK.RemoteConfigCallback callback)
 {
     this.listener = callback;
 }
Exemplo n.º 25
0
        private void buttonPut_Click(object sender, EventArgs e)
        {
            if (-1 != m_lSetFaceCfgHandle)
            {
                if (CHCNetSDK.NET_DVR_StopRemoteConfig(m_lSetFaceCfgHandle))
                {
                    m_lSetFaceCfgHandle = -1;
                }
            }
            CHCNetSDK.NET_DVR_FACE_PARAM_COND struCond = new CHCNetSDK.NET_DVR_FACE_PARAM_COND();
            struCond.dwSize                = (uint)Marshal.SizeOf(struCond);
            struCond.dwFaceNum             = 1;
            struCond.byFaceID              = 1;
            struCond.byEnableCardReader    = new byte[CHCNetSDK.MAX_CARD_READER_NUM_512];
            struCond.byEnableCardReader[0] = 1;
            if ("" == textBoxCardNo.Text)
            {
                MessageBox.Show("Please input the card number!");
                return;
            }
            struCond.byCardNo = new byte[CHCNetSDK.ACS_CARD_NO_LEN];
            byte[] byTempCardNo = System.Text.Encoding.UTF8.GetBytes(textBoxCardNo.Text);
            for (int i = 0; i < byTempCardNo.Length; i++)
            {
                if (i > struCond.byCardNo.Length)
                {
                    MessageBox.Show("card number length too long!");
                    return;
                }
                struCond.byCardNo[i] = byTempCardNo[i];
            }

            int    dwSize      = Marshal.SizeOf(struCond);
            IntPtr ptrStruCond = Marshal.AllocHGlobal(dwSize);

            Marshal.StructureToPtr(struCond, ptrStruCond, false);
            g_fSetFaceParamCallback = new CHCNetSDK.RemoteConfigCallback(ProcessSetFaceParamCallback);
            m_lSetFaceCfgHandle     = CHCNetSDK.NET_DVR_StartRemoteConfig(m_lUserID, CHCNetSDK.NET_DVR_SET_FACE_PARAM_CFG, ptrStruCond, dwSize, g_fSetFaceParamCallback, this.Handle);
            if (-1 == m_lSetFaceCfgHandle)
            {
                g_formList.AddLog(m_lDeviceIndex, AcsDemoPublic.OPERATION_FAIL_T, "NET_DVR_SET_FACE_PARAM_CFG");
            }
            else
            {
                g_formList.AddLog(m_lDeviceIndex, AcsDemoPublic.OPERATION_SUCC_T, "NET_DVR_SET_FACE_PARAM_CFG");
            }
            Marshal.FreeHGlobal(ptrStruCond);

            CHCNetSDK.NET_DVR_FACE_PARAM_CFG struFaceParamCfg = new CHCNetSDK.NET_DVR_FACE_PARAM_CFG();
            struFaceParamCfg.dwSize                = (uint)Marshal.SizeOf(struFaceParamCfg);
            struFaceParamCfg.byFaceID              = 1;
            struFaceParamCfg.byFaceDataType        = 1;
            struFaceParamCfg.byEnableCardReader    = new byte[CHCNetSDK.MAX_CARD_READER_NUM_512];
            struFaceParamCfg.byEnableCardReader[0] = 1;
            struFaceParamCfg.byCardNo              = new byte[CHCNetSDK.ACS_CARD_NO_LEN];
            byte[] byTempFaceCardNo = System.Text.Encoding.UTF8.GetBytes(textBoxCardNo.Text);
            for (int i = 0; i < byTempFaceCardNo.Length; i++)
            {
                if (i > struFaceParamCfg.byCardNo.Length)
                {
                    MessageBox.Show("card number length too long!");
                    return;
                }
                struFaceParamCfg.byCardNo[i] = byTempFaceCardNo[i];
            }

            if (!File.Exists(textBoxFacePicturePath.Text))
            {
                MessageBox.Show("The face picture does not exist!");
                return;
            }
            FileStream fs = new FileStream(textBoxFacePicturePath.Text, FileMode.OpenOrCreate);

            if (0 == fs.Length)
            {
                MessageBox.Show("The face picture is 0k,please input another picture!");
                return;
            }
            if (200 * 1024 < fs.Length)
            {
                MessageBox.Show("The face picture is larger than 200k,please input another picture!");
                return;
            }

            struFaceParamCfg.dwFaceLen = (uint)fs.Length;
            int iLen = (int)struFaceParamCfg.dwFaceLen;

            byte[] by = new byte[iLen];
            struFaceParamCfg.pFaceBuffer = Marshal.AllocHGlobal(iLen);
            fs.Read(by, 0, iLen);
            Marshal.Copy(by, 0, struFaceParamCfg.pFaceBuffer, iLen);
            fs.Close();

            uint   dwParamSize         = (uint)Marshal.SizeOf(struFaceParamCfg);
            IntPtr ptrStruFaceParamCfg = Marshal.AllocHGlobal((int)dwParamSize);

            Marshal.StructureToPtr(struFaceParamCfg, ptrStruFaceParamCfg, false);

            if (!CHCNetSDK.NET_DVR_SendRemoteConfig(m_lSetFaceCfgHandle, 9, ptrStruFaceParamCfg, dwParamSize))
            {
                g_formList.AddLog(m_lDeviceIndex, AcsDemoPublic.OPERATION_FAIL_T, "set face picture failed!");
            }

            Marshal.FreeHGlobal(struFaceParamCfg.pFaceBuffer);
            Marshal.FreeHGlobal(ptrStruFaceParamCfg);

            return;
        }
Exemplo n.º 26
0
        private void buttonObtainIndividual_Click(object sender, EventArgs e)
        {
            //just get only one,not one by one, so close link first
            if (-1 != m_lGetCardCfgHandle)
            {
                if (CHCNetSDK.NET_DVR_StopRemoteConfig(m_lGetCardCfgHandle))
                {
                    m_lGetCardCfgHandle = -1;
                }
            }

            CHCNetSDK.NET_DVR_CARD_CFG_SEND_DATA struSendData = new CHCNetSDK.NET_DVR_CARD_CFG_SEND_DATA();
            struSendData.dwSize = (uint)Marshal.SizeOf(struSendData);
            if (m_iSelectIndex < 0)
            {
                MessageBox.Show("Select list item first");
                return;
            }

            if (null == struSendData.byCardNo)
            {
                struSendData.byCardNo = GetSelItem().byCardNo;
            }
            else
            {
                string strTemp = System.Text.Encoding.UTF8.GetString(struSendData.byCardNo);
                GetSelItem(ref strTemp);
                struSendData.byCardNo = System.Text.Encoding.UTF8.GetBytes(strTemp);
            }
            CHCNetSDK.NET_DVR_CARD_CFG_COND struCond = new CHCNetSDK.NET_DVR_CARD_CFG_COND();
            struCond.dwSize    = (uint)Marshal.SizeOf(struCond);
            struCond.dwCardNum = 1;
            ushort.TryParse(textBoxControllerNo.Text, out struCond.wLocalControllerID);

            if (checkBoxCheckNumber.Checked)
            {
                struCond.byCheckCardNo = 1;
            }
            else
            {
                struCond.byCheckCardNo = 0;
            }

            int    dwSize      = Marshal.SizeOf(struCond);
            IntPtr ptrStruCond = Marshal.AllocHGlobal(dwSize);

            Marshal.StructureToPtr(struCond, ptrStruCond, false);
            g_fGetGatewayCardCallback = new CHCNetSDK.RemoteConfigCallback(ProcessGetGatewayCardCallback);
            m_lGetCardCfgHandle       = CHCNetSDK.NET_DVR_StartRemoteConfig(m_lUserID, CHCNetSDK.NET_DVR_GET_CARD_CFG_V50, ptrStruCond, dwSize, g_fGetGatewayCardCallback, this.Handle);
            if (-1 == m_lGetCardCfgHandle)
            {
                ListViewItem listItem = new ListViewItem();
                listItem.Text = "FAIL";
                string strTemp = string.Format("NET_DVR_GET_CARD_CFG_V50 FAIL, ERROR CODE {0}", CHCNetSDK.NET_DVR_GetLastError());
                listItem.SubItems.Add(strTemp);
                this.AddList(listViewMessage, listItem);
                Marshal.FreeHGlobal(ptrStruCond);
                return;
            }
            else
            {
                ListViewItem listItem = new ListViewItem();
                listItem.Text = "SUCC";
                listItem.SubItems.Add("NET_DVR_GET_CARD_CFG_V50");
                this.AddList(listViewMessage, listItem);
                uint   dwSizeData      = (uint)Marshal.SizeOf(struSendData);
                IntPtr ptrStruSendData = Marshal.AllocHGlobal((int)dwSizeData);
                Marshal.StructureToPtr(struSendData, ptrStruSendData, false);
                if (!CHCNetSDK.NET_DVR_SendRemoteConfig(m_lGetCardCfgHandle, 3, ptrStruSendData, dwSizeData))
                {
                    ListViewItem listItem2 = new ListViewItem();
                    listItem2.Text = "FAIL";
                    string strTemp = string.Format("NET_DVR_SendRemoteConfig ENUM_ACS_SEND_DATA FAIL, ERROR CODE {0}", CHCNetSDK.NET_DVR_GetLastError());
                    listItem2.SubItems.Add(strTemp);
                    this.AddList(listViewMessage, listItem2);
                }
                else
                {
                    ListViewItem listItem2 = new ListViewItem();
                    listItem2.Text = "SUCC";
                    listItem2.SubItems.Add("NET_DVR_SendRemoteConfig ENUM_ACS_SEND_DATA");
                    this.AddList(listViewMessage, listItem2);
                }
                Marshal.FreeHGlobal(ptrStruSendData);
            }
            Marshal.FreeHGlobal(ptrStruCond);
        }
Exemplo n.º 27
0
        private void buttonDeleteCard_Click(object sender, EventArgs e)
        {
            if (-1 != m_lSetCardCfgHandle)
            {
                if (CHCNetSDK.NET_DVR_StopRemoteConfig(m_lSetCardCfgHandle))
                {
                    m_lSetCardCfgHandle = -1;
                }
            }
            m_bSendOne           = true;
            m_struSelSendCardCfg = GetSelItem();
            if (0 == listViewGataManage.SelectedItems.Count)
            {
                MessageBox.Show("Select list item first");
                return;
            }
            CHCNetSDK.NET_DVR_CARD_CFG_COND struCond = new CHCNetSDK.NET_DVR_CARD_CFG_COND();
            struCond.dwSize    = (uint)Marshal.SizeOf(struCond);
            struCond.dwCardNum = 1;
            if (checkBoxCheckNumber.Checked)
            {
                struCond.byCheckCardNo = 1;
            }
            else
            {
                struCond.byCheckCardNo = 0;
            }
            m_BSendSel = true;
            int    dwSize      = Marshal.SizeOf(struCond);
            IntPtr ptrStruCond = Marshal.AllocHGlobal(dwSize);

            Marshal.StructureToPtr(struCond, ptrStruCond, false);
            g_fSetGatewayCardCallback = new CHCNetSDK.RemoteConfigCallback(ProcessSetGatewayCardCallback);
            m_lSetCardCfgHandle       = CHCNetSDK.NET_DVR_StartRemoteConfig(m_lUserID, CHCNetSDK.NET_DVR_SET_CARD_CFG_V50, ptrStruCond, dwSize, g_fSetGatewayCardCallback, this.Handle);
            if (-1 == m_lSetCardCfgHandle)
            {
                ListViewItem listItem = new ListViewItem();
                listItem.Text = "FAIL";
                string strTemp = string.Format("NET_DVR_SET_CARD_CFG_V50 FAIL, ERROR CODE {0}", CHCNetSDK.NET_DVR_GetLastError());
                listItem.SubItems.Add(strTemp);
                this.AddList(listViewMessage, listItem);
                Marshal.FreeHGlobal(ptrStruCond);
                return;
            }
            else
            {
                ListViewItem listItem = new ListViewItem();
                listItem.Text = "SUCC";
                listItem.SubItems.Add("NET_DVR_SET_CARD_CFG_V50");
                this.AddList(listViewMessage, listItem);
            }
            Marshal.FreeHGlobal(ptrStruCond);
            if (m_BSendSel)
            {
                m_dwCardNum   = 1;
                m_dwSendIndex = 0;
                m_struSelSendCardCfg.byCardValid = 0;
                SendCardData(m_struSelSendCardCfg);
                m_BSendSel           = false;
                m_struSelSendCardCfg = new CHCNetSDK.NET_DVR_CARD_CFG_V50();
                return;
            }
        }
Exemplo n.º 28
0
        /// <summary>
        /// 查询人脸数据
        /// </summary>
        /// <param name="message"></param>
        /// <param name="deviceIPAddr"></param>
        /// <param name="devicePort"></param>
        /// <param name="cardNo"></param>
        /// <param name="user"></param>
        /// <param name="password"></param>
        /// <param name="cbGetFacePara"></param>
        /// <returns></returns>
        public bool FaceQuery(
            out string message,
            string deviceIPAddr,
            int devicePort,
            string cardNo,
            string user     = "******",
            string password = "******",
            CHCNetSDK.RemoteConfigCallback cbGetFacePara = null)
        {
            bool ret = false;

            message = string.Empty;
            uint errCode = 0;
            int  iUserId = -1;
            //用户数据指针
            IntPtr ptrUserData = IntPtr.Zero;
            //长连接句柄
            int hndRemoteConfig = -1;

            #region init

            //初始化
            coreInfrastructure.NetDvrInit();

            //设置连接超时时间与重连功能
            //CHCNetSDK.NET_DVR_SetConnectTime(PreSettings.dwWaitTime, PreSettings.dwTryTimes);
            coreInfrastructure.NetDvrSetConnectTime(PreSettings.dwWaitTime, PreSettings.dwTryTimes);

            //CHCNetSDK.NET_DVR_SetReconnect(PreSettings.dwInterval, PreSettings.enableRecon);
            coreInfrastructure.NetDvrSetReconnect(PreSettings.dwInterval, PreSettings.enableRecon);

            #endregion

            #region login

            CHCNetSDK.NET_DVR_DEVICEINFO_V40 struDeviceInfoV40 = new CHCNetSDK.NET_DVR_DEVICEINFO_V40();

            //登录设备 Login the device
            iUserId = coreInfrastructure.NetDvrLoginV40(deviceIPAddr, devicePort, user, password, ref struDeviceInfoV40);

            if (iUserId < 0)
            {
                errCode = coreInfrastructure.NetDvrGetLastError();
                message = "NET_DVR_Login_V40 failed, error code= " + errCode; //登录失败,输出错误号
                coreInfrastructure.NetDvrCleanUp();
                return(false);
            }

            #endregion

            #region start remote config 启动长连接配置

            if (null == cbGetFacePara)
            {
                GetFaceParaDelegate = new CHCNetSDK.RemoteConfigCallback(ProcessFaceQueryCallback);
            }
            else
            {
                GetFaceParaDelegate = cbGetFacePara;
            }

            hndRemoteConfig = logicFaceManage.StartRemoteConfigForFaceQuery(iUserId, GetFaceParaDelegate, ptrUserData, cardNo);

            if (hndRemoteConfig < 0)
            {
                errCode = coreInfrastructure.NetDvrGetLastError();
                message = "NET_DVR_StartRemoteConfig, error code= " + errCode; //登录失败,输出错误号
                coreInfrastructure.NetDvrCleanUp();
                return(false);
            }

            #endregion

            System.Threading.Thread.Sleep(PreSettings.durationCallback);

            #region 获取数据

            ret = bGetFaceParamCfgFinish;

            #endregion

            #region 关闭长连接配置接口所创建的句柄,释放资源

            if (bGetFaceParamCfgFinish)
            {
                coreInfrastructure.NetDvrStopRemoteConfig(hndRemoteConfig);
            }

            bGetFaceParamCfgFinish = false;

            #endregion

            //System.Threading.Thread.Sleep(PreSettings.durationCallback);
            //注销用户
            //CHCNetSDK.NET_DVR_Logout(iUserId);
            coreInfrastructure.NetDvrLogout(iUserId);
            //释放 SDK 资源
            //CHCNetSDK.NET_DVR_Cleanup();
            coreInfrastructure.NetDvrCleanUp();


            return(ret);
        }