//下发指纹的回调函数 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; }
//指纹参数设置,回调函数 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; }