차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
|
ko:bs2_partialupdateuserfaceex [2022/09/30 09:23] kkshin [샘플코드(C++)] |
ko:bs2_partialupdateuserfaceex [2024/05/28 17:22] (현재) kkshin [파라미터] |
||
|---|---|---|---|
| 줄 35: | 줄 35: | ||
| |0x0200 |작업코드 | | |0x0200 |작업코드 | | ||
| |0x0400 |개인메시지 | | |0x0400 |개인메시지 | | ||
| - | |0x0800 |얼굴 ''(FSF2, BS3)'' | | + | |0x0800 |얼굴 ''(Visual Face 지원)'' | |
| - | |0x1000 |사용자설정 ''(FSF2, BS3)'' | | + | |0x1000 |사용자설정 ''(Visual Face 지원)'' | |
| </WRAP> | </WRAP> | ||
| * [In] ''//userBlob//'' : 갱신하고자 하는 사용자 부분 정보 | * [In] ''//userBlob//'' : 갱신하고자 하는 사용자 부분 정보 | ||
| 줄 157: | 줄 157: | ||
| ==== 샘플코드(C#) ==== | ==== 샘플코드(C#) ==== | ||
| <file csharp sample_partialupdateuserfaceex.cs> | <file csharp sample_partialupdateuserfaceex.cs> | ||
| - | BS2_USER_MASK mask = (BS2_USER_MASK)BS2UserMaskEnum.SETTING | (BS2_USER_MASK)BS2UserMaskEnum.SETTING_EX | (BS2_USER_MASK)BS2UserMaskEnum.JOB; | + | BS2_USER_MASK maskWantUpdate = (BS2_USER_MASK)BS2UserMaskEnum.SETTING | (BS2_USER_MASK)BS2UserMaskEnum.SETTING_EX | (BS2_USER_MASK)BS2UserMaskEnum.JOB; |
| BS2ErrorCode sdkResult = BS2ErrorCode.BS_SDK_SUCCESS; | BS2ErrorCode sdkResult = BS2ErrorCode.BS_SDK_SUCCESS; | ||
| 줄 179: | 줄 179: | ||
| string userID; | string userID; | ||
| if (BS2ErrorCode.BS_SDK_SUCCESS != (sdkResult = getUserBlobUserID(ref userBlob[0].user, out userID))) | if (BS2ErrorCode.BS_SDK_SUCCESS != (sdkResult = getUserBlobUserID(ref userBlob[0].user, out userID))) | ||
| - | return; | + | return; |
| - | if ((mask & (BS2_USER_MASK)BS2UserMaskEnum.SETTING) == (BS2_USER_MASK)BS2UserMaskEnum.SETTING) | + | if ((maskWantUpdate & (BS2_USER_MASK)BS2UserMaskEnum.SETTING) == (BS2_USER_MASK)BS2UserMaskEnum.SETTING) |
| { | { | ||
| - | if (BS2ErrorCode.BS_SDK_SUCCESS != (sdkResult = getUserBlobExpiryDate(ref userBlob[0].setting))) | + | if (BS2ErrorCode.BS_SDK_SUCCESS != (sdkResult = getUserBlobExpiryDate(ref userBlob[0].setting))) |
| - | return; | + | return; |
| - | if (BS2ErrorCode.BS_SDK_SUCCESS != (sdkResult = getUserBlobPrivateAuthMode(ref userBlob[0].setting))) | + | if (BS2ErrorCode.BS_SDK_SUCCESS != (sdkResult = getUserBlobPrivateAuthMode(ref userBlob[0].setting))) |
| - | return; | + | return; |
| - | if (BS2ErrorCode.BS_SDK_SUCCESS != (sdkResult = getUserBlobSecurityLevel(ref userBlob[0].setting))) | + | if (BS2ErrorCode.BS_SDK_SUCCESS != (sdkResult = getUserBlobSecurityLevel(ref userBlob[0].setting))) |
| - | return; | + | return; |
| } | } | ||
| - | if ((mask & (BS2_USER_MASK)BS2UserMaskEnum.SETTING_EX) == (BS2_USER_MASK)BS2UserMaskEnum.SETTING_EX) | + | if ((maskWantUpdate & (BS2_USER_MASK)BS2UserMaskEnum.SETTING_EX) == (BS2_USER_MASK)BS2UserMaskEnum.SETTING_EX) |
| { | { | ||
| - | if (BS2ErrorCode.BS_SDK_SUCCESS != (sdkResult = getUserBlobPrivateAuthModeEx(ref userBlob[0].settingEx))) | + | if (BS2ErrorCode.BS_SDK_SUCCESS != (sdkResult = getUserBlobPrivateAuthModeEx(ref userBlob[0].settingEx))) |
| - | return; | + | return; |
| } | } | ||
| // ... | // ... | ||
| - | if ((mask & (BS2_USER_MASK)BS2UserMaskEnum.JOB) == (BS2_USER_MASK)BS2UserMaskEnum.JOB) | + | if ((maskWantUpdate & (BS2_USER_MASK)BS2UserMaskEnum.JOB) == (BS2_USER_MASK)BS2UserMaskEnum.JOB) |
| { | { | ||
| - | if (BS2ErrorCode.BS_SDK_SUCCESS != (sdkResult = getUserBlobJobCode(ref userBlob[0].job))) | + | Console.WriteLine("Do you want to change/delete #{0} jobs? (0:Change, 1:Delete)", userID); |
| - | return; | + | Console.Write(">> "); |
| + | int selected = Util.GetInput(0); | ||
| + | switch (selected) | ||
| + | { | ||
| + | case 0: // Change jobs | ||
| + | if (BS2ErrorCode.BS_SDK_SUCCESS != (sdkResult = getUserBlobJobCode(ref userBlob[0].job))) | ||
| + | return; | ||
| - | userBlob[0].user.infoMask |= (byte)BS2UserInfoMaskEnum.JOB_CODE; | + | userBlob[0].user.infoMask |= (byte)BS2UserInfoMaskEnum.JOB_CODE; |
| + | break; | ||
| + | |||
| + | case 1: // Delete | ||
| + | default: | ||
| + | maskWantUpdate &= ~(BS2_USER_MASK)BS2UserMaskEnum.JOB; | ||
| + | break; | ||
| + | } | ||
| + | } | ||
| + | else | ||
| + | { | ||
| + | // Keep | ||
| + | userBlob[0].user.infoMask |= (byte)BS2UserInfoMaskEnum.JOB_CODE; | ||
| } | } | ||
| - | |||
| - | // ... | ||
| userBlob[0].user.numCards = 0; | userBlob[0].user.numCards = 0; | ||
| - | if ((mask & (BS2_USER_MASK)BS2UserMaskEnum.CARD) == (BS2_USER_MASK)BS2UserMaskEnum.CARD) | + | if ((maskWantUpdate & (BS2_USER_MASK)BS2UserMaskEnum.CARD) == (BS2_USER_MASK)BS2UserMaskEnum.CARD) |
| { | { | ||
| - | // ... | + | Console.WriteLine("Do you want to change/delete #{0} cards? (0:Change, 1:Delete)", userID); |
| + | Console.Write(">> "); | ||
| + | int selected = Util.GetInput(0); | ||
| + | switch (selected) | ||
| + | { | ||
| + | case 0: // Change cards | ||
| + | if (BS2ErrorCode.BS_SDK_SUCCESS != (sdkResult = getUserBlobCardInfo(sdkContext, deviceID, ref userBlob[0].cardObjs, ref userBlob[0].user.numCards))) | ||
| + | return; | ||
| + | |||
| + | userBlob[0].user.infoMask |= (byte)BS2UserInfoMaskEnum.CARD; | ||
| + | break; | ||
| + | |||
| + | case 1: // Delete cards on the device | ||
| + | default: | ||
| + | // unmasking and numCards = 0; | ||
| + | maskWantUpdate &= ~(BS2_USER_MASK)BS2UserMaskEnum.CARD; | ||
| + | break; | ||
| + | } | ||
| } | } | ||
| + | else | ||
| + | { | ||
| + | // Keep | ||
| + | userBlob[0].user.infoMask |= (byte)BS2UserInfoMaskEnum.CARD; | ||
| + | } | ||
| + | |||
| + | // ... | ||
| - | sdkResult = (BS2ErrorCode)API.BS2_PartialUpdateUserFaceEx(sdkContext, deviceID, mask, userBlob, (UInt32)1); | + | sdkResult = (BS2ErrorCode)API.BS2_PartialUpdateUserFaceEx(sdkContext, deviceID, maskWantUpdate, userBlob, (UInt32)numOfUser); |
| if (BS2ErrorCode.BS_SDK_SUCCESS != sdkResult) | if (BS2ErrorCode.BS_SDK_SUCCESS != sdkResult) | ||
| Console.WriteLine("BS2_PartialUpdateUserFaceEx call failed {0}", sdkResult); | Console.WriteLine("BS2_PartialUpdateUserFaceEx call failed {0}", sdkResult); | ||
| </file> | </file> | ||