internal void GetUserSize(ref uint deviceId) { _log.InfoFormat("正在读取设备IP : {0} 用户数量", parseIdToIp(deviceId)); IntPtr outUidObjs = default(IntPtr); uint outNumUids = 0; API.IsAcceptableUserID cblsAcceptableUserID = null; API.BS2_GetUserList(sdkContext, deviceId, out outUidObjs, out outNumUids, cblsAcceptableUserID); _log.InfoFormat("设备IP : {0} 用户数量 : {1}", parseIdToIp(deviceId), outNumUids); API.BS2_ReleaseObject(outUidObjs); }
public void listOnlyUser(IntPtr sdkContext, UInt32 deviceID, bool isMasterDevice) { IntPtr outUidObjs = IntPtr.Zero; UInt32 numUserIds = 0; API.IsAcceptableUserID cbIsAcceptableUserID = new API.IsAcceptableUserID(cbAcceptableUserID); // we don't need to user id filtering Console.WriteLine("Enter the path of exported usb directory which you want to get."); Console.Write(">>>> "); string strDir = Console.ReadLine(); if (!Directory.Exists(strDir)) { Console.WriteLine("Invalid path"); return; } Console.WriteLine("Trying to get user list."); IntPtr ptrDir = Marshal.StringToHGlobalAnsi(strDir); BS2ErrorCode result = (BS2ErrorCode)API.BS2_GetUserListFromDir(sdkContext, ptrDir, out outUidObjs, out numUserIds, cbIsAcceptableUserID); Marshal.FreeHGlobal(ptrDir); if (result == BS2ErrorCode.BS_SDK_SUCCESS) { if (numUserIds > 0) { IntPtr curUidObjs = outUidObjs; byte[] bufUserID = new byte[BS2Environment.BS2_USER_ID_SIZE]; Console.WriteLine("Number of users : ({0}).", numUserIds); for (UInt32 idx = 0; idx < numUserIds; ++idx) { Marshal.Copy(curUidObjs, bufUserID, 0, bufUserID.Length); Console.WriteLine("idx[{0, 10}] User ID: {1}", idx, Encoding.UTF8.GetString(bufUserID).TrimEnd('\0')); curUidObjs += (int)BS2Environment.BS2_USER_ID_SIZE; } API.BS2_ReleaseObject(outUidObjs); } } else { Console.WriteLine("Got error({0}).", result); return; } }
public void getDatabaseInfo(IntPtr sdkContext, UInt32 deviceID, bool isMasterDevice) { IntPtr outUidObjs = IntPtr.Zero; UInt32 numUserIds = 0; API.IsAcceptableUserID cbIsAcceptableUserID = new API.IsAcceptableUserID(cbAcceptableUserID); // we don't need to user id filtering Console.WriteLine("Enter the path of exported usb directory which you want to get."); Console.Write(">>>> "); string strDir = Console.ReadLine(); if (!Directory.Exists(strDir)) { Console.WriteLine("Invalid path"); return; } UInt32 numUsers = 0; UInt32 numCards = 0; UInt32 numFingers = 0; UInt32 numFaces = 0; Console.WriteLine("Trying to get database Info."); IntPtr ptrDir = Marshal.StringToHGlobalAnsi(strDir); BS2ErrorCode result = (BS2ErrorCode)API.BS2_GetUserDatabaseInfoFromDir(sdkContext, ptrDir, out numUsers, out numCards, out numFingers, out numFaces, cbIsAcceptableUserID); Marshal.FreeHGlobal(ptrDir); if (result == BS2ErrorCode.BS_SDK_SUCCESS) { Console.WriteLine("Number of users : ({0}).", numUsers); Console.WriteLine("Number of cards : ({0}).", numCards); Console.WriteLine("Number of fingers : ({0}).", numFingers); Console.WriteLine("Number of faces : ({0}).", numFaces); } else { Console.WriteLine("Got error({0}).", result); return; } }
public void listUserDatasEx(IntPtr sdkContext, UInt32 deviceID, bool isMasterDevice) { IntPtr outUidObjs = IntPtr.Zero; UInt32 numUserIds = 0; API.IsAcceptableUserID cbIsAcceptableUserID = new API.IsAcceptableUserID(cbAcceptableUserID); // we don't need to user id filtering Console.WriteLine("Enter the path of exported usb directory which you want to get."); Console.Write(">>>> "); string strDir = Console.ReadLine(); if (!Directory.Exists(strDir)) { Console.WriteLine("Invalid path"); return; } Console.WriteLine("Trying to get user list."); BS2ErrorCode result = (BS2ErrorCode)API.BS2_GetUserListFromDir(sdkContext, strDir, out outUidObjs, out numUserIds, cbIsAcceptableUserID); if (result == BS2ErrorCode.BS_SDK_SUCCESS) { if (numUserIds > 0) { IntPtr curUidObjs = outUidObjs; BS2UserBlobEx[] userBlobs = new BS2UserBlobEx[USER_PAGE_SIZE]; byte[] bufUserID = new byte[BS2Environment.BS2_USER_ID_SIZE]; Console.WriteLine("Number of users : ({0}).", numUserIds); for (UInt32 idx = 0; idx < numUserIds;) { UInt32 available = numUserIds - idx; if (available > USER_PAGE_SIZE) { available = USER_PAGE_SIZE; } result = (BS2ErrorCode)API.BS2_GetUserDatasExFromDir(sdkContext, strDir, curUidObjs, available, userBlobs, (UInt32)BS2UserMaskEnum.DATA | (UInt32)BS2UserMaskEnum.NAME); if (result == BS2ErrorCode.BS_SDK_SUCCESS) { for (UInt32 loop = 0; loop < available; ++loop) { print(idx + loop, userBlobs[loop]); if (userBlobs[loop].cardObjs != IntPtr.Zero) { API.BS2_ReleaseObject(userBlobs[loop].cardObjs); } if (userBlobs[loop].fingerObjs != IntPtr.Zero) { API.BS2_ReleaseObject(userBlobs[loop].fingerObjs); } if (userBlobs[loop].faceObjs != IntPtr.Zero) { API.BS2_ReleaseObject(userBlobs[loop].faceObjs); } } idx += available; curUidObjs += (int)available * BS2Environment.BS2_USER_ID_SIZE; } else { Console.WriteLine("Got error({0}).", result); break; } } API.BS2_ReleaseObject(outUidObjs); } } else { Console.WriteLine("Got error({0}).", result); return; } }