[BioStar 2 SDK] Obtener la lista de Usuarios a través de BS2_GetUserListUser

Creado por: Loberi Loest

Fecha de modificación: Vie., Dic. 31, 2021 a las 5:15 A. M.



Caso

Cuando desee obtener la lista de usuarios a través de BS2_GetUserListUser.  (SDK de dispositivo C#)

 

 

Información

Función: extern public static int BS2_GetUserList(IntPtr context, UInt32 deviceId, out IntPtr outUidObjs, out UInt32 outNumUids, IsAcceptableUserID cbIsAcceptableUserID)

 

 

Orden : Llame a la función Función -> BS2_GetUserData después de BS2_GetUserList

 

 

Parámetro

  • [En] contexto  : Contexto
  • [En] deviceId: identificador de dispositivo
  • [En] uids: Lista de identificadores de usuario a importar
  • [En] uidCount: número de identificadores de usuario
  • [Salida] userBlob: Puntero para guardar la información del usuario
  • [En] userMask: Máscara de usuario

 

 

 

 

valor

Explicación

0x0000

identificador de usuario

0x0001

datos de usuario

0x0002

configuración de usuario

0x0004

nombre de usuario

0x0008

imagen

0x0010

ANCLAR

0x0020

tarjeta

0x0040

Huellas

0x0080

Cara

0x0100

grupo de acceso

0x0200

código de trabajo

0x0400

mensaje personal

0x0800

Cara (FaceStation F2)

0x1000

Personalizado (FaceStation F2)

0xFFFF

Toda la información del usuario

 



Mensaje de Respuesta

 

Si se realiza  con éxito, se devolverá BS_SDK_SUCCESS. Si hay un error, se devolverá el código de error correspondiente.

 

Código de ejemplo 

 
public void listUserFromDevice(IntPtr sdkContext, UInt32 deviceID, bool isMasterDevice)        {            IntPtr outUidObjs = IntPtr.Zero;            UInt32 numUserIds = 0;            API.IsAcceptableUserID cbIsAcceptableUserID = null; // we don't need to user id filtering
            Console.WriteLine("Trying to get user list.");            BS2ErrorCode result = (BS2ErrorCode)API.BS2_GetUserList(sdkContext, deviceID, out outUidObjs, out numUserIds, cbIsAcceptableUserID);            if (result == BS2ErrorCode.BS_SDK_SUCCESS)            {                if (numUserIds > 0)                {                    IntPtr curUidObjs = outUidObjs;                    BS2UserBlob[] userBlobs = new BS2UserBlob[USER_PAGE_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_GetUserDatas(sdkContext, deviceID, curUidObjs, available, userBlobs, (UInt32)BS2UserMaskEnum.ALL);                        if (result == BS2ErrorCode.BS_SDK_SUCCESS)                        {                            for (UInt32 loop = 0; loop < available; ++loop)                            {                                print(sdkContext, userBlobs[loop].user);                                // don't need to release cardObj, FingerObj, FaceObj because we get only BS2User                                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;            }        }
C
Resultado en la SDK


L
Loberi es el autor de este artículo de solución.

¿Le resultó útil? No

Enviar comentarios
Lamentamos no haberle podido ayudar más. Sus comentarios nos ayudarían a mejorar este artículo.