Example #1
0
        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");
        }
Example #2
0
        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);
        }
Example #3
0
        //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);
        }
Example #4
0
        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);
        }
Example #6
0
 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);
Example #7
0
        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);
        }
Example #8
0
        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);
        }
Example #11
0
        /// <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);
        }