~~NOTOC~~
[[user_management_api]] > [[BS2_GetUserDatas]]
----
===== BS2_GetUserDatas =====
[+ 2.5.0] 사용자 식별자에 해당하는 사용자 정보를 가져옵니다. \\
이때 userMask를 통하여 사용자 정보의 일부를 선별적으로 가져올 수 있습니다.
\\
==== 함수 ====
#include "BS_API.h"
int BS2_GetUserDatas(void* context, uint32_t deviceId, char* uids, uint32_t uidCount, BS2UserBlob* userBlob, BS2_USER_MASK userMask);
[[user management api#BS2UserBlob|BS2UserBlob 구조체 보기]]
==== 파라미터 ====
* [In] ''//context//'' : Context
* [In] ''//deviceId//'' : 장치 식별자
* [In] ''//uids//'' : 가져오고자 하는 사용자 식별자 리스트
* [In] ''//uidCount//'' : 사용자 식별자 개수
* [Out] ''//userBlob//'' : 사용자 정보를 저장할 포인터
* [In] ''//userMask//'' : 사용자 Mask
^값 ^설명 ^
|0x0000 |사용자 식별자 |
|0x0001 |사용자 data |
|0x0002 |사용자 설정 |
|0x0004 |사용자명 |
|0x0008 |이미지 |
|0x0010 |PIN |
|0x0020 |카드 |
|0x0040 |지문 |
|0x0080 |얼굴 |
|0x0100 |출입그룹 |
|0x0200 |작업코드 |
|0x0400 |개인메시지 |
|0x0800 |얼굴 ''(FaceStation F2)'' |
|0x1000 |사용자설정 ''(FaceStation F2)'' |
|0xFFFF |사용자 정보 전체 |
==== 반환값 ====
성공적으로 수행될 경우 ''BS_SDK_SUCCESS''를 반환하고, 에러가 발생할 경우 상응하는 에러 코드를 반환합니다.
\\
==== 샘플코드 ====
C++
sdkResult = BS2_GetUserDatas(context_, id, const_cast(uid.c_str()), numUser, &userBlob, userMask);
if (BS_SDK_SUCCESS != sdkResult)
{
TRACE("BS2_GetUserDatas call failed: %d", sdkResult);
return sdkResult;
}
C#
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);
}
==== 함께 보기 ====
[[BS2_GetUserList]]\\
[[BS2_RemoveUser]]\\
[[BS2_RemoveAllUser]]\\
[[BS2_GetUserInfos]]\\
[[BS2_GetUserInfosEx]]\\
[[BS2_EnrolUser]]\\
[[BS2_EnrolUserEx]]\\
[[BS2_GetUserDatas]]\\
[[BS2_GetUserDatasEx]]