차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
다음 판 양쪽 다음 판
ko:configuration_api [2020/02/12 14:35]
sypark1
ko:configuration_api [2021/05/26 15:42]
kkshin [BS2Rs485Config]
줄 1: 줄 1:
-====== ​Smartcard ​API ======+====== ​Configuration ​API ======
  
-카드 데이터를 읽고 ​쓰는 함를 제공하는 API입니다.+시스템 구성 정보를 읽고 ​쓸 수 는 API입니다.
 \\ \\
  
-  * [[BS2_ScanCard]]: 장치에서 카드를 ​스캔하고 카드 ​데이터를 분석합니다. +  * [[BS2_ResetConfig]]: 장치의 설정 정보를 초기화합니다. 
-  * [[BS2_WriteCard]]: SmartCard에 데이터를 저장합니다. +  * [[BS2_ResetConfigExceptNetInfo]]:​ 장치의 설정 정보를 초기화합니다. (네트워크 설정 제외) 
-  * [[BS2_EraseCard]]: SmartCard를 포맷합니다. +  * [[BS2_GetConfig]]:​ Configuration blob을 가져옵니다. 
-===== 구조체 ​====== +  * [[BS2_SetConfig]]:​ Configuration blob을 저장합니다. 
-==== BS2CSNCard ​====+  * [[BS2_GetFactoryConfig]]:​ 소프트웨어 버전 및 하드웨어 정보를 가져옵니다. 
 +  * [[BS2_GetSystemConfig]]:​ 시스템 설정 정보를 가져옵니다. 
 +  * [[BS2_SetSystemConfig]]:​ 시스템 설정 정보를 저장합니다. 
 +  * [[BS2_GetAuthConfig]]:​ 인증 설정 정보를 가져옵니다. 
 +  * [[BS2_SetAuthConfig]]:​ 인증 설정 정보를 저장합니다. 
 +  * [[BS2_GetStatusConfig]]:​ led, buzzer 설정 정보를 가져옵니다. 
 +  * [[BS2_SetStatusConfig]]:​ led, buzzer 설정 정보를 저장합니다. 
 +  * [[BS2_GetDisplayConfig]]:​ 효과음과 UI 설정 정보를 가져옵니다. 
 +  * [[BS2_SetDisplayConfig]]:​ 효과음과 UI 설정 정보를 저장합니다. 
 +  * [[BS2_GetIPConfig]]:​ IP 설정 정보를 가져옵니다. 
 +  * [[BS2_GetIPConfigViaUDP]]:​ IP 설정 정보를 UDP broadcasting를 통해 가져옵니다. 
 +  * [[BS2_SetIPConfig]]:​ IP 설정 정보를 저장합니다. 
 +  * [[BS2_SetIPConfigViaUDP]]:​ IP 설정 정보를 UDP broadcasting를 통해 저장합니다. 
 +  * [[BS2_GetIPConfigExt]]:​ DNS 및 Server URL 설정 정보를 가져옵니다. 
 +  * [[BS2_SetIPConfigExt]]:​ DNS 및 Server URL 설정 정보를 저장합니다. 
 +  * [[BS2_GetTNAConfig]]:​ TNA 설정 정보를 가져옵니다. 
 +  * [[BS2_SetTNAConfig]]:​ TNA 설정 정보를 저장합니다. 
 +  * [[BS2_GetCardConfig]]:​ 스마트 카드 설정 정보를 가져옵니다. 
 +  * [[BS2_SetCardConfig]]:​ 스마트 카드 설정 정보를 저장합니다. 
 +  * [[BS2_GetFingerprintConfig]]:​ 지문 매치와 관련된 설정 정보를 가져옵니다. 
 +  * [[BS2_SetFingerprintConfig]]:​ 지문 매치와 관련된 설정 정보를 저장합니다. 
 +  * [[BS2_GetRS485Config]]:​ RS485 네트워크 설정 정보를 가져옵니다. 
 +  * [[BS2_SetRS485Config]]:​ RS485 네트워크 설정 정보를 저장합니다. 
 +  * [[BS2_GetWiegandConfig]]:​ Wiegand 입출력 설정 정보를 가져옵니다. 
 +  * [[BS2_SetWiegandConfig]]:​ Wiegand 입출력 설정 정보를 저장합니다. 
 +  * [[BS2_GetWiegandDeviceConfig]]:​ Wiegand 신호 설정 정보를 가져옵니다. 
 +  * [[BS2_SetWiegandDeviceConfig]]:​ Wiegand 신호 설정 정보를 저장합니다. 
 +  * [[BS2_GetInputConfig]]:​ Suprevised 입력 포트 설정 정보를 가져옵니다. 
 +  * [[BS2_SetInputConfig]]:​ Supervised 입력 포트 설정 정보를 저장합니다. 
 +  * [[BS2_GetWlanConfig]]:​ 무선랜 설정 정보를 가져옵니다. 
 +  * [[BS2_SetWlanConfig]]:​ 무선랜 설정 정보를 저장합니다. 
 +  * [[BS2_GetTriggerActionConfig]]:​ Trigger action 설정 정보를 가져옵니다. 
 +  * [[BS2_SetTriggerActionConfig]]:​ Trigger action 설정 정보를 저장합니다. 
 +  * [[BS2_GetEventConfig]]:​ Image log filter 설정 정보를 가져옵니다. 
 +  * [[BS2_SetEventConfig]]:​ Image log filter 설정 정보를 저장합니다. 
 +  * [[BS2_GetWiegandMultiConfig]]:​ WiegandMulti 신호 설정 정보를 가져옵니다. 
 +  * [[BS2_SetWiegandMultiConfig]]:​ WiegandMulti 입출력 설정 정보를 저장합니다. 
 +  * [[BS2_GetCard1xConfig]]:​ V1.x 제품에서 ​발급한 Template On Card를 읽을 수 있는 포맷 정보를 저장할 수 있는 설정을 가져옵니다. 
 +  * [[BS2_SetCard1xConfig]]:​ V1.x 제품에서 발급한 Template On Card를 읽을 수 있는 포맷 설정 정보를 저장합니다. 
 +  * [[BS2_GetSystemExtConfig]]:​ Master와 Slave 장치간의 암호 설정 정보를 가져옵니다. 
 +  * [[BS2_SetSystemExtConfig]]:​ Master와 Slave 장치간의 암호 설정 정보를 저장합니다. 
 +  * [[BS2_GetVoipConfig]]:​ Voip 설정 정보를 가져옵니다. 
 +  * [[BS2_SetVoipConfig]]:​ Voip 설정 정보를 저장합니다. 
 +  * [[BS2_GetFaceConfig]]:​ Face 설정 정보를 가져옵니다. 
 +  * [[BS2_SetFaceConfig]]:​ Face 설정 정보를 저장합니다. 
 +  * [[BS2_GetRS485ConfigEx]]:​ CoreStation일 경우에 RS485 네트워크 설정 정보를 가져옵니다. 
 +  * [[BS2_SetRS485ConfigEx]]:​ CoreStation일 경우에 RS485 네트워크 설정 정보를 저장합니다. 
 +  * [[BS2_GetCardConfigEx]]:​ iClass SEOS 카드 ​설정 정보를 가져옵니다. 
 +  * [[BS2_SetCardConfigEx]]:​ iClass SEOS 카드 설정 정보를 저장합니다. 
 +  * [[BS2_GetDstConfig]]:​ DST 설정 정보를 가져옵니다. 
 +  * [[BS2_SetDstConfig]]:​ DST 설정 정보를 저장합니다. 
 +  * [[BS2_GetSupportedConfigMask]]:​ 장치에서 지원는 구성 설정을 가져옵니다. 
 +  * [[BS2_GetIPConfigViaUDPEx]]:​ [+ 2.6.3] IP 설정 정보를 UDP broadcasting를 통해 가져옵니다. (host ip 지정) 
 +  * [[BS2_SetIPConfigViaUDPEx]]:​ [+ 2.6.3] IP 설정 정보를 UDP broadcasting를 통해 저장합니다. (host ip 지정) 
 +  * [[BS2_GetIPV6Config]]:​ [+ 2.6.3] IP V6 설정 정보를 가져옵니다. 
 +  * [[BS2_SetIPV6Config]]:​ [+ 2.6.3] IP V6 설정 정보를 저장합니다. 
 +  * [[BS2_GetIPV6ConfigViaUDP]]:​ [+ 2.6.3] IP V6 설정 정보를 UDP broadcasting를 통해 가져옵니다. 
 +  * [[BS2_SetIPV6ConfigViaUDP]]:​ [+ 2.6.3] IP V6 설정 정보를 UDP broadcasting를 통해 저장합니다. 
 +  * [[BS2_GetIPV6ConfigViaUDPEx]]:​ [+ 2.6.3] IP V6 설정 정보를 UDP broadcasting를 통해 가져옵니다. (host ip 지정) 
 +  * [[BS2_SetIPV6ConfigViaUDPEx]]:​ [+ 2.6.3] IP V6 설정 정보를 UDP broadcasting를 통해 저장합니다. (host ip 지정) 
 +  * [[BS2_GetDesFireCardConfigEx]]:​ [+ 2.6.4] DesFire 카드 ​급설정 정보를 가져옵니다. 
 +  * [[BS2_SetDesFireCardConfigEx]]:​ [+ 2.6.4] DesFire ​카드 ​고급설정 정보를 저장합니다. 
 +  * [[BS2_GetAuthConfigExt]]: [+ 2.7.1] ''​FaceStation F2''​ 인증 설정 정보를 가져옵니다. 
 +  * [[BS2_SetAuthConfigExt]]:​ [+ 2.7.1] ''​FaceStation F2''​ 인증 설정 정보를 저장합니다. 
 +  * [[BS2_GetFaceConfigExt]]: [+ 2.7.1] ''​FaceStation F2, FaceStation2''​ 열화상 감지와 마스크 착용 체크를 위한 설정 정보를 가져옵니다. 
 +  * [[BS2_SetFaceConfigExt]]:​ [+ 2.7.1] ''​FaceStation F2, FaceStation2''​ 열화상 감지와 마스크 착용 체크를 위한 설정 정보를 저장합니다. 
 +  * [[BS2_GetThermalCameraConfig]]:​ [+ 2.7.1] ''​FaceStation F2, FaceStation2''​ 열화상 카메라 설정을 가져옵니다. 
 +  * [[BS2_SetThermalCameraConfig]]:​ [+ 2.7.1] ''​FaceStation F2, FaceStation2''​ 열화상 카메라 설정을 저장합니다. 
 +  * [[BS2_GetBarcodeConfig]]:​ [+ 2.8] ''​X-Station 2''​ Barcode 관련 설정을 가져옵니다. 
 +  * [[BS2_SetBarcodeConfig]]:​ [+ 2.8] ''​X-Station 2''​ Barcode 관련 설정을 저장합니다. 
 + 
 +===== 구조체 ===== 
 +==== BS2FactoryConfig ​====
 <code cpp> <code cpp>
 typedef struct { typedef struct {
-    uint8_t ​type+    uint8_t ​major
-    uint8_t ​size+    uint8_t ​minor
-    uint8_t ​data[BS2_CARD_DATA_SIZE]; +    uint8_t ​ext; 
-BS2CSNCard;+    uint8_t reserved[1];​ 
 +} Version; 
 + 
 +typedef struct { 
 +    uint32_t deviceID; 
 +    uint8_t macAddr[BS2_MAC_ADDR_LEN];​ 
 +    uint8_t reserved[2];​ 
 +    char modelName[BS2_MODEL_NAME_LEN];​ 
 +    Version boardVer; 
 +    Version kernelVer;​ 
 +    Version bscoreVer;​ 
 +    Version firmwareVer;​ 
 +    char kernelRev[BS2_KERNEL_REV_LEN];​ 
 +    char bscoreRev[BS2_BSCORE_REV_LEN];​ 
 +    char firmwareRev[BS2_FIRMWARE_REV_LEN];​ 
 +    uint8_t reserved2[32]; 
 +BS2FactoryConfig;
 </​code>​ </​code>​
-**1. //type//** \\  +1. //deviceID// \\  
-카드 유형의 코드 값입니다. ​카드 유형은 카드 목을 나타냅니다. 장치에서 서로 사용자를 +장치 식별자입니다. ​\\ \\  
- 전송할 때, Access 카드는 카드에 기록된 정보만으로 동작이 가능하기 때문에 이슈 기록을 유지하는 데에만 사용됩니다. \\  +2. //macAddr// \\  
-<WRAP group 100%> +네트워크 어댑터의 물리적 주소입니다. ​\\ \\  
-^값      ^설명 ​    ​^사용된 형식 ​  ^ +3. //​reserved//​ \\  
-|0x00 |알려지지 않은 카드 ​ | +예약된 공간입니다. \\ \\  
-|0x01 |CSN 카드 ​   | +4. //​modelName//​ \\  
-|0x02 |Secure 카드 ​   | +장치 ​모델 이름입니다. \\ \\  
-|0x03 |Access 카드 ​ | +5. //​boardVer//​ \\  
-|0x0A |Wiegand 카드 ​ | BS2WiegandConfig.format (이 형식은 ​ BS2WiegandConfig.CSNIndex 혹은 BS2WiegandConfig.CardMask가 0으로 설될 때 사용됩니다. ​| +장치 하드웨어 ​전입니다. \\ \\  
-|0x0B |Config 카드 ​ | +6. //​kernelVer//​ \\  
-|0x1A |Wiegand 카드 ​ | BS2WiegandMultiConfig.formats[0| +장치 커널 버니다. ​\\ \\  
-|0x2A |Wiegand 카드 ​ | BS2WiegandMultiConfig.formats[1| +7. //​bscoreVer//​ \\  
-|0x3A |Wiegand 카드 ​ | BS2WiegandMultiConfig.formats[2| +장치 BioStar core 버전입니다. \\ \\  
-|0x4A |Wiegand 카드 ​ | BS2WiegandMultiConfig.formats[3] | +8. //​firmwareVer//​ \\  
-|0x5A |Wiegand 카드 ​ | BS2WiegandMultiConfig.formats[4] | +장치 펌웨어 버전입니다. \\ \\  
-|0x6A |Wiegand 카드 ​ | BS2WiegandMultiConfig.formats[5] | +9. //​kernelRev//​ \\  
-|0x7A |Wiegand 카드  | BS2WiegandMultiConfig.formats[6] | +장치 커널 개정판 정보입니다. \\ \\  
-|0x8A |Wiegand 카드 ​ | BS2WiegandMultiConfig.formats[7] | +10//​bscoreRev//​ \\  
-|0x9A |Wiegand 카드 ​ | BS2WiegandMultiConfig.formats[8] | +장치 BioStar core 개정판 정보입니다\\ \\  
-|0xAA |Wiegand 카드 ​ | BS2WiegandMultiConfig.formats[9] | +11//​firmwareRev//​ \\  
-|0xBA |Wiegand 카드 ​ | BS2WiegandMultiConfig.formats[10] | +장치 펌웨어 개판 정보입니다. ​\\ \\  
-|0xCA |Wiegand 카드 ​ | BS2WiegandMultiConfig.formats[11] | +12. //​reserved2//​ \\  
-|0xDA |Wiegand 카드 ​ | BS2WiegandMultiConfig.formats[12] | +예약된 공간입니다\\  
-|0xEA |Wiegand 카드 ​ | BS2WiegandMultiConfig.formats[13] ​+ 
-|0xFA |Wiegand 카드 ​ ​| ​BS2WiegandMultiConfig.formats[14] ​|+==== BS2SystemConfig ==== 
 +<code cpp> 
 +typedef struct { 
 +    uint8_t notUsed[16 * 16 * 3]; 
 +    ​int32_t timezone; 
 +    uint8_t syncTime; 
 +    uint8_t serverSync;​ 
 +    uint8_t deviceLocked;​ 
 +    uint8_t useInterphone;​ 
 +    uint8_t useUSBConnection;​ 
 +    uint8_t keyEncrypted;​ 
 +    uint8_t useJobCode;​ 
 +    uint8_t useAlphanumericID;​ 
 +    uint32_t cameraFrequency;​ 
 +    bool secureTamper;​ 
 +    bool reserved0; ​    // (write protected) 
 +    uint8_t reserved[2]; 
 +    ​uint32_t useCardOperationMask;​ 
 +    uint8_t reserved2[16]; 
 +} BS2SystemConfig;​ 
 +</​code>​ 
 +1//notUsed// \\  
 +사용하지 않는 변수입니다. \\ \\ 
 +2. //​timezone//​ \\  
 +표준 시간대를 나타내며 단위는 초(sec)를 사용합니다. \\ \\  
 +3. //​syncTime//​ \\  
 +BioStar 애플리케이션과 시간 동기화를 결정하는 flag입니다\\ \\  
 +4. //​serverSync//​ \\  
 +예약된 변수입니다\\ \\ 
 +5. //​deviceLocked//​ \\  
 +장치의 현재 잠김상태를 나타내는 필입니다(읽기전용 필드) \\ \\  
 +6. //​useInterphone//​ \\  
 +인터폰을 사용할지 결정하는 flag입니다\\ \\  
 +7. //​useUSBConnection//​ \\  
 +사용되지 않는 member 변수입니다(USB 연결은 장치가 자동으로 감지합니다.) \\ \\  
 +8. //​keyEncrypted//​ \\  
 +OSDP secure key를 사용할지 flag입니다\\ \\  
 +9. //​useJobCode//​ \\  
 +Job code를 사용할지 결정하는 flag입니다\\ \\ 
 +10. //​useAlphanumericID//​ \\  
 +AlphanumericID를 사용할지 결정하는 flag입니다\\ \\ 
 +11. //​cameraFrequency//​ \\  
 +camera 주파수입니다.\\   
 +<WRAP group 50%> 
 +^값  ^설명 ​ ^ 
 +|1  ​|50Hz  | 
 +| |60Hz  ​|
 </​WRAP>​ </​WRAP>​
 +12. //​secureTamper//​ \\ 
 +보안 탬퍼를 사용할지 결정하는 flag입니다.\\ ​
 +탬퍼 on 발생 시 다음의 데이터가 장치에서 삭제됩니다. (사용자, 로그, 데이터 암호화 키, SSL 인증서) \\ \\
 +13. //​reserved0//​ \\ 
 +예약된 공간입니다. \\ \\ 
 +14. //​reserved//​ \\ 
 +예약된 공간입니다. \\ \\ 
 +15. //​useCardOperationMask//​ \\
 +[+ V2.6.4] 모든 카드를 읽지 않고, 사용자 선택에 의해 카드 타입별로 읽을 수 있도록 옵션을 제공합니다. \\
 +MASK값은 조합을 통하여 중복 설정이 가능며, 사용자는 이 옵션을 통하여 카드 타입의 읽기를 추가 또는 제거할 수 있습니다. \\
 +단, 장치가 지원할 수 있는 카드 타입에 한하며, 장치가 지원하지 않는 카드 읽기를 추가하는 경우 해당 설정은 무시됩니다. \\
 +또한, 지원하고자하는 카드 타입의 마스크는 ''​CARD_OPERATION_USE''​와 조합해야 합니다.\\
 +예를들어 EM카드만 읽을 수 있도록 설정하고자 한다면 useCardOperationMask에는 ''​0x80000001''​로 설정되어져야 합니다.
 +<WRAP group 50%>
 +^값  ^설명 ​ ^
 +|0xFFFFFFFF ​ |CARD_OPERATION_MASK_DEFAULT ​ |
 +|0x80000000 ​ |CARD_OPERATION_USE ​ |
 +|0x00000200 ​ |CARD_OPERATION_MASK_BLE ​ |
 +|0x00000100 ​ |CARD_OPERATION_MASK_NFC ​ |
 +|0x00000080 ​ |CARD_OPERATION_MASK_SEOS ​ |
 +|0x00000040 ​ |CARD_OPERATION_MASK_SR_SE ​ |
 +|0x00000020 ​ |CARD_OPERATION_MASK_DESFIRE_EV1 ​ |
 +|0x00000010 ​ |CARD_OPERATION_MASK_CLASSIC_PLUS ​ |
 +|0x00000008 ​ |CARD_OPERATION_MASK_ICLASS ​ |
 +|0x00000004 ​ |CARD_OPERATION_MASK_MIFARE_FELICA ​ |
 +|0x00000002 ​ |CARD_OPERATION_MASK_HIDPROX ​ |
 +|0x00000001 ​ |CARD_OPERATION_MASK_EM ​ |
 +</​WRAP>​
 +16. //​reserved2//​ \\ 
 +예약된 공간입니다. \\ \\ 
 +==== BS2AuthConfig ====
 +<code cpp>
 +typedef struct {
 +    uint32_t authSchedule[BS2_NUM_OF_AUTH_MODE];​
 +    uint8_t useGlobalAPB;​
 +    uint8_t globalAPBFailAction;​
 +    uint8_t useGroupMatching;​
 +    uint8_t reserved
 +    uint8_t reserved[28];​
 +    uint8_t usePrivateAuth;​
 +    uint8_t faceDetectionLevel;​
 +    uint8_t useServerMatching;​
 +    uint8_t useFullAccess;​
 +    uint8_t matchTimeout;​
 +    uint8_t authTimeout;​
 +    uint8_t numOperators;​
 +    uint8_t reserved2[1];​
 +    struct {
 +        char userID[BS2_USER_ID_SIZE];​
 +        uint8_t level;
 +        uint8_t reserved[3];​
 +    } operators[BS2_MAX_OPERATORS];​
 +} BS2AuthConfig;​
 +</​code>​
 +1. //​authSchedule//​ \\ 
 +각 인증 모드가 활성화될 때 실행할 일정 식별자입니다. \\ 
 +배열의 순서대로 아래의 의미를 가지며, \\
 +배열 내의 값이 0보다 큰경우 해당 인증모드는 활성화 되어 있습니다. \\
 +아래 설명 중 생체정보는 장치에 따라 지문 또는 얼굴을 의미합니다. \\
 +<WRAP group 50%>
 +^순서 ^의미 ​ ^설명 ​ ^
 +|0  |BS2_AUTH_MODE_BIOMETRIC_ONLY ​ |생체정보 ​ |
 +|1  |BS2_AUTH_MODE_BIOMETRIC_PIN ​ |생체정보 + PIN번호 ​ |
 +|2  |BS2_AUTH_MODE_CARD_ONLY ​ |카드번호 ​ |
 +|3  |BS2_AUTH_MODE_CARD_BIOMETRIC ​ |카드번호 + 생체정보 ​ |
 +|4  |BS2_AUTH_MODE_CARD_PIN ​ |카드번호 + PIN번호 |
 +|5  |BS2_AUTH_MODE_CARD_BIOMETRIC_OR_PIN ​ |카드번호 + 생체정보 or PIN번호 ​ |
 +|6  |BS2_AUTH_MODE_CARD_BIOMETRIC_PIN ​ |카드번호 + 생체정보 + PIN번호 ​ |
 +|7  |BS2_AUTH_MODE_ID_BIOMETRIC ​ |ID + 생체정보 ​ |
 +|8  |BS2_AUTH_MODE_ID_PIN ​ |ID + PIN번호 ​ |
 +|9  |BS2_AUTH_MODE_ID_BIOMETRIC_OR_PIN ​ |ID + 생체정보 or PIN번호 ​ |
 +|10  |BS2_AUTH_MODE_ID_BIOMETRIC_PIN ​ |ID + 생체정보 + PIN번호 ​ |
 +</​WRAP>​
 +2. //​useGlobalAPB//​ \\ 
 +광역 이중 인증 방지 구역을 활성화할지 결정하는 flag입니다. \\ \\ 
 +3. //​globalAPBFailAction//​ \\ 
 +광역 이중 인증 위반인지 BioStar 애플리케이션에 질의를 할 수 없거나 응답이 없을때 기본적으로 수행해야 할 동작입니다. \\
 +<WRAP group 50%>
 +^값  ^설명 ​ ^
 +|0  |APB 검사 안함 ​ |
 +|1  |Soft APB로 동작 ​ |
 +|2  |Hard APB로 동작 ​ |
 +</​WRAP>​
 +4. //​useGroupMatching//​ \\
 +얼굴 그룹 매칭을 사용할지 결정하는 flag입니다. \\ \\
 +5. //​reserved//​ \\ 
 +예약된 공간입니다. \\ \\ 
 +6. //​usePrivateAuth//​ \\ 
 +개별 인증 모드를 사용할지 결정하는 flag입니다. \\ \\ 
 +7. //​faceDetectionLevel//​ \\ 
 +A2에서 사용자를 인증할 때 얼굴 검출 레벨값이며,​ 지정한 레벨보다 낮은 레벨로 얼굴이 검출되면 인증 실패로 처리됩니다.\\
 +설정하면 Normal/​Strict에 따른 카메라 뷰가 표시되며,​ 인증 성공 시의 이미지 로그가 얼굴로 인식되지 않으면 접근이 거부됩니다. 기본값은 0입니다. \\
 +<WRAP group 50%>
 +^값  ^설명 ​ ^
 +|0  |얼굴 검출을 하지 않음 ​ |
 +|1  |Normal mode  |
 +|2  |Strict mode  |
 +</​WRAP>​
 +<WRAP info>
 +A2에서만 설정 가능하며,​ FaceStation2나 FaceLite에서는 사용되지 않습니다. ​
 +</​WRAP>​
 +8. //​useServerMatching//​ \\ 
 +지문 인증이나 얼굴 인식을 Matching server에서 수행할지 결정하는 flag입니다. \\ \\ 
 +9. //​useFullAccess//​ \\ 
 +사용하지 않는 변수입니다. \\ \\ 
 +10. //​matchTimeout//​ \\ 
 +지문 인증이나 얼굴 인식에서 최대 응답 시간이며 단위는 초(sec)를 사용합니다. \\ \\ 
 +11. //​authTimeout//​ \\ 
 +사용자 인증의 최대 응답 시간이며 단위는 초(sec)를 사용합니다. \\ \\ 
 +12. //​numOperators//​ \\ 
 +사용자 권한을 정의하는 operator의 개수입니다. \\ \\ 
 +13. //​reserved2//​ \\ 
 +예약된 공간입니다. \\ \\ 
 +14. //userID// \\ 
 +사용자 식별자입니다. \\ \\ 
 +15. //level// \\ 
 +사용자가 인증되었을 때 식별자에 해당하는 권한을 지정합니다. \\ 
 +<WRAP group 50%>
 +^값  ^설명 ​ ^
 +|0  |권한 없음 ​ |
 +|1  |관리자 권한 ​ |
 +|2  |시스템 구성을 변경할 수 있는 권한 ​ |
 +|3  |사용자 정보를 변경할 수 있는 권한 ​ |
 +</​WRAP>​
 +<WRAP alert>
 +**주의**\\
 +Operator 추가 시, 추가하고자 하는 operator의 수를 **//​numOperators//​** 필드의 값으로 지정해야 합니다.
 +</​WRAP>​
 +16. //​reserved//​ \\ 
 +예약된 공간입니다. \\ 
  
-**2. //size//** \\  +==== BS2StatusConfig ====  
-카드 템플릿의 크기입니다. \\ \\  +<code cpp> 
-**3. //data//** \\  +typedef struct { 
-카드 템플릿 데입니다. \\ +    struct { 
 +        uint8_t enabled; 
 +        uint8_t reserved[1];​ 
 +        uint16_t count; 
 +        BS2LedSignal signal[BS2_LED_SIGNAL_NUM];​ 
 +    } led[BS2_DEVICE_STATUS_NUM];​ 
 +    uint8_t reserved1[32];​ 
 +    struct { 
 +        uint8_t enabled; 
 +        uint8_t reserved[1];​ 
 +        uint16_t count; 
 +        BS2BuzzerSignal signal[BS2_BUZZER_SIGNAL_NUM];​ 
 +    } buzzer[BS2_DEVICE_STATUS_NUM];​ 
 +    uint8_t configSyncRequired;​ 
 +    uint8_t reserved2[31];​ 
 +} BS2StatusConfig;​ 
 +</​code>​ 
 +1. //enabled// \\  
 +led를 사용할지 결정하는 flag입니다. \\ \\ 
 +2. //reserved// \\  
 +예약된 공간입니다. \\ \\ 
 +3. //count// \\  
 +led signal의 수행 횟수이며,​ 0으로 설정시 무한 반복됩니다.\\ \\  
 +4. //signal// \\  
 +led signal pattern을 나열한 리스트이며,​ 최대 3개까지 설정할 수 있습니다.\\ \\ 
 +5. //​reserved1//​ \\  
 +예약된 공간입니다. \\ \\  
 +6. //enabled// \\  
 +buzzer를 사용할지 결정하는 flag입니다. \\ \\ 
 +7. //​reserved//​ \\  
 +예약된 공간입니다. \\ \\ 
 +8. //count// \\  
 +buzzer signal의 수행 횟수이며,​ 0으로 설정시 무한 반복됩니다.\\ \\  
 +9. //signal// \\  
 +buzzer signal pattern을 나열한 리스트이며,​ 최대 ​3개까지 설정할 수 있습니다. 
 +10. //configSyncRequired// \\  
 +장치를 조작하여 configuration이 변경되었다면,​ 이 값이 true로 설정됩니다.\\ \\  
 +11. //​reserved2//​ \\  
 +예약된 공간입니다.\\
  
-==== BS2SmartCardHeader ​====+==== BS2DisplayConfig ​==== 
 <code cpp> <code cpp>
 typedef struct { typedef struct {
-    ​uint16_t hdrCRC+    ​uint32_t language
-    ​uint16_t cardCRC+    ​uint8_t background
-    ​BS2_CARD_TYPE cardType+    ​uint8_t volume
-    uint8_t ​numOfTemplate+    uint8_t ​bgTheme; 
-    uint16_t ​templateSize+    uint8_t dateFormat
-    uint16_t ​issueCount+    uint16_t ​menuTimeout
-    uint8_t ​duressMask+    uint16_t ​msgTimeout;​ 
-    uint8_t ​reserved[5]; +    uint16_t backlightTimeout;​ 
-BS2SmartCardHeader +    uint8_t displayDateTime;​ 
 +    uint8_t useVoice; 
 +    uint8_t timeFormat;​ 
 +    uint8_t homeFormation;​ 
 +    BS2_BOOL useUserPhrase;​ 
 +    BS2_BOOL queryUserPhrase;​ 
 +    uint8_t shortcutHome[BS2_MAX_SHORTCUT_HOME];​ 
 +    uint8_t tnaIcon[16]
 +    uint8_t ​useScreenSaver
 +    uint8_t ​reserved1[31]; 
 +BS2DisplayConfig;
 </​code>​ </​code>​
-**1. //hdrCRC//** \\  +1. //language// \\  
-card header 체크섬 값입니다. (cardCRC - reserved) ​ \\ \\  +언어 설정 정보입니다. \\ 
-**2. //​cardCRC//​** \\  +
-card data 체크섬 값입니다. (BS2SmartCardHeader.cardType - BS2SmartCardData.accessOnData) \\ \\  +
-**3. //​cardType//​** \\  +
-카드 유형의 코드 값입니다. \\ +
 <WRAP group 50%> <WRAP group 50%>
 ^값  ^설명 ​ ^ ^값  ^설명 ​ ^
-|0x00 |알려지지 않은 카드 ​ | +|0  |한국어 ​ | 
-|0x01 |CSN 카드 ​ | +| |영어 ​ | 
-|0x02 |Secure 카드 ​ | +| |사용자 정의 ​ |
-|0x03 |Access 카드 ​ | +
-|0x0A |Wiegand 카드 ​ | +
-|0x0B |Config 카드 ​ |+
 </​WRAP>​ </​WRAP>​
 +2. //​background//​ \\ 
 +배경 이미지 설정 정보입니다. \\ 
 +<WRAP group 50%>
 +^값  ^설명 ​ ^
 +|0  |LOGO  |
 +|1  |NOTICE ​ |
 +|2  |SLIDE ​ |
 +|3  |PDF  |
 +</​WRAP>​
 +3. //volume// \\ 
 +효과음의 소리 크기이며 0-100 단계로 설정할 수 있습니다. 0으로 설정하면 효과음이 들리지 않습니다.\\ \\ 
 +4. //bgTheme// \\ 
 +테마 설정 정보입니다. \\ 
 +<WRAP group 50%>
 +^값  ^설명 ​ ^
 +|0  |로고 이미지 ​ |
 +|1  |공지 메시지 ​ |
 +|2  |Slide show  |
 +|3  |PDF  |
 +</​WRAP>​
 +5. //​dateFormat//​ \\ 
 +날짜 형식 설정 정보입니다. \\ 
 +<WRAP group 50%>
 +^값  ^설명 ​ ^
 +|0  |YYYY/​MM/​DD ​ |
 +|1  |MM/​DD/​YYYY ​ |
 +|2  |DD/​MM/​YYYY ​ |
 +</​WRAP>​
 +6. //​menuTimeout//​ \\ 
 +사용자의 장치 조작이 없을 때 잠금 화면으로 전환되는 시간이며 단위는 초(sec)를 사용합니다. 0-255 sec로 설정할 수 있습으며. 0으로 설정되면 잠금 화면으로 전환되지 않습니다.\\ ​
 +<WRAP group 50%>
 +^값  ^설명 ​ ^
 +|0  |메뉴화면 유지 지속 ​ |
 +|10  |메뉴화면 유지 10초  |
 +|20  |메뉴화면 유지 20초 (기본값) ​ |
 +|30  |메뉴화면 유지 30초  |
 +|40  |메뉴화면 유지 40초  |
 +|50  |메뉴화면 유지 50초  |
 +|60  |메뉴화면 유지 60초  |
 +</​WRAP>​
 +7. //​msgTimeout//​ \\ 
 +메시지 화면이 자동으로 사라지는 시간이며 단위는 밀리초(ms)를 사용합니다. 500-5000 ms로 설정할 수 있습니다.\\ ​
 +<WRAP group 50%>
 +^값  ^설명 ​ ^
 +|500  |메시지 화면 유지 500밀리초 ​ |
 +|1000  |메시지 화면 유지 1초  |
 +|2000  |메시지 화면 유지 2초 (기본값) ​ |
 +|3000  |메시지 화면 유지 3초  |
 +|4000  |메시지 화면 유지 4초  |
 +|5000  |메시지 화면 유지 5초  |
 +</​WRAP>​
 +8. //​backlightTimeout//​ \\ 
 +백라이트 유지 시간이며 단위는 초(sec)를 사용합니다. \\ 
 +<WRAP group 50%>
 +^값  ^설명 ​ ^
 +|0  |백라이트 유지 0초  |
 +|10  |백라이트 유지 10초  |
 +|20  |백라이트 유지 20초 (기본값) ​ |
 +|30  |백라이트 유지 30초  |
 +|40  |백라이트 유지 40초  |
 +|50  |백라이트 유지 50초  |
 +|60  |백라이트 유지 60초  |
 +</​WRAP>​
 +9. //​displayDateTime//​ \\ 
 +화면에 시간을 표시할지 결정하는 flag입니다.\\ \\ 
 +10. //​useVoice//​ \\ 
 +voice instruction을 사용할지 결정하는 flag입니다.\\ \\ 
 +11. //​timeFormat//​ \\ 
 +시간 형식 설정 정보입니다.\\ ​
 +<WRAP group 50%>
 +^값  ^설명 ​ ^
 +|0  |12시간 단위 표시 ​ |
 +|1  |24시간 단위 표시 ​ |
 +그러나, Linux 제품군인 BioStation 2, BioStation L2, BioLite Net2, FaceLite는 반대의 설정값을 가지고 있습니다. (0 = 24 hour / 1 = 12 hour)
 +</​WRAP>​
 +12. //​homeFormation//​ \\ 
 +Home 화면 설정 정보로 추후 적용 예정입니다.
 +<WRAP group 50%>
 +^값  ^설명 ​ ^
 +|1  |인터폰 ​ |
 +|2  |Shortcut 1  |
 +|3  |Shortcut 2  |
 +|4  |Shortcut 3  |
 +|5  |Shortcut 4  |
 +</​WRAP>​
 +13. //​useUserPhrase//​ \\
 +인증시 개인메시지 표시 여부입니다. \\ \\ 
 +14. //​queryUserPhrase//​ \\ 
 +true로 설정 시, 개인인증 메시지를 서버에 묻습니다. \\ \\ 
 +15. //​shortcutHome//​ \\ 
 +homeFormation과 관련된 변수로 추후 적용 예정입니다. \\ \\ 
 +16. //tnaIcon// \\ 
 +장치내에서 근태 코드값에 해당하는 아이콘을 보여줄 때 사용합니다. \\ \\ 
 +17. //​useScreenSaver//​ \\ 
 +''​FaceStation 2'',​ ''​FaceStation F2''​ true로 설정 시, 화면보호기가 활성화됩니다. \\ \\
 +18. //​reserved1//​ \\ 
 +예약된 공간입니다. \\ 
  
-**4. //numOfTemplate//** \\  +==== BS2IpConfig ==== 
-지문 템릿의 개수입니다. \\ \\  +<code cpp> 
-**5. //templateSize//** \\  +typedef struct { 
-문 템플릿의 크기입니다. ​일반적인 지문 템플릿의 크기는 384 바이트로 고정되어 있습니다. \\ +    uint8_t connectionMode;​ 
-BioStar 2에서 트 카드를 ​사용하는 경우 기본값은 300 바이트이며 필요에 따라 변경할 수 있지만 템릿의 크기가 너무 작게 설정면 지문 매칭에 문제가 발생할 수 있으므로 300 바이트 ​이상으로 설정하는 것을 권니다.  +    uint8_t useDHCP; 
-\\ \\ +    uint8_t useDNS; 
-**6. //issueCount//** \\  +    uint8_t reserved[1];​ 
-스마트 카드 발급 회차입니다. \\ \\  +    char ipAddress[BS2_IPV4_ADDR_SIZE];​ 
-**7. //duressMask//** \\  +    char gateway[BS2_IPV4_ADDR_SIZE];​ 
-협박 지문 유무 마스크 값입니다. \\ +    char subnetMask[BS2_IPV4_ADDR_SIZE];​ 
 +    char serverAddr[BS2_IPV4_ADDR_SIZE];​ 
 +    uint16_t port; 
 +    uint16_t serverPort;​ 
 +    uint16_t mtuSize; 
 +    uint8_t baseband; 
 +    uint8_t reserved2[1];​ 
 +    uint16_t sslServerPort 
 +    uint8_t reserved3[30];​ 
 +} BS2IpConfig;​ 
 +</​code>​ 
 +1. //connectionMode// \\  
 +BioStar 애리케이션과 장치간의 접속모드를 뜻하며, 접속 주체에 따라 direct mode(0x0)와 server mode(0x1)로 구분됩니다. direct mode는 BioStar 애플리케이션이 장치로 접속하며 server mode는 장치가 BioStar 애플리케이션으로 접속합니다. 장치에 설정된 기본 접속 모드는 direct mode입니다. \\ \\  
 +2. //useDHCP// \\  
 +DHCP 사용 유무를 나타내는 flag입니다. \\ \\  
 +3. //useDNS// \\  
 +server addresss를 사용할지 server URL을 사용할 지 결정하는 flag입니다. \\ \\  
 +4. //​reserved//​ \\  
 +예약된 공간입니다. \\ \\  
 +5. //​ipAddress//​ \\  
 +현재 장치의 IP 주소입니다. ​\\ \\  
 +6. //gateway// \\  
 +현재 장치의 이트웨이 IP 주소입니다. ​\\ \\  
 +7. //​subnetMask//​ \\  
 +현재 장치의 ​브넷 ​스크입니다. \\ \\  
 +8. //​serverAddr//​ \\  
 +connectionMode가 server mode일 때 사용, BioStar 애리케이션의 IP 주소입니다. \\ \\  
 +9. //port// \\  
 +현재 장치의 IP 포트 번호입니다. \\ \\  
 +10. //​serverPort//​ \\  
 +connectionMode가 server mode일 때 사용며, BioStar 애플리케션의 포트 번호입니다. \\ \\  
 +11. //mtuSize// \\  
 +TCP 통신에 사용할 MTU((최대 전송 단위, Maximum Transmission Unit)) 크기입니다. \\ \\  
 +12. //​baseband//​ \\  
 +치의 baseband이며 10mb/s나 100mb/s의 속도를 가집니다. ​\\ \\  
 +13. //​reserved2//​ \\  
 +예약된 공간입니다. ​\\ \\  
 +14. //sslServerPort// \\  
 +connectionMode가 server ssl mode일 때 사용되며,​ BioStar 애플리케이션의 포트 번호입니다. \\ \\  
 +15. //reserved3// \\  
 +예약된 공간입니다. \\ 
  
-==== BS2SmartCardCredentials ​====+==== BS2IpConfigExt ​====
 <code cpp> <code cpp>
 typedef struct { typedef struct {
-    ​uint8_t pin[BS2_PIN_HASH_SIZE]; +    ​char dnsAddr[BS2_IPV4_ADDR_SIZE];​ 
-    uint8_t ​templateData[BS2_SMART_CARD_MAX_TEMPLATE_COUNT * BS2_FINGER_TEMPLATE_SIZE]; +    char serverUrl[BS2_URL_SIZE]; 
-BS2SmartCardCredentials;+    uint8_t ​reserved[32]; 
 +BS2IpConfigExt;
 </​code>​ </​code>​
-**1. //pin//** \\  +1. //dnsAddr// \\  
-pin code 값입니다. \\ \\  +dns 서버 주소입니다. \\ \\  
-**2. //templateData//** \\  +2. //serverUrl// \\  
-지문 템릿 데터 영역으로 ​최대 ​4개의 ​문 템플릿을 저장할 수 있습니다.\\ ​+BioStar 애리케션 서버 URL이며, ​최대 ​256자까지 입력할 수 있습니다. \\ \\  
 +3. //​reserved//​ \\  
 +예약된 공간입니다. \\ 
  
-==== BS2AccessOnCardData ​====+==== BS2TNAConfig ​====
 <code cpp> <code cpp>
 typedef struct { typedef struct {
-    ​uint16_t accessGroupID[BS2_SMART_CARD_MAX_ACCESS_GROUP_COUNT]; +    ​uint8_t tnaMode; 
-    ​BS2_DATETIME startTime+    uint8_t tnaKey; 
-    ​BS2_DATETIME endTime+    uint8_t tnaRequired;​ 
-BS2AccessOnCardData;+    uint8_t reserved[1]; 
 +    ​uint32_t tnaSchedule[BS2_MAX_TNA_KEY]
 +    ​uint8_t unused[BS2_MAX_TNA_KEY];​ 
 +} BS2TNAInfo;​ 
 + 
 +typedef struct { 
 +    char tnaLabel[BS2_MAX_TNA_KEY][BS2_MAX_TNA_LABEL_LEN];​ 
 +    uint8_t unused[BS2_MAX_TNA_KEY];​ 
 +} BS2TNAExtInfo;​ 
 + 
 +typedef struct { 
 +    BS2TNAInfo tnaInfo; 
 +    BS2TNAExtInfo tnaExtInfo;​ 
 +    uint8_t reserved2[32]
 +BS2TNAConfig;
 </​code>​ </​code>​
-**1. //accessGroupID//** \\  +1. //tnaMode// \\  
-출입 그룹 아이디 ​스트입니다. \\ \\  +근태 관리 모드입니다. \\  
-**2. //startTime//** \\  +<WRAP group 50%> 
-사용자 인증이 가능한 시작 시간이며, 0일 경우 ​제한이 없습니다. \\ \\  +^값  ^설명 ​ ^ 
-**3. //endTime//** \\  +|0  |사용안함 ​ | 
-사용자 인증이 가능한 마막 시간며, 0일 경우 제한이 없습니다.\\ ​+|1  |사용자에 의한 근태 코드 적용 | 
 +|2  |근태 관리 일정에 맞춰 근태 코드 적용 | 
 +|3  |사용자가 마지막으로 선택한 근태 코드 적용 ​ | 
 +|4  |고정된 근태 코드 사용 ​ | 
 +</​WRAP>​ 
 +2. //tnaKey// \\  
 +근태 코드값을 의미하는 단축키이며, ​장치의 키패드에 맵핑됩니다. 
 +<WRAP group 60%> 
 +^Device Type ^T&A Code  ^Mapped Key  ^Value^ 
 +|BioStation 2|BS2_TNA_UNSPECIFIED|(N/​A)|0
 +|:::​|BS2_TNA_KEY_1|F1|1| 
 +|:::​|BS2_TNA_KEY_2|F2|2| 
 +|:::​|BS2_TNA_KEY_3|F3|3| 
 +|:::​|BS2_TNA_KEY_4|F4|4| 
 +|:::​|BS2_TNA_KEY_5|1|5| 
 +|:::​|BS2_TNA_KEY_6|2|6| 
 +|:::​|BS2_TNA_KEY_7|3|7| 
 +|:::​|BS2_TNA_KEY_8|4|8| 
 +|:::​|BS2_TNA_KEY_9|5|9| 
 +|:::​|BS2_TNA_KEY_10|6|10| 
 +|:::​|BS2_TNA_KEY_11|7|11| 
 +|:::​|BS2_TNA_KEY_12|8|12| 
 +|:::​|BS2_TNA_KEY_13|9|13| 
 +|:::​|BS2_TNA_KEY_14|Call|14| 
 +|:::​|BS2_TNA_KEY_15|0|15| 
 +|:::​|BS2_TNA_KEY_16|Esc|16| 
 +</​WRAP>​ 
 +\\ \\   
 +3. //​tnaRequired//​ \\  
 +근태 모드가 1로 설정되었을 ​경우에 근태 코드값이 요구되는지 결정하는 flag입니다.\\ \\  
 +4. //reserved// \\  
 +예약된 공간입니다. \\ \\  
 +5. //​tnaSchedule//​ \\  
 +각 근태 코드가 수행할 일정을 지정합니다.\\ \\  
 +6. //unused// \\  
 +사용지 않는 변수입니다. \\ \\  
 +7. //​tnaLabel//​ \\  
 +근태 코드값이 무엇을 의미하는지 나타내는 별칭입니다. \\ \\  
 +8. //unused// \\  
 +사용하지 않는 변수입니다. \\ 
  
-==== BS2SmartCardData====+==== BS2CardConfig ​====
 <code cpp> <code cpp>
 typedef struct { typedef struct {
-    ​BS2SmartCardHeader header+    ​uint8_t primaryKey[6]
-    uint8_t ​cardID[BS2_CARD_DATA_SIZE]; +    uint8_t ​reserved1[2]; 
-    ​BS2SmartCardCredentials credentials+    ​uint8_t secondaryKey[6]
-    ​BS2AccessOnCardData accessOnData+    ​uint8_t reserved2[2]; ​    
-BS2SmartCardData;    ​+    uint16_t startBlockIndex;​ 
 +    uint8_t reserved[6]
 +BS2MifareCard; 
 + 
 +typedef struct { 
 +    uint8_t primaryKey[8];​ 
 +    uint8_t secondaryKey[8]; ​   
 +    uint16_t startBlockIndex;​ 
 +    uint8_t reserved[6];​ 
 +} BS2IClassCard;​ 
 + 
 +typedef struct { 
 +    uint8_t primaryKey[16];​ 
 +    uint8_t secondaryKey[16]; ​   
 +    uint8_t appID[3]; 
 +    uint8_t fileID; 
 +    uint8_t encryptionType;​ 
 +    uint8_t operationMode;​ 
 +    uint8_t reserved[2];​ 
 +} BS2DesFireCard;​ 
 + 
 +typedef struct { 
 +    uint8_t byteOrder;​ 
 +    uint8_t useWiegandFormat;​ 
 +    uint8_t dataType; 
 +    uint8_t useSecondaryKey;​ 
 +    BS2MifareCard mifare; 
 +    BS2IClassCard iclass; 
 +    BS2DesFireCard desfire; 
 +    uint8_t formatID; 
 +    uint8_t cipher; 
 +    uint8_t reserved[24];​ 
 +} BS2CardConfig;​
 </​code>​ </​code>​
-**1. //header//** \\  +1. //primaryKey// \\  
-SmartCard 헤더입니다. \\ \\  +Mifare card 정보에 접근하기 위한 첫번째 암호화 키입니다.\\ \\ 
-**2. //cardID//** \\  +2. //reserved1// \\  
-단말기에서 사용할 카드 식별자입니다. ​Access on Card의 경우 ​배열의 32 byte를 Card ID로 +예약된 공간입니다.\\ \\  
- ​사용하고, Secure Credential ​card는 ​배열의 24 byte를 Card ID로 사용하게 됩니다. \\ \\  +3. //​secondaryKey//​ \\  
-**3. //credentials//** \\  +Mifare card 정보에 접근하기 위한 두번째 암호화 키입니다. \\ \\ 
-pin code나 ​지문 템플릿이 저장되어 있는 인증 ​터 영역입니다. \\ \\  +4. //​reserved2//​ \\  
-**4. //accessOnData//** \\  +예약된 공간입니다.\\ \\  
-AOC 카드에서 사용하는 영역으로 입 그룹 ​정보를 가지고 있습니다.\\ ​+5. //​startBlockIndex//​ \\  
 +Mifare data storage에서의 start block index입니다.\\ \\  
 +6. //​reserved//​ \\  
 +예약된 공간입니다.\\ \\  
 +7. //​primaryKey//​ \\  
 +IClass card 정보에 접근하기 위한 첫번째 암호화 키입니다.\\ \\ 
 +8. //​secondaryKey//​ \\  
 +IClass card 정보에 접근하기 위한 두번째 암호화 키입니다. \\ \\ 
 +9. //​startBlockIndex//​ \\  
 +Mifare data storage에서의 start block index입니다.\\ \\  
 +10. //​reserved//​ \\  
 +예약된 공간입니다.\\ \\  
 +11. //​primaryKey//​ \\  
 +DesFire card 정보에 접근하기 위한 첫번째 암호화 키입니다.\\ \\ 
 +12. //​secondaryKey//​ \\  
 +DesFire card 정보에 접근하기 위한 두번째 암호화 키입니다. \\ \\ 
 +13. //appID// \\  
 +사용자 인증을 위해 DESFire 카드내에 내장된 ​사용할 ​애플리케이션 식별자입니다.\\ \\  
 +14. //fileID// \\  
 +DESFire ​카드내에 내장된 사용할 애플리케이션가 데이터를 읽고 쓰기 위한 파일 ​식별자입니다.\\ \\  
 +15. //​encryptionType//​ \\  
 +데이터 암호화 방식을 나타냅니다.\\  
 +<WRAP group 50%> 
 +^값  ^설명 ​ ^ 
 +|0  |DES/​3DES ​ | 
 +|1  |AES  | 
 +</​WRAP>​ 
 +16. //​operationMode//​ \\  
 +운영 방식을 지정합니다. (추후적용)\\  
 +<WRAP group 50%> 
 +^값  ^설명 ​ ^ 
 +|0  |기존방식 (PICC master key를 사용) ​ | 
 +|1  |신규방식 (App master key를 사용) ​ | 
 +</​WRAP>​ 
 +17. //​reserved//​ \\  
 +예약된 공간입니다.\\ \\  
 +18. //​byteOrder//​ \\  
 +카드 데이터의 바이트 저장 순서입니다. 0일 경우 ​MSB((최상위 비트, Most Significant Bit))이고,​ 1일 경우 LSB((최하위 비트, Least Significant Bit))입니다. \\ \\  
 +19. //​useWiegandFormat//​ \\  
 +Wiegand 형식 카드 사용 유무를 결정하는 flag입니다. \\ \\  
 +20. //​dataType//​ \\  
 +Card의 데이터 유형입니다. \\  
 +<WRAP group 50%> 
 +^값  ^설명 ​ ^ 
 +|0  |바이너리 ​ | 
 +|1  |아스키 ​ | 
 +|2  |UTF16 ​ | 
 +|3  |BCD  | 
 +</​WRAP>​ 
 +21. //​useSecondaryKey//​ \\  
 +두번째 암호화 키 사용 ​유무를 결정는 flag입니다. \\ \\  
 +22. //​formatID//​ \\  
 +BioStar 애플리케이션에서 ​card configuration을 데이터베이스 관리할 필요가 있을 경우 사용할 수 있는 식별자입니다. \\ \\  
 +23. //cipher// \\ 
 +Keypad로 card id를 입력받을 수 있도록 활성화 합니다. \\ 
 +기본 값은 0이며, Xpass D2 Gangbox Keypad 만 유효합니다. \\ 
 +<WRAP group 50%> 
 +^값  ^설명 ​ ^ 
 +|0  |비활성화 ​ | 
 +|1  |활성화 ​ | 
 +</​WRAP>​ 
 +24. //​reserved5//​ \\  
 +예약된 공간입니다. \\  
 +==== BS2FingerprintConfig ==== 
 +<code cpp> 
 +typedef struct { 
 +    uint8_t ​     securityLevel;​ 
 +    uint8_t ​     fastMode; 
 +    uint8_t ​     sensitivity;​ 
 +    uint8_t ​     sensorMode;​ 
 +    uint16_t ​    ​templateFormat;​ 
 +    uint16_t ​    ​scanTimeout;​ 
 +    uint8_t ​     successiveScan;​ 
 +    uint8_t ​     advancedEnrollment;​ 
 +    uint8_t ​     showImage;​ 
 +    uint8_t ​     lfdLevel; 
 +    bool         ​checkDuplicate;​ 
 +                  
 +    uint8_t ​     reserved3[31];​ 
 +} BS2FingerprintConfig;​ 
 +</​code>​ 
 +1. //​securityLevel//​ \\  
 +시스템 전반적으로 사용할 지문 인증 보안 레벨입니다. \\  
 +<WRAP group 50%> 
 +^값  ^설명 ​ ^ 
 +|0  |기본 ​ | 
 +|1  |보안 레벨 높음 ​ | 
 +|2  |보안 레벨 매우 높음 ​ | 
 +</​WRAP>​ 
 +2. //​fastMode// ​\\  
 +지문 인증 속도 설정입니다. \\  
 +<WRAP group 50%> 
 +^값  ^설명 ​ ^ 
 +|0  |자동 ​ | 
 +|1  |기본 인증 속도 ​ | 
 +|2  |인증 속도 빠름 ​ | 
 +|3  |인증 속도 매우 빠름 ​ | 
 +</​WRAP>​ 
 +3. //sensitivity//​ \\  
 +지문 센서의 민감도 설정입니다. \\  
 +<WRAP group 50%> 
 +^값  ^설명 ​ ^ 
 +|0  |민감도 가장 낮음 ​ | 
 +|1  |민감도 레벨 1  | 
 +|2  |민감도 레벨 2  | 
 +|3  |민감도 레벨 3  | 
 +|4  |민감도 레벨 4  | 
 +|5  |민감도 레벨 5  | 
 +|6  |민감도 레벨 6  | 
 +|7  |민감도 가장 높음 ​ | 
 +</​WRAP>​ 
 +4. //​sensorMode//​ \\  
 +지문 센서를 어떻게 동작시킬지 결정하는 flag입니다. 0일 경우 센서를 항상 켜지고, 1일 경우 근접센서에 손가락이 접근할 때에만 센서가 켜집니다. \\ \\  
 +5. //​templateFormat// \\  
 +지문 템플릿 저장 ​형식입니다. \\  
 +<WRAP group 50%> 
 +^값  ^설명 ​ ^ 
 +|0  |suprema 포맷 ​ | 
 +|1  |국제 표준 포맷 ​ | 
 +|2  |Ansi 포맷 ​ | 
 +</​WRAP>​ 
 +6. //​scanTimeout//​ \\  
 +지문 스캔 대기 시간으로 기본값은 10초입니다. \\ \\  
 +7. //​successiveScan//​ \\  
 +사용하지 않는 변수입니다. \\ \\  
 +8. //​advancedEnrollment//​ \\  
 +지문 등록할 때 지문 이미지 품질 정보를 사용할지 결정하는 flag입니다. 만약, 이 옵션이 비활성화되어 있다면 획득한 지문 이미지의 품질이 낮더라도 [[BS2_ScanFingerprint]] 함수에서는 ''​BS_SDK_ERROR_EXTRACTION_LOW_QUALITY''​ 또는 ''​BS_SDK_ERROR_CAPTURE_LOW_QUALITY''​ 에러 코드를 반환하지 않습니다. ​  \\ \\  
 +9. //​showImage//​ \\  
 +스캔된 지문 이미지를 화면에 보여줄지 결정하는 flag입니다. \\ \\  
 +10. //​lfdLevel//​ \\  
 +위조 지문을 판단하는 민감도 설정입니다. \\ 
 +<WRAP group 50%> 
 +^값  ^설명 ​ ^ 
 +|0  |사용안함 ​ | 
 +|1  |민감도 낮음 ​ | 
 +|2  |민감도 보통 ​ | 
 +|3  |민감도 높음 ​ | 
 +</​WRAP>​ 
 +11. //​checkDuplicate//​ \\ 
 +[+ V2.6.4] true로 설정하면 중복된 지문인지 판단합니다. \\ \\ 
 +12. //​reserved3//​ \\  
 +예약된 공간입니다. \\  
 +==== BS2Rs485Config ==== 
 +<code cpp> 
 +typedef struct { 
 +    uint8_t supportConfig;​ 
 +    uint8_t useExceptionCode;​ 
 +    uint8_t exceptionCode[BS2_RS485_MAX_FAIL_CODE_LEN];​ 
 +    uint8_t outputFormat;​ 
 +    uint8_t osdpID; 
 +    uint8_t reserved[4];​ 
 +} BS2IntelligentPDInfo;​ 
 + 
 +typedef struct { 
 +    uint32_t baudRate; 
 +    uint8_t channelIndex;​ 
 +    uint8_t useRegistance;​ 
 +    uint8_t numOfDevices;​ 
 +    uint8_t reserved[1];​ 
 +    BS2Rs485SlaveDevice slaveDevices[BS2_RS485_MAX_SLAVES_PER_CHANNEL];​ 
 +} BS2Rs485Channel;​ 
 + 
 +typedef struct { 
 +    uint8_t mode; 
 +    uint8_t numOfChannels;​ 
 +    uint8_t reserved[2];​ 
 +    BS2IntelligentPDInfo intelligentInfo;​ 
 +    uint8_t reserved1[16];​ 
 +    BS2Rs485Channel channels[BS2_RS485_MAX_CHANNELS];​ 
 +} BS2Rs485Config;​ 
 +</​code>​ 
 +1. //​supportConfig//​ \\  
 +''​[+V2.8]''​ 이 값이 0으로 전달되면 장치는 아래의 Intelligent PD(Peripheral Device) 관련 설정들을 모두 무시하게 됩니다. \\ \\ 
 +2. //​useExceptionCode//​ \\  
 +''​[+V2.8]''​ 예외코드를 전송을 사용할지의 여부를 설정합니다. \\ \\ 
 +3. //​exceptionCode//​ \\  
 +''​[+V2.8]'' ​인증에 실패하거나,​ 인증 성공지만 카드가 등록되어있지 않은 사용자의 경우 예외코드를 내보낼 수 있습니다. \\ 
 +이때 사용할 예외코드를 설정합니다. \\ 
 +만일 예외코드가 0(0x0000000000000000)이라면 예외코드가 발생되지 않습니다. \\ \\ 
 +4. //outputFormat// \\  
 +''​[+V2.8]''​ 인증 성공 시 내보내어지는 정보를 지정할 수 있습니다. \\ 
 +0 이면 ​카드ID가, 1 이면 사용자ID가 출력됩니다. \\ \\ 
 +5. //osdpID// \\  
 +''​[+V2.8]''​ 동일한 ACU에 연결된 장치들을 ​로 구분시켜주기위해 ​사용되어지는 값으로, \\ 
 +0~127 사이의 unique한 값을 설정해 지정여주면 됩니다. \\ \\ 
 +6. //​reserved//​ \\  
 +''​[+V2.8]''​ 예약된 공간입니다.\\ \\  
 +\\ 
 +7. //​baudRate//​ \\  
 +RS485 통신 속도이며 설정할 수 있는 범위는 다음과 같습니다. \\ 
 +<WRAP group 50%> 
 +^값  ^ 
 +|9600  | 
 +|19200 ​ | 
 +|38400 ​ | 
 +|57600 ​ | 
 +|115200 ​ | 
 +</​WRAP>​ 
 +8. //​channelIndex//​ \\  
 +(사용자 설정 불가) RS485 network의 통신 채널 번호입니다. \\ \\ 
 +9. //​useRegistance//​ \\  
 +종단 저항을 설정할지 결정하는 flag입니다. - 동작에 ​향 없음 \\ \\ 
 +10. //​numOfDevices//​ \\  
 +슬레이브 장치의 개수입니다.\\ \\ 
 +11. //​reserved//​ \\  
 +예약된 공간입니다.\\ \\  
 +12. //​slaveDevices//​ \\  
 +슬레이브 장치를 나열한 리스트로 최대 32개까지 정의할 수 있습니다.\\ \\ 
 +\\ 
 +13. //mode// \\  
 +RS485 네트워크에서 어떤 모드로 동작할지 결정하는 flag니다 .\\ 
 +<WRAP group 50%> 
 +^값  ^설명 ​ ^ 
 +|0  |사용안함 ​ | 
 +|1  |Master ​ | 
 +|2  |Slave ​ | 
 +|3  |Standalone ​ | 
 +</​WRAP>​ 
 +14. //​numOfChannels//​ \\  
 +RS485 채널의 개수입니다.\\ \\  
 +15. //​reserved//​ \\  
 +예약된 공간입니다.\\ \\  
 +16. //​intelligentInfo//​ \\  
 +''​[+V2.8]''​ Intelligent PD 정보입니다.\\ 
 +mode가 default(Standalone)인 경우에만 동작됩니다. \\ \\ 
 +17. //​reserved1//​ \\  
 +예약된 공간입니다.\\ \\ 
 +18. //​channels//​ \\  
 +RS485 채널을 나열한 리스트로 최대 4개까지 설정할 수 있습니다.\\ \\ 
  
-==== BS2Card ​====+==== BS2WiegandConfig ​====
 <code cpp> <code cpp>
 typedef struct { typedef struct {
-    uint8_t ​isSmartCard;+    ​uint32_t length; 
 +    uint8_t idFields[BS2_WIEGAND_MAX_FIELDS][BS2_WIEGAND_FIELD_SIZE];​ 
 +    uint8_t parityFields[BS2_WIEGAND_MAX_PARITIES][BS2_WIEGAND_FIELD_SIZE];​ 
 +    BS2_WIEGAND_PARITY parityType[BS2_WIEGAND_MAX_PARITIES];​ 
 +    uint8_t parityPos[BS2_WIEGAND_MAX_PARITIES];​ 
 +} BS2WiegandFormat;​ 
 + 
 +typedef struct { 
 +    uint8_t mode; 
 +    uint8_t useWiegandBypass;​ 
 +    uint8_t useFailCode;​ 
 +    uint8_t failCode; 
 +    uint16_t outPulseWidth;​ 
 +    uint16_t outPulseInterval;​ 
 +    uint32_t formatID; 
 +    BS2WiegandFormat format; 
 +    uint16_t wiegandInputMask;​ 
 +    uint16_t wiegandCardMask;​ 
 +    uint8_t wiegandCSNIndex;​ 
 +    uint8_t useWiegandUserID;​ 
 +    uint8_t reserved[26];​ 
 +} BS2WiegandConfig;​ 
 +</​code>​ 
 +1. //length// \\  
 +Wiegand 카드 포맷의 길이입니다. \\ \\  
 +2. //​idFields//​ \\  
 +최대 4개의 id field를 가질수 있습니다. 각 field마다 id의 시작부터 끝까지 bit를 세팅한 값을 배열의 끝에서부터 입력해야 합니다. 예를들어,​ Standard 26bit wiegand card data는 "P FFFFFFFF NNNNNNNNNNNNNNNN P" 형태로 구성되어 있습니다. 따라서 Facillity Code는 "0 11111111 0000000000000000 0"​이므로 0x01FE0000 값을 가지며, Card Number는 0x0001FFFE입니다.\\  
 +<code cpp> 
 +// for Facillity Code 
 +idFields[0][28] = 0x01;  
 +idFields[0][29] = 0xFE;  
 +idFields[0][30] = 0x00;  
 +idFields[0][31] = 0x00;  
 + 
 +// for Card Number 
 +idFields[1][28] = 0x00; 
 +idFields[1][29] = 0x01; 
 +idFields[1][30] = 0xFF; 
 +idFields[1][31] = 0xFE; 
 +</​code>​ 
 +3. //​parityFields//​ \\  
 +최대 4개의 패리티 필드를 가질수 있으며, 패리티를 체크할 시작과 끝을 id Field와 동일한 방법으로 입력합니다. \\ \\  
 +4. //​parityType//​ \\  
 +패리티 유형을 지정합니다. \\ 
 +<WRAP group 50%> 
 +^값  ^설명 ​ ^ 
 +|0  |parity 체크하지 않음 ​ | 
 +|1  |홀수 parity 체크 ​ | 
 +|2  |짝수 parity 체크 ​ | 
 +</​WRAP>​ 
 +5. //​parityPos//​ \\  
 +Wiegand 카드 데이터에서 패리티 값을 저장할 위치를 지정합니다. \\ \\ 
 +6. //mode// \\  
 +Wiegand 입출력 모드를 설정합니다. \\ 
 +<WRAP group 50%> 
 +^값  ^설명 ​ ^ 
 +|0  |입력 ​ | 
 +|1  |출력 ​ | 
 +|2  |입출력 ​ | 
 +</​WRAP>​ 
 +7. //​useWiegandBypass//​ \\  
 +카드 데이터 출력 여부를 결정하는 플래그입니다.\\ 
 +<WRAP group 50%> 
 +^값  ^설명 ​ ^ 
 +|0  |인증되면 출력 ​ | 
 +|1  |인증없이 출력 ​ | 
 +</​WRAP>​ 
 +8. //​useFailCode//​ \\  
 +인증되지 않은 카드 데이터를 Fail Code값으로 채워서 보낼지 결정하는 플래그입니다.\\ \\ 
 +9. //​failCode//​ \\  
 +카드 데이터를 치환할 Fail Code값입니다.\\ 
 +<WRAP group 50%> 
 +^값  ^ 
 +|0x00| 
 +|0xFF| 
 +</​WRAP>​ 
 +10. //​outPulseWidth//​ \\  
 +출력 진폭값으로 20 ~ 100 us 범위를 가집니다.\\ \\  
 +11. //​outPulseInterval//​ \\  
 +출력 주파수값으로 200 ~ 20000 us 범위를 가집니다.\\ \\  
 +12. //​formatID//​ \\  
 +애플리케이션에서 Wiegand 카드 포맷을 구별하기 위해 사용하는 값으로 장치에서는 사용하지 않습니다.\\ \\  
 +13. //format// \\  
 +WiegandFormat 구조체입니다.\\ \\  
 +14. //​wiegandInputMask//​ \\ 
 +Master를 제외하고 Slave와 wiegand 장치에서의 wiegand 입력에 대한 mask입니다. \\ \\ 
 +15. //​wiegandCardMask//​ \\ 
 +Master장치에서의 입력일 때의 mask입니다. \\ \\ 
 +16. //​wiegandCSNIndex//​ \\ 
 +Mifare 또는 EM 카드를 사용할 때 Wiegand out을 어떤 형식으로 처리할 것인지 결정하는 인덱스입니다. 
 +설정하기 전에 [[configuration api#​BS2CardConfig]] 구조체의 //​useWiegandFormat//​ 값을 확인하십시오. \\ \\ 
 +17. //​useWiegandUserID//​ \\ 
 +Wiegand 출력시 Card ID 또는 사용자 ID를 선택적으로 출력할 수 있도록 결정하는 플래그 입니다. \\ 
 +<WRAP group 50%> 
 +^값  ^설명 ​ ^ 
 +|0  |사용 안함 ​ | 
 +|1  |Card ID  | 
 +|2  |사용자 ID  | 
 +</​WRAP>​ 
 +18. //​reserved//​ \\  
 +예약된 공간입니다.\\  
 + 
 +==== BS2WiegandDeviceConfig ==== 
 +<code cpp> 
 +typedef struct { 
 +    uint32_t deviceID; 
 +    uint16_t port; 
 +    uint8_t switchType;​ 
 +    uint8_t reserved[1];​ 
 +} BS2WiegandTamperInput;​ 
 + 
 +typedef struct { 
 +    uint32_t deviceID; 
 +    uint16_t port; 
 +    uint8_t reserved[10];​ 
 +} BS2WiegandLedOutput;​ 
 + 
 +typedef struct { 
 +    uint32_t deviceID; 
 +    uint16_t port; 
 +    uint8_t reserved[34];​ 
 +} BS2WiegandBuzzerOutput;​ 
 + 
 +typedef struct { 
 +    BS2WiegandTamperInput tamper; 
 +    BS2WiegandLedOutput led[BS2_WIEGAND_STATUS_NUM];​ 
 +    BS2WiegandBuzzerOutput buzzer; 
 +    uint32_t reserved[32];​ 
 +} BS2WiegandDeviceConfig;​ 
 +</​code>​ 
 +1. //​deviceID//​ \\  
 +Wiegand card reader의 tamper ​신호를 수신받는 장치 식별자입니다. \\ \\  
 +2. //port// \\  
 +Wiegand card reader의 tamper 입력 포트입니다. \\ \\ 
 +3. //​switchType//​ \\  
 +입력 포트의 동작 모드로 대기 상태가 '​off'​이고 입력 신호가 on일 때 trigger를 발동시킵니다. \\ 
 +<WRAP group 50%> 
 +^값  ^설명 ​ ^ 
 +|0|Normally Open| 
 +|1|Normally Closed| 
 +</​WRAP>​  
 +4. //​reserved//​ \\  
 +예약된 공간입니다.\\ \\  
 +5. //​deviceID//​ \\  
 +Wiegand card reader에 led 신호를 출력하는 장치 식별자입니다. \\ \\  
 +6. //port// \\  
 +Wiegand card reader의 led 신호 출력 포트입니다. \\ \\ 
 +7. //​reserved//​ \\  
 +예약된 공간입니다.\\ \\  
 +8. //​deviceID//​ \\  
 +Wiegand card reader에 buzzer 신호를 출력하는 장치 식별자입니다. \\ \\  
 +9. //port// \\  
 +Wiegand card reader의 buzzer신호 출력 포트입니다. \\ \\ 
 +10. //​reserved//​ \\  
 +예약된 공간입니다.\\ \\  
 +10. //led// \\  
 +Wiegand card reader의 led 신호를 출력하는 장치를 나열한 리스트로 최대 2개까지 설정할 수 있습니다.\\ 
 +<WRAP group 50%> 
 +^값  ^설명 ​ ^ 
 +|0  |적색 led  | 
 +|1  |녹색 led  | 
 +</​WRAP>​ 
 + 
 +==== BS2InputConfig ==== 
 +<code cpp> 
 +typedef struct { 
 +    uint16_t minValue; 
 +    uint16_t maxValue; 
 +} BS2SVInputRange;​ 
 + 
 +typedef struct { 
 +    uint32_t deviceID; 
 +    uint16_t port; 
 +    uint8_t reserved[10];​ 
 +} BS2WiegandLedOutput;​ 
 + 
 +typedef struct { 
 +    BS2SVInputRange shortInput;​ 
 +    BS2SVInputRange openInput;​ 
 +    BS2SVInputRange onInput; 
 +    BS2SVInputRange offInput; 
 +} BS2SupervisedInputConfig;​ 
 + 
 +typedef struct { 
 +    uint8_t numInputs;​ 
 +    uint8_t numSupervised;​ 
 +    uint16_t reseved; 
 +    struct { 
 +        uint8_t portIndex;​ 
 +        uint8_t enabled; 
 +        uint8_t supervised_index;​ 
 +        uint8_t reserved[5];​ 
 +        BS2SupervisedInputConfig config; 
 +    } supervised_inputs[BS2_MAX_INPUT_NUM];​ 
 +} BS2InputConfig;​ 
 +</​code>​ 
 +1. //​minValue//​ \\  
 +최저 전압으로 유효 범위는 0 ~ 3300(3.3v)까지 입니다. \\ \\  
 +2. //​maxValue//​ \\  
 +최고 전압으로 유효 범위는 0 ~ 3300(3.3v)까지 입니다. \\ \\  
 +3. //​shortInput//​ \\  
 +short input으로 판별할 수 있는 전압 범위입니다. \\ \\  
 +4. //​openInput//​ \\  
 +open input으로 판별할 수 있는 전압 범위입니다. \\ \\  
 +5. //onInput// \\  
 +on input으로 판별할 수 있는 전압 범위입니다. \\ \\  
 +6. //​offInput//​ \\  
 +off input으로 판별할 수 있는 전압 범위입니다. \\ \\  
 +7. //​numInputs//​ \\  
 +입력 포트의 개수입니다. \\ \\  
 +8. //​numSupervised//​ \\  
 +supervised 입력 포트의 개수입니다. \\ \\  
 +9. //​portIndex//​ \\  
 +입력 포트 번호입니다. \\ \\  
 +10. //enabled// \\  
 +supervised input으로 사용하는지 결정하는 flag입니다. \\ \\  
 +11. //​supervised_index//​ \\  
 +supervised input의 저항값 유형입니다. \\ 
 +<WRAP group 50%> 
 +^값  ^설명 ​ ^ 
 +|0  |1k 저항 ​ | 
 +|1  |2.2k 저항 ​ | 
 +|2  |4.7k 저항 ​ | 
 +|3  |10k 저항 ​ | 
 +|255  |사용자 정의 ​ | 
 +</​WRAP>​ 
 +12. //​reserved//​ \\  
 +예약된 공간입니다. \\ \\  
 +13. //config// \\  
 +supervised 입력 신호 유형을 판단하는 설정값으로,​ supervised input의 저항값이 사용자 정의일 경우에만 의미가 있습니다. \\  
 + 
 +==== BS2WlanConfig ==== 
 +<code cpp> 
 +typedef struct { 
 +    uint8_t enabled; 
 +    uint8_t operationMode;​ 
 +    uint8_t authType; 
 +    uint8_t encryptionType;​ 
 +    char essid[BS2_WLAN_SSID_SIZE];​ 
 +    char authKey[BS2_WLAN_KEY_SIZE];​ 
 +    uint8_t reserved2[32];​ 
 +} BS2WlanConfig;​ 
 +</​code>​ 
 +1. //enabled// \\  
 +무선랜 사용 유무입니다. \\ \\  
 +2. //​operationMode//​ \\  
 +무선랜 사용 유형입니다. \\ 
 +<WRAP group 50%> 
 +^값  ^설명 ​ ^ 
 +|0  |infrastructure ​ | 
 +|1  |Ad-hoc ​ | 
 +</​WRAP>​ 
 +3. //​authType//​ \\  
 +무선랜 인증 유형입니다. \\  
 +<WRAP group 50%> 
 +^값  ^설명 ​ ^ 
 +|0  |Open  | 
 +|1  |Shared ​ | 
 +|2  |WPA-PSK ​ | 
 +|3  |WPA2-PSK ​ | 
 +</​WRAP>​ 
 +4. //​encryptionType//​ \\  
 +무선랜 암호화 방식입니다. \\ 
 +<WRAP group 50%> 
 +^값  ^설명 ​ ^ 
 +|0  |없음 ​ | 
 +|1  |WEP  | 
 +|2  |TKIP/​AES ​ | 
 +|3  |AES  | 
 +|3  |TKIP  | 
 +</​WRAP>​ 
 +5. //essid// \\  
 +무선랜 네트워크 식별자입니다. \\ \\  
 +6. //authKey// \\  
 +무선랜 네트워크 비밀번호입니다. \\ \\  
 +7. //​reserved//​ \\  
 +예약된 공간입니다. \\  
 + 
 +==== BS2Trigger ==== 
 +<code cpp> 
 +typedef struct { 
 +    uint16_t code; 
 +    uint8_t reserved[2];​ 
 +} BS2EventTrigger;​ 
 + 
 +typedef struct { 
 +    uint8_t port; 
 +    uint8_t switchType;​ 
 +    uint16_t duration; 
 +    uint32_t scheduleID;​ 
 +} BS2InputTrigger;​ 
 + 
 +typedef struct { 
 +    uint32_t type; 
 +    uint32_t scheduleID;​ 
 +} BS2ScheduleTrigger;​ 
 + 
 +typedef struct { 
 +    uint32_t deviceID; 
 +    uint8_t type; 
 +    ​uint8_t ​reserved[3]; 
 +    ​
     union {     union {
-        ​BS2CSNCard card+        ​BS2EventTrigger event
-        ​BS2SmartCardData smartCard;+        ​BS2InputTrigger input;​ 
 +        BS2ScheduleTrigger schedule; 
 +    } 
 +} BS2Trigger;​ 
 +</​code>​ 
 +1. //code// \\  
 +trigger를 발생시킬 event log입니다. \\ \\  
 +2. //​reserved//​ \\  
 +예약된 공간입니다. \\ \\ 
 +3. //port// \\  
 +trigger를 발동시킬 입력 포트 번호입니다. \\ \\ 
 +4. //​switchType//​ \\  
 +입력 포트의 동작 모드로 대기 상태가 '​off'​이고 입력 신호가 on일 때 trigger를 발동시킵니다. \\ 
 +<WRAP group 50%> 
 +^값  ^설명 ​ ^ 
 +|0|Normally Open| 
 +|1|Normally Closed| 
 +</​WRAP>​ 
 +5. //​duration//​ \\  
 +trigger를 발동시키기 위한 입력 신호의 지속 시간으로 단위는 밀리초(ms)이며,​ 최소값은 100입니다. \\ \\ 
 +6. //​scheduleID//​ \\  
 +trigger를 동작하기 위한 타임 스케줄입니다. \\ \\ 
 +7. //type// \\  
 +schedule trigger의 유형입니다. \\ 
 +<WRAP group 50%> 
 +^값  ^설명 ​ ^ 
 +|0|시작 schedule trigger| 
 +|1|끝 schedule trigger| 
 +</​WRAP>​ 
 +8. //​scheduleID//​ \\  
 +trigger를 동작하기 위한 타임 스케줄입니다. \\ \\ 
 +9. //​deviceID//​ \\  
 +trigger를 수행할 장치 식별자입니다. \\ \\ 
 +10. //type// \\  
 +trigger의 유형입니다. \\ 
 +<WRAP group 50%> 
 +^값  ^설명 ​ ^ 
 +|0|None| 
 +|1|Event trigger| 
 +|2|Input trigger| 
 +|3|Schedule trigger| 
 +</​WRAP>​ 
 + 
 +==== BS2Action ==== 
 +<code cpp> 
 +typedef struct { 
 +    uint32_t signalID; 
 +    uint16_t count; 
 +    uint16_t onDuration;​ 
 +    uint16_t offDuration;​ 
 +    uint16_t delay; 
 +} BS2Signal;​ 
 + 
 +typedef struct { 
 +    uint8_t portIndex;​ 
 +    uint8_t reserved[3];​ 
 +    BS2Signal signal; 
 +} BS2OutputPortAction;​ 
 + 
 +typedef struct { 
 +    uint8_t relayIndex;​ 
 +    uint8_t reserved[3];​ 
 +    BS2Signal signal; 
 +} BS2RelayAction;​ 
 + 
 +typedef struct { 
 +    uint8_t color; 
 +    uint8_t reserved[1];​ 
 +    uint16_t duration; 
 +    uint16_t delay; 
 +} BS2LedSignal;​ 
 + 
 +typedef struct { 
 +    uint16_t count; 
 +    uint8_t reserved[2];​ 
 +    BS2LedSignal signal[3];​ 
 +} BS2LedAction;​ 
 + 
 +typedef struct { 
 +    uint8_t tone; 
 +    uint8_t fadeout; 
 +    uint16_t duration; 
 +    uint16_t delay; 
 +} BS2BuzzerSignal;​ 
 + 
 +typedef struct { 
 +    uint16_t count; 
 +    uint8_t reserved[2];​ 
 +    BS2BuzzerSignal signal[3];​ 
 +} BS2BuzzerAction;​ 
 + 
 +typedef struct { 
 +    uint8_t duration; 
 +    uint8_t reserved[3];​ 
 +    uint32_t displayID;​ 
 +    uint32_t resourceID;​ 
 +} BS2DisplayAction;​ 
 + 
 +typedef struct { 
 +    uint8_t count; 
 +    uint16_t soundIndex;​ 
 +    uint8_t reserved[5];​ 
 +} BS2SoundAction;​ 
 + 
 +typedef struct { 
 +    uint32_t deviceID; 
 +    uint8_t type; 
 +    uint8_t stopFlag; 
 +    uint16_t delay; 
 +    union { 
 +        BS2RelayAction relay; 
 +        BS2OutputPortAction outputPort;​ 
 +        BS2DisplayAction display; 
 +        BS2SoundAction sound; 
 +        BS2LedAction led; 
 +        BS2BuzzerAction buzzer;
     };     };
-}BS2Card  ​+BS2Action; 
 </​code>​ </​code>​
-**1. //isSmartCard//** \\  +1. //signalID// \\  
-SmartCard ​를 나타내는 flag입니다. \\ \\  +애플리케이션에서 신호 유형을 관리하고자 할 때 사용하는 인덱스입니다. \\ \\  
-**2. //card//** \\  +2. //count// \\  
-반 드 이터 \\ \\  +신호 수행 횟수입니다. \\ \\ 
-**3. //smartCard//** \\  +3. //​onDuration//​ \\  
-SmartCard 데\\ +on 신호의 지속 시간으로 단위는 밀리초(ms)입니다. \\ \\ 
 +4. //​offDuration//​ \\  
 +off 신호의 지속 시간으로 단위는 밀리초(ms)입니다. \\ \\ 
 +5. //delay// \\  
 +신호를 발생시키기 전에 대기하는 시간으로 단위는 밀리초(ms)입니다. 예를 들어, count(2), onDuration(100),​ offDuration(100),​ delay(50)이라면 다음과 같이 신호를 발생시킵니다.\\ 
 +<WRAP group> 
 +^50ms 대기^signal on(100)^signal off(100)^signal on(100)^signal off(100)^ 
 +</​WRAP>​ 
 +6. //​portIndex//​ \\  
 +TTL 출력 포트 번호입니다. \\ \\ 
 +7. //​reserved//​ \\  
 +예약된 공간입니다. \\ \\ 
 +8. //​relayIndex//​ \\  
 +Relay 출력 포트 번호입니다. \\ \\ 
 +9. //​reserved//​ \\  
 +예약된 공간입니다. \\ \\ 
 +10. //color// \\  
 +LED 색상 종류입니다. \\ 
 +<WRAP group 50%> 
 +^값  ^설명 ​ ^ 
 +|0|LED Off| 
 +|1|빨강 LED| 
 +|2|노랑 LED| 
 +|3|초록 LED| 
 +|4|청록 LED| 
 +|5|파랑 LED| 
 +|6|자홍 LED| 
 +|7|백색 LED| 
 +</​WRAP>​ 
 +11. //​reserved//​ \\  
 +예약된 공간입니다. \\ \\ 
 +12. //​duration//​ \\  
 +LED 점멸 지속 시간으로 단위는 밀리초(ms)입니다. \\ \\ 
 +13. //delay// \\  
 +LED 점멸하기 전에 대기하는 시간으로 단위는 밀리초(ms)입니다. \\ \\ 
 +14. //count// \\  
 +LED 신호 횟수로 0일 경우 비활성화되고 -1일 경우 무한 반복됩니다. \\ \\ 
 +15. //​reserved//​ \\  
 +예약된 공간입니다. \\ \\ 
 +16. //tone// \\  
 +Buzzer의 소리 세기(톤)입니다. \\ 
 +<WRAP group 50%> 
 +^값  ^설명 ​ ^ 
 +|0|진동 없음| 
 +|1|약한 진동| 
 +|2|중간 진동| 
 +|3|강한 진동| 
 +</​WRAP>​ 
 +17. //count// \\  
 +Buzzer 신호 횟수로 0일 경우 비활성화되고 -1일 경우 무한 반복됩니다. \\ \\ 
 +18. //​reserved//​ \\  
 +예약된 공간입니다. \\ \\ 
 +19. //​duration//​ \\  
 +Display 동작의 지속 시간으로 단위는 밀리초(ms)입니다. \\ \\ 
 +20. //​reserved//​ \\  
 +Display 동작의 지속 시간으로 단위는 밀리초(ms)입니다. \\ \\ 
 +21. //​displayID//​ \\  
 +추후 지원 예정입니다. \\ \\ 
 +22. //​resourceID//​ \\  
 +추후 지원 예정입니다. \\ \\ 
 +23. //count// \\  
 +Sound 신호 횟수입니다. \\ \\ 
 +24. //​soundIndex//​ \\  
 +Sound resource 인덱스입니다. \\ 
 +<WRAP group 50%> 
 +^값  ^설명 ​ ^ 
 +|0|Welcome sound| 
 +|1|Auth success sound| 
 +|2|Auth fail sound| 
 +</​WRAP>​ 
 +25. //​deviceID//​ \\  
 +Action을 수행하는 장치 식별자 입니다. \\ \\ 
 +26. //type// \\  
 +Action 유형입니다. \\ 
 +<WRAP round important 60%> 
 +<wrap em>​[DoorModule-20,​ CoreStation-40]</​wrap>​ \\ 
 +Action type이 relay 또는 TTL(Output)이면서,​ action 장치가 DM20, CS40 이라면,  
 +action type은 relay action (6) 으로만 설정하여야 합니다. (TTL 설정불가) \\ \\ 
 +<wrap em>​[DM20]</​wrap>​ \\ 
 +  ​Action type : Relay 
 +  ​relay.relayIndex : 0 ~ 3 (RELAY 0 ~ 3) 
 +  * relay.relayIndex : 4 ~ 9 (OUTPUT 0 ~ 5) 
 +<wrap em>​[CS40]</​wrap> ​\\ 
 +  * Action type : Relay 
 +  * relay.relayIndex : 0 ~ 3 (RELAY 0 ~ 3) 
 +  * relay.relayIndex : 4 ~ 11 (OUTPUT 0 ~ 7) 
 +</​WRAP>​ 
 +<WRAP group 50%> 
 +^값  ^설명 ​ ^ 
 +|0|None| 
 +|1|Lock device| 
 +|2|Unlock device| 
 +|3|Reboot device| 
 +|4|Release alarm| 
 +|5|General input| 
 +|6|Relay action| 
 +|7|TTL action| 
 +|8|Sound action| 
 +|9|Display action| 
 +|10|Buzzer action| 
 +|11|Led action| 
 +|12|Fire alarm input| 
 +|13|Auth Success(Access granted)| 
 +|14|Auth Fail(Access denied)| 
 +|15|Lift action| 
 +</​WRAP>​ 
 +27. //​stopFlag//​ \\  
 +Action을 중지하는 조건을 명시합니다. \\ 
 +만일 이 값이 1로 설정되고 door sensor를 통해 신호가 감지되면 action을 멈추게 됩니다. \\ 
 +만일 이 값이 2로 설정되면 현재 action정보에 국한하여 중단할 수 있습니다. \\ 
 +일반적으로 action을 중지하는 관련 API들은 구역id를 가지고 호출하게되는데,​ 이 경우 구역내 모든 장치가 action을 멈추게 됩니다.\\ 
 +stopFlag를 2로 설정하여 action정보를 내려주게되면 해당 장치의 경보만 선별적으로 제어할 수 있습니다.\\ 
 +<WRAP group 50%> 
 +^값  ^설명 ​ ^ 
 +|0|중지 안함| 
 +|1|출입문 닫힘 시 중지| 
 +|2|명령을 통해 중지 (V2.6.0 추가)| 
 +</​WRAP>​ 
 +28. //delay// \\  
 +Action 발생에대한 대기시간을 명시합니다. 단위는 밀리초(ms)입니다. \\ \\ 
 + 
 +==== BS2TriggerActionConfig ==== 
 +<code cpp> 
 +typedef struct { 
 +    uint8_t numItems; 
 +    uint8_t reserved[3];​ 
 +    BS2TriggerAction items[BS2_MAX_TRIGGER_ACTION];​ 
 +    uint8_t reserved2[32];​ 
 +} BS2TriggerActionConfig;​ 
 +</​code>​ 
 +1. //​numItems//​ \\  
 +trigger action의 개수입니다. \\ \\  
 +2. //​reserved//​ \\  
 +예약된 공간입니다. \\ \\ 
 +3. //items// \\  
 +trigger action을 나열한 리스트로 최대 128개까지 설정할 수 있습니다. \\ \\ 
 +4. //​reserved2//​ \\  
 +예약된 공간입니다. \\ 
 + 
 +==== BS2EventConfig ==== 
 +<code cpp> 
 +typedef struct { 
 +    uint32_t numImageEventFilter;​ 
 +    struct { 
 +        uint8_t mainEventCode;​ 
 +        uint8_t reserved[3];​ 
 +        uint32_t scheduleID;​ 
 +    } imageEventFilter[BS2_EVENT_MAX_IMAGE_CODE_COUNT];​ 
 +    uint8_t reserved[32];​ 
 +} BS2EventConfig;​ 
 +</​code>​ 
 +1. //​numImageEventFilter//​ \\  
 +image log filter의 개수입니다. \\ \\  
 +2. //​mainEventCode//​ \\  
 +image log를 남길 log main code입니다. \\ \\ 
 +3. //​reserved//​ \\  
 +예약된 공간입니다. \\ \\ 
 +4. //​scheduleID//​ \\  
 +image log를 저장해야 하는 타임 스케줄입니다. \\ \\ 
 +5. //​reserved//​ \\  
 +예약된 공간입니다. \\ 
 + 
 +==== BS2WiegandMultiConfig ==== 
 +<code cpp> 
 +typedef struct { 
 +    uint32_t formatID; 
 +    BS2WiegandFormat format; ​    
 +    uint8_t reserved[32]; ​       
 +} BS2WiegandInConfig;​ 
 + 
 +typedef struct {     
 +    BS2WiegandInConfig formats[MAX_WIEGAND_IN_COUNT]; ​    
 +    uint8_t reserved[32];​ 
 +} BS2WiegandMultiConfig;​ 
 +</​code>​ 
 +1. //​formatID//​ \\  
 +WiegandFormat Index입니다. 
 + 
 +2. //format// \\  
 +WiegandFormat 구조체입니다. 
 + 
 +3. //​reserved//​ \\  
 +예약된 공간입니다.\\  
 + 
 +4. //formats// \\  
 +WiegandInConfig 구조체를 15개를 가질 수 있습니다. 
 + 
 +5. //​reserved//​ \\  
 +예약된 공간입니다.\\  
 + 
 +==== BS1CardConfig ==== 
 +<code cpp> 
 +typedef struct { 
 + enum { 
 + MIFARE_KEY_SIZE = 6, 
 + MIFARE_MAX_TEMPLATE = 4, 
 + 
 + VALID_MAGIC_NO = 0x1f1f1f1f,​ 
 + }; 
 + 
 + // Options 
 + uint32_t magicNo; 
 + uint32_t disabled;​ 
 + uint32_t useCSNOnly;​ // default 0 
 + uint32_t bioentryCompatible;​ // default 0 
 + 
 + // Keys 
 + uint32_t useSecondaryKey;​ 
 + uint32_t reserved1;​ 
 + uint8_t primaryKey[MIFARE_KEY_SIZE];​ 
 + uint8_t reserved2[2];​ 
 + uint8_t secondaryKey[MIFARE_KEY_SIZE];​ 
 + uint8_t reserved3[2];​ 
 + 
 + // Layout 
 + uint32_t cisIndex;​ 
 + uint32_t numOfTemplate;​ 
 + uint32_t templateSize;​ 
 + uint32_t templateStartBlock[MIFARE_MAX_TEMPLATE];​ 
 + 
 + uint32_t reserve4[15];​ 
 + 
 +} BS1CardConfig;​ 
 +</​code>​ 
 +1. //magicNo// \\  
 +사용하지 않는 변수입니다\\ \\ 
 +2. //​disabled//​ \\  
 +비활성화 상태인지를 나타내는 flag 입니다.\\ \\ 
 +3. //​useCSNOnly//​ \\  
 +CSN만 사용하는 여부입니다.\\ \\ 
 +4. //​bioentryCompatible//​ \\  
 +boientry 호환 정보입니다.\\ \\  
 +5. //​useSecondaryKey//​ \\  
 +사용하지 않는 변수입니다. \\ \\  
 +6. //​reserved1//​ \\  
 +예약된 공간입니다.\\ \\  
 +7. //​primaryKey//​ \\  
 +사용하지 않는 변수입니다.\\ \\ 
 +8. //​reserved2//​ \\  
 +예약된 공간입니다.\\ \\  
 +9. //​secondaryKey//​ \\  
 +사용하지 않는 변수입니다. \\ \\ 
 +10. //​reserved3//​ \\  
 +예약된 공간입니다.\\ \\  
 +11. //​cisIndex//​ \\  
 +cis 식별자입니다.\\ \\ 
 +12. //​numOfTemplate//​ \\  
 + ​템플릿 개수입니다.\\ \\  
 +13. //​templateSize//​ \\  
 +템플릿 크기입니다.\\ \\ 
 +14. //​templateStartBlock//​ \\  
 +data storage에서의 start block index입니다.\\ \\ 
 +15. //​reserved4//​ \\  
 +예약된 공간입니다.\\ \\  
 + 
 +==== BS2SystemConfigExt==== 
 +<code cpp> 
 +typedef struct { 
 + uint8_t primarySecureKey[SEC_KEY_SIZE];​ 
 + uint8_t secondarySecureKey[SEC_KEY_SIZE];​ 
 + 
 + uint8_t reserved3[32]; ​                               
 +} BS2SystemConfigExt;​ 
 +</​code>​ 
 +1. //​primarySecureKey//​ \\  
 +Master-Slave 장치간의 첫번째 암호화 키입니다.\\ \\ 
 +2. //​secondarySecureKey//​ \\  
 +cMaster-Slave 장치간의 두번째 암호화 키입니다. \\ \\ 
 +3. //​reserved3//​ \\  
 +예약된 공간입니다.\\ \\  
 + 
 +==== BS2VoipConfig==== 
 +<code cpp> 
 +typedef struct { 
 + BS2_URL serverUrl;​ ///​  
 + BS2_PORT serverPort;​ ///​  
 + BS2_USER_ID userID;​ ///​  
 + BS2_USER_ID userPW;​ ///​  
 + 
 + uint8_t exitButton;​ ///​ << ​*, #, 0~9 
 + uint8_t dtmfMode;​ ///​  
 + BS2_BOOL bUse;​ ///​  
 + uint8_t reseverd[1];​ ///​  
 + 
 +        uint32_t ​               numPhonBook; ​        
 + BS2UserPhoneItem phonebook[BS2_VOIP_MAX_PHONEBOOK]; ​ ///  
 + 
 + uint8_t ​                ​reserved2[32];​ ///​ 
 +} BS2VoipConfig;​ 
 +</​code>​ 
 +1. //​serverUrl//​ \\  
 +BioStar 애플리케이션 서버 URL이며, 최대 256자까지 입력할 수 있습니다\\ \\ 
 +2. //serverPort// \\  
 +connectionMode가 server mode일 때 사용되며,​ BioStar 애플리케이션의 포트 번호입니다.\\ \\ 
 +3. //userID// \\  
 +사용자 식별자입니다.\\ \\  
 +4. //userPW// \\  
 +사용자 비밀번호입니다.\\ \\  
 +5. //​exitButton//​ \\  
 +출구 버튼 기호입니다. (*, #, 0~9)\\ \\  
 +<WRAP group 30%> 
 +^값  ^설명 ​ ^ 
 +|0 | | 
 +|1 |#  | 
 +|2 ~ 11 |0 ~ 9 | 
 +</​WRAP>​ 
 +6. //​dtmfMode// ​\\  
 +전화기를 들고 번호판을 누를때 들리는 음을 말합니다.\\ \\  
 +7. //bUse// \\  
 +사용여부입니다.\\ \\  
 +8. //​reseverd//​ \\  
 +예약된 공간입니다.\\ \\  
 +9. //​numPhonBook//​ \\  
 +전호번호부 개수입니다.\\ \\  
 +10. //​phonebook//​ \\  
 +전화번호부를 나열한 리스트로 최대 32까지 설정할 수 있습니다.\\ \\  
 +8. //​reserved2//​ \\  
 +예약된 공간입니다.\\ \\ 
 + 
 +==== BS2FaceConfig ==== 
 +<code cpp> 
 +typedef struct { 
 +    uint8_t ​      ​securityLevel;​ 
 +    uint8_t ​      ​lightCondition;​ 
 +    uint8_t ​      ​enrollThreshold;​ 
 +    uint8_t ​      ​detectSensitivity;​ 
 + 
 +    uint16_t ​     enrollTimeout;​ 
 +    uint8_t ​      ​lfdLevel;​ 
 +    bool          quickEnrollment;​ 
 + 
 +    uint8_t ​      ​previewOption;​ 
 +    bool          checkDuplicate;​ 
 +    uint8_t ​      ​operationMode;​ 
 +    uint8_t ​      ​maxRotation;​ 
 + 
 +    struct { 
 +        uint16_t ​ min; 
 +        uint16_t ​ max; 
 +    } faceWidth;​ 
 + 
 +    struct { 
 +        uint16_t ​ x; 
 +        uint16_t ​ width; 
 +    } searchRange;​ 
 + 
 +    uint8_t ​      ​reserved2[18];​ 
 +} BS2FaceConfig;​ 
 +</​code>​ 
 +1. //​securityLevel//​ \\  
 +시스템 전적으로 사용할 얼굴 인증 보안 레벨입니다. \\  
 +<WRAP group 50%> 
 +^값  ^설명 ​ ^ 
 +|0  |기본 ​ | 
 +|1  |보안 레벨 높음 ​ | 
 +|2  |보안 레벨 매우 높음 ​ | 
 +</​WRAP>​ 
 +2. //​lightCondition//​ \\  
 +빛 조건입니다.\\  
 +<WRAP group 50%> 
 +^값  ^설명 ​ ^ 
 +|0  |옥내 ​ | 
 +|1  |옥외 ​ | 
 +|2  |자동 ​ | 
 +|3  |[+V2.8] 사용 안함 ''​(FaceStation F2)'' ​ | 
 +</​WRAP>​ 
 +3. //​enrollThreshold//​ \\  
 +얼굴 등록의 임계값입니다. 등록시 어느 정도 포즈 움직임을 허용하는지에 대한 값입니다. \\  
 +<WRAP group 50%> 
 +^값  ^설명 ​ ^ 
 +|0  |THRESHOLD_0 ​ (엄격) | 
 +|1  |THRESHOLD_1 | 
 +|2  |THRESHOLD_2 ​ | 
 +|3  |THRESHOLD_3 ​ | 
 +|4  |THRESHOLD_4 (기본) ​ | 
 +|5  |THRESHOLD_5 ​ | 
 +|6  |THRESHOLD_6 ​ | 
 +|7  |THRESHOLD_7 ​ | 
 +|8  |THRESHOLD_8 ​ | 
 +|9  |THRESHOLD_9 ​ (느슨) | 
 +</​WRAP>​  
 +4. //​detectSensitivity//​ \\  
 +얼굴 센서의 민감도 설정입니다. \\  
 +<WRAP group 50%> 
 +^값  ^설명 ​ ^ 
 +|0  |꺼짐 ​ | 
 +|1  |낮음 ​ | 
 +|2  |기본 ​ | 
 +|3  |높음 ​ | 
 +</​WRAP>​ 
 +5. //​enrollTimeout//​ \\  
 +''​FaceStation2,​ FaceLite''​ : 얼굴 스캔 대기 시간으로 기본값은 60초입니다. \\  
 +<WRAP group 60%> 
 +^값  ^설명 ​ ^ 
 +|BS2_FACE_ENROLL_TIMEOUT_MIN ​ |30  | 
 +|BS2_FACE_ENROLL_TIMEOUT_MAX ​ |60  | 
 +|BS2_FACE_ENROLL_TIMEOUT_DEFAULT ​ |BS2_FACE_ENROLL_TIMEOUT_MAX ​ | 
 +</​WRAP>​ 
 +''​FaceStation F2''​ : [+ V2.7.1] ​ 얼굴 스캔 대기 시간으로 기본값은 20초입니다. \\  
 +<WRAP group 70%> 
 +^값  ^설명 ​ ^ 
 +|BS2_FACE_EX_ENROLL_TIMEOUT_MIN ​ |10  | 
 +|BS2_FACE_EX_ENROLL_TIMEOUT_MAX ​ |20  | 
 +|BS2_FACE_EX_ENROLL_TIMEOUT_DEFAULT ​ |BS2_FACE_EX_ENROLL_TIMEOUT_MAX ​ | 
 +</​WRAP>​ 
 +6. //​lfdLevel//​ \\ 
 +[+ V2.6.3] 위조된 얼굴을 여과할 수 있는 민감도를 설정할 수 있습니다. \\ 
 +''​FaceStation2,​ FaceLite''​ : 기본값은 0입니다. \\ 
 +''​FaceStation F2''​ : [+ V2.7.1] 기본값이 1입니다. \\ 
 +<WRAP group 50%> 
 +^값  ^설명 ​ ^ 
 +|0  |사용안함 ​ | 
 +|1  |민감도 낮음 ​ | 
 +|2  |민감도 보통 ​ | 
 +|3  |민감도 높음 ​ | 
 +</​WRAP>​ 
 +7. //​quickEnrollment//​ \\ 
 +[+ V2.6.3] 빠른 얼굴 등록 사용 여부를 설정할 수 있습니다. \\ 
 +이 값을 true로 설정하면 얼굴 등록 절차가 1단계로 설정되며,​ false로 설정할 경우 3단계로 설정됩니다. \\ 
 +고품질의 얼굴 템플릿을 등록하려면 false를 설정하십시오. \\ \\ 
 +8. //​previewOption//​ \\ 
 +[+ V2.6.3] IR 인증 가이를 의미하며,​ 얼굴 인증 시 preview 화면 출력 설정을 변경할 수 있습니다. \\ 
 +''​FaceLite''​에서만 사용됩니다. \\ 
 +<WRAP group 50%> 
 +^값  ^설명 ​ ^ 
 +|0  |Preview 표시 안함 ​ | 
 +|1  |인증 시작 시는 preview를 표시하지 않으며, 1/2 지점에 표시 ​ | 
 +|2  |인증 시도 전구간에 걸쳐 preview를 표시 ​ | 
 +</​WRAP>​ 
 +9. //​checkDuplicate//​ \\ 
 +[+ V2.6.4] true로 설정하면 중복된 얼굴 정보인지 판단합니다. \\ \\ 
 +10. //​operationMode//​ \\  
 +[+ V2.7.1] ''​FaceStation F2''​ 아래의 동작 모드를 설정하며,​ 기본값은 Fusion 모드입니다. \\  
 +<WRAP group 50%> 
 +^값  ^모드 ​ ^설명 ​ ^기본값 ​ ^ 
 +|0  |Fusion 모드 |Visual matching + IR matching |기본 | 
 +|1  |Visual 모드 |Visual matching | | 
 +|2  |Visual + IR검출 |Visual matching, IR은 얼굴 검출만| | 
 +</​WRAP>​  
 +11. //​maxRotation//​ \\  
 +[+ V2.7.1] ''​FaceStation F2''​ 얼굴 검출 시 보통은 정면 일 것입니다. \\ 
 +하지만 FSF2는 얼굴 검출 시 정면에서 몇도 정도 회전된(외곡된) ​미지인지 판단이 가능합니다. \\ 
 +이를 통해 일정 각도 이상 회전된 이미지의 경우 검출 실패 처리를 시킬 수 있습니다. \\ 
 +maxRotation은 이경우의 최대 허용치를 나타내며,​ 기본값은 15도 입니다. \\ \\ 
 +12. //​faceWidth//​ \\  
 +[+ V2.7.1] ''​FaceStation F2''​ 얼굴 이미지의 폭을 나타내며,​ 폭의 최소값, 최대값을 지정할 수 있습니다. \\ 
 +최소값, 최대값은 각각 66과 250를 기본값으로 갖습니다. \\ \\ 
 +13. //​searchRange//​ \\ 
 +[+ V2.7.1] ''​FaceStation F2''​ 얼굴 검색 범위를 나타내며,​ 범위의 x값(가로 좌표)과 x값 지점으로부의 폭을 지정할 수 있습니다. \\ 
 +x값과 폭의 기본값은 각각 144, 432를 기본값으로 갖습니다. \\ \\ 
 +14. //​reserved2//​ \\  
 +예약된 공간입니다.\\ \\ 
 + 
 +==== BS2Rs485ConfigEX ==== 
 +<code cpp> 
 +typedef struct { 
 +    uint32_t baudRate; 
 +    uint8_t channelIndex;​ 
 +    uint8_t useRegistance;​ 
 +    uint8_t numOfDevices;​ 
 +    uint8_t reserved[1];​ 
 +    BS2Rs485SlaveDeviceEX slaveDevices[BS2_RS485_MAX_SLAVES_PER_CHANNEL];​ 
 +} BS2Rs485ChannelEX;​ 
 + 
 +typedef struct { 
 +    uint8_t mode[BS2_RS485_MAX_CHANNELS_EX];​ 
 +    uint8_t numOfChannels;​ 
 +    uint8_t reserved[2];​ 
 +    uint8_t reserved1[32];​ 
 +    BS2Rs485ChannelEX channels[BS2_RS485_MAX_CHANNELS];​ 
 +} BS2Rs485ConfigEX;​ 
 +</​code>​ 
 +1. //​baudRate//​ \\  
 +RS485 통신 속도이며 설정할 수 있는 범위는 다음과 같습니다. \\ 
 +<WRAP group 50%> 
 +^값  ^ 
 +|9600  | 
 +|19200 ​ | 
 +|38400 ​ | 
 +|57600 ​ | 
 +|115200 ​ | 
 +</​WRAP>​ 
 +2. //​channelIndex//​ \\  
 +RS485 network의 통신 채널 번호입니다. ​\\ \\ 
 +3. //useRegistance// \\  
 +종단 저항을 설정할지 결정하는 flag입니다. \\ \\ 
 +4. //​numOfDevices//​ \\  
 +슬레이브 장치의 개수입니다.\\ \\ 
 +5. //​slaveDevices//​ \\  
 +슬레이브 장치를 나열한 리스트로 최대 32개까지 정의할 수 있습니다.\\ \\ 
 +6. //mode// \\  
 +RS485 네트워크에서 어떤 모드로 동작할지 결정하는 flag입니다 .\\ 
 +<WRAP group 50%> 
 +^값  ^설명 ​ ^ 
 +|0  |사용안함 ​ | 
 +|1  |Master ​ | 
 +|2  |Slave ​ | 
 +|3  |Standalone ​ | 
 +</​WRAP>​ 
 +7. //​numOfChannels//​ \\  
 +RS485 채널의 개수입니다.\\ \\  
 +8. //​reserved//​ \\  
 +예약된 공간입니다.\\ \\  
 +9. //​reserved1//​ \\  
 +예약된 공간입니다.\\ \\ 
 +10. //​channels//​ \\  
 +RS485 채널을 나열한 리스트로 최대 8개까지 설정할 수 있습니다.\\ \\  
 + 
 +==== BS2CardConfigEx ==== 
 +<code cpp> 
 +typedef struct { 
 +    uint8_t oid_ADF[13];​ /// ​  //​유효값//​{0x2A,​0x85,​0x70,​0x81,​0x1E,​0x10,​0x00,​0x07,​0x00,​0x00,​0x02,​0x00,​0x00} ​                          
 +    uint8_t size_ADF;​ //​ 
 +    uint8_t reserved1[2];​ ///​ 
 +    uint8_t oid_DataObjectID[8];​  
 +    uint16_t size_DataObject[8];​  
 +    uint8_t primaryKeyAuth[16];​ //​유효값 
 +    uint8_t secondaryKeyAuth[16];​ ///​ //​유효값 
 +    uint8_t reserved2[24];​ 
 +} BS2SeosCard;​ 
 +typedef struct { 
 +    BS2SeosCard seos;  
 +    uint8_t reserved[24];​ 
 +} BS2CardConfigEx;​ 
 +</​code>​ 
 +1. //oid_ADF// \\  
 +ADF 주소값을 표시합니다. (변경할 수 없습니다.)\\ \\ 
 +2. //​size_ADF//​ \\  
 +ADF size을 표시합니다.\\ \\ 
 +3. //​reserved1//​ \\  
 +예약된 공간입니다.\\ \\  
 +4. //​oid_DataObjectID//​ \\  
 +DataObjectID를 표시합니다.\\ \\ 
 +5. //​size_DataObject//​ \\  
 +DataObject size를 표시합니다.\\ \\ 
 +6. //​primaryKeyAuth//​ \\  
 +Seoscard 정보에 접근하기 위한 첫번째 암호화 키입니다.\\ \\ 
 +7. //​secondaryKeyAuth//​ \\  
 +Seoscard 정보에 접근하기 위한 두번째 암호화 키입니다.\\ \\ 
 +8. //​reserved2//​ \\  
 +예약된 공간입니다.\\ \\ 
 +9. //seos// \\  
 +BS2SeosCard 정보입니다.\\ \\  
 +10. //​reserved//​ \\  
 +예약된 공간입니다.\\ \\ 
 + 
 +==== BS2DstConfig ==== 
 +<code cpp> 
 +enum { 
 + BS2_MAX_DST_SCHEDULE = 2, 
 +}; 
 + 
 +typedef struct { 
 + uint16_t year; // year, 0 means every year. 
 + uint8_t month; // [0, 11] : months since January 
 + int8_t ordinal;​ //​ [0, -1] : first, second, ..., last 
 + uint8_t weekDay; // [0, 6] : days since Sunday 
 + uint8_t hour; // [0, 23] 
 + uint8_t minute; // [0, 59] 
 + uint8_t second; // [0, 59] 
 +} BS2WeekTime;​ 
 + 
 +typedef struct { 
 + BS2WeekTime startTime;​ 
 + BS2WeekTime endTime; 
 + int32_t timeOffset;​ //​ in seconds 
 + uint8_t reserved[4];​ 
 +} BS2DstSchedule;​ 
 + 
 +typedef struct { 
 + uint8_t numSchedules;​ 
 + uint8_t reserved[31];​ 
 + 
 + BS2DstSchedule schedules[BS2_MAX_DST_SCHEDULE];​ 
 +} BS2DstConfig;​ 
 +</​code>​ 
 +1. //year// \\  
 +년을 의미하며,​ 0으로 설정되면 매년을 의미합니다.\\ \\ 
 +2. //month// \\  
 +월을 의미하며,​ 0 부터 11 [1월-12월] 사이의 값을 가집니다.\\ \\ 
 +3. //ordinal// \\  
 +0부터 시작되며 첫 번째, 두 번째 등의 순서를 의미합니다.\\ \\  
 +4. //weekDay// \\  
 +요일을 의미하며,​ 0은 일요일을,​ 1은 월요일을 의미합니다.\\ \\ 
 +5. //hour// \\  
 +24시간 기준으로 시간을 지정합니다.\\ \\ 
 +6. //minute// \\  
 +분을 지정합니다.\\ \\ 
 +7. //second// \\  
 +초를 지정합니다.\\ \\ 
 +8. //​startTime//​ \\  
 +시작일시을 의미합니다.\\ \\ 
 +9. //endTime// \\  
 +종료일시를 의미합니다.\\ \\ 
 +10. //​timeOffset//​ \\  
 +DST를 적용할 시간을 초 단위로 적용할 수 있습니다.\\ 
 +예를 들어 1시간을 적용하고 싶은 경우, 3600을 입력합니다. \\ \\ 
 +11. //​reserved//​ \\  
 +예약된 공간입니다.\\ \\ 
 +12. //​numSchedules//​ \\  
 +적용할 DST schedule의 개수를 의미합니다.\\ \\ 
 +13. //​schedules//​ \\  
 +DST schedule이며 최대 2개까지 지정할 수 있습니다.\\ \\ 
 + 
 +==== BS2Configs ==== 
 +<code cpp> 
 +typedef struct { 
 +    uint32_t configMask;​ 
 +    BS2FactoryConfig factoryConfig;​ 
 +    BS2SystemConfig systemConfig;​ 
 +    BS2AuthConfig authConfig;​ 
 +    BS2StatusConfig statusConfig;​ 
 +    BS2DisplayConfig displayConfig;​ 
 +    BS2IpConfig ipConfig; 
 +    BS2IpConfigExt ipConfigExt;​ 
 +    BS2TNAConfig tnaConfig;​ 
 +    BS2CardConfig cardConfig;​ 
 +    BS2FingerprintConfig fingerprintConfig;​ 
 +    BS2Rs485Config rs485Config;​ 
 +    BS2WiegandConfig wiegandConfig;​ 
 +    BS2WiegandDeviceConfig wiegandDeviceConfig;​ 
 +    BS2InputConfig inputConfig;​ 
 +    BS2WlanConfig wlanConfig;​ 
 +    BS2TriggerActionConfig triggerActionConfig;​ 
 +    BS2EventConfig eventConfig;​ 
 +    BS2WiegandMultiConfig wiegandMultiConfig;​ 
 +    BS1CardConfig card1xConfig;​ 
 +    BS2SystemConfigExt systemExtConfig;​ 
 +    BS2VoipConfig voipConfig;​ 
 +    BS2FaceConfig faceConfig;​ 
 +} BS2Configs;​ 
 +</​code>​ 
 +1. //​configMask//​ \\  
 +configuration을 가져오거나 설정할 mask값입니다. \\  
 +<WRAP group 50%> 
 +^값  ^설명 ​ ^ 
 +|0x0000|None| 
 +|0x0001|Factory configuration| 
 +|0x0002|System configuration| 
 +|0x0004|TCP/​IP configuration| 
 +|0x0008|RS485 configuration| 
 +|0x0010|Wireless LAN configuration| 
 +|0x0020|Authentication configuration| 
 +|0x0040|Card configuration| 
 +|0x0080|Fingerprint configuration| 
 +|0x0100|Face configuration| 
 +|0x0200|Trigger Action configuration| 
 +|0x0400|Display configuration| 
 +|0x0800|Sound configuration| 
 +|0x1000|Status Signal(LED, Buzzer) configuration| 
 +|0x2000|Wiegand configuration| 
 +|0x4000|USB configuration| 
 +|0x8000|Time and Attendance configuration| (@deprecated) 
 +|0x10000|Videophone configuration| 
 +|0x20000|Interphone configuration| 
 +|0x40000|Voice over IP configuration| 
 +|0x80000|Input(Supervised input) configuration| 
 +|0x100000|Wiegand IO Device configuration| 
 +|0x200000|Time and Attendance configuration| 
 +|0x400000|DNS and Server url configuration| 
 +|0x800000|Event configuration| 
 +|0x1000000|1x Card configuration| 
 +|0x2000000|Multi-Wiegand configuration| 
 +|0x4000000|Extended System configuration| 
 +|<​del>​0x8000000</​del>​|<​del>​Daylight Saving configuration (Deprecated)</​del>​| 
 +|0x10000000|RS485 Extended configuration| 
 +|0x20000000|Extended Card configuration| 
 +|0x40000000|Daylight Saving configuration| 
 +|0xFFFFFFFF|All configuration| 
 +</​WRAP>​ 
 + 
 +==== BS2IPV6Config ==== 
 +<code cpp> 
 +enum { 
 +    BS2_MAX_IPV6_ALLOCATED_ADDR = 8, 
 +}; 
 + 
 +typedef struct { 
 +    uint8_t useIPV6; 
 +    uint8_t reserved1;​ 
 +    uint8_t useDhcpV6;​ 
 +    uint8_t useDnsV6; 
 +    uint8_t reserved[1];​ 
 +    char staticIpAddressV6[BS2_IPV6_ADDR_SIZE];​ 
 +    char staticGatewayV6[BS2_IPV6_ADDR_SIZE];​ 
 +    char dnsAddrV6[BS2_IPV6_ADDR_SIZE];​ 
 +    char serverIpAddressV6[BS2_IPV6_ADDR_SIZE];​ 
 +    uint16_t serverPortV6;​ 
 +    uint16_t sslServerPortV6;​ 
 +    uint16_t portV6; 
 +    uint8_t numOfAllocatedAddressV6;​ 
 +    uint8_t numOfAllocatedGatewayV6;​ 
 +    uint8_t reserved[8];​ 
 +    char allocatedIpAddressV6[BS2_IPV6_ADDR_SIZE][BS2_MAX_IPV6_ALLOCATED_ADDR];​ 
 +    char allocatedGatewayV6[BS2_IPV6_ADDR_SIZE][BS2_MAX_IPV6_ALLOCATED_ADDR];​ 
 +} BS2IpConfig;​ 
 +</​code>​ 
 +1. //useIPV6// \\  
 +IP V6 사용여부를 나태내는 flag입니다. \\ \\  
 +2. //​reserved1//​ \\  
 +예약된 공간입니다. \\ \\  
 +3. //​useDhcpV6//​ \\  
 +DHCP 사용 유무를 나타내는 flag입니다. \\ \\  
 +4. //​useDnsV6//​ \\  
 +server addresss를 사용할지 server URL을 사용할 지 결정하는 flag입니다. \\ \\  
 +5. //​staticIpAddressV6//​ \\  
 +현재 장치의 정적 IP V6 주소입니다. \\ \\  
 +6. //​staticGatewayV6//​ \\  
 +현재 장치의 정적 IP V6 게이트웨이 주소입니다. \\ \\  
 +7. //​dnsAddrV6//​ \\  
 +DNS V6 주소입니다. \\ \\  
 +8. //​serverIpAddressV6//​ \\  
 +connectionMode가 server mode일 때 사용되며,​ BioStar 애플리케이션의 IP V6 주소입니다. \\ \\  
 +9. //​serverPortV6//​ \\  
 +connectionMode가 server mode일 때 사용되며,​ BioStar 애플리케이션의 포트 번호입니다. \\ \\  
 +10. //​sslServerPortV6//​ \\  
 +connectionMode가 server mode일 때 사용되며,​ ssl로 연결될 애플리케이션의 서버 포트 번호입니다. \\ \\  
 +11. //portV6// \\  
 +현재 장치의 IP V6 포트 번호입니다. \\ \\  
 +12. //​numOfAllocatedAddressV6//​ \\  
 +현재 장치에 할당되어진 IP V6 주소의 갯수를 나타냅니다. \\ \\  
 +13. //​numOfAllocatedGatewayV6//​ \\  
 +현재 장치에 할당되어진 IP V6 게이트웨이 주소의 갯수를 나타냅니다. \\ \\  
 +14. //​reserved//​ \\  
 +예약된 공간입니다. \\ \\ 
 +15. //​allocatedIpAddressV6//​ \\  
 +현재 장치에 할당되어진 IP V6 주소입니다. numOfAllocatedAddressV6는 할당되어진 주소의 갯수를 나타냅니다. \\ \\ 
 +16. //​allocatedGatewayV6//​ \\  
 +현재 장치에 할당되어진 IP V6 게이트웨이 주소입니다. numOfAllocatedGatewayV6는 할당되어진 게이트웨이 주소의 갯수를 나타냅니다.\\ 
 +\\ 
 + 
 +==== BS2DesFireCardConfigEx ==== 
 +<code cpp> 
 +typedef struct { 
 +    uint8_t appMasterKey[16];​ 
 +    uint8_t fileReadKey[16];​ 
 +    uint8_t fileWriteKey[16];​ 
 +    uint8_t fileReadKeyNumber;​ 
 +    uint8_t fileWriteKeyNumber;​ 
 +    uint8_t reserved[2];​ 
 +} BS2DesFireAppLevelKey; ​                ///<​ 52 bytes 
 + 
 +typedef struct { 
 +    BS2DesFireAppLevelKey desfireAppKey; ​   ///< 52 bytes 
 +    uint8_t reserved[16];​ 
 +} BS2DesFireCardConfigEx; ​                  ///<​ 68 bytes 
 +</​code>​ 
 +1. //​appMasterKey//​ \\  
 +DesFire의 application master key 값 입니다. \\ \\  
 +2. //​fileReadKey//​ \\  
 +파일 읽기에 사용되는 key 값 입니다. \\ \\  
 +3. //​fileWriteKey//​ \\  
 +파일 쓰기에 사용되는 key 값 입니다. \\ \\  
 +4. //​fileReadKeyNumber//​ \\  
 +파일 읽기용 key의 key index 입니다. \\ \\  
 +5. //​fileWriteKeyNumber//​ \\  
 +파일 쓰기용 key의 key index 입니다. \\ \\  
 +6. //​reserved//​ \\  
 +예약된 공간입니다. \\ \\ 
 +7. //​desfireAppKey//​ \\  
 +DesFire의 키 정보를 갖는 구조체입니다. \\ \\  
 +8. //​reserved//​ \\ 
 +예약된 공간입니다. \\  
 + 
 + 
 +==== BS2AuthConfigExt ==== 
 +<code cpp> 
 +typedef struct { 
 +    uint32_t extAuthSchedule[BS2_MAX_NUM_OF_EXT_AUTH_MODE];​ 
 +    uint8_t useGlobalAPB;​ 
 +    uint8_t globalAPBFailAction;​ 
 +    uint8_t useGroupMatching;​ 
 +    uint8_t reserved; 
 + 
 +    uint8_t reserved2[4];​ 
 + 
 +    uint8_t usePrivateAuth;​ 
 +    uint8_t faceDetectionLevel;​ 
 +    uint8_t useServerMatching;​ 
 +    uint8_t useFullAccess;​ 
 + 
 +    uint8_t matchTimeout;​ 
 +    uint8_t authTimeout;​ 
 +    uint8_t numOperators;​ 
 +    uint8_t reserved3[1];​ 
 + 
 +    struct { 
 +        char userID[BS2_USER_ID_SIZE];​ 
 +        uint8_t level; 
 +        uint8_t reserved[3];​ 
 +    } operators[BS2_MAX_OPERATORS];​ 
 + 
 +    uint8_t reserved4[256];​ 
 +} BS2AuthConfigExt;​ 
 +</​code>​ 
 +1. //​extAuthSchedule//​ \\  
 +각 인증 모드가 활성화될 때 실행할 일정 식별자입니다. \\  
 +배열의 순서대로 아래의 의미를 가지며, \\ 
 +배열 내의 값이 0보다 큰경우 해당 인증모드는 활성화 되어 있습니다. \\ 
 +아래 설명 중 생체정보는 장치에 따라 지문 또는 얼굴을 의미합니다. \\ 
 +<WRAP group 70%> 
 +^순서 ^의미 ​ ^설명 ​ ^ 
 +|11  |BS2_EXT_AUTH_MODE_FACE_ONLY ​ |얼굴 ​ | 
 +|12  |BS2_EXT_AUTH_MODE_FACE_FINGERPRINT ​ |얼굴 + 지문 ​ | 
 +|13  |BS2_EXT_AUTH_MODE_FACE_PIN ​ |얼굴 + PIN  | 
 +|14  |BS2_EXT_AUTH_MODE_FACE_FINGERPRINT_OR_PIN ​ |얼굴 + 지문/​PIN ​ | 
 +|15  |BS2_EXT_AUTH_MODE_FACE_FINGERPRINT_PIN ​ |얼굴 + 지문 + PIN  | 
 +|16  |BS2_EXT_AUTH_MODE_FINGERPRINT_ONLY ​ |지문 ​ | 
 +|17  |BS2_EXT_AUTH_MODE_FINGERPRINT_FACE ​ |지문 + 얼굴 ​ | 
 +|18  |BS2_EXT_AUTH_MODE_FINGERPRINT_PIN ​ |지문 + PIN  | 
 +|19  |BS2_EXT_AUTH_MODE_FINGERPRINT_FACE_OR_PIN ​ |지문 + 얼굴/​PIN ​ | 
 +|20  |BS2_EXT_AUTH_MODE_FINGERPRINT_FACE_PIN ​ |지문 + 얼굴 + PIN  | 
 +|21  |BS2_EXT_AUTH_MODE_CARD_ONLY ​ |카드 ​ | 
 +|22  |BS2_EXT_AUTH_MODE_CARD_FACE ​ |카드 + 얼굴 ​ | 
 +|23  |BS2_EXT_AUTH_MODE_CARD_FINGERPRINT ​ |카드 + 지문 ​ | 
 +|24  |BS2_EXT_AUTH_MODE_CARD_PIN ​ |카드 + PIN  | 
 +|25  |BS2_EXT_AUTH_MODE_CARD_FACE_OR_FINGERPRINT ​ |카드 + 얼굴/​지문 ​ | 
 +|26  |BS2_EXT_AUTH_MODE_CARD_FACE_OR_PIN ​ |카드 + 얼굴/​PIN ​ | 
 +|27  |BS2_EXT_AUTH_MODE_CARD_FINGERPRINT_OR_PIN ​ |카드 + 지문/​PIN ​ | 
 +|28  |BS2_EXT_AUTH_MODE_CARD_FACE_OR_FINGERPRINT_OR_PIN ​ |카드 + 얼굴/​지문/​PIN ​ | 
 +|29  |BS2_EXT_AUTH_MODE_CARD_FACE_FINGERPRINT ​ |카드 + 얼굴 + 지문 ​ | 
 +|30  |BS2_EXT_AUTH_MODE_CARD_FACE_PIN ​ |카드 + 얼굴 + PIN  | 
 +|31  |BS2_EXT_AUTH_MODE_CARD_FINGERPRINT_FACE ​ |카드 + 지문 + 얼굴 ​ | 
 +|32  |BS2_EXT_AUTH_MODE_CARD_FINGERPRINT_PIN ​ |카드 + 지문 + PIN  | 
 +|33  |BS2_EXT_AUTH_MODE_CARD_FACE_OR_FINGERPRINT_PIN ​ |카드 + 얼굴/​지문 + PIN  | 
 +|34  |BS2_EXT_AUTH_MODE_CARD_FACE_FINGERPRINT_OR_PIN ​ |카드 + 얼굴 + 지문/​PIN ​ | 
 +|35  |BS2_EXT_AUTH_MODE_CARD_FINGERPRINT_FACE_OR_PIN ​ |카드 + 지문 + 얼굴/​PIN ​ | 
 +|36  |BS2_EXT_AUTH_MODE_ID_FACE ​ |ID + 얼굴 ​ | 
 +|37  |BS2_EXT_AUTH_MODE_ID_FINGERPRINT ​ |ID + 지문 ​ | 
 +|38  |BS2_EXT_AUTH_MODE_ID_PIN ​ |ID + PIN  | 
 +|39  |BS2_EXT_AUTH_MODE_ID_FACE_OR_FINGERPRINT ​ |ID + 얼굴/​지문 ​ | 
 +|40  |BS2_EXT_AUTH_MODE_ID_FACE_OR_PIN ​ |ID + 얼굴/​PIN ​ | 
 +|41  |BS2_EXT_AUTH_MODE_ID_FINGERPRINT_OR_PIN ​ |ID + 지문/​PIN ​ | 
 +|42  |BS2_EXT_AUTH_MODE_ID_FACE_OR_FINGERPRINT_OR_PIN ​ |ID + 얼굴/​지문/​PIN ​ | 
 +|43  |BS2_EXT_AUTH_MODE_ID_FACE_FINGERPRINT ​ |ID + 얼굴 + 지문 ​ | 
 +|44  |BS2_EXT_AUTH_MODE_ID_FACE_PIN ​ |ID + 얼굴 + PIN  | 
 +|45  |BS2_EXT_AUTH_MODE_ID_FINGERPRINT_FACE ​ |ID + 지문 + 얼굴 ​ | 
 +|46  |BS2_EXT_AUTH_MODE_ID_FINGERPRINT_PIN ​ |ID + 지문 + PIN  | 
 +|47  |BS2_EXT_AUTH_MODE_ID_FACE_OR_FINGERPRINT_PIN ​ |ID + 얼굴/​지문 + PIN  | 
 +|48  |BS2_EXT_AUTH_MODE_ID_FACE_FINGERPRINT_OR_PIN ​ |ID + 얼굴 + 지문/​PIN ​ | 
 +|49  |BS2_EXT_AUTH_MODE_ID_FINGERPRINT_FACE_OR_PIN ​ |ID + 지문 + 얼굴/​PIN ​ | 
 +</​WRAP>​ 
 +2. //​useGlobalAPB//​ \\  
 +광역 이중 인증 방지 구역을 활성화할지 결정하는 flag입니다. \\ \\  
 +3. //​globalAPBFailAction//​ \\  
 +광역 이중 인증 위반인지 BioStar 애플리케이션에 질의를 할 수 없거나 응답이 없을때 기본적으로 수행해야 할 동작입니다. \\ 
 +<WRAP group 50%> 
 +^값  ^설명 ​ ^ 
 +|0  |APB 검사 안함 ​ | 
 +|1  |Soft APB로 동작 ​ | 
 +|2  |Hard APB로 동작 ​ | 
 +</​WRAP>​ 
 +4. //​useGroupMatching//​ \\ 
 +얼굴 그룹 매칭을 사용할지 결정하는 flag입니다. \\ \\ 
 +5. //​reserved//​ \\  
 +예약된 공간입니다. \\ \\  
 +6. //​reserved2//​ \\  
 +예약된 공간입니다. \\ \\  
 +7. //​usePrivateAuth//​ \\  
 +개별 인증 모드를 사용할지 결정하는 flag입니다. \\ \\  
 +8. //​faceDetectionLevel//​ \\  
 +A2에서 사용자를 인증할 때 얼굴 검출 레벨값이며,​ 지정한 레벨보다 낮은 레벨로 얼굴이 검출되면 인증 실패로 처리됩니다.\\ 
 +설정하면 Normal/​Strict에 따른 카메라 뷰가 표시되며,​ 인증 성공 시의 이미지 로그가 얼굴로 인식되지 않으면 접근이 거부됩니다. 기본값은 0입니다. \\ 
 +<WRAP group 50%> 
 +^값  ^설명 ​ ^ 
 +|0  |얼굴 검출을 하지 않음 ​ | 
 +|1  |Normal mode  | 
 +|2  |Strict mode  | 
 +</​WRAP>​ 
 +<WRAP info> 
 +A2에서만 설정 가능하며,​ FaceStation2나 FaceLite에서는 사용되지 않습니다.  
 +</​WRAP>​ 
 +9. //​useServerMatching//​ \\  
 +지문 인증이나 얼굴 인식을 Matching server에서 수행할지 결정하는 flag입니다. \\ \\  
 +10. //​useFullAccess//​ \\  
 +사용하지 않는 변수입니다. \\ \\  
 +11. //​matchTimeout//​ \\  
 +지문 인증이나 얼굴 인식에서 최대 응답 시간이며 단위는 초(sec)를 사용합니다. \\ \\  
 +12. //​authTimeout//​ \\  
 +사용자 인증의 최대 응답 시간이며 단위는 초(sec)를 사용합니다. \\ \\  
 +13. //​numOperators//​ \\  
 +사용자 권한을 정의하는 operator의 개수입니다. \\ \\  
 +14. //​reserved3//​ \\  
 +예약된 공간입니다. \\ \\  
 +15. //userID// \\  
 +사용자 식별자입니다. \\ \\  
 +16. //level// \\  
 +사용자가 인증되었을 때 식별자에 해당하는 권한을 지정합니다. \\  
 +<WRAP group 50%> 
 +^값  ^설명 ​ ^ 
 +|0  |권한 없음 ​ | 
 +|1  |관리자 권한 ​ | 
 +|2  |시스템 구성을 변경할 수 있는 권한 ​ | 
 +|3  |사용자 정보를 변경할 수 있는 권한 ​ | 
 +</​WRAP>​ 
 +<WRAP alert> 
 +**주의**\\ 
 +Operator 추가 시, 추가하고자 하는 operator의 수를 **//​numOperators//​** 필드의 값으로 지정해야 합니다. 
 +</​WRAP>​ 
 +17. //​reserved//​ \\  
 +예약된 공간입니다. \\  
 +18. //​reserved4//​ \\  
 +예약된 공간입니다. \\ \\  
 + 
 + 
 +==== BS2FaceConfigExt ==== 
 +<code cpp> 
 +typedef struct { 
 +    uint8_t thermalCheckMode;​ 
 +    uint8_t maskCheckMode;​ 
 +    uint8_t reserved[2];​ 
 + 
 +    uint8_t thermalFormat;​ 
 +    uint8_t reserved2;​ 
 + 
 +    uint16_t thermalThresholdLow;​ 
 +    uint16_t thermalThresholdHigh;​ 
 +    uint8_t maskDetectionLevel;​ 
 +    uint8_t auditTemperature;​ 
 + 
 +    uint8_t useRejectSound;​ 
 +    uint8_t useOverlapThermal;​ 
 +    uint8_t useDynamicROI;​ 
 +    uint8_t faceCheckOrder;​ 
 +} BS2FaceConfigExt;​ 
 +</​code>​ 
 +1. //​thermalCheckMode//​ \\  
 +열화상 감지 모드를 설정합니다. \\  
 +HARD로 설정 시, 고열의 기준인 thermalThreshold를 초과하면,​ 출입에 영향을 주게됩니다. \\ 
 +SOFT로 설정 시, 고열의 기준인 thermalThreshold를 초과하면,​ 근거를 로그를 남기고 출입에 영향을 주지 않습니다. \\ 
 +thermalCheckMode가 사용안함(0)으로 설정되면,​ \\ 
 +thermalFormat,​ thermalThreshold,​ auditTemperature,​ useOverlapThermal 의 설정은 무시됩니다. \\ 
 +그리고 useRejectSound의 열화상 감지로 인한 sound발생, faceCheckOrder의 발열 측정이 무시됩니다. ​\\ 
 +<WRAP group 50%> 
 +^값  ^설명 ​ ^기본값 ​ ^ 
 +|0  |열화상 감지 사용 안함 ​ |기본값 ​ | 
 +|1  |열화상 감지 사용 (HARD) ​ |  | 
 +|2  |열화상 감지 사용 (SOFT) ​ |  | 
 +</​WRAP>​ 
 +2. //​maskCheckMode//​ \\  
 +''​FaceStation F2''​ 마스크 착용 감지 모드를 설정합니다. \\  
 +''​FaceStation 2''​ 이 설정은 무시됩니다. \\  
 +HARD로 설정 시, maskDetectionLevel에 근거하여 착용 위반이 감지되면,​ 출입에 영향을 주게됩니다. \\ 
 +SOFT로 설정 시, maskDetectionLevel에 근거하여 착용 위반이 감지되면,​ 근거를 로그를 남기고 출입에 영향을 주지 않습니다. \\ 
 +maskCheckMode가 사용안함(0)으로 설정되면,​ \\ 
 +maskDetectionLevel 의 설정은 무시됩니다. \\ 
 +그리고 useRejectSound의 마스크 착용으로 인한 sound발생이,​ faceCheckOrder의 마스크 착용 감지가 무시됩니다. \\ 
 +<WRAP group 50%> 
 +^값  ^설명 ​ ^기본값 ​ ^ 
 +|0  |마스크 착용 감지 사용 안함 ​ |기본값 ​ | 
 +|1  |마스크 착용 감지 사용 (HARD) ​ |  | 
 +|2  |마스크 착용 감지 사용 (SOFT) ​ |  | 
 +</​WRAP>​ 
 +3. //​reserved//​ \\  
 +예약된 공간입니다. \\ \\ 
 +4. //​thermalFormat//​ \\ 
 +온도 단위를 나타내며,​ 화면상의 온도 표시를 화씨 또는 섭씨로 나타내도록 선택할 수 있습니다. \\ 
 +<WRAP group 50%> 
 +^값  ^설명 ​ ^기본값 ​ ^ 
 +|0  |화씨 ​ |  | 
 +|1  |섭씨 ​ |기본값 ​ | 
 +</​WRAP>​ 
 +5. //​reserved2//​ \\  
 +예약된 공간입니다. \\ \\ 
 +6. //​thermalThresholdLow//​ \\ 
 +''​지원 버전''​ : ''​FaceStation F2 V1.0.2'',​ ''​FaceStation 2 V1.5.0''​ \\  
 +고열 판단 기준의 범위값이며,​ 설정 할 온도의 100을 곱한 값으로 입력하여야 합니다. \\ 
 +또한 섭씨 기준으로만 입력할 수 있습니다. \\ 
 +이 값은 인증 거부의 근거가 되며, 설정 범위는 섭씨로 100 (1º)에서 4500 (45º) 사이 입니다. \\ 
 +기본 값은 3200 (32º)이며,​ 설정 범위보다 크거나 작은 값을 입력 시 기본 값 3200 (32º)으로 설정됩니다. \\ 
 +그리고 thermalThresholdHigh보다 작은 값을 설정 하여야 합니다. \\ \\ 
 +7. //​thermalThresholdHigh//​ \\ 
 +고열 판단 기준의 범위값이며,​ 설정 할 온도의 100을 곱한 값으로 입력하여야 합니다. \\ 
 +또한 섭씨 기준으로만 입력할 수 있습니다. \\ 
 +이 값은 인증 거부의 근거가 되며, 설정 범위는 섭씨로 100 (1º)에서 4500 (45º) 사이 입니다. \\ 
 +기본 값은 3800(38º)이며,​ 설정 범위보다 크거나 작은 값을 입력 시 기본 값 3800 (38º)으로 설정됩니다. \\ 
 +그리고 thermalThresholdLow보다 큰 값을 설정 하여야 합니다. \\ \\ 
 +8. //​maskDetectionLevel//​ \\ 
 +''​FaceStation F2''​ 마스크 착용 감지 수준을 입력합니다. 여기서 감지 수준은 내부적으로 설정된 값에 근거합니다. \\ 
 +''​FaceStation 2''​ 이 설정은 무시됩니다. \\  
 +<WRAP group 50%> 
 +^값  ^설명 ​ ^기본값 ​ ^ 
 +|0  |착용 감지 안함 ​ |기본값 ​ | 
 +|1  |감지수준 보통 ​ |  | 
 +|2  |감지수준 높음 ​ |  | 
 +|3  |감지수준 매우높음 ​ |  | 
 +</​WRAP>​ 
 +9. //​auditTemperature//​ \\  
 +측정 온도를 이벤트 로그에 기록할지 여부를 설정합니다. \\ \\ 
 +10. //​useRejectSound//​ \\ 
 +thermalThreshold 또는 maskDetectionLevel에 의해서 사용자 인증이 거부되는 경우, 효과음을 발생시킬지 여부를 설정합니다. \\ \\ 
 +11. //​useOverlapThermal//​ \\ 
 +화면상에 열화상 이미지를 중첩해서 표시합니다. \\ \\ 
 +12. //​useDynamicROI//​ \\  
 +true로 설정하면,​ 온도 측정 시 고정 영역이 아닌 실제 사용자의 이마를 찾아 측정합니다. \\ \\ 
 +13. //​faceCheckOrder//​ \\  
 +발열 측정 및 마스크 착용 감지와 인증절차에 대한 순서를 정의합니다. \\ 
 +ID를 조합한 인증이나,​ PIN을 조합한 인증의 경우, 장치에 접촉하게되는 절차를 거치게 되므로, \\ 
 +고위험군을 고려하는 환경이라면,​ 발열 측정 후 인증을 선택할지,​ 그 전에 인증을 수행할지에 대한 선택은 매우 중요한 요소입니다. \\ 
 +<WRAP group 50%> 
 +^값  ^설명 ​ ^기본값 ​ ^ 
 +|0  |인증 후 발열 측정 및 마스크 착용 감지 ​ | 기본값 ​ | 
 +|1  |발열 측정 및 마스크 착용 감지 후 인증 ​ |  | 
 +|2  |인증 절차 생략. 발열 검사 및 마스크 착용 감지만 수행 ​ |  | 
 +</​WRAP>​ 
 + 
 +==== BS2ThermalCameraConfig ==== 
 +<code cpp> 
 +typedef struct { 
 +    uint8_t distance; 
 +    uint8_t emissionRate;​ 
 + 
 +    struct { 
 +        uint16_t x; 
 +        uint16_t y; 
 +        uint16_t width; 
 +        uint16_t height; 
 +    } roi; 
 + 
 +    uint8_t useBodyCompensation;​ 
 +    int8_t compensationTemperature;​ 
 +} BS2ThermalCameraConfig;​ 
 +</​code>​ 
 +1. //​distance//​ \\  
 +열화상 카메라의 체온 측정 거리를 나타냅니다. 단위는 cm이며 기본값은 100 입니다. \\ \\ 
 +2. //​emissionRate//​ \\ 
 +피사체가 열을 방사하는 비율을 입력합니다. \\ 
 +[95/97/98] 범위내의 입력을 권장합니다. 피사체가 사람인 경우 적정 권장은 98 입니다. \\ \\ 
 +3. //roi// \\ 
 +ROI(Region of interest)는 관심영역을 의미하며,​ 얼굴에서 발열 측정 시, 관심 대상이되는 영역을 \\ 
 +좌표(x, y)와, 범위(width,​ height) 값을 통해서 지정할 수 있습니다. \\ \\ 
 +4. //​useBodyCompensation//​ \\  
 +발열 측정된 체온의 보정을 사용할지 여부를 나타냅니다. \\ \\ 
 +5. //​compensationTemperature//​ \\ 
 +실제 체온측정값과,​ 카메라를 통한 체온측정은 약간의 차이가 존재할 수 있으며, 이곳에 값을 설정하여,​ 그 차이를 보정할 수 있습니다. \\ 
 +설정할 온도의 10을 곱한 값으로 입력하여야하며,​ 최소 -50에서 최대 50 사이의 값을 지정할 수 있습니다. \\ \\ 
 + 
 +==== BS2BarcodeConfig ==== 
 +<code cpp> 
 +typedef struct { 
 +    uint8_t useBarcode;​ 
 +    uint8_t scanTimeout;​ 
 +    uint8_t reserved[14];​ 
 +} BS2BarcodeConfig;​ 
 +</​code>​ 
 +1. //​useBarcode//​ \\  
 +Barcode 사용여부 flag입니다. \\ \\  
 +2. //​scanTimeout//​ \\  
 +Barcode scan 시간을 설정합니다. 단위는 초입니다. \\ \\ 
 +3. //​reserved//​ \\  
 +예약된 공간입니다. \\