public string AddPerson(string IpAddress, string UserName, string Password, ushort Port, dynamic userInfo) { CHCNetSDK.NET_DVR_USER_LOGIN_INFO nET_DVR_USER_LOGIN_INFO = new CHCNetSDK.NET_DVR_USER_LOGIN_INFO(); nET_DVR_USER_LOGIN_INFO.sDeviceAddress = IpAddress; nET_DVR_USER_LOGIN_INFO.wPort = Port; nET_DVR_USER_LOGIN_INFO.sUserName = UserName; nET_DVR_USER_LOGIN_INFO.sPassword = Password; nET_DVR_USER_LOGIN_INFO.bUseAsynLogin = false; CHCNetSDK.NET_DVR_DEVICEINFO_V40 nET_DVR_DEVICEINFO_V40 = new CHCNetSDK.NET_DVR_DEVICEINFO_V40(); nET_DVR_DEVICEINFO_V40.struDeviceV30.sSerialNumber = new byte[CHCNetSDK.SERIALNO_LEN]; int userID = CHCNetSDK.NET_DVR_Login_V40(ref nET_DVR_USER_LOGIN_INFO, ref nET_DVR_DEVICEINFO_V40); string url = "PUT /ISAPI/AccessControl/UserInfo/SetUp?format=json"; CHCNetSDK.NET_DVR_XML_CONFIG_INPUT nET_DVR_XML_CONFIG_INPUT = new CHCNetSDK.NET_DVR_XML_CONFIG_INPUT(); Int32 nInSize = Marshal.SizeOf(nET_DVR_XML_CONFIG_INPUT); nET_DVR_XML_CONFIG_INPUT.dwSize = (uint)Marshal.SizeOf(nET_DVR_XML_CONFIG_INPUT); nET_DVR_XML_CONFIG_INPUT.lpRequestUrl = Marshal.StringToHGlobalAnsi(url); nET_DVR_XML_CONFIG_INPUT.dwRequestUrlLen = (uint)url.Length; var json = new { UserInfo = userInfo }; var strJson = JsonConvert.SerializeObject(json); nET_DVR_XML_CONFIG_INPUT.lpInBuffer = Marshal.StringToHGlobalAnsi(strJson); nET_DVR_XML_CONFIG_INPUT.dwInBufferSize = (uint)strJson.Length; CHCNetSDK.NET_DVR_XML_CONFIG_OUTPUT nET_DVR_XML_CONFIG_OUTPUT = new CHCNetSDK.NET_DVR_XML_CONFIG_OUTPUT(); nET_DVR_XML_CONFIG_OUTPUT.dwSize = (uint)Marshal.SizeOf(nET_DVR_XML_CONFIG_INPUT); nET_DVR_XML_CONFIG_OUTPUT.lpOutBuffer = Marshal.AllocHGlobal(3 * 1024 * 1024); nET_DVR_XML_CONFIG_OUTPUT.dwOutBufferSize = 3 * 1024 * 1024; nET_DVR_XML_CONFIG_OUTPUT.lpStatusBuffer = Marshal.AllocHGlobal(4096 * 4); nET_DVR_XML_CONFIG_OUTPUT.dwStatusSize = 4096 * 4; if (!NET_DVR_STDXMLConfig(userID, ref nET_DVR_XML_CONFIG_INPUT, ref nET_DVR_XML_CONFIG_OUTPUT)) { uint getLastError = CHCNetSDK.NET_DVR_GetLastError(); string errorStr = "NET_DVR_STDXMLConfig failed :" + getLastError; Console.WriteLine(errorStr); } string result = Marshal.PtrToStringAnsi(nET_DVR_XML_CONFIG_OUTPUT.lpOutBuffer); string outXML = Encoding.ASCII.GetString(Encoding.ASCII.GetBytes(result)); Console.WriteLine(outXML); string outStatus = Marshal.PtrToStringAnsi(nET_DVR_XML_CONFIG_OUTPUT.lpStatusBuffer); Console.WriteLine("Status Output:\n" + outStatus); Marshal.FreeHGlobal(nET_DVR_XML_CONFIG_INPUT.lpRequestUrl); Marshal.FreeHGlobal(nET_DVR_XML_CONFIG_OUTPUT.lpOutBuffer); Marshal.FreeHGlobal(nET_DVR_XML_CONFIG_OUTPUT.lpStatusBuffer); return("ok"); }
public string SearchPerson(string IpAddress, string UserName, string Password, ushort Port) { CHCNetSDK.NET_DVR_USER_LOGIN_INFO nET_DVR_USER_LOGIN_INFO = new CHCNetSDK.NET_DVR_USER_LOGIN_INFO(); nET_DVR_USER_LOGIN_INFO.sDeviceAddress = IpAddress; nET_DVR_USER_LOGIN_INFO.wPort = Port; nET_DVR_USER_LOGIN_INFO.sUserName = UserName; nET_DVR_USER_LOGIN_INFO.sPassword = Password; nET_DVR_USER_LOGIN_INFO.bUseAsynLogin = false; CHCNetSDK.NET_DVR_DEVICEINFO_V40 nET_DVR_DEVICEINFO_V40 = new CHCNetSDK.NET_DVR_DEVICEINFO_V40(); nET_DVR_DEVICEINFO_V40.struDeviceV30.sSerialNumber = new byte[CHCNetSDK.SERIALNO_LEN]; int userID = CHCNetSDK.NET_DVR_Login_V40(ref nET_DVR_USER_LOGIN_INFO, ref nET_DVR_DEVICEINFO_V40); string url = "POST /ISAPI/AccessControl/UserInfo/Search?format=json"; CHCNetSDK.NET_DVR_XML_CONFIG_INPUT nET_DVR_XML_CONFIG_INPUT = new CHCNetSDK.NET_DVR_XML_CONFIG_INPUT(); Int32 nInSize = Marshal.SizeOf(nET_DVR_XML_CONFIG_INPUT); nET_DVR_XML_CONFIG_INPUT.dwSize = (uint)nInSize; nET_DVR_XML_CONFIG_INPUT.lpRequestUrl = Marshal.StringToHGlobalAnsi(url); nET_DVR_XML_CONFIG_INPUT.dwRequestUrlLen = (uint)url.Length; var userInfoSearchCond = new { searchID = "0", searchResultPosition = 0, maxResults = 50 }; var json = new { UserInfoSearchCond = userInfoSearchCond }; var strJson = JsonConvert.SerializeObject(json); nET_DVR_XML_CONFIG_INPUT.lpInBuffer = Marshal.StringToHGlobalAnsi(strJson); nET_DVR_XML_CONFIG_INPUT.dwInBufferSize = (uint)strJson.Length; // reserve space for return data CHCNetSDK.NET_DVR_XML_CONFIG_OUTPUT nET_DVR_XML_CONFIG_OUTPUT = new CHCNetSDK.NET_DVR_XML_CONFIG_OUTPUT(); nET_DVR_XML_CONFIG_OUTPUT.dwSize = (uint)Marshal.SizeOf(nET_DVR_XML_CONFIG_INPUT); nET_DVR_XML_CONFIG_OUTPUT.lpOutBuffer = Marshal.AllocHGlobal(3 * 1024 * 1024); nET_DVR_XML_CONFIG_OUTPUT.dwOutBufferSize = 3 * 1024 * 1024; nET_DVR_XML_CONFIG_OUTPUT.lpStatusBuffer = Marshal.AllocHGlobal(4096 * 4); nET_DVR_XML_CONFIG_OUTPUT.dwStatusSize = 4096 * 4; if (!NET_DVR_STDXMLConfig(userID, ref nET_DVR_XML_CONFIG_INPUT, ref nET_DVR_XML_CONFIG_OUTPUT)) { uint getLastError = CHCNetSDK.NET_DVR_GetLastError(); string errorStr = "NET_DVR_STDXMLConfig failed :" + getLastError; Console.WriteLine(errorStr); } string result = Marshal.PtrToStringAnsi(nET_DVR_XML_CONFIG_OUTPUT.lpOutBuffer); Console.WriteLine(result); Marshal.FreeHGlobal(nET_DVR_XML_CONFIG_INPUT.lpRequestUrl); Marshal.FreeHGlobal(nET_DVR_XML_CONFIG_OUTPUT.lpOutBuffer); Marshal.FreeHGlobal(nET_DVR_XML_CONFIG_OUTPUT.lpStatusBuffer); return(result); }
//Face Recognize Mode check/set public void RecogMode(string IpAddress, string UserName, string Password, ushort Port) { Auth(IpAddress, UserName, Password, Port); nET_DVR_DEVICEINFO_V40.struDeviceV30.sSerialNumber = new byte[CHCNetSDK.SERIALNO_LEN]; int userID = CHCNetSDK.NET_DVR_Login_V40(ref nET_DVR_USER_LOGIN_INFO, ref nET_DVR_DEVICEINFO_V40); string url = "PUT /ISAPI/AccessControl/FaceRecognizeMode?format=json"; CHCNetSDK.NET_DVR_XML_CONFIG_INPUT nET_DVR_XML_CONFIG_INPUT = new CHCNetSDK.NET_DVR_XML_CONFIG_INPUT(); Int32 nInSize = Marshal.SizeOf(nET_DVR_XML_CONFIG_INPUT); nET_DVR_XML_CONFIG_INPUT.dwSize = (uint)nInSize; nET_DVR_XML_CONFIG_INPUT.lpRequestUrl = Marshal.StringToHGlobalAnsi(url); nET_DVR_XML_CONFIG_INPUT.dwRequestUrlLen = (uint)url.Length; var faceRecognizeMode = new { mode = "normalMode" }; var json = new { FaceRecognizeMode = faceRecognizeMode }; var strJson = JsonConvert.SerializeObject(json); nET_DVR_XML_CONFIG_INPUT.lpInBuffer = Marshal.StringToHGlobalAnsi(strJson); nET_DVR_XML_CONFIG_INPUT.dwInBufferSize = (uint)strJson.Length; // reserve space for return data CHCNetSDK.NET_DVR_XML_CONFIG_OUTPUT nET_DVR_XML_CONFIG_OUTPUT = new CHCNetSDK.NET_DVR_XML_CONFIG_OUTPUT(); nET_DVR_XML_CONFIG_OUTPUT.dwSize = (uint)Marshal.SizeOf(nET_DVR_XML_CONFIG_INPUT); nET_DVR_XML_CONFIG_OUTPUT.lpOutBuffer = Marshal.AllocHGlobal(3 * 1024 * 1024); nET_DVR_XML_CONFIG_OUTPUT.dwOutBufferSize = 3 * 1024 * 1024; nET_DVR_XML_CONFIG_OUTPUT.lpStatusBuffer = Marshal.AllocHGlobal(4096 * 4); nET_DVR_XML_CONFIG_OUTPUT.dwStatusSize = 4096 * 4; if (!NET_DVR_STDXMLConfig(userID, ref nET_DVR_XML_CONFIG_INPUT, ref nET_DVR_XML_CONFIG_OUTPUT)) { uint getLastError = CHCNetSDK.NET_DVR_GetLastError(); string errorStr = "NET_DVR_STDXMLConfig failed :" + getLastError; Console.WriteLine(errorStr); } string result = Marshal.PtrToStringAnsi(nET_DVR_XML_CONFIG_OUTPUT.lpOutBuffer); string outXML = Encoding.ASCII.GetString(Encoding.ASCII.GetBytes(result)); Console.WriteLine(outXML); string outStatus = Marshal.PtrToStringAnsi(nET_DVR_XML_CONFIG_OUTPUT.lpStatusBuffer); Console.WriteLine("Status Output:\n" + outStatus); Marshal.FreeHGlobal(nET_DVR_XML_CONFIG_INPUT.lpRequestUrl); Marshal.FreeHGlobal(nET_DVR_XML_CONFIG_OUTPUT.lpOutBuffer); Marshal.FreeHGlobal(nET_DVR_XML_CONFIG_OUTPUT.lpStatusBuffer); }
public void GetFaceLib(string IpAddress, string UserName, string Password, ushort Port) { Auth(IpAddress, UserName, Password, Port); nET_DVR_DEVICEINFO_V40.struDeviceV30.sSerialNumber = new byte[CHCNetSDK.SERIALNO_LEN]; int userID = CHCNetSDK.NET_DVR_Login_V40(ref nET_DVR_USER_LOGIN_INFO, ref nET_DVR_DEVICEINFO_V40); string url = "GET /ISAPI/Intelligent/FDLib?format=json"; CHCNetSDK.NET_DVR_XML_CONFIG_INPUT nET_DVR_XML_CONFIG_INPUT = new CHCNetSDK.NET_DVR_XML_CONFIG_INPUT(); Int32 nInSize = Marshal.SizeOf(nET_DVR_XML_CONFIG_INPUT); nET_DVR_XML_CONFIG_INPUT.dwSize = (uint)nInSize; nET_DVR_XML_CONFIG_INPUT.lpRequestUrl = Marshal.StringToHGlobalAnsi(url); nET_DVR_XML_CONFIG_INPUT.dwRequestUrlLen = (uint)url.Length; /* var cardInfoSearchCond = new { searchID = "0", searchResultPosition = 0, maxResults = 50 }; * var json = new { CardInfoSearchCond = cardInfoSearchCond }; * var strJson = JsonConvert.SerializeObject(json); * * nET_DVR_XML_CONFIG_INPUT.lpInBuffer = Marshal.StringToHGlobalAnsi(strJson); * nET_DVR_XML_CONFIG_INPUT.dwInBufferSize = (uint)strJson.Length;*/ // reserve space for return data CHCNetSDK.NET_DVR_XML_CONFIG_OUTPUT nET_DVR_XML_CONFIG_OUTPUT = new CHCNetSDK.NET_DVR_XML_CONFIG_OUTPUT(); nET_DVR_XML_CONFIG_OUTPUT.dwSize = (uint)Marshal.SizeOf(nET_DVR_XML_CONFIG_INPUT); nET_DVR_XML_CONFIG_OUTPUT.lpOutBuffer = Marshal.AllocHGlobal(3 * 1024 * 1024); nET_DVR_XML_CONFIG_OUTPUT.dwOutBufferSize = 3 * 1024 * 1024; nET_DVR_XML_CONFIG_OUTPUT.lpStatusBuffer = Marshal.AllocHGlobal(4096 * 4); nET_DVR_XML_CONFIG_OUTPUT.dwStatusSize = 4096 * 4; if (!NET_DVR_STDXMLConfig(userID, ref nET_DVR_XML_CONFIG_INPUT, ref nET_DVR_XML_CONFIG_OUTPUT)) { uint getLastError = CHCNetSDK.NET_DVR_GetLastError(); string errorStr = "NET_DVR_STDXMLConfig failed :" + getLastError; Console.WriteLine(errorStr); } string result = Marshal.PtrToStringAnsi(nET_DVR_XML_CONFIG_OUTPUT.lpOutBuffer); Console.WriteLine(result); Marshal.FreeHGlobal(nET_DVR_XML_CONFIG_INPUT.lpRequestUrl); Marshal.FreeHGlobal(nET_DVR_XML_CONFIG_OUTPUT.lpOutBuffer); Marshal.FreeHGlobal(nET_DVR_XML_CONFIG_OUTPUT.lpStatusBuffer); }
private void btnXML_Click(object sender, EventArgs e) { CHCNetSDK.NET_DVR_XML_CONFIG_INPUT pInputXml = new CHCNetSDK.NET_DVR_XML_CONFIG_INPUT(); Int32 nInSize = Marshal.SizeOf(pInputXml); pInputXml.dwSize = (uint)nInSize; string strRequestUrl = textBoxRequest.Text; uint dwRequestUrlLen = (uint)strRequestUrl.Length; pInputXml.lpRequestUrl = Marshal.StringToHGlobalAnsi(strRequestUrl); pInputXml.dwRequestUrlLen = dwRequestUrlLen; string strInputParam = textBoxInXML.Text; pInputXml.lpInBuffer = Marshal.StringToHGlobalAnsi(strInputParam); pInputXml.dwInBufferSize = (uint)strInputParam.Length; CHCNetSDK.NET_DVR_XML_CONFIG_OUTPUT pOutputXml = new CHCNetSDK.NET_DVR_XML_CONFIG_OUTPUT(); pOutputXml.dwSize = (uint)Marshal.SizeOf(pInputXml); pOutputXml.lpOutBuffer = Marshal.AllocHGlobal(3 * 1024 * 1024); pOutputXml.dwOutBufferSize = 3 * 1024 * 1024; pOutputXml.lpStatusBuffer = Marshal.AllocHGlobal(4096 * 4); pOutputXml.dwStatusSize = 4096 * 4; if (!CHCNetSDK.NET_DVR_STDXMLConfig(m_lUserID, ref pInputXml, ref pOutputXml)) { iLastErr = CHCNetSDK.NET_DVR_GetLastError(); strErr = "NET_DVR_STDXMLConfig failed, error code= " + iLastErr; //XML透传失败,输出错误号 Failed to send XML data and output the error code MessageBox.Show(strErr); } string strOutputParam = Marshal.PtrToStringAnsi(pOutputXml.lpOutBuffer); textBoxOutXML.Text = Encoding.ASCII.GetString(Encoding.ASCII.GetBytes(strOutputParam)); textBoxStatus.Text = Marshal.PtrToStringAnsi(pOutputXml.lpStatusBuffer); Marshal.FreeHGlobal(pInputXml.lpRequestUrl); Marshal.FreeHGlobal(pOutputXml.lpOutBuffer); Marshal.FreeHGlobal(pOutputXml.lpStatusBuffer); }
public static extern bool NET_DVR_STDXMLConfig(int iUserID, ref CHCNetSDK.NET_DVR_XML_CONFIG_INPUT lpInputParam, ref CHCNetSDK.NET_DVR_XML_CONFIG_OUTPUT lpOutputParam);
public string XMLTransparent(string IpAddress, string UserName, string Password, ushort Port) { CHCNetSDK.NET_DVR_USER_LOGIN_INFO struLoginInfo = new CHCNetSDK.NET_DVR_USER_LOGIN_INFO(); CHCNetSDK.NET_DVR_DEVICEINFO_V40 struDeviceInfoV40 = new CHCNetSDK.NET_DVR_DEVICEINFO_V40(); struDeviceInfoV40.struDeviceV30.sSerialNumber = new byte[CHCNetSDK.SERIALNO_LEN]; struLoginInfo.bUseAsynLogin = false; struLoginInfo.sDeviceAddress = IpAddress; struLoginInfo.sUserName = UserName; struLoginInfo.sPassword = Password; struLoginInfo.wPort = Port; //string url = "GET /ISAPI/System/time"; string url = "POST /ISAPI/AccessControl/UserInfo/Search?format=json"; int userID = CHCNetSDK.NET_DVR_Login_V40(ref struLoginInfo, ref struDeviceInfoV40); CHCNetSDK.NET_DVR_XML_CONFIG_INPUT pInputXml = new CHCNetSDK.NET_DVR_XML_CONFIG_INPUT(); Int32 nInSize = Marshal.SizeOf(pInputXml); pInputXml.dwSize = (uint)nInSize; // add request url string strRequestUrl = url; uint dwRequestUrlLen = (uint)strRequestUrl.Length; pInputXml.lpRequestUrl = Marshal.StringToHGlobalAnsi(strRequestUrl); pInputXml.dwRequestUrlLen = dwRequestUrlLen; // var userInfoSearchCond = new { searchID = "1", searchResultPosition = 0, maxResults = 100 }; //string userInfo1 = JsonConvert.SerializeObject(userInfoSearchCond); var json = new { UserInfoSearchCond = userInfoSearchCond }; string jsonStr = JsonConvert.SerializeObject(json); //convert object -> string Console.WriteLine(jsonStr); // add input parameters string strInputParam = jsonStr; pInputXml.lpInBuffer = Marshal.StringToHGlobalAnsi(strInputParam); pInputXml.dwInBufferSize = (uint)strInputParam.Length; // // reserve space for return data CHCNetSDK.NET_DVR_XML_CONFIG_OUTPUT pOutputXml = new CHCNetSDK.NET_DVR_XML_CONFIG_OUTPUT(); pOutputXml.dwSize = (uint)Marshal.SizeOf(pInputXml); pOutputXml.lpOutBuffer = Marshal.AllocHGlobal(3 * 1024 * 1024); pOutputXml.dwOutBufferSize = 3 * 1024 * 1024; pOutputXml.lpStatusBuffer = Marshal.AllocHGlobal(4096 * 4); //pOutputXml.dwStatusSize = 4096 * 4; // if (!NET_DVR_STDXMLConfig(userID, ref pInputXml, ref pOutputXml)) { uint iLastErr = CHCNetSDK.NET_DVR_GetLastError(); string strErr = "NET_DVR_STDXMLConfig failed, error code= " + iLastErr; // Failed to send XML data and output the error code Console.WriteLine(strErr); } string strOutputParam = Marshal.PtrToStringAnsi(pOutputXml.lpOutBuffer); //Console.WriteLine("Output param: {0}", strOutputParam); // display in json format in console string outXML = Encoding.ASCII.GetString(Encoding.ASCII.GetBytes(strOutputParam)); //Console.WriteLine("XML Output:\n" + outXML); string outStatus = Marshal.PtrToStringAnsi(pOutputXml.lpStatusBuffer); //Console.WriteLine("Status Output:\n" + outStatus); dynamic json2 = JsonConvert.DeserializeObject(outXML);//conver string -> object //Console.WriteLine("response status str: {0}", json2.UserInfoSearch.responseStatusStrg); JArray UserInfoList = json2.UserInfoSearch.UserInfo; foreach (dynamic userInfo in UserInfoList) { //Console.WriteLine(userInfo); dynamic param = userInfo; Console.WriteLine("employeeNo: {0}", param.employeeNo); Console.WriteLine("employeeName: {0}", param.name); Console.WriteLine("employeeType: {0}", param.userType); dynamic param2 = param.Valid; Console.WriteLine("begiTime: {0}", param2.beginTime); Console.WriteLine("password: {0}", param.password); } Marshal.FreeHGlobal(pInputXml.lpRequestUrl); Marshal.FreeHGlobal(pOutputXml.lpOutBuffer); Marshal.FreeHGlobal(pOutputXml.lpStatusBuffer); return(strOutputParam); }
public void SetFace(string IpAddress, string UserName, string Password, ushort Port) { Auth(IpAddress, UserName, Password, Port); nET_DVR_DEVICEINFO_V40.struDeviceV30.sSerialNumber = new byte[CHCNetSDK.SERIALNO_LEN]; int userID = CHCNetSDK.NET_DVR_Login_V40(ref nET_DVR_USER_LOGIN_INFO, ref nET_DVR_DEVICEINFO_V40); string url = "PUT /ISAPI/Intelligent/FDLib/FDSetUp?format=json"; CHCNetSDK.NET_DVR_XML_CONFIG_INPUT nET_DVR_XML_CONFIG_INPUT = new CHCNetSDK.NET_DVR_XML_CONFIG_INPUT(); Int32 nInSize = Marshal.SizeOf(nET_DVR_XML_CONFIG_INPUT); nET_DVR_XML_CONFIG_INPUT.dwSize = (uint)nInSize; nET_DVR_XML_CONFIG_INPUT.lpRequestUrl = Marshal.StringToHGlobalAnsi(url); nET_DVR_XML_CONFIG_INPUT.dwRequestUrlLen = (uint)url.Length; string strpath = null; strpath = string.Format("capture.jpg", Environment.CurrentDirectory); if (!File.Exists(strpath)) { Console.WriteLine("file does not exist!"); } else { Console.WriteLine("file exist!"); } var json = new { faceURL = "http://10.17.105.138/capture.jpg", faceLibType = "blackFD", FDID = "1", FPID = "1", //deleteFP = true, name = "jakcun", bornTime = "2004-05-03" }; var strJson = JsonConvert.SerializeObject(json); nET_DVR_XML_CONFIG_INPUT.lpInBuffer = Marshal.StringToHGlobalAnsi(strJson); nET_DVR_XML_CONFIG_INPUT.dwInBufferSize = (uint)strJson.Length; // reserve space for return data CHCNetSDK.NET_DVR_XML_CONFIG_OUTPUT nET_DVR_XML_CONFIG_OUTPUT = new CHCNetSDK.NET_DVR_XML_CONFIG_OUTPUT(); nET_DVR_XML_CONFIG_OUTPUT.dwSize = (uint)Marshal.SizeOf(nET_DVR_XML_CONFIG_INPUT); nET_DVR_XML_CONFIG_OUTPUT.lpOutBuffer = Marshal.AllocHGlobal(3 * 1024 * 1024); nET_DVR_XML_CONFIG_OUTPUT.dwOutBufferSize = 3 * 1024 * 1024; nET_DVR_XML_CONFIG_OUTPUT.lpStatusBuffer = Marshal.AllocHGlobal(4096 * 4); nET_DVR_XML_CONFIG_OUTPUT.dwStatusSize = 4096 * 4; if (!NET_DVR_STDXMLConfig(userID, ref nET_DVR_XML_CONFIG_INPUT, ref nET_DVR_XML_CONFIG_OUTPUT)) { uint getLastError = CHCNetSDK.NET_DVR_GetLastError(); string errorStr = "NET_DVR_STDXMLConfig failed :" + getLastError; Console.WriteLine(errorStr); } string result = Marshal.PtrToStringAnsi(nET_DVR_XML_CONFIG_OUTPUT.lpOutBuffer); string outXML = Encoding.ASCII.GetString(Encoding.ASCII.GetBytes(result)); Console.WriteLine(outXML); string outStatus = Marshal.PtrToStringAnsi(nET_DVR_XML_CONFIG_OUTPUT.lpStatusBuffer); Console.WriteLine("Status Output:\n" + outStatus); Marshal.FreeHGlobal(nET_DVR_XML_CONFIG_INPUT.lpRequestUrl); Marshal.FreeHGlobal(nET_DVR_XML_CONFIG_OUTPUT.lpOutBuffer); Marshal.FreeHGlobal(nET_DVR_XML_CONFIG_OUTPUT.lpStatusBuffer); }
private void buttonGetByFDID_Click(object sender, EventArgs e) { IntPtr ptrOutBuf = Marshal.AllocHGlobal(1024); IntPtr ptrStatusBuffer = Marshal.AllocHGlobal(1024); for (int i = 0; i < 1024; i++) { Marshal.WriteByte(ptrOutBuf, i, 0); Marshal.WriteByte(ptrStatusBuffer, i, 0); } CHCNetSDK.NET_DVR_XML_CONFIG_INPUT struInput = new CHCNetSDK.NET_DVR_XML_CONFIG_INPUT(); CHCNetSDK.NET_DVR_XML_CONFIG_OUTPUT struOuput = new CHCNetSDK.NET_DVR_XML_CONFIG_OUTPUT(); string libType = (comboBoxLibType.SelectedIndex == 0) ? "blackFD" : "infraredFD"; string sUrl = "GET /ISAPI/Intelligent/FDLib/Count?format=json&FDID=" + textBoxFDID3.Text + "&faceLibType=" + libType; IntPtr ptrURL = Marshal.StringToHGlobalAnsi(sUrl); struInput.dwSize = (uint)Marshal.SizeOf(struInput); struInput.lpRequestUrl = ptrURL; struInput.dwRequestUrlLen = (uint)sUrl.Length; struOuput.dwSize = (uint)Marshal.SizeOf(struOuput); struOuput.lpOutBuffer = ptrOutBuf; struOuput.dwOutBufferSize = 1024; struOuput.lpStatusBuffer = ptrStatusBuffer; struOuput.dwStatusSize = 1024; IntPtr ptrInput = Marshal.AllocHGlobal(Marshal.SizeOf(struInput)); Marshal.StructureToPtr(struInput, ptrInput, false); IntPtr ptrOuput = Marshal.AllocHGlobal(Marshal.SizeOf(struOuput)); Marshal.StructureToPtr(struOuput, ptrOuput, false); if (!CHCNetSDK.NET_DVR_STDXMLConfig(m_lUserID, ptrInput, ptrOuput)) { ListViewItem listItem = new ListViewItem(); listItem.Text = "Fail"; string strTemp = string.Format("Get Face Record Count Fail,Error Code={0}", CHCNetSDK.NET_DVR_GetLastError()); listItem.SubItems.Add(strTemp); this.AddList(listViewMessage, listItem); } else { ListViewItem listItem = new ListViewItem(); listItem.Text = "Succ"; string strTemp = string.Format("Get Face Record Count Success"); listItem.SubItems.Add(strTemp); this.AddList(listViewMessage, listItem); string strFaceRecordCount = Marshal.PtrToStringAnsi(struOuput.lpOutBuffer); CFaceRecordCount JsonFaceRecordCount = new CFaceRecordCount(); JsonFaceRecordCount = JsonConvert.DeserializeObject <CFaceRecordCount>(strFaceRecordCount); int iRecordDataNumber = JsonFaceRecordCount.recordDataNumber; textBoxRecordDataNumber.Text = iRecordDataNumber.ToString(); } Marshal.FreeHGlobal(ptrOutBuf); Marshal.FreeHGlobal(ptrStatusBuffer); Marshal.FreeHGlobal(ptrInput); Marshal.FreeHGlobal(ptrOuput); Marshal.FreeHGlobal(ptrURL); }
private void DeleteFaceRecord() { IntPtr ptrOutBuf = Marshal.AllocHGlobal(1024); IntPtr ptrStatusBuffer = Marshal.AllocHGlobal(1024); for (int i = 0; i < 1024; i++) { Marshal.WriteByte(ptrOutBuf, i, 0); Marshal.WriteByte(ptrStatusBuffer, i, 0); } CHCNetSDK.NET_DVR_XML_CONFIG_INPUT struInput = new CHCNetSDK.NET_DVR_XML_CONFIG_INPUT(); CHCNetSDK.NET_DVR_XML_CONFIG_OUTPUT struOuput = new CHCNetSDK.NET_DVR_XML_CONFIG_OUTPUT(); string libType = (comboBoxLibType.SelectedIndex == 0) ? "blackFD" : "infraredFD"; string sUrl = "PUT /ISAPI/Intelligent/FDLib/FDSearch/Delete?format=json&FDID=" + textBoxFDID2.Text + "&faceLibType=" + libType; IntPtr ptrURL = Marshal.StringToHGlobalAnsi(sUrl); struInput.dwSize = (uint)Marshal.SizeOf(struInput); struInput.lpRequestUrl = ptrURL; struInput.dwRequestUrlLen = (uint)sUrl.Length; CFaceRecordDelete JsonFaceRecordDelete = new CFaceRecordDelete(); JsonFaceRecordDelete.FPID = new List <CFPID>(); if (!m_bDeleteAll) { foreach (ListViewItem item in this.listViewFPID.Items) { if (item.SubItems[1].Text != "") { CFPID singleFPID = new CFPID(); singleFPID.value = item.SubItems[1].Text; JsonFaceRecordDelete.FPID.Add(singleFPID); } } } string strFaceRecordDelete = JsonConvert.SerializeObject(JsonFaceRecordDelete); IntPtr ptrInBuffer = Marshal.StringToHGlobalAnsi(strFaceRecordDelete); struInput.lpInBuffer = ptrInBuffer; struInput.dwInBufferSize = (uint)strFaceRecordDelete.Length; struOuput.dwSize = (uint)Marshal.SizeOf(struOuput); struOuput.lpOutBuffer = ptrOutBuf; struOuput.dwOutBufferSize = 1024; struOuput.lpStatusBuffer = ptrStatusBuffer; struOuput.dwStatusSize = 1024; IntPtr ptrInput = Marshal.AllocHGlobal(Marshal.SizeOf(struInput)); Marshal.StructureToPtr(struInput, ptrInput, false); IntPtr ptrOuput = Marshal.AllocHGlobal(Marshal.SizeOf(struOuput)); Marshal.StructureToPtr(struOuput, ptrOuput, false); if (!CHCNetSDK.NET_DVR_STDXMLConfig(m_lUserID, ptrInput, ptrOuput)) { ListViewItem listItem = new ListViewItem(); listItem.Text = "Fail"; string strTemp = string.Format("Delete Face Record Fail,Error Code={0}", CHCNetSDK.NET_DVR_GetLastError()); listItem.SubItems.Add(strTemp); this.AddList(listViewMessage, listItem); } else { ListViewItem listItem = new ListViewItem(); listItem.Text = "Succ"; string strTemp = string.Format("Delete Face Record Success"); listItem.SubItems.Add(strTemp); this.AddList(listViewMessage, listItem); string strResponseStatus = Marshal.PtrToStringAnsi(struOuput.lpOutBuffer); CResponseStatus JsonResponseStatus = new CResponseStatus(); JsonResponseStatus = JsonConvert.DeserializeObject <CResponseStatus>(strResponseStatus); } Marshal.FreeHGlobal(ptrOutBuf); Marshal.FreeHGlobal(ptrStatusBuffer); Marshal.FreeHGlobal(ptrInBuffer); Marshal.FreeHGlobal(ptrInput); Marshal.FreeHGlobal(ptrOuput); Marshal.FreeHGlobal(ptrURL); }
/// <summary> /// 设置参数 /// </summary> /// <param name="distance">距离</param> /// <param name="emissivity">发射率</param> /// <param name="reflectedTemperature">反射温度</param> /// <returns></returns> private Boolean Config(Single distance, Single emissivity, Single reflectedTemperature) { Int32 channelId = 1; IntPtr lpOutputXml = Marshal.AllocHGlobal(1024 * 1024); CHCNetSDK.NET_DVR_STD_ABILITY struSTDAbility = new CHCNetSDK.NET_DVR_STD_ABILITY(); struSTDAbility.lpCondBuffer = new IntPtr(channelId); struSTDAbility.dwCondSize = sizeof(Int32); struSTDAbility.lpOutBuffer = lpOutputXml; struSTDAbility.dwOutSize = 1024 * 1024; struSTDAbility.lpStatusBuffer = lpOutputXml; struSTDAbility.dwStatusSize = 1024 * 1024; if (!CHCNetSDK.NET_DVR_GetSTDAbility(mUserId, CHCNetSDK.NET_DVR_GET_THERMAL_CAPABILITIES, ref struSTDAbility)) { Marshal.FreeHGlobal(lpOutputXml); lpOutputXml = IntPtr.Zero; return(false); } CHCNetSDK.NET_DVR_XML_CONFIG_INPUT struInput = new CHCNetSDK.NET_DVR_XML_CONFIG_INPUT(); CHCNetSDK.NET_DVR_XML_CONFIG_OUTPUT struOuput = new CHCNetSDK.NET_DVR_XML_CONFIG_OUTPUT(); struInput.dwSize = (uint)Marshal.SizeOf(struInput); struOuput.dwSize = (uint)Marshal.SizeOf(struOuput); struOuput.lpOutBuffer = lpOutputXml; struOuput.dwOutBufferSize = 1024 * 1024; string szUrl = "GET /ISAPI/Thermal/channels/1/streamParam/capabilities"; struInput.lpRequestUrl = szUrl; struInput.dwRequestUrlLen = (uint)szUrl.Length; struInput.lpInBuffer = null; struInput.dwInBufferSize = 0; if (!CHCNetSDK.NET_DVR_STDXMLConfig(mUserId, ref struInput, ref struOuput)) { Marshal.FreeHGlobal(lpOutputXml); lpOutputXml = IntPtr.Zero; return(false); } szUrl = "GET /ISAPI/Thermal/channels/1/streamParam"; struInput.lpRequestUrl = szUrl; struInput.dwRequestUrlLen = (uint)szUrl.Length; struInput.lpInBuffer = null; struInput.dwInBufferSize = 0; if (!CHCNetSDK.NET_DVR_STDXMLConfig(mUserId, ref struInput, ref struOuput)) { Marshal.FreeHGlobal(lpOutputXml); lpOutputXml = IntPtr.Zero; return(false); } szUrl = "PUT /ISAPI/Thermal/channels/1/streamParam"; struInput.lpRequestUrl = szUrl; struInput.dwRequestUrlLen = (uint)szUrl.Length; string szThermalStreamParam = "<ThermalStreamParam version=\"2.0\" xmlns=\"http://www.isapi.org/ver20/XMLSchema\"><videoCodingType>pixel-to-pixel_thermometry_data</videoCodingType></ThermalStreamParam>"; struInput.lpInBuffer = szThermalStreamParam; struInput.dwInBufferSize = (uint)szThermalStreamParam.Length; if (!CHCNetSDK.NET_DVR_STDXMLConfig(mUserId, ref struInput, ref struOuput)) { Marshal.FreeHGlobal(lpOutputXml); lpOutputXml = IntPtr.Zero; return(false); } szUrl = "GET /ISAPI/Thermal/channels/1/thermometry/pixelToPixelParam/capabilities"; struInput.lpRequestUrl = szUrl; struInput.dwRequestUrlLen = (uint)szUrl.Length; struInput.lpInBuffer = null; struInput.dwInBufferSize = 0; if (!CHCNetSDK.NET_DVR_STDXMLConfig(mUserId, ref struInput, ref struOuput)) { Marshal.FreeHGlobal(lpOutputXml); lpOutputXml = IntPtr.Zero; return(false); } szUrl = "GET /ISAPI/Thermal/channels/1/thermometry/pixelToPixelParam"; struInput.lpRequestUrl = szUrl; struInput.dwRequestUrlLen = (uint)szUrl.Length; struInput.lpInBuffer = null; struInput.dwInBufferSize = 0; if (!CHCNetSDK.NET_DVR_STDXMLConfig(mUserId, ref struInput, ref struOuput)) { Marshal.FreeHGlobal(lpOutputXml); lpOutputXml = IntPtr.Zero; return(false); } szUrl = "GET /ISAPI/Thermal/channels/1/thermometry/pixelToPixelParam"; struInput.lpRequestUrl = szUrl; struInput.dwRequestUrlLen = (uint)szUrl.Length; string szPixelToPixelParamFormat = "<?xml version=\"1.0\" encoding=\"UTF - 8\"?>" + "<PixelToPixelParam version = \"2.0\" xmlns = \"http://www.hikvision.com/ver20/XMLSchema\">" + "<id>1</id>" + "<maxFrameRate>0</maxFrameRate>" + "<reflectiveEnable>false</reflectiveEnable>" + "<reflectiveTemperature>{0:F2}</reflectiveTemperature>" + "<emissivity>{1:F2}</emissivity>" + "<distance>{2:D}</distance>" + "<refreshInterval>0</refreshInterval>" + "</PixelToPixelParam>"; string szPixelToPixelParam = string.Format(szPixelToPixelParamFormat, reflectedTemperature, emissivity, (Int32)distance); struInput.lpInBuffer = szPixelToPixelParam; struInput.dwInBufferSize = (uint)szPixelToPixelParam.Length; if (!CHCNetSDK.NET_DVR_STDXMLConfig(mUserId, ref struInput, ref struOuput)) { Marshal.FreeHGlobal(lpOutputXml); lpOutputXml = IntPtr.Zero; return(false); } Marshal.FreeHGlobal(lpOutputXml); lpOutputXml = IntPtr.Zero; CHCNetSDK.NET_DVR_FOCUSMODE_CFG cfg = new CHCNetSDK.NET_DVR_FOCUSMODE_CFG(); uint returnBytes = 0; int outSize = Marshal.SizeOf(cfg); IntPtr outBuffer = Marshal.AllocHGlobal(outSize); Marshal.StructureToPtr(cfg, outBuffer, false); if (!CHCNetSDK.NET_DVR_GetDVRConfig(mUserId, CHCNetSDK.NET_DVR_GET_FOCUSMODECFG, 1, outBuffer, (uint)outSize, ref returnBytes)) { Marshal.FreeHGlobal(outBuffer); outBuffer = IntPtr.Zero; return(false); } cfg.byFocusMode = 2; bool ret = CHCNetSDK.NET_DVR_SetDVRConfig(mUserId, CHCNetSDK.NET_DVR_SET_FOCUSMODECFG, 1, outBuffer, (uint)outSize); Marshal.FreeHGlobal(outBuffer); outBuffer = IntPtr.Zero; return(ret); }