void print(UInt32 idx, BS2UserBlobEx userblob) { Console.WriteLine(">>>> User idx[{4, 10}] id[{0}] numCards[{1}] numFingers[{2}] numFaces[{3}] name[{5}], startTime[{6}], endTime[{7}], numJobs[{8}]", Encoding.UTF8.GetString(userblob.user.userID).TrimEnd('\0'), userblob.user.numCards, userblob.user.numFingers, userblob.user.numFaces, idx, Encoding.UTF8.GetString(userblob.name).TrimEnd('\0'), userblob.setting.startTime, userblob.setting.endTime, userblob.job.numJobs ); }
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; } }