Exemple #1
0
        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);
        }
Exemple #2
0
        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;
            }
        }
Exemple #3
0
        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;
            }
        }
Exemple #4
0
        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;
            }
        }