차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
다음 판 | 이전 판 | ||
ko:bs2_querydevicelicense [2023/02/09 16:18] mashin 만듦 |
ko:bs2_querydevicelicense [2023/03/02 16:03] (현재) kkshin |
||
---|---|---|---|
줄 5: | 줄 5: | ||
===== BS2_QueryDeviceLicense ===== | ===== BS2_QueryDeviceLicense ===== | ||
- | [+ 2.8.4] 마스터 장치 및 그와 연결된 슬레이브 장치들의 라이선스 활성화/비활성화 상태를 가져옵니다. \\ | + | [+ 2.9.1] 마스터 장치 및 그와 연결된 슬레이브 장치들의 라이선스 활성화/비활성화 상태를 가져옵니다. \\ |
이 기능은 장치가 라이선스 활성화 기능을 지원해야 하며, 현재 기능을 지원하는 장치 정보는 아래와 같습니다. \\ | 이 기능은 장치가 라이선스 활성화 기능을 지원해야 하며, 현재 기능을 지원하는 장치 정보는 아래와 같습니다. \\ | ||
<WRAP group 50%> | <WRAP group 50%> | ||
줄 44: | 줄 44: | ||
==== 샘플코드(C++) ==== | ==== 샘플코드(C++) ==== | ||
- | <file cpp sample_setdebugfilelogex.cpp> | + | <file cpp sample_bs2_querydevicelicense.cpp> |
- | const char* CURRENT_DIR = "."; | + | int getDeviceLicense(void* context, BS2_DEVICE_ID id) |
- | const int MAX_SIZE_LOG_FILE = 100; // 100MB | + | |
- | int sdkResult = BS2_SetDebugFileLogEx(DEBUG_LOG_ALL, DEBUG_MODULE_ALL, CURRENT_DIR, MAX_SIZE_LOG_FILE); | + | |
- | if (BS_SDK_SUCCESS != sdkResult) | + | |
{ | { | ||
- | printf("BS2_SetDebugFileLogEx call failed: %d", sdkResult); | + | DeviceControl dc(context); |
- | return; | + | BS2LicenseBlob licenseBlob = { 0, }; |
+ | vector<BS2LicenseResult> licenseResult; | ||
+ | int sdkResult = BS_SDK_SUCCESS; | ||
+ | |||
+ | BS2_LICENSE_TYPE licenseType = (BS2_LICENSE_TYPE)Utility::getInput<uint32_t>("Enter the license type. (0: None, 1: Visual QR)"); | ||
+ | sdkResult = dc.queryDeviceLicense(id, licenseType, licenseResult); | ||
+ | if (BS_SDK_SUCCESS == sdkResult) | ||
+ | DeviceControl::print(licenseResult); | ||
+ | |||
+ | return sdkResult; | ||
} | } | ||
- | </file> | ||
- | ==== 샘플코드(C#) ==== | + | int DeviceControl::queryDeviceLicense(BS2_DEVICE_ID id, BS2_LICENSE_TYPE licenseType, vector<BS2LicenseResult>& licenseResult) |
- | <file csharp sample_setdebugfilelogex.cs> | + | |
- | const string CURRENT_DIR = "."; | + | |
- | const int MAX_SIZE_LOG_FILE = 100; // 100MB | + | |
- | IntPtr ptrDir = Marshal.StringToHGlobalAnsi(CURRENT_DIR); | + | |
- | result = (BS2ErrorCode)API.BS2_SetDebugFileLogEx(Constants.DEBUG_LOG_OPERATION_ALL, Constants.DEBUG_MODULE_ALL, ptrDir, MAX_SIZE_LOG_FILE); | + | |
- | Marshal.FreeHGlobal(ptrDir); | + | |
- | if (result != BS2ErrorCode.BS_SDK_SUCCESS) | + | |
{ | { | ||
- | Console.WriteLine("Got error({0}).", result); | + | BS2LicenseResult* result = NULL; |
- | return; | + | uint32_t numOfResult = 0; |
+ | int sdkResult = BS2_QueryDeviceLicense(context_, id, licenseType, &result, &numOfResult); | ||
+ | if (BS_SDK_SUCCESS != sdkResult) | ||
+ | { | ||
+ | TRACE("BS2_QueryDeviceLicense call failed: %d", sdkResult); | ||
+ | return sdkResult; | ||
+ | } | ||
+ | |||
+ | licenseResult.clear(); | ||
+ | for (uint32_t idx = 0; idx < numOfResult; idx++) | ||
+ | { | ||
+ | licenseResult.push_back(result[idx]); | ||
+ | } | ||
+ | |||
+ | return sdkResult; | ||
} | } | ||
</file> | </file> | ||
+ | |||
+ | ==== 샘플코드(C#) ==== | ||
+ | |||
+ | <file csharp sample_bs2_querydevicelicense.cs> | ||
+ | Console.WriteLine("Trying to get a license"); | ||
+ | |||
+ | Console.WriteLine("Enter the license type. (0: None, 1: Visual QR)"); | ||
+ | Console.Write(">>>> "); | ||
+ | UInt16 licenseType = Util.GetInput((UInt16)BS2LicenseType.VISUAL_QR_MASK); | ||
+ | |||
+ | IntPtr resultObj = IntPtr.Zero; | ||
+ | UInt32 numOfResult = 0; | ||
+ | |||
+ | BS2ErrorCode result = (BS2ErrorCode)API.BS2_QueryDeviceLicense(sdkContext, deviceID, licenseType, out resultObj, out numOfResult); | ||
+ | |||
+ | if (BS2ErrorCode.BS_SDK_SUCCESS != result) | ||
+ | { | ||
+ | Console.WriteLine("Got error({0}).", result); | ||
+ | } | ||
+ | else | ||
+ | { | ||
+ | IntPtr curResult = resultObj; | ||
+ | int resultSize = Marshal.SizeOf(typeof(BS2LicenseResult)); | ||
+ | for (UInt32 idx = 0; idx < numOfResult; idx++) | ||
+ | { | ||
+ | BS2LicenseResult item = (BS2LicenseResult)Marshal.PtrToStructure(curResult, typeof(BS2LicenseResult)); | ||
+ | print(item, idx); | ||
+ | curResult += resultSize; | ||
+ | } | ||
+ | |||
+ | API.BS2_ReleaseObject(resultObj); | ||
+ | } | ||
+ | </file> | ||
+ |