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);
        }
示例#2
0
        public List <uint> GetFace(string IpAddress, string UserName, string Password, ushort Port)
        {
            List <uint> errorCode = new List <uint>();

            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);

            CHCNetSDK.NET_DVR_CAPTURE_FACE_COND nET_DVR_CAPTURE_FACE_COND = new CHCNetSDK.NET_DVR_CAPTURE_FACE_COND();

            nET_DVR_CAPTURE_FACE_COND.dwSize = (uint)Marshal.SizeOf(nET_DVR_CAPTURE_FACE_COND);
            //nET_DVR_CAPTURE_FACE_COND.byRes = new byte[128];

            int    dwInBufferLen = (int)nET_DVR_CAPTURE_FACE_COND.dwSize;
            IntPtr lpInBuffer    = Marshal.AllocHGlobal(dwInBufferLen);

            Marshal.StructureToPtr(nET_DVR_CAPTURE_FACE_COND, lpInBuffer, false);

            //RemoteConfigCallback remoteConfigCallback = new RemoteConfigCallback(remoteConfig);

            int returnValue = NET_DVR_StartRemoteConfig(userID, CHCNetSDK.NET_DVR_CAPTURE_FACE_INFO, lpInBuffer, dwInBufferLen, remoteConfig, IntPtr.Zero);

            if (returnValue == -1)
            {
                Console.WriteLine("\n");
                //call NET_DVR_GetLastError to get the error code
                uint   iLastErr = CHCNetSDK.NET_DVR_GetLastError();
                string strErr   = "NET_DVR_StartRemoteConfig failed, error code= " + iLastErr;
                Console.WriteLine(strErr);
            }

            Console.WriteLine("NET_DVR_StartRemoteConfig Success");


            Marshal.FreeHGlobal(lpInBuffer);
            return(errorCode);
        }