차이

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

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
다음 판 양쪽 다음 판
ko:configuration_api [2020/08/20 21:50]
kkshin [BS2FaceConfig]
ko:configuration_api [2022/04/12 16:12]
kkshin [BS2BarcodeConfig]
줄 35: 줄 35:
   * [[BS2_GetWiegandDeviceConfig]]:​ Wiegand 신호 설정 정보를 가져옵니다.   * [[BS2_GetWiegandDeviceConfig]]:​ Wiegand 신호 설정 정보를 가져옵니다.
   * [[BS2_SetWiegandDeviceConfig]]:​ Wiegand 신호 설정 정보를 저장합니다.   * [[BS2_SetWiegandDeviceConfig]]:​ Wiegand 신호 설정 정보를 저장합니다.
-  * [[BS2_GetInputConfig]]:​ 입력 포트 설정 정보를 가져옵니다. +  * [[BS2_GetInputConfig]]: ​Suprevised ​입력 포트 설정 정보를 가져옵니다. 
-  * [[BS2_SetInputConfig]]:​ 입력 포트 설정 정보를 저장합니다.+  * [[BS2_SetInputConfig]]: ​Supervised ​입력 포트 설정 정보를 저장합니다.
   * [[BS2_GetWlanConfig]]:​ 무선랜 설정 정보를 가져옵니다.   * [[BS2_GetWlanConfig]]:​ 무선랜 설정 정보를 가져옵니다.
   * [[BS2_SetWlanConfig]]:​ 무선랜 설정 정보를 저장합니다.   * [[BS2_SetWlanConfig]]:​ 무선랜 설정 정보를 저장합니다.
줄 70: 줄 70:
   * [[BS2_GetDesFireCardConfigEx]]:​ [+ 2.6.4] DesFire 카드 고급설정 정보를 가져옵니다.   * [[BS2_GetDesFireCardConfigEx]]:​ [+ 2.6.4] DesFire 카드 고급설정 정보를 가져옵니다.
   * [[BS2_SetDesFireCardConfigEx]]:​ [+ 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 관련 설정을 저장합니다.
 +  * [[BS2_GetInputConfigEx]]:​ [+ 2.8.1] ''​IM-120''​ Input 관련 확장형 설정을 가져옵니다.
 +  * [[BS2_SetInputConfigEx]]:​ [+ 2.8.1] ''​IM-120''​ Input 관련 확장형 설정을 저장합니다.
 +  * [[BS2_GetRelayActionConfig]]:​ [+ 2.8.1] ''​IM-120''​ RelayAction 관련 설정을 가져옵니다.
 +  * [[BS2_SetRelayActionConfig]]:​ [+ 2.8.1] ''​IM-120''​ RelayAction 관련 설정을 저장합니다.
 +
 ===== 구조체 ===== ===== 구조체 =====
 ==== BS2FactoryConfig ==== ==== BS2FactoryConfig ====
줄 361: 줄 374:
     uint8_t shortcutHome[BS2_MAX_SHORTCUT_HOME];​     uint8_t shortcutHome[BS2_MAX_SHORTCUT_HOME];​
     uint8_t tnaIcon[16];​     uint8_t tnaIcon[16];​
-    uint8_t reserved1[32];+    ​uint8_t useScreenSaver;​ 
 +    ​uint8_t reserved1[31];
 } BS2DisplayConfig;​ } BS2DisplayConfig;​
 </​code>​ </​code>​
줄 401: 줄 415:
 </​WRAP>​ </​WRAP>​
 6. //​menuTimeout//​ \\  6. //​menuTimeout//​ \\ 
-사용자의 장치 조작이 없을 때 잠금 화면으로 전환되는 시간이며 단위는 초(sec)를 사용합니다. 0-255 sec로 설정할 수 있습으며. 0으로 설정되면 잠금 화면으로 전환되지 않습니다.\\ ​\\ +사용자의 장치 조작이 없을 때 잠금 화면으로 전환되는 시간이며 단위는 초(sec)를 사용합니다. 0-255 sec로 설정할 수 있습으며. 0으로 설정되면 잠금 화면으로 전환되지 않습니다.\\ ​ 
 +<WRAP group 50%> 
 +^값  ^설명 ​ ^ 
 +|0  |메뉴화면 유지 지속 ​ | 
 +|10  |메뉴화면 유지 10초  | 
 +|20  |메뉴화면 유지 20초 (기본값) ​ | 
 +|30  |메뉴화면 유지 30초  | 
 +|40  |메뉴화면 유지 40초  | 
 +|50  |메뉴화면 유지 50초  | 
 +|60  |메뉴화면 유지 60초  | 
 +</​WRAP>​
 7. //​msgTimeout//​ \\  7. //​msgTimeout//​ \\ 
-메시지 화면이 자동으로 사라지는 시간이며 단위는 밀리초(ms)를 사용합니다. 500-5000 ms로 설정할 수 있습니다.\\ ​\\ +메시지 화면이 자동으로 사라지는 시간이며 단위는 밀리초(ms)를 사용합니다. 500-5000 ms로 설정할 수 있습니다.\\ ​ 
 +<WRAP group 50%> 
 +^값  ^설명 ​ ^ 
 +|500  |메시지 화면 유지 500밀리초 ​ | 
 +|1000  |메시지 화면 유지 1초  | 
 +|2000  |메시지 화면 유지 2초 (기본값) ​ | 
 +|3000  |메시지 화면 유지 3초  | 
 +|4000  |메시지 화면 유지 4초  | 
 +|5000  |메시지 화면 유지 5초  | 
 +</​WRAP>​
 8. //​backlightTimeout//​ \\  8. //​backlightTimeout//​ \\ 
-백라이트 유지 시간이며 단위는 초(sec)를 사용합니다. \\ \\ +백라이트 유지 시간이며 단위는 초(sec)를 사용합니다. \\  
 +<WRAP group 50%> 
 +^값  ^설명 ​ ^ 
 +|0  |백라이트 유지 0초  | 
 +|10  |백라이트 유지 10초  | 
 +|20  |백라이트 유지 20초 (기본값) ​ | 
 +|30  |백라이트 유지 30초  | 
 +|40  |백라이트 유지 40초  | 
 +|50  |백라이트 유지 50초  | 
 +|60  |백라이트 유지 60초  | 
 +</​WRAP>​
 9. //​displayDateTime//​ \\  9. //​displayDateTime//​ \\ 
 화면에 시간을 표시할지 결정하는 flag입니다.\\ \\  화면에 시간을 표시할지 결정하는 flag입니다.\\ \\ 
줄 436: 줄 479:
 16. //tnaIcon// \\  16. //tnaIcon// \\ 
 장치내에서 근태 코드값에 해당하는 아이콘을 보여줄 때 사용합니다. \\ \\  장치내에서 근태 코드값에 해당하는 아이콘을 보여줄 때 사용합니다. \\ \\ 
-17. //​reserved1//​ \\ +17. //​useScreenSaver//​ \\  
 +''​FaceStation 2'',​ ''​FaceStation F2''​ true로 설정 시, 화면보호기가 활성화됩니다. \\ \\ 
 +18. //​reserved1//​ \\ 
 예약된 공간입니다. \\  예약된 공간입니다. \\ 
  
줄 677: 줄 722:
 23. //cipher// \\ 23. //cipher// \\
 Keypad로 card id를 입력받을 수 있도록 활성화 합니다. \\ Keypad로 card id를 입력받을 수 있도록 활성화 합니다. \\
-기본 값은 0이며, Xpass D2 Gangbox Keypad 만 유효합니다. \\+기본 값은 0이며, Xpass 2, Xpass D2의 Gangbox Keypad ​모델만 유효합니다. \\
 <WRAP group 50%> <WRAP group 50%>
 ^값  ^설명 ​ ^ ^값  ^설명 ​ ^
줄 766: 줄 811:
 ==== BS2Rs485Config ==== ==== BS2Rs485Config ====
 <code cpp> <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 { typedef struct {
     uint32_t baudRate;     uint32_t baudRate;
줄 779: 줄 833:
     uint8_t numOfChannels;​     uint8_t numOfChannels;​
     uint8_t reserved[2];​     uint8_t reserved[2];​
-    uint8_t reserved1[32];+    ​BS2IntelligentPDInfo intelligentInfo;​ 
 +    ​uint8_t reserved1[16];
     BS2Rs485Channel channels[BS2_RS485_MAX_CHANNELS];​     BS2Rs485Channel channels[BS2_RS485_MAX_CHANNELS];​
 } BS2Rs485Config;​ } BS2Rs485Config;​
 </​code>​ </​code>​
-1. //​baudRate//​ \\ +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 통신 속도이며 설정할 수 있는 범위는 다음과 같습니다. \\ RS485 통신 속도이며 설정할 수 있는 범위는 다음과 같습니다. \\
 <WRAP group 50%> <WRAP group 50%>
줄 793: 줄 865:
 |115200 ​ | |115200 ​ |
 </​WRAP>​ </​WRAP>​
-2. //​channelIndex//​ \\  +8. //​channelIndex//​ \\  
-RS485 network의 통신 채널 번호입니다. \\ \\ +(사용자 설정 불가) ​RS485 network의 통신 채널 번호입니다. \\ \\ 
-3. //​useRegistance//​ \\  +9. //​useRegistance//​ \\  
-종단 저항을 설정할지 결정하는 flag입니다. \\ \\ +종단 저항을 설정할지 결정하는 flag입니다. ​- 동작에 영향 없음 ​\\ \\ 
-4. //​numOfDevices//​ \\ +10. //​numOfDevices//​ \\ 
 슬레이브 장치의 개수입니다.\\ \\ 슬레이브 장치의 개수입니다.\\ \\
-5. //​slaveDevices//​ \\ +11. //​reserved//​ \\  
 +예약된 공간입니다.\\ \\  
 +12. //​slaveDevices//​ \\ 
 슬레이브 장치를 나열한 리스트로 최대 32개까지 정의할 수 있습니다.\\ \\ 슬레이브 장치를 나열한 리스트로 최대 32개까지 정의할 수 있습니다.\\ \\
-6. //mode// \\ +\\ 
 +13. //mode// \\ 
 RS485 네트워크에서 어떤 모드로 동작할지 결정하는 flag입니다 .\\ RS485 네트워크에서 어떤 모드로 동작할지 결정하는 flag입니다 .\\
 <WRAP group 50%> <WRAP group 50%>
줄 810: 줄 885:
 |3  |Standalone ​ | |3  |Standalone ​ |
 </​WRAP>​ </​WRAP>​
-7. //​numOfChannels//​ \\ +14. //​numOfChannels//​ \\ 
 RS485 채널의 개수입니다.\\ \\  RS485 채널의 개수입니다.\\ \\ 
-8. //​reserved//​ \\ +15. //​reserved//​ \\ 
 예약된 공간입니다.\\ \\  예약된 공간입니다.\\ \\ 
-9. //​reserved1//​ \\ +16. //​intelligentInfo//​ \\  
 +''​[+V2.8]''​ Intelligent Slave 기능을 설정하며,​ mode가 default(Standalone)인 경우에만 동작됩니다. \\ 
 +이 설정을 이용하면 슈프리마 기기가 타사 컨트롤러와 연결된 환경에서 OSDP로 인증 결과를 출력시켜 줍니다. ​ \\ \\ 
 +17. //​reserved1//​ \\ 
 예약된 공간입니다.\\ \\ 예약된 공간입니다.\\ \\
-10. //​channels//​ \\ +18. //​channels//​ \\ 
 RS485 채널을 나열한 리스트로 최대 4개까지 설정할 수 있습니다.\\ \\  RS485 채널을 나열한 리스트로 최대 4개까지 설정할 수 있습니다.\\ \\ 
  
줄 841: 줄 919:
     uint16_t wiegandCardMask;​     uint16_t wiegandCardMask;​
     uint8_t wiegandCSNIndex;​     uint8_t wiegandCSNIndex;​
-    uint8_t reserved[27];+    ​uint8_t useWiegandUserID;​ 
 +    ​uint8_t reserved[26];
 } BS2WiegandConfig;​ } BS2WiegandConfig;​
 </​code>​ </​code>​
줄 912: 줄 991:
 Mifare 또는 EM 카드를 사용할 때 Wiegand out을 어떤 형식으로 처리할 것인지 결정하는 인덱스입니다. Mifare 또는 EM 카드를 사용할 때 Wiegand out을 어떤 형식으로 처리할 것인지 결정하는 인덱스입니다.
 설정하기 전에 [[configuration api#​BS2CardConfig]] 구조체의 //​useWiegandFormat//​ 값을 확인하십시오. \\ \\ 설정하기 전에 [[configuration api#​BS2CardConfig]] 구조체의 //​useWiegandFormat//​ 값을 확인하십시오. \\ \\
-17. //​reserved//​ \\ +17. //​useWiegandUserID//​ \\ 
 +Wiegand 출력시 Card ID 또는 사용자 ID를 선택적으로 출력할 수 있도록 결정하는 플래그 입니다. \\ 
 +<WRAP group 50%> 
 +^값  ^설명 ​ ^ 
 +|0  |사용 안함 ​ | 
 +|1  |Card ID  | 
 +|2  |사용자 ID  | 
 +</​WRAP>​ 
 +18. //​reserved//​ \\ 
 예약된 공간입니다.\\ ​ 예약된 공간입니다.\\ ​
  
줄 1316: 줄 1403:
 26. //type// \\  26. //type// \\ 
 Action 유형입니다. \\ 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%> <WRAP group 50%>
 ^값  ^설명 ​ ^ ^값  ^설명 ​ ^
줄 1593: 줄 1693:
 |1  |옥외 ​ | |1  |옥외 ​ |
 |2  |자동 ​ | |2  |자동 ​ |
 +|3  |[+V2.8] 사용 안함 ''​(FaceStation F2)'' ​ |
 </​WRAP>​ </​WRAP>​
 3. //​enrollThreshold//​ \\  3. //​enrollThreshold//​ \\ 
줄 1673: 줄 1774:
 maxRotation은 이경우의 최대 허용치를 나타내며,​ 기본값은 15도 입니다. \\ \\ maxRotation은 이경우의 최대 허용치를 나타내며,​ 기본값은 15도 입니다. \\ \\
 12. //​faceWidth//​ \\  12. //​faceWidth//​ \\ 
-[+ V2.7.1] ''​FaceStation F2''​ 얼굴 이미지의 폭을 나타내며,​ 폭의 최소값, 최대값을 지정할 수 있습니다. \\ +[+ V2.7.1] ''​FaceStation F2''​ 얼굴 이미지의 폭을 나타내며,​ 폭의 최소값, 최대값을 지정할 수 있습니다. \\  
-최소값, 최대값은 ​각각 66과 250를 ​기본값으로 갖습니다. \\ \\+최소값, 최대값은 ​아래의 값을 ​기본값으로 갖습니다. \\ 
 +<WRAP group 20%> 
 +^  ^기본값 ​ ^ 
 +|min  |66  | 
 +|max  |250  | 
 +</​WRAP> ​
 13. //​searchRange//​ \\ 13. //​searchRange//​ \\
-[+ V2.7.1] ''​FaceStation F2''​ 얼굴 검색 범위를 나타내며,​ 범위의 x값(가로 좌표)과 x값 지점으로부터의 폭을 지정할 수 있습니다. \\ +[+ V2.7.1] ''​FaceStation F2''​ 얼굴 검색 범위를 나타내며,​ 범위의 x값(가로 좌표)과 x값 지점으로부터의 폭을 지정할 수 있습니다. \\  
-x값과 폭의 ​기본은 각각 144, 432를 ​기본값으로 갖습니다. \\ \\+x값과 폭은 아래의 값을 기본값으로 갖습니다. \\ 
 +<WRAP group 20%> 
 +^  ^기본값 ​ ^ 
 +|x  |144  | 
 +|width ​ |432  | 
 +</​WRAP> ​
 14. //​reserved2//​ \\  14. //​reserved2//​ \\ 
 예약된 공간입니다.\\ \\ 예약된 공간입니다.\\ \\
줄 1991: 줄 2102:
 8. //​reserved//​ \\ 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 bypassData;
 +    uint8_t treatAsCSN;
 +
 +    uint8_t reserved[12];​
 +} BS2BarcodeConfig;​
 +</​code>​
 +1. //​useBarcode//​ \\ 
 +Barcode 사용여부 flag입니다. \\ \\ 
 +2. //​scanTimeout//​ \\ 
 +Barcode scan 시간을 설정합니다. 단위는 초입니다. \\
 +기본값은 4초이며, 4~10초 범위 내로 입력 가능합니다. \\ \\
 +3. //​bypassData//​ \\ 
 +'​[+2.8.2]'​ 읽혀진 barcode 정보를 장치에서 처리하지 않고, 서버로 전송하기 위해 사용합니다. \\
 +사용자 인증을 위해 사용자 정보 구조체에 barcode 값을 저장하게되는 경우, \\
 +32 byte의 크기 제약([[smartcard_api#​BS2CSNCard|BS2CSNCard data 참조]])이 있으나, \\
 +이 옵션을 사용하면 최대 512 byte크기의 barcode를 서버로 전송할 수 있습니다. \\ \\
 +4. //​treatAsCSN//​ \\
 +'​[+2.8.2]'​ Barcode를 일반 CSN 카드와 동일하게 처리할지의 여부를 나타냅니다. \\
 +XS2-QR 1.1.3부터 적용되며,​ false의 경우, 이전과 동일하게 처리됩니다. \\
 +이방식은 barcode로 처리될 수 있는 문자셋을 ASCII code 32에서 126까지 자유롭게 지정할 수 있습니다. ([[qr_code_api#​BS2_WriteQRCode|BS2_WriteQRCode의 설명 참조]]) \\
 +true로 설정하면,​ barcode를 기존 CSN과 동일하게 숫자로만 취급하게 됩니다. \\
 +따라서, 특수문자,​ 영문자가 들어있는 barcode 카드 데이터를 설정하고자 하면 오류를 반환할 수 있습니다. \\
 +이 경우, card type만 다르게, CSN 카드와 barcode 데이터를 동일한 값으로 사용하고자하는 사용자의 목적에 부합할 수 있습니다. \\ \\
 +5. //​reserved//​ \\ 
 +예약된 공간입니다. \\
 +
 +==== BS2InputConfigEx ====
 +<code cpp>
 +typedef struct {
 +    uint8_t ​   numInputs;
 +    uint8_t ​   numSupervised;​
 +    uint8_t ​   reserved[18];​
 +
 +    struct {
 +        uint8_t ​   portIndex;
 +        uint8_t ​   switchType;
 +        uint16_t ​  ​duration;​
 +    ​
 +        uint8_t ​   reserved;
 +        uint8_t ​   supervisedResistor;​
 +        uint8_t ​   reserved1[16];​
 +    ​
 +        uint8_t ​   reserved2[26];​
 +    } inputs[BS2_MAX_INPUT_NUM_EX];​
 +
 +    uint8_t ​   reserved2[200];​
 +} BS2InputConfigEx;​
 +</​code>​
 +1. //​numInputs//​ \\ 
 +Input 포트의 개수입니다. \\ \\
 +2. //​numSupervised//​ \\
 +supervised input 포트의 개수입니다. \\ \\
 +3. //​reserved//​ \\
 +예약된 공간입니다. \\ \\
 +4. //​portIndex//​ \\ 
 +Input 포트 번호입니다. \\ \\
 +5. //​switchType//​ \\
 +Input 신호 유형입니다. \\ 
 +<WRAP group 50%>
 +^값  ^설명 ​ ^
 +|0  |Normally Open  |
 +|1  |Normally Closed ​ |
 +</​WRAP> ​
 +6. //​duration//​ \\ 
 +Input 신호의 지속시간으로 단위는 밀리초(ms)입니다. \\ \\
 +7. //​reserved//​ \\
 +예약된 공간입니다. \\ \\
 +8. //​supervisedResistor//​ \\
 +Supervised input 저항 값의 유형을 설정하거나,​ 해제할 수(unsupervised) 있습니다. \\
 +<WRAP group 50%>
 +^값  ^설명 ​ ^
 +|0  |1K 저항 ​ |
 +|1  |2.2K 저항 ​ |
 +|2  |4.7K 저항 ​ |
 +|3  |10K 저항 ​ |
 +|254  |Unsupervised(기본값) ​ |
 +</​WRAP> ​
 +9. //​reserved1//​ \\
 +예약된 공간입니다. \\ \\
 +10. //​reserved2//​ \\
 +예약된 공간입니다. \\ \\
 +11. //​reserved2//​ \\
 +예약된 공간입니다. \\ \\
 +
 +
 +==== BS2RelayActionConfig ====
 +<code cpp>
 +typedef struct {
 +    uint32_t ​       deviceID;​ ///<​ 4 bytes
 +    uint8_t ​        ​reserved[16];​ ///<​ 16 bytes
 +
 +    struct {
 +        uint8_t ​    ​port;​ ///<​ 1 byte (relay port)
 +        uint8_t ​    ​reserved0;​ ///<​ 1 byte
 +        uint8_t ​    ​disconnEnabled;​ ///<​ 1 byte (RS485 disconnection)
 +        uint8_t ​    ​reserved[9];​ ///<​ 9 bytes
 +        ​
 +        struct {
 +            uint8_t port;​ ///<​ 1 byte (input port)
 +            uint8_t type;​ ///<​ 1 byte (linkage/​latching/​release)
 +            uint8_t mask;​ ///<​ 1 byte (alarm/​fault)
 +            uint8_t reserved[9];​ ///<​ 9 bytes
 +        } input[BS2_MAX_RELAY_ACTION_INPUT];​ ///<​ 192 bytes
 +    } relay[BS2_MAX_RELAY_ACTION];​ ///< 816 bytes
 +
 +    uint8_t reserved2[152];​ ///<​ 152 bytes
 +} BS2RelayActionConfig;​
 +</​code>​
 +1. //​deviceID//​ \\ 
 +장치 식별번호 입니다. \\ \\
 +2. //​reserved//​ \\
 +예약된 공간입니다. \\ \\
 +3. //relay// \\
 +Relay에 대한 설정 정보입니다. \\ \\
 +4. //port// \\ 
 +Relay port 번호입니다. \\ \\
 +5. //​reserved0//​ \\
 +예약된 공간입니다. \\ \\
 +6. //​disconnEnabled//​ \\ 
 +true로 설정하면,​ RS485 연결이 끊겼을때 신호를 발생시키게 됩니다. \\ \\
 +7. //​reserved//​ \\
 +예약된 공간입니다. \\ \\
 +8. //input// \\
 +해당 relay port가 어떤 input port들에 대해서 동작할지 정의합니다. \\ \\
 +9. //port// \\
 +Input port 식별번호 입니다. \\ \\
 +10. //type// \\
 +해당 input을 어떤 형태의 input으로 동작시킬 것인지 정의합니다. \\
 +Linkage로 설정 시 mask로 alarm이 설정되어야 신호가 전달됩니다. \\
 +<WRAP group 50%>
 +^type  ^값  ^설명 ​ ^
 +|NONE  |0  |사용안함 ​ |
 +|LINKAGE ​ |1  |해당 input에 대한 relay로의 연결 ​ |
 +|LATCHING ​ |2  |''​미지원'' ​ |
 +|RELEASE ​ |3  |''​미지원'' ​ |
 +</​WRAP> ​
 +11. //mask// \\
 +Input 신호정보들에 대해 mask를 설정합니다. \\
 +<WRAP group 50%>
 +^type  ^값  ^설명 ​ ^
 +|NONE  |0  |사용안함 ​ |
 +|ALARM ​ |1  |신호 발생 ​ |
 +|FAULT ​ |2  |단선/​단락의 경우 신호 발생 ​ |
 +</​WRAP> ​
 +12. //​reserved//​ \\
 +예약된 공간입니다. \\ \\
 +13. //​reserved2//​ \\
 +예약된 공간입니다. \\ \\
 +