示例#1
0
        //下发指纹的回调函数
        private void ProcessFingerPrintDownloadCallback(uint dwType, IntPtr lpBuffer, uint dwBufLen, IntPtr pUserData)
        {
            if (pUserData == null)
            {
                return;
            }
            if (dwType == (uint)CHCNetSDK.NET_SDK_CALLBACK_TYPE.NET_SDK_CALLBACK_TYPE_STATUS)
            {
                uint dwStatus = (uint)Marshal.ReadInt32(lpBuffer);
                if (dwStatus == (uint)CHCNetSDK.NET_SDK_CALLBACK_STATUS_NORMAL.NET_SDK_CALLBACK_STATUS_FAILED)
                {
                    CHCNetSDK.PostMessage(pUserData, 1001, 1, 0);
                }
                else if (dwStatus == (uint)CHCNetSDK.NET_SDK_CALLBACK_STATUS_NORMAL.NET_SDK_CALLBACK_STATUS_EXCEPTION)
                {
                    CHCNetSDK.PostMessage(pUserData, 1001, 2, 0);
                }
                else if (dwStatus == (uint)CHCNetSDK.NET_SDK_CALLBACK_STATUS_NORMAL.NET_SDK_CALLBACK_STATUS_SUCCESS)
                {
                    CHCNetSDK.PostMessage(pUserData, 1001, 4, 0);
                }
                else
                {
                    CHCNetSDK.PostMessage(pUserData, 1001, 3, 0);
                }
            }
            else if (dwType == (uint)CHCNetSDK.NET_SDK_CALLBACK_TYPE.NET_SDK_CALLBACK_TYPE_DATA)
            {
                string strFingerPrintStatus = Marshal.PtrToStringAnsi(lpBuffer, (int)dwBufLen);
                JsonFingerPrintStatus = new CFingerPrintStatusCfg();
                JsonFingerPrintStatus = JsonConvert.DeserializeObject <CFingerPrintStatusCfg>(strFingerPrintStatus);
                if (JsonFingerPrintStatus != null && JsonFingerPrintStatus.FingerPrintStatus != null)
                {
                    //返回了FingerPrintStatus
                    int totalStatus = JsonFingerPrintStatus.FingerPrintStatus.totalStatus;
                    if (totalStatus == 1)
                    {
                        //必须totalStatus等于1,而且表格中还有指纹才继续下发
                        CHCNetSDK.PostMessage(pUserData, 1003, 1, 0);
                    }

                    if ((totalStatus == 1) && (m_iFingerPrintIndex >= m_iFingerPrintNum))
                    {
                        CHCNetSDK.PostMessage(pUserData, 1001, 4, 0);
                        return;
                    }
                }
            }
            return;
        }
示例#2
0
        //指纹参数设置,回调函数
        private void ProcessFingerPrintSetUpCallback(uint dwType, IntPtr lpBuffer, uint dwBufLen, IntPtr pUserData)
        {
            if (pUserData == null)
            {
                return;
            }
            if (dwType == (uint)CHCNetSDK.NET_SDK_CALLBACK_TYPE.NET_SDK_CALLBACK_TYPE_STATUS)
            {
                uint dwStatus = (uint)Marshal.ReadInt32(lpBuffer);
                if (dwStatus == (uint)CHCNetSDK.NET_SDK_CALLBACK_STATUS_NORMAL.NET_SDK_CALLBACK_STATUS_FAILED)
                {
                    CHCNetSDK.PostMessage(pUserData, 1001, 1, 0);
                }
                else if (dwStatus == (uint)CHCNetSDK.NET_SDK_CALLBACK_STATUS_NORMAL.NET_SDK_CALLBACK_STATUS_EXCEPTION)
                {
                    CHCNetSDK.PostMessage(pUserData, 1001, 2, 0);
                }
                else if (dwStatus == (uint)CHCNetSDK.NET_SDK_CALLBACK_STATUS_NORMAL.NET_SDK_CALLBACK_STATUS_SUCCESS)
                {
                    CHCNetSDK.PostMessage(pUserData, 1001, 4, 0);
                }
                else
                {
                    CHCNetSDK.PostMessage(pUserData, 1001, 3, 0);
                }
            }
            else if (dwType == (uint)CHCNetSDK.NET_SDK_CALLBACK_TYPE.NET_SDK_CALLBACK_TYPE_DATA)
            {
                string strFingerPrintStatus = Marshal.PtrToStringAnsi(lpBuffer, (int)dwBufLen);
                JsonFingerPrintStatus = new CFingerPrintStatusCfg();
                JsonFingerPrintStatus = JsonConvert.DeserializeObject <CFingerPrintStatusCfg>(strFingerPrintStatus);
                if (JsonFingerPrintStatus != null && JsonFingerPrintStatus.FingerPrintStatus != null)
                {
                    if (JsonFingerPrintStatus.FingerPrintStatus.status != null)
                    {
                        //存在FingerPrintStatus.status,说明仅是修改指纹参数,不是下发指纹
                        if (JsonFingerPrintStatus.FingerPrintStatus.status == "success")
                        {
                            CHCNetSDK.PostMessage(pUserData, 1004, 1, 0);
                        }
                        else if (JsonFingerPrintStatus.FingerPrintStatus.status == "failed")
                        {
                            CHCNetSDK.PostMessage(pUserData, 1004, 2, 0);
                        }
                    }

                    if (JsonFingerPrintStatus.FingerPrintStatus.StatusList != null)
                    {
                        //存在FingerPrintStatus.StatusList,代表是实际下发指纹数据到读卡器,不是修改指纹
                        CHCNetSDK.PostMessage(pUserData, 1004, 3, 0);
                    }

                    if (m_iFingerPrintIndex >= m_iFingerPrintNum)
                    {
                        CHCNetSDK.PostMessage(pUserData, 1001, 4, 0);
                        return;
                    }
                }
            }
            return;
        }