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); }
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)); }
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; } }
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); }
//指纹参数设置,建立长连接 //和指纹参数下发用同一个长连接句柄 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; } }
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; }
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; } }
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); }
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); } }
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); }
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; } }
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); } }
/// <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; } }
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); }
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; }
/// <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); }
//获取指纹,建立长连接 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; } }
/// <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); }
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(); }
/// <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); }
public void SetListener(CHCNetSDK.RemoteConfigCallback callback) { this.listener = callback; }
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; }
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); }
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; } }
/// <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); }