차이

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

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
ko:configuration_api [2022/04/12 16:12]
kkshin [BS2BarcodeConfig]
ko:configuration_api [2024/04/04 13:53] (현재)
ghshin [BS2FaceConfig]
줄 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_GetAuthConfigExt]]:​ [+ 2.7.1] ''​FSF2''​ 인증 설정 정보를 가져옵니다. 
-  * [[BS2_SetAuthConfigExt]]:​ [+ 2.7.1] ''​FaceStation F2''​ 인증 설정 정보를 저장합니다. +  * [[BS2_SetAuthConfigExt]]:​ [+ 2.7.1] ''​FSF2''​ 인증 설정 정보를 저장합니다. 
-  * [[BS2_GetFaceConfigExt]]:​ [+ 2.7.1] ''​FaceStation F2FaceStation2''​ 열화상 감지와 마스크 착용 체크를 위한 설정 정보를 가져옵니다. +  * [[BS2_GetFaceConfigExt]]:​ [+ 2.7.1] ''​FSF2FS2''​ 열화상 감지와 마스크 착용 체크를 위한 설정 정보를 가져옵니다. 
-  * [[BS2_SetFaceConfigExt]]:​ [+ 2.7.1] ''​FaceStation F2FaceStation2''​ 열화상 감지와 마스크 착용 체크를 위한 설정 정보를 저장합니다. +  * [[BS2_SetFaceConfigExt]]:​ [+ 2.7.1] ''​FSF2FS2''​ 열화상 감지와 마스크 착용 체크를 위한 설정 정보를 저장합니다. 
-  * [[BS2_GetThermalCameraConfig]]:​ [+ 2.7.1] ''​FaceStation F2FaceStation2''​ 열화상 카메라 설정을 가져옵니다. +  * [[BS2_GetThermalCameraConfig]]:​ [+ 2.7.1] ''​FSF2FS2''​ 열화상 카메라 설정을 가져옵니다. 
-  * [[BS2_SetThermalCameraConfig]]:​ [+ 2.7.1] ''​FaceStation F2FaceStation2''​ 열화상 카메라 설정을 저장합니다. +  * [[BS2_SetThermalCameraConfig]]:​ [+ 2.7.1] ''​FSF2FS2''​ 열화상 카메라 설정을 저장합니다. 
-  * [[BS2_GetBarcodeConfig]]:​ [+ 2.8] ''​X-Station 2''​ Barcode 관련 설정을 가져옵니다. +  * [[BS2_GetBarcodeConfig]]:​ [+ 2.8] ''​XS2''​ Barcode 관련 설정을 가져옵니다. 
-  * [[BS2_SetBarcodeConfig]]:​ [+ 2.8] ''​X-Station 2''​ Barcode 관련 설정을 저장합니다.+  * [[BS2_SetBarcodeConfig]]:​ [+ 2.8] ''​XS2''​ Barcode 관련 설정을 저장합니다.
   * [[BS2_GetInputConfigEx]]:​ [+ 2.8.1] ''​IM-120''​ Input 관련 확장형 설정을 가져옵니다.   * [[BS2_GetInputConfigEx]]:​ [+ 2.8.1] ''​IM-120''​ Input 관련 확장형 설정을 가져옵니다.
   * [[BS2_SetInputConfigEx]]:​ [+ 2.8.1] ''​IM-120''​ Input 관련 확장형 설정을 저장합니다.   * [[BS2_SetInputConfigEx]]:​ [+ 2.8.1] ''​IM-120''​ Input 관련 확장형 설정을 저장합니다.
   * [[BS2_GetRelayActionConfig]]:​ [+ 2.8.1] ''​IM-120''​ RelayAction 관련 설정을 가져옵니다.   * [[BS2_GetRelayActionConfig]]:​ [+ 2.8.1] ''​IM-120''​ RelayAction 관련 설정을 가져옵니다.
   * [[BS2_SetRelayActionConfig]]:​ [+ 2.8.1] ''​IM-120''​ RelayAction 관련 설정을 저장합니다.   * [[BS2_SetRelayActionConfig]]:​ [+ 2.8.1] ''​IM-120''​ RelayAction 관련 설정을 저장합니다.
 +  * [[BS2_GetVoipConfigExt]]:​ [+ 2.8.3] ''​BS3''​ 확장형 VoIP 설정을 가져옵니다. 
 +  * [[BS2_SetVoipConfigExt]]:​ [+ 2.8.3] ''​BS3''​ 확장형 VoIP 설정을 저장합니다. 
 +  * [[BS2_GetRtspConfig]]:​ [+ 2.8.3] ''​BS3''​ RTSP 설정을 가져옵니다. 
 +  * [[BS2_SetRtspConfig]]:​ [+ 2.8.3] ''​BS3''​ RTSP 설정을 저장합니다. 
 +  * [[BS2_GetLicenseConfig]]:​ [+ 2.9.1] 장치 라이선스 활성화 정보를 가져옵니다. 
 +  * [[BS2_GetOsdpStandardConfig]]:​ [+ 2.9.1] 장치의 OSDP 설정 정보를 가져옵니다. 
 +  * [[BS2_GetOsdpStandardActionConfig]]:​ [+ 2.9.1] OSDP 장치의 action별 LED/buzzer 설정을 가져옵니다. 
 +  * [[BS2_SetOsdpStandardActionConfig]]:​ [+ 2.9.1] OSDP 장치의 action별 LED/buzzer 설정을 저장합니다. 
 +  * [[BS2_GetCustomCardConfig]]:​ [+ 2.9.4] Custom smart card 설정을 가져옵니다. 
 +  * [[BS2_SetCustomCardConfig]]:​ [+ 2.9.4] Custom smart card 설정을 저장합니다.
 ===== 구조체 ===== ===== 구조체 =====
 ==== BS2FactoryConfig ==== ==== BS2FactoryConfig ====
줄 189: 줄 198:
 예약된 공간입니다. \\ \\  예약된 공간입니다. \\ \\ 
 15. //​useCardOperationMask//​ \\ 15. //​useCardOperationMask//​ \\
-[+ V2.6.4] 모든 카드를 읽지 않고, 사용자 선택에 의해 카드 타입별로 읽을 수 있도록 옵션을 제공합니다. \\+[+ 2.6.4] 모든 카드를 읽지 않고, 사용자 선택에 의해 카드 타입별로 읽을 수 있도록 옵션을 제공합니다. \\
 MASK값은 조합을 통하여 중복 설정이 가능며, 사용자는 이 옵션을 통하여 카드 타입의 읽기를 추가 또는 제거할 수 있습니다. \\ MASK값은 조합을 통하여 중복 설정이 가능며, 사용자는 이 옵션을 통하여 카드 타입의 읽기를 추가 또는 제거할 수 있습니다. \\
 단, 장치가 지원할 수 있는 카드 타입에 한하며, 장치가 지원하지 않는 카드 읽기를 추가하는 경우 해당 설정은 무시됩니다. \\ 단, 장치가 지원할 수 있는 카드 타입에 한하며, 장치가 지원하지 않는 카드 읽기를 추가하는 경우 해당 설정은 무시됩니다. \\
 또한, 지원하고자하는 카드 타입의 마스크는 ''​CARD_OPERATION_USE''​와 조합해야 합니다.\\ 또한, 지원하고자하는 카드 타입의 마스크는 ''​CARD_OPERATION_USE''​와 조합해야 합니다.\\
 예를들어 EM카드만 읽을 수 있도록 설정하고자 한다면 useCardOperationMask에는 ''​0x80000001''​로 설정되어져야 합니다. 예를들어 EM카드만 읽을 수 있도록 설정하고자 한다면 useCardOperationMask에는 ''​0x80000001''​로 설정되어져야 합니다.
-<WRAP group 50%>+<WRAP group 60%>
 ^값  ^설명 ​ ^ ^값  ^설명 ​ ^
 |0xFFFFFFFF ​ |CARD_OPERATION_MASK_DEFAULT ​ | |0xFFFFFFFF ​ |CARD_OPERATION_MASK_DEFAULT ​ |
 |0x80000000 ​ |CARD_OPERATION_USE ​ | |0x80000000 ​ |CARD_OPERATION_USE ​ |
 +|0x00000000 ​ |CARD_OPERATION_MASK_NONE ​ |
 +|0x00000800 ​ |CARD_OPERATION_MASK_CUSTOM_DESFIRE_EV1 ​ |
 +|0x00000400 ​ |CARD_OPERATION_MASK_CUSTOM_CLASSIC_PLUS ​ |
 |0x00000200 ​ |CARD_OPERATION_MASK_BLE ​ | |0x00000200 ​ |CARD_OPERATION_MASK_BLE ​ |
 |0x00000100 ​ |CARD_OPERATION_MASK_NFC ​ | |0x00000100 ​ |CARD_OPERATION_MASK_NFC ​ |
줄 375: 줄 387:
     uint8_t tnaIcon[16];​     uint8_t tnaIcon[16];​
     uint8_t useScreenSaver;​     uint8_t useScreenSaver;​
-    uint8_t reserved1[31];+    ​uint8_t showOsdpResult;​ 
 +    ​uint8_t reserved1[30];
 } BS2DisplayConfig;​ } BS2DisplayConfig;​
 </​code>​ </​code>​
줄 481: 줄 494:
 17. //​useScreenSaver//​ \\  17. //​useScreenSaver//​ \\ 
 ''​FaceStation 2'',​ ''​FaceStation F2''​ true로 설정 시, 화면보호기가 활성화됩니다. \\ \\ ''​FaceStation 2'',​ ''​FaceStation F2''​ true로 설정 시, 화면보호기가 활성화됩니다. \\ \\
-18. //​reserved1//​ \\ +18. //​showOsdpResult//​ \\  
 +[+ 2.9.6] Intelligent slave나 타사 컨트롤러에 슈프리마 장치를 주변장치로 연결하여 사용하는 환경에서 \\ 
 +인증 결과를 장치 화면에 표시하도록 하는 옵션입니다. \\ 
 +<WRAP group 50%> 
 +^값  ^설명 ​ ^ 
 +|0  |OSDP 인증결과 표시 (기본값) ​ | 
 +|1  |OSDP 인증결과 표시안함 ​ | 
 +</​WRAP>​ 
 +19. //​reserved1//​ \\ 
 예약된 공간입니다. \\  예약된 공간입니다. \\ 
  
줄 656: 줄 677:
     uint8_t formatID;     uint8_t formatID;
     uint8_t cipher;     uint8_t cipher;
-    uint8_t reserved[24];+    ​uint8_t smartCardByteOrder;​ 
 +    ​uint8_t reserved[22];
 } BS2CardConfig;​ } BS2CardConfig;​
 </​code>​ </​code>​
줄 728: 줄 750:
 |1  |활성화 ​ | |1  |활성화 ​ |
 </​WRAP>​ </​WRAP>​
-24. //reserved5// \\ +24. //smartCardByteOrder//​ \\ 
 +[+2.8.2] 이전까지 smart card의 data 영역에 쓰여진 카드정보는 MSB 방식으로 고정이었습니다. \\ 
 +이로인해 LSB 방식을 사용하는 일부 controller로의 연동시, byte 정보가 반전되어 전혀 다른값으로 출력되었습니다. \\ 
 +smartCardByteOrder 값으로, MSB/LSB 출력을 유연하게 변경할 수 있습니다. \\ 
 +<WRAP group 50%> 
 +^값  ^설명 ​ ^ 
 +|0  |MSB  | 
 +|1  |LSB  | 
 +</​WRAP>​ 
 +25. //reserved// \\ 
 예약된 공간입니다. \\  예약된 공간입니다. \\ 
 ==== BS2FingerprintConfig ==== ==== BS2FingerprintConfig ====
줄 1200: 줄 1231:
     uint32_t deviceID;     uint32_t deviceID;
     uint8_t type;     uint8_t type;
-    uint8_t reserved[3];+    uint8_t reserved
 +    uint16_t ignoreSignalTime;
     ​     ​
     union {     union {
줄 1246: 줄 1278:
 |3|Schedule trigger| |3|Schedule trigger|
 </​WRAP>​ </​WRAP>​
 +11. //​reserved//​ \\ 
 +예약된 공간입니다. \\ \\
 +12. //​ignoreSignalTime//​ \\ 
 +[+2.9.6] 밀리초 단위로 지정하며 일정 시간 내 동일한 입력 신호가 반복적으로 입력되는 것을 무시하기 위한 설정입니다. \\
 +슈프리마 장치가 타사 컨트롤러와 wiegand로 연결된 환경에서 \\
 +특정 모델의 컨트롤러로부터 슈프리마 장치로 인증에 대한 피드백이 반복적으로 입력되는 경우 \\
 +이 설정을 통해 해당 시간만큼 강제로 입력 신호가 무시되도록 지정할 수 있습니다. \\ \\
  
 ==== BS2Action ==== ==== BS2Action ====
줄 1665: 줄 1704:
     uint8_t ​      ​maxRotation;​     uint8_t ​      ​maxRotation;​
  
 +    // Deprecated
     struct {     struct {
         uint16_t ​ min;         uint16_t ​ min;
줄 1670: 줄 1710:
     } faceWidth;     } faceWidth;
  
 +    // Deprecated
     struct {     struct {
         uint16_t ​ x;         uint16_t ​ x;
줄 1675: 줄 1716:
     } searchRange;​     } searchRange;​
  
-    uint8_t ​      reserved2[18];+    ​struct { 
 +        ​uint8_t ​min; // 30 ~ 100 
 +        uint8_t max; // 40 ~ 100, 255 
 +    } detectDistance;​ ////<​ 2 bytes 
 +     
 +    BS2_BOOL wideSearch;​ ///<​ 1 byte 
 +    uint8_t unused; 
 +     
 +    uint8_t unableToSaveImageOfVisualFace;​ 
 +    uint8_t reserved[13];
 } BS2FaceConfig;​ } BS2FaceConfig;​
 </​code>​ </​code>​
 +
 1. //​securityLevel//​ \\  1. //​securityLevel//​ \\ 
 시스템 전반적으로 사용할 얼굴 인증 보안 레벨입니다. \\  시스템 전반적으로 사용할 얼굴 인증 보안 레벨입니다. \\ 
줄 1693: 줄 1744:
 |1  |옥외 ​ | |1  |옥외 ​ |
 |2  |자동 ​ | |2  |자동 ​ |
-|3  |[+V2.8] 사용 안함 ''​(FaceStation F2)'' ​ |+|3  |[+ 2.8] 사용 안함 ''​(FaceStation F2)'' ​ |
 </​WRAP>​ </​WRAP>​
 3. //​enrollThreshold//​ \\  3. //​enrollThreshold//​ \\ 
줄 1735: 줄 1786:
 </​WRAP>​ </​WRAP>​
 6. //​lfdLevel//​ \\ 6. //​lfdLevel//​ \\
-[+ V2.6.3] 위조된 얼굴을 여과할 수 있는 민감도를 설정할 수 있습니다. \\+[+ 2.6.3] 위조된 얼굴을 여과할 수 있는 민감도를 설정할 수 있습니다. \\
 ''​FaceStation2,​ FaceLite''​ : 기본값은 0입니다. \\ ''​FaceStation2,​ FaceLite''​ : 기본값은 0입니다. \\
-''​FaceStation F2''​ : [+ V2.7.1] 기본값이 1입니다. \\+''​FaceStation F2''​ : [+ 2.7.1] 기본값이 1입니다. \\
 <WRAP group 50%> <WRAP group 50%>
 ^값  ^설명 ​ ^ ^값  ^설명 ​ ^
줄 1746: 줄 1797:
 </​WRAP>​ </​WRAP>​
 7. //​quickEnrollment//​ \\ 7. //​quickEnrollment//​ \\
-[+ V2.6.3] 빠른 얼굴 등록 사용 여부를 설정할 수 있습니다. \\+[+ 2.6.3] 빠른 얼굴 등록 사용 여부를 설정할 수 있습니다. \\
 이 값을 true로 설정하면 얼굴 등록 절차가 1단계로 설정되며,​ false로 설정할 경우 3단계로 설정됩니다. \\ 이 값을 true로 설정하면 얼굴 등록 절차가 1단계로 설정되며,​ false로 설정할 경우 3단계로 설정됩니다. \\
 고품질의 얼굴 템플릿을 등록하려면 false를 설정하십시오. \\ \\ 고품질의 얼굴 템플릿을 등록하려면 false를 설정하십시오. \\ \\
 8. //​previewOption//​ \\ 8. //​previewOption//​ \\
-[+ V2.6.3] IR 인증 가이드를 의미하며,​ 얼굴 인증 시 preview 화면 출력 설정을 변경할 수 있습니다. \\+[+ 2.6.3] IR 인증 가이드를 의미하며,​ 얼굴 인증 시 preview 화면 출력 설정을 변경할 수 있습니다. \\
 ''​FaceLite''​에서만 사용됩니다. \\ ''​FaceLite''​에서만 사용됩니다. \\
 <WRAP group 50%> <WRAP group 50%>
줄 1759: 줄 1810:
 </​WRAP>​ </​WRAP>​
 9. //​checkDuplicate//​ \\ 9. //​checkDuplicate//​ \\
-[+ V2.6.4] true로 설정하면 중복된 얼굴 정보인지 판단합니다. \\ \\+[+ 2.6.4] true로 설정하면 중복된 얼굴 정보인지 판단합니다. \\ \\
 10. //​operationMode//​ \\  10. //​operationMode//​ \\ 
-[+ V2.7.1] ''​FaceStation F2''​ 아래의 동작 모드를 설정하며,​ 기본값은 Fusion 모드입니다. \\ +[+ 2.7.1] ''​FaceStation F2 V1.0.1''​미만은 ​아래의 동작 모드로 설정가능하며, 기본값은 Fusion 모드입니다. \\ 
 <WRAP group 50%> <WRAP group 50%>
 ^값  ^모드 ​ ^설명 ​ ^기본값 ​ ^ ^값  ^모드 ​ ^설명 ​ ^기본값 ​ ^
줄 1767: 줄 1818:
 |1  |Visual 모드 |Visual matching | | |1  |Visual 모드 |Visual matching | |
 |2  |Visual + IR검출 |Visual matching, IR은 얼굴 검출만| | |2  |Visual + IR검출 |Visual matching, IR은 얼굴 검출만| |
 +</​WRAP> ​
 +
 +''​FaceStation F2 V1.0.1''​이상,​ ''​BioStatoin 3'',​ ''​BioEntry W3''​는 아래와 같은 의미로 사용됩니다.
 +<WRAP group 50%>
 +^값  ^모드 ​ ^설명 ​ ^기본값 ​ ^
 +|0  |Fusion 모드 |Visual matching + IR matching |기본 |
 +|1  |Fast 모드 |Visual matching | |
 </​WRAP> ​ </​WRAP> ​
 11. //​maxRotation//​ \\  11. //​maxRotation//​ \\ 
-[+ V2.7.1] ''​FaceStation F2''​ 얼굴 검출 ​시 보통은 정면 일 것입니다. \\ +[+ 2.7.1] ''​FaceStation F2'' ​일반적인 상황에서 ​얼굴을 검출할 때 얼굴의 방향은 정면일 것입니다. \\ 
-하지만 FSF2는 얼굴 검출 시 정면에서 ​몇도 ​정도 회전된(곡된) 이미지인지 판단이 가능합니다. \\ +FaceStation F2는 얼굴 검출 시 정면에서 ​어느 ​정도 회전된(곡된) 이미지인지 판단할 수 있습니다. \\ 
-이를 통해 일정 각도 이상 회전된 이미지의 경우 검출 실패 처리를 ​시킬 ​수 있습니다. \\ +이를 통해 일정 각도 이상 회전된 이미지의 경우 검출 실패 처리를 ​할 수 있습니다. \\ 
-maxRotation은 이경우의 최대 허용치를 나타내며기본값은 15도 입니다. \\ \\+maxRotation은 이런 경우의 최대 허용치를 나타내며 기본값은 15도입니다. \\ \\ 
 +[+ 2.9.6] Angle 추가 정의 \\ 
 +<WRAP group 40%> 
 +^정의 ​ ^값  ^ 
 +|BS2_MAX_ROTATION_DEFAULT ​ | 15  | 
 +|BS2_MAX_ROTATION_ANGLE_15 ​ | 15  | 
 +|BS2_MAX_ROTATION_ANGLE_30 ​ | 30  | 
 +|BS2_MAX_ROTATION_ANGLE_45 ​ | 45  | 
 +|BS2_MAX_ROTATION_ANGLE_60 ​ | 60  | 
 +|BS2_MAX_ROTATION_ANGLE_75 ​ | 75  | 
 +|BS2_MAX_ROTATION_ANGLE_90 ​ | 90  | 
 +|BS2_MAX_ROTATION_ANGLE_MAX ​ | 90  | 
 +</​WRAP> ​
 12. //​faceWidth//​ \\  12. //​faceWidth//​ \\ 
-[+ V2.7.1] ''​FaceStation F2''​ 얼굴 이미지의 폭을 나타내며폭의 최소값, 최대값을 지정할 수 있습니다. \\  +[+ 2.7.1] ''​FaceStation F2''​ 얼굴 이미지의 폭을 나타내며 폭의 최소값, 최대값을 지정할 수 있습니다. \\  
-최소값, 최대값은 아래의 값을 ​기본값으로 갖습니다. \\ +최소값, 최대값의 기본값은 아래와 같습니다. \\ 
-<WRAP group 20%> +<WRAP group 30%> 
-^  ^기본값 ​ ^ +^  ^기본값(min)  ^기본값(max) ​ ^ 
-|min  ​|66 ​ | +|FSF2  ​|66 ​ ​|250 ​ | 
-|max  |250  |+|BS3  |130  |350  | 
 +|BEW3  |130  |350  |
 </​WRAP> ​ </​WRAP> ​
 13. //​searchRange//​ \\ 13. //​searchRange//​ \\
-[+ V2.7.1] ''​FaceStation F2''​ 얼굴 ​검색 ​범위를 나타내며범위의 x값(가로 좌표)과 x값 지점으로부터의 폭을 지정할 수 있습니다. \\  +[+ 2.7.1] ''​FaceStation F2''​ 얼굴 ​감지 ​범위를 나타내며 범위의 x값(가로 좌표)과 x값으로부터의 폭을 지정할 수 있습니다. \\  
-x값과 폭은 아래의 값을 ​기본값으로 갖습니다. \\ +x값과 폭의 기본값은 아래와 같습니다. \\ 
-<WRAP group 20%> +<WRAP group 30%> 
-^  ^기본값 ​ ^ +^  ^기본값(x)  ^기본값(width) ​ ^ 
-| ​|144 ​ | +|FSF2  ​|144 ​ ​|432 ​ | 
-|width  |432  |+|BS3  |90  |540  | 
 +|BEW3  |90  |540  |
 </​WRAP> ​ </​WRAP> ​
-14. //reserved2// \\ +14. //detectDistance//​ \\ 
 +[+ 2.8.3] ''​BioStation 3''​ 얼굴 감지 거리의 최소값과 최대값을 설정합니다. \\ 
 +[+ 2.9.6] ''​FaceStation F2''​ ''​BioEntry W3''​ 기능추가. \\ 
 +픽셀 단위로 얼굴 위치를 지정하는 faceWidth는 사용하기 난해하므로 더 이상 사용하지 않습니다. \\ 
 +대신 피사체(얼굴)의 감지 거리를 얼마로 할지 만 정합니다. 거리는 cm로 설정하며,​ 10의 배수로 입력하여야 합니다. \\ 
 +<WRAP group 80%> 
 +^  ^최소 감지거리의 최소값 ​ ^최소 감지거리의 최대값 ​ ^최소 감지거리(기본값) ​ ^최대 감지거리의 최소값 ​ ^최대 감지거리의 최대값 ​ ^최대 감지거리(무제한) ​ ^최대 감지거리(기본값) ​ ^ 
 +|FSF2 |30  |130  |30  |40  |130  |255  |130  | 
 +|BS3  |30  |100  |30  |40  |100  |255  |100  | 
 +|BEW3  |30  |100  |30  |40  |100  |255  |100  | 
 +</​WRAP>​  
 +15. //​wideSearch//​ \\ 
 +[+ 2.8.3] ''​BioStation 3''​ 얼굴 감지 범위를 넓힙니다. \\ 
 +x좌표와 width를 지정해야하는 난해한 설정인 searchRange는 더 이상 사용하지 않습니다. \\ 
 +대신 얼굴 감지를 표준(false) 설정으로 할지, 광역(true)으로 할지 여부만 지정합니다. \\ 
 +광역으로 감지하는 범위에 대한 세부 설정은 장치 내부 설정 값을 따릅니다. 사용자는 이 값을 변경할 수 없습니다. \\ \\ 
 +이 설정 값이 켜지면(true) 카메라를 통해 넓은 범위의 피사체를 찾아내므로,​ 피사체가 여럿이 되는 경우 의도치 않은 인증으로 연결될 수 있습니다. \\ 
 +기본 설정 값은 false입니다. \\ \\ 
 +16. //unused// \\ 
 +예약된 공간입니다.\\ \\ 
 +17. //​unableToSaveImageOfVisualFace//​ \\ 
 +[+ 2.9.6] Visual face를 크리덴셜로 사용하는 장치에서 얼굴 이미지를 장치에 저장할 것인지를 나타냅니다. \\ 
 +이 설정을 키면 장치 내 모든 사용자의 얼굴 정보 중 이미지 정보가 즉시 삭제되며 템플릿만 남게됩니다. \\ 
 +또한, [[BS2_EnrollUserFaceEx]] API를 통해 사용자 이미지가 포함된 얼굴 정보를 가져오더라도 장치는 이를 무시하게됩니다. \\ 
 +기본값은 false 이며, 얼굴과 이미지 모두 저장입니다. \\ \\ 
 +18. //reserved// \\
 예약된 공간입니다.\\ \\ 예약된 공간입니다.\\ \\
  
줄 2384: 줄 2481:
     uint8_t treatAsCSN;     uint8_t treatAsCSN;
  
-    uint8_t reserved[12];+    ​uint8_t useVisualBarcode;​ 
 +    uint8_t motionSensitivity;​ 
 +    uint8_t visualCameraScanTimeout;​ 
 +    ​uint8_t reserved[9];
 } BS2BarcodeConfig;​ } BS2BarcodeConfig;​
 </​code>​ </​code>​
 1. //​useBarcode//​ \\  1. //​useBarcode//​ \\ 
 +''​XS2-QR 만 지원''​
 Barcode 사용여부 flag입니다. \\ \\  Barcode 사용여부 flag입니다. \\ \\ 
 2. //​scanTimeout//​ \\  2. //​scanTimeout//​ \\ 
 Barcode scan 시간을 설정합니다. 단위는 초입니다. \\ Barcode scan 시간을 설정합니다. 단위는 초입니다. \\
 기본값은 4초이며, 4~10초 범위 내로 입력 가능합니다. \\ \\ 기본값은 4초이며, 4~10초 범위 내로 입력 가능합니다. \\ \\
 +<WRAP group 50%>
 +^값  ^매크로 ​ ^설명 ​ ^
 +|4  |BS2_BARCODE_TIMEOUT_DEFAULT ​ |기본값 ​ |
 +|4  |BS2_BARCODE_TIMEOUT_MIN ​ |최소값 ​ |
 +|10  |BS2_BARCODE_TIMEOUT_MAX ​ |최대값 ​ |
 +</​WRAP>​
 3. //​bypassData//​ \\  3. //​bypassData//​ \\ 
 [+2.8.2] 읽혀진 barcode 정보를 장치에서 처리하지 않고, 서버로 전송하기 위해 사용합니다. \\ [+2.8.2] 읽혀진 barcode 정보를 장치에서 처리하지 않고, 서버로 전송하기 위해 사용합니다. \\
 사용자 인증을 위해 사용자 정보 구조체에 barcode 값을 저장하게되는 경우, \\ 사용자 인증을 위해 사용자 정보 구조체에 barcode 값을 저장하게되는 경우, \\
 32 byte의 크기 제약([[smartcard_api#​BS2CSNCard|BS2CSNCard data 참조]])이 있으나, \\ 32 byte의 크기 제약([[smartcard_api#​BS2CSNCard|BS2CSNCard data 참조]])이 있으나, \\
-이 옵션을 사용하면 최대 512 byte크기의 barcode를 서버로 전송할 수 있습니다. \\ \\+[[BS2_SetBarcodeScanListener]]를 호출하고, ​이 옵션을 사용하면 최대 512 byte크기의 barcode를 서버로 전송할 수 있습니다. \\ \\
 4. //​treatAsCSN//​ \\ 4. //​treatAsCSN//​ \\
 [+2.8.2] Barcode를 일반 CSN 카드와 동일하게 처리할지의 여부를 나타냅니다. \\ [+2.8.2] Barcode를 일반 CSN 카드와 동일하게 처리할지의 여부를 나타냅니다. \\
줄 2404: 줄 2511:
 따라서, 특수문자,​ 영문자가 들어있는 barcode 카드 데이터를 설정하고자 하면 오류를 반환할 수 있습니다. \\ 따라서, 특수문자,​ 영문자가 들어있는 barcode 카드 데이터를 설정하고자 하면 오류를 반환할 수 있습니다. \\
 이 경우, card type만 다르게, CSN 카드와 barcode 데이터를 동일한 값으로 사용하고자하는 사용자의 목적에 부합할 수 있습니다. \\ \\ 이 경우, card type만 다르게, CSN 카드와 barcode 데이터를 동일한 값으로 사용하고자하는 사용자의 목적에 부합할 수 있습니다. \\ \\
-5. //​reserved//​ \\ +5. //​useVisualBarcode//​ \\ 
 +[+ 2.9.1] Visual barcode 사용여부 flag입니다. \\ 
 +<WRAP group 50%> 
 +^지원장치 ​ ^펌웨어 ​ ^ 
 +|XS2-Finger ​ |V1.2.0 ​ | 
 +|XS2-Card ​ |V1.2.0 ​ | 
 +|BS3  |V1.1.0 ​ | 
 +</​WRAP>​ 
 +Visual barcode는 QR code sensor가 아닌, 일반 visual camera를 통해 QR code 읽기를 지원하며,​ \\ 
 +이 기능을 사용하기 위해서는,​ 별도의 라이선스 활성화가 필요합니다. \\ 
 +라이선스 활성화는 [[BS2_EnableDeviceLicense]]를 통해 지원합니다. \\ \\ 
 +6. //​motionSensitivity//​ \\ 
 +[+ 2.9.1] Visual barcode에 대한, 모션 센서의 감도를 설정합니다. \\ 
 +<WRAP group 50%> 
 +^값  ^매크로 ​ ^설명 ​ ^ 
 +|0  |BS2_MOTION_SENSITIVITY_LOW ​ |낮음 ​ | 
 +|1  |BS2_MOTION_SENSITIVITY_NORMAL ​ |중간 ​ | 
 +|2  |BS2_MOTION_SENSITIVITY_HIGH ​ |높음 ​ | 
 +</​WRAP>​ 
 +7. //​visualCameraScanTimeout//​ \\ 
 +[+ 2.9.1] Visual camera에대한 scan 시간을 설정합니다. 단위는 초입니다. \\ 
 +기본값은 10초이며,​ 3~20초 범위 내로 입력 가능합니다. \\ 
 +<WRAP group 50%> 
 +^값  ^매크로 ​ ^설명 ​ ^ 
 +|10  |BS2_VISUAL_BARCODE_TIMEOUT_DEFAULT ​ |기본값 ​ | 
 +|3  |BS2_VISUAL_BARCODE_TIMEOUT_MIN ​ |최소값 ​ | 
 +|20  |BS2_VISUAL_BARCODE_TIMEOUT_MAX ​ |최대값 ​ | 
 +</​WRAP>​ 
 +8. //​reserved//​ \\ 
 예약된 공간입니다. \\ 예약된 공간입니다. \\
- 
 ==== BS2InputConfigEx ==== ==== BS2InputConfigEx ====
 <code cpp> <code cpp>
줄 2530: 줄 2664:
 예약된 공간입니다. \\ \\ 예약된 공간입니다. \\ \\
  
 +
 +==== BS2VoipConfigExt ====
 +<code cpp>
 +typedef struct {
 +    BS2_USER_ID phoneNumber;​
 +    char description[48 * 3];
 +
 +    uint8_t reserved[32];​
 +} BS2ExtensionNumber;​
 +
 +typedef struct {
 +    BS2_BOOL enabled;
 +    BS2_BOOL useOutboundProxy;​
 +    uint16_t registrationDuration;​
 +
 +    BS2_URL address;
 +    BS2_PORT port;
 +
 +    struct {
 +        uint8_t speaker;​ //​ 0 ~ 100
 +        uint8_t mic; // 0 ~ 100
 +    } volume;​ ///<​ 2 bytes
 +
 +    BS2_USER_ID id;
 +    BS2_USER_ID password;
 +    BS2_USER_ID authorizationCode;​
 +
 +    struct {
 +        BS2_URL address;
 +        BS2_PORT port;
 +        uint8_t reserved[2];​
 +    } outboundProxy;​
 +
 +    uint8_t exitButton; ​           /// *, #, 0~9
 +    uint8_t reserved1;
 +    uint8_t numPhoneBook;​
 +    BS2_BOOL showExtensionNumber;​
 +
 +    BS2ExtensionNumber phonebook[128];​
 +
 +    uint8_t reserved2[32]; ​       ///< 32 bytes (reserved)
 +} BS2VoipConfigExt;​
 +</​code>​
 +1. //​phoneNumber//​ \\ 
 +내선 번호입니다. \\ \\
 +2. //​description//​ \\
 +표시 정보입니다. \\ \\
 +3. //​reserved//​ \\
 +예약된 공간입니다. \\ \\
 +4. //enabled// \\
 +VoIP extension 기능을 사용할 것인지 여부를 설정합니다. \\ \\
 +5. //​useOutboundProxy//​ \\ 
 +Outbound 프록시 서버를 구성할 것인지 여부를 설정합니다. \\ \\
 +6. //​registrationDuration//​ \\
 +SIP 서버에 관련 정보를 업데이트 시키는 주기입니다. \\
 +초단위로 설정하며,​ 60~600 범위의 값으로 지정하여야 합니다. \\ \\
 +7. //address// \\ 
 +SIP 서버(일반적으로 BioStar)의 IP 주소를 입력합니다. \\ \\
 +8. //port// \\
 +SIP 서버 포트를 입력합니다. 기본 포트는 5060번입니다. \\ \\
 +9. //speaker// \\
 +인터폰의 스피커 음량 정보를 0에서 100까지 범위로 입력합니다. 기본 값은 50입니다. \\ \\
 +10. //mic// \\
 +인터폰의 마이크 음량 정보를 0에서 100까지 범위로 입력합니다. 기본 값은 50입니다. \\ \\
 +11. //id// \\
 +SIP 서버에 연결하는 ID를 입력합니다. \\
 +12. //​password//​ \\
 +SIP 서버에 연결하는 비밀번호를 지정합니다. \\ \\
 +13. //​authorizationCode//​ \\
 +SIP 서버에 연결에 필요한 인증코드 값입니다. \\ \\
 +14. //​outboundProxy//​ \\
 +Outbound 프록시 서버 정보를 입력합니다. \\ \\
 +15. //address// \\ 
 +Outbound 프록시 서버의 IP 주소를 입력합니다. \\ \\
 +16. //port// \\
 +Outbound 프록시 서버 포트를 입력합니다. \\ \\
 +17. //​reserved//​ \\
 +예약된 공간입니다. \\ \\
 +18. //​exitButton//​ \\
 +퇴실버튼으로 사용할 버튼 기호입니다. \\
 +<WRAP group 50%>
 +^값  ^설명 ​ ^
 +|*  |'​*'​ ASCII code 42  |
 +|#  |'#'​ ASCII code 35  |
 +|0~9  |'​0'​~'​9'​ ASCII code (48~57) ​ |
 +</​WRAP> ​
 +19. //​reserved1//​ \\
 +예약된 공간입니다. \\ \\
 +20. //​numPhoneBook//​ \\
 +전화번호부 갯수입니다. \\ \\
 +21. //​showExtensionNumber//​ \\
 +전화번호부를 보여줄지 여부를 결정합니다. \\ \\
 +22. //​phonebook//​ \\
 +128개까지 내선 번호들을 전화번호부로 지정할 수 있습니다. \\ \\
 +23. //​reserved2//​ \\
 +예약된 공간입니다. \\ \\
 +
 +
 +==== BS2RtspConfig ====
 +<code cpp>
 +typedef struct {
 +    BS2_USER_ID id;
 +    BS2_USER_ID password;
 +
 +    BS2_URL address;
 +
 +    BS2_PORT port;
 +    BS2_BOOL enabled;
 +    uint8_t reserved;
 +
 +    uint8_t reserved2[32];​
 +} BS2RtspConfig;​
 +</​code>​
 +1. //id// \\
 +RTSP 서버 연결시, 계정 정보입니다. \\ \\
 +2. //​password//​ \\
 +RTSP 서버 연결시, 비밀번호입니다. \\ \\
 +3. //address// \\ 
 +RTSP 서버의 주소를 입력합니다. \\ \\
 +4. //port// \\
 +RTSP 서버 연결 포트를 입력합니다. 기본 포트는 554입니다. \\ \\
 +5. //enabled// \\
 +RTSP 연결을 사용할 것인지 여부를 설정합니다. \\ \\
 +6. //​reserved//​ \\
 +예약된 공간입니다. \\ \\
 +7. //​reserved2//​ \\
 +예약된 공간입니다. \\ \\
 +
 +
 +==== BS2License ====
 +<code cpp>
 +typedef struct {
 +    uint8_t ​              ​index;​
 +    uint8_t ​              ​hasCapability;​
 +    uint8_t ​              ​enable;​
 +    uint8_t ​              ​reserved;​
 +    BS2_LICENSE_TYPE ​     licenseType;​
 +    BS2_LICENSE_SUB_TYPE ​ licenseSubType;​
 +    uint32_t ​             enableTime;
 +    uint32_t ​             expiredTime;​
 +    uint32_t ​             issueNumber;​
 +    uint8_t ​              ​name[BS2_USER_ID_SIZE];​
 +} BS2License;
 +</​code>​
 +1. //index// \\ 
 +라이선스 인덱스입니다. \\ \\  ​
 +2. //​hasCapability//​ \\ 
 +장치가 해당 라이선스를 지원하는지 여부를 나타냅니다. \\
 +통상적으로 1을 갖습니다. \\ \\ 
 +3. //enable// \\ 
 +라이선스가 활성화 되어있는지 여부를 나타냅니다. \\ \\
 +4. //​reserved//​ \\ 
 +예약된 공간입니다. \\ \\
 +5. //​licenseType//​ \\ 
 +라이선스의 종류를 나타냅니다. \\ 
 +<WRAP group 50%>
 +^값  ^설명 ​ ^
 +|0x0000 ​ |None  |
 +|0x0001 ​ |Visual QR  |
 +</​WRAP>​
 +6. //​licenseSubType//​ \\ 
 +licenseType의 세부 형태를 나타냅니다. \\ \\
 +<WRAP group 50%>
 +^값  ^설명 ​ ^
 +|0  |None  |
 +|1  |Visual QR (CodeCorp) ​ |
 +</​WRAP>​
 +7. //​enableTime//​ \\ 
 +라이선스 활성화 개시 시간이며,​ POSIX time으로 표현됩니다. \\ \\
 +8. //​expiredTime//​ \\ 
 +라이선스 활성화 종료 시간이며,​ 0은 제한 없음을 의미합니다. \\ \\ 
 +9. //​issueNumber//​ \\ 
 +발급 고유 번호를 의미합니다. \\ \\
 +10. //name// \\ 
 +라이선스 명칭입니다. \\ \\
 +
 +
 +==== BS2LicenseConfig ====
 +<code cpp>
 +typedef struct {
 +    uint8_t ​        ​version;​
 +    uint8_t ​        ​numOfLicense;​
 +    uint8_t ​        ​reserved[2];​
 +    BS2License ​     license[BS2_MAX_LICENSE_COUNT];​
 +    uint8_t ​        ​reserved1[16];​
 +} BS2LicenseConfig;​
 +</​code>​
 +1. //version// \\ 
 +라이선스 설정 정보의 버전 정보입니다. \\ \\  ​
 +2. //​numOfLicense//​ \\ 
 +등록된 라이선스 갯수를 의미합니다. \\ \\
 +3. //​reserved//​ \\ 
 +예약된 공간입니다. \\ \\
 +4. //license// \\ 
 +라이선스 정보이며,​ 최대 16개까지 설정될 수 있습니다. \\ \\
 +5. //​reserved1//​ \\ 
 +예약된 공간입니다. \\ \\
 +
 +
 +==== BS2BarcodeConfig ====
 +<code cpp>
 +typedef struct {
 +    uint8_t useBarcode;
 +    uint8_t scanTimeout;​
 +    uint8_t bypassData;
 +    uint8_t treatAsCSN;
 +
 + uint8_t useVisualBarcode;​
 + uint8_t motionSensitivity;​
 +    uint8_t visualCameraScanTimeout;​
 +    uint8_t reserved[9];​
 +} BS2BarcodeConfig;​
 +</​code>​
 +1. //​useBarcode//​ \\ 
 +''​XS2-QR 만 지원''​
 +Barcode 사용여부 flag입니다. \\ \\ 
 +2. //​scanTimeout//​ \\ 
 +Barcode scan 시간을 설정합니다. 단위는 초입니다. \\
 +기본값은 4초이며, 4~10초 범위 내로 입력 가능합니다. \\ \\
 +<WRAP group 50%>
 +^값  ^매크로 ​ ^설명 ​ ^
 +|4  |BS2_BARCODE_TIMEOUT_DEFAULT ​ |기본값 ​ |
 +|4  |BS2_BARCODE_TIMEOUT_MIN ​ |최소값 ​ |
 +|10  |BS2_BARCODE_TIMEOUT_MAX ​ |최대값 ​ |
 +</​WRAP>​
 +3. //​bypassData//​ \\ 
 +[+2.8.2] 읽혀진 barcode 정보를 장치에서 처리하지 않고, 서버로 전송하기 위해 사용합니다. \\
 +사용자 인증을 위해 사용자 정보 구조체에 barcode 값을 저장하게되는 경우, \\
 +32 byte의 크기 제약([[smartcard_api#​BS2CSNCard|BS2CSNCard data 참조]])이 있으나, \\
 +[[BS2_SetBarcodeScanListener]]를 호출하고,​ 이 옵션을 사용하면 최대 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. //​useVisualBarcode//​ \\
 +[+ 2.9.1] Visual barcode 사용여부 flag입니다. \\
 +<WRAP group 50%>
 +^지원장치 ​ ^펌웨어 ​ ^
 +|XS2-Finger ​ |V1.2.0 ​ |
 +|XS2-Card ​ |V1.2.0 ​ |
 +|BS3  |V1.1.0 ​ |
 +</​WRAP>​
 +Visual barcode는 QR code sensor가 아닌, 일반 visual camera를 통해 QR code 읽기를 지원하며,​ \\
 +이 기능을 사용하기 위해서는,​ 별도의 라이선스 활성화가 필요합니다. \\
 +라이선스 활성화는 [[BS2_EnableDeviceLicense]]를 통해 지원합니다. \\ \\
 +6. //​motionSensitivity//​ \\
 +[+ 2.9.1] Visual barcode에 대한, 모션 센서의 감도를 설정합니다. \\
 +<WRAP group 50%>
 +^값  ^매크로 ​ ^설명 ​ ^
 +|0  |BS2_MOTION_SENSITIVITY_LOW ​ |낮음 ​ |
 +|1  |BS2_MOTION_SENSITIVITY_NORMAL ​ |중간 ​ |
 +|2  |BS2_MOTION_SENSITIVITY_HIGH ​ |높음 ​ |
 +</​WRAP>​
 +7. //​visualCameraScanTimeout//​ \\
 +[+ 2.9.1] Visual camera에대한 scan 시간을 설정합니다. 단위는 초입니다. \\
 +기본값은 10초이며,​ 3~20초 범위 내로 입력 가능합니다. \\
 +<WRAP group 50%>
 +^값  ^매크로 ​ ^설명 ​ ^
 +|10  |BS2_VISUAL_BARCODE_TIMEOUT_DEFAULT ​ |기본값 ​ |
 +|3  |BS2_VISUAL_BARCODE_TIMEOUT_MIN ​ |최소값 ​ |
 +|20  |BS2_VISUAL_BARCODE_TIMEOUT_MAX ​ |최대값 ​ |
 +</​WRAP>​
 +8. //​reserved//​ \\ 
 +예약된 공간입니다. \\
 +
 +
 +==== BS2OsdpStandardConfig ====
 +<code cpp>
 +typedef struct {
 + uint32_t baudRate;​ ///<​ 4 bytes
 + uint8_t channelIndex;​ ///<​ 1 byte
 + uint8_t useRegistance;​ ///<​ 1 byte
 + uint8_t numOfDevices;​ ///<​ 1 byte
 + BS2_OSDP_CHANNEL_TYPE channelType;​ ///<​ 1 byte
 + BS2OsdpStandardDevice slaveDevices[BS2_RS485_MAX_SLAVES_PER_CHANNEL];​ ///<​ 28 * 32 = 896 bytes
 + uint8_t reserved[4];​ ///<​ 4 bytes
 +} BS2OsdpStandardChannel; ​   ///<​ 908 bytes
 +
 +typedef struct {
 +    uint8_t mode[BS2_RS485_MAX_CHANNELS_EX];​ ///<​ 8 byte
 +    uint16_t numOfChannels;​ ///<​ 2 byte
 +    uint8_t reserved[2];​ ///<​ 2 bytes (packing)
 +    uint8_t reserved1[32];​ ///<​ 32 bytes (reserved)
 +    BS2OsdpStandardChannel channels[BS2_RS485_MAX_CHANNELS_EX];​ ///< 908 * 8 bytes  = 7264 bytes
 +} BS2OsdpStandardConfig; ​  ​ ///<​ 7308 bytes
 +</​code>​
 +1. //​baudRate//​ \\ 
 +OSDP 장치의 통신 속도이며 설정할 수 있는 범위는 다음과 같습니다. \\
 +<WRAP group 50%>
 +^값  ^
 +|9600  |
 +|19200 ​ |
 +|38400 ​ |
 +|57600 ​ |
 +|115200 ​ |
 +</​WRAP>​
 +2. //​channelIndex//​ \\ 
 +OSDP 장치가 RS485 통신을 할때 채널 번호입니다. \\ \\
 +3. //​useRegistance//​ \\ 
 +종단 저항을 설정할지 결정하는 flag입니다. - 동작에 영향 없음. \\ \\
 +4. //​numOfDevices//​ \\ 
 +슬레이브 장치의 개수입니다.\\ \\
 +5. //​channelType//​ \\ 
 +RS485 통신을 하는 장치가 어떠한 방식으로 연결되어 있는지를 나타냅니다. \\ 
 +CoreStation40 기준으로,​ 할당 가능한 채널은 0~4까지 5개인데, 각 채널내에서는 슈프리마 장치와 OSDP 장치가 혼용되어 운용될어질 수 없습니다. \\
 +특정 채널에 연결된 장치가 없는 경우, Suprema 장치든, OSDP 장치이든 연결될 수 있음을 나타내는 0을 갖습니다. \\
 +만일 특정 채널로 Suprema 장치가 연결되면,​ 이후 해당 채널은 Suprema 장치들의 연결만 허용되며,​ channelType은 1을 갖습니다. OSDP 장치가 연결되어 있더라도 무시되어집니다. \\
 +만일 특정 채널로 OSDP 장치가 연결되면,​ 이후 해당 채널은 OSDP 장치 연결만 허용되며,​ channelType은 2를 갖습니다. Suprema 장치가 연결되어 있더라도 무시되어집니다. \\
 +CoreStation40 각각의 채널들은 Suprema 장치 채널, OSDP 장치 채널들로 혼용되어 운용될 수 있습니다. \\
 +채널에 OSDP로 장치가 연결이되면 허용이 가능한 최대 장치수는 2대로 제한되며,​ 이미 해당 채널이 최대치에 도달했으면 channelType은 3을 갖으며 더이상 연결이 불가함을 나타냅니다. \\
 +<WRAP group 50%>
 +^값  ^설명 ​ ^
 +|0  |Normal ​ |
 +|1  |Suprema 장치 ​ |
 +|2  |OSDP 장치 ​ |
 +|3  |OSDP 장치 FULL  |
 +</​WRAP>​
 +6. //​slaveDevices//​ \\ 
 +채널내의 슬레이브 장치 정보입니다. \\ \\
 +7. //​reserved//​ \\ 
 +예약된 공간입니다. \\ \\
 +8. //mode// \\ 
 +RS485 네트워크에서 어떤 모드로 동작할지 결정하는 flag인데, 문서 작성일 2023/​1/​12일 기준으로 Osdp standard config를 지원하는 장치는 CoreStation40 뿐이므로 항상 master 값을 갖습니다. \\ \\  ​
 +<WRAP group 50%>
 +^값  ^설명 ​ ^
 +|0  |사용안함 ​ |
 +|1  |Master ​ |
 +|2  |Slave ​ |
 +|3  |Standalone (기본값) ​ |
 +</​WRAP>​
 +9. //​numOfChannels//​ \\ 
 +채널의 개수입니다. CoreStation40은 총 5개의 채널을 갖습니다. \\ \\ 
 +10. //​reserved//​ \\ 
 +예약된 공간입니다. \\ \\
 +11. //​reserved1//​ \\ 
 +예약된 공간입니다. \\ \\
 +12. //​channels//​ \\ 
 +채널별 OSDP 장치정보입니다. \\
 +최대 8개까지 채널정보를 가질 수 있으나, CoreStation40이 5개의 채널을 가지므로 0~4번까지만 유의미합니다. \\ \\
 +
 +
 +==== BS2OsdpStandardActionConfig ====
 +<code cpp>
 +typedef struct{
 +    BS2_BOOL ​                          ​use; ​           ///< 1 byte
 +    uint8_t ​                           readerNumber; ​  ///<​ 1 byte
 +    uint8_t ​                           ledNumber; ​     ///< 1 byte
 +
 +    BS2_OSDP_STANDARD_LED_COMMAND ​     tempCommand; ​   ///< 1 byte
 +    uint8_t ​                           tempOnTime; ​    ///<​ 1 byte
 +    uint8_t ​                           tempOffTime; ​   ///< 1 byte
 +    BS2_OSDP_STANDARD_COLOR ​           tempOnColor; ​   ///< 1 byte
 +    BS2_OSDP_STANDARD_COLOR ​           tempOffColor; ​  ///<​ 1 byte
 +    uint16_t ​                          ​tempRunTime; ​   ///< 2 bytes
 +
 +    BS2_OSDP_STANDARD_LED_COMMAND ​     permCommand; ​   ///< 1 byte
 +    uint8_t ​                           permOnTime; ​    ///<​ 1 byte
 +    uint8_t ​                           permOffTime; ​   ///< 1 byte
 +    BS2_OSDP_STANDARD_COLOR ​           permOnColor; ​   ///< 1 byte
 +    BS2_OSDP_STANDARD_COLOR ​           permOffColor; ​  ///<​ 1 byte
 +
 +    uint8_t ​                           reserved; ​      ///<​ 1 byte
 +} BS2OsdpStandardLedAction; ​           ///< 16 bytes
 +
 +typedef struct {
 +    BS2_BOOL ​                   use;            ///< 1 byte
 +    uint8_t ​                    ​readerNumber; ​  ///<​ 1 byte
 +    BS2_OSDP_STANDARD_TONE ​     tone;           ///<​ 1 byte
 +    uint8_t ​                    ​onTime; ​        ///<​ 1 byte
 +    uint8_t ​                    ​offTime; ​       ///< 1 byte
 +    uint8_t ​                    ​numOfCycle; ​    ///<​ 1 byte
 +    uint8_t ​                    ​reserved[2]; ​   ///< 2 bytes
 +} BS2OsdpStandardBuzzerAction; ​                 ///< 8 bytes
 +
 +typedef struct {
 +    BS2_OSDP_STANDARD_ACTION_TYPE ​  ​actionType; ​    ///<​ 1 byte     
 +    uint8_t ​                        ​reserved[3]; ​   ///< 3 bytes
 +    BS2OsdpStandardLedAction ​       led[2]; ​        ///<​ 16 x 2 = 32 bytes
 +    BS2OsdpStandardBuzzerAction ​    ​buzzer; ​        ///<​ 8 bytes
 +} BS2OsdpStandardAction; ​                           ///< 44 bytes
 +
 +typedef struct ​
 +{
 +    uint8_t ​                ​version; ​               ///< 1 byte 
 +    uint8_t ​                ​reserved[3]; ​           ///< 3 byes
 +    BS2OsdpStandardAction ​  ​actions[BS2_OSDP_STANDARD_ACTION_MAX_COUNT];​ ///< 44 x 32  = 1408
 +} BS2OsdpStandardActionConfig; ​                     ///< 1412 bytes
 +</​code>​
 +1. //use// \\ 
 +해당 LED action을 사용할 것인지 여부를 나타냅니다. \\ \\  ​
 +2. //​readerNumber//​ \\
 +OSDP 장치의 순번입니다. \\ \\
 +3. //​ledNumber//​ \\
 +OSDP 장치가 갖고 있는 LED 순번입니다. \\ \\
 +4. //​tempCommand//​ \\
 +Temporary command 입니다. \\
 +<WRAP group 50%>
 +^값  ^설명 ​ ^
 +|0  |No Operation ​ |
 +|1  |Cancel ​ |
 +|2  |Set  |
 +</​WRAP>​
 +5. //​tempOnTime//​ \\
 +Temporary command에 대해서 LED가 켜져있는 시간을 의미하며,​ 100ms 단위로 설정합니다. \\
 +예를 들어 2초간 LED on 상태를 유지시키려면 20을 입력하면 됩니다. \\ \\
 +6. //​tempOffTime//​ \\
 +Temporary command에 대해서 LED가 꺼져있는 시간을 의미하며,​ 100ms 단위로 설정합니다. \\
 +예를 들어 1초간 LED off 상태를 유지시키려면 10을 입력하면 됩니다. \\ \\
 +7. //​tempOnColor//​ \\
 +Temporary command에 대해서 On 상태의 LED 색상을 지정합니다. \\
 +<WRAP group 50%>
 +^값  ^설명 ​ ^
 +|0  |BLACK ​ |
 +|1  |RED  |
 +|2  |GREEN ​ |
 +|3  |AMBER ​ |
 +|4  |BLUE  |
 +|5  |MAGENTA ​ |
 +|6  |CYAN  |
 +|7  |WHITE ​ |
 +</​WRAP>​
 +8. //​tempOffColor//​ \\
 +Temporary command에 대해서 Off 상태의 LED 색상을 지정합니다. \\
 +<WRAP group 50%>
 +^값  ^설명 ​ ^
 +|0  |BLACK ​ |
 +|1  |RED  |
 +|2  |GREEN ​ |
 +|3  |AMBER ​ |
 +|4  |BLUE  |
 +|5  |MAGENTA ​ |
 +|6  |CYAN  |
 +|7  |WHITE ​ |
 +</​WRAP>​
 +9. //​tempRunTime//​ \\
 +Temporary command에 대해 LED On/Off를 얼마나 지속시킬지를 100ms 단위로 설정합니다. \\
 +tempOnTime/​tempOffTime,​ tempOnColor/​tempOffColor로 설정한 색상과 시간으로 번갈아 깜빡이며,​ 이 깜빡임은 tempRunTime 만큼 유지됩니다. \\ \\
 +10. //​permCommand//​ \\
 +Permanent command 입니다.
 +11. //​permOnTime//​ \\
 +Permanent command에 대해서 LED가 켜져있는 시간을 의미하며,​ 100ms 단위로 설정합니다. \\ \\
 +12. //​permOffTime//​ \\
 +Permanent command에 대해서 LED가 꺼져있는 시간을 의미하며,​ 100ms 단위로 설정합니다. \\ \\
 +13. //​permOnColor//​ \\
 +Permanent command에 대해서 On 상태의 LED 색상을 지정합니다. \\ \\
 +14. //​permOffColor//​ \\
 +Permanent command에 대해서 Off 상태의 LED 색상을 지정합니다. \\ \\
 +15. //​reserved//​ \\ 
 +예약된 공간입니다. \\ \\
 +16. //use// \\ 
 +해당 tone action을 사용할 것인지 여부를 나타냅니다. \\ \\ 
 +17. //​readerNumber//​
 +OSDP 장치의 순번입니다. \\ \\
 +18. //tone// \\
 +Buzzer를 설정합니다. \\
 +<WRAP group 50%>
 +^값  ^설명 ​ ^
 +|0  |None  |
 +|1  |Off  |
 +|2  |On  |
 +</​WRAP>​
 +19. //onTime// \\ 
 +tone에 대해서 On 상태 유지시간을 100ms 단위로 설정합니다. \\ \\ 
 +20. //offTime// \\ 
 +tone에 대해서 Off 상태 유지시간을 100ms 단위로 설정합니다. \\ \\ 
 +21. //​numOfCycle//​ \\ 
 +tone On/Off를 얼마나 반복할지 횟수를 지정합니다. 0으로 설정 시 무한 반복을 의미합니다. \\ \\ 
 +22. //​reserved//​ \\ 
 +예약된 공간입니다. \\ \\
 +23. //​actionType//​ \\ 
 +action을 지정합니다. \\ 
 +<WRAP group 50%>
 +^값  ^설명 ​ ^
 +|0  |None  |
 +|1  |Success ​ |
 +|2  |Fail  |
 +|3  |Wait input  |
 +</​WRAP>​
 +24. //​reserved//​ \\ 
 +예약된 공간입니다. \\ \\
 +25. //led// \\ 
 +OSDP 장치의 LED 설정 정보입니다. \\ \\ 
 +26. //buzzer// \\ 
 +OSDP 장치의 buzzer 설정 정보입니다. \\ \\ 
 +27. //version// \\ 
 +Action configuration에 대한 버전 정보입니다. 현재는 0입니다. \\ \\
 +28. //​reserved//​ \\ 
 +예약된 공간입니다. \\ \\
 +29. //actions// \\ 
 +OSDP 장치에 대한 LED/buzzer 정보이며,​ 최대 32개 까지 지정할 수 있습니다. \\ \\
 +
 +
 +==== BS2CustomMifareCard ====
 +<code cpp>
 +typedef struct {
 + uint8_t primaryKey[6];​
 + uint8_t reserved1[2];​
 + uint8_t secondaryKey[6];​
 + uint8_t reserved2[2];​
 + uint16_t startBlockIndex;​
 + uint8_t dataSize;
 + uint8_t skipBytes;
 + uint8_t reserved[4];​
 +} BS2CustomMifareCard;​
 +</​code>​
 +1. //​primaryKey//​ \\ 
 +Mifare card 정보에 접근하기 위한 첫번째 암호화 키입니다. \\ \\
 +2. //​reserved1//​ \\ 
 +예약된 공간입니다.\\ \\ 
 +3. //​secondaryKey//​ \\ 
 +Mifare card 정보에 접근하기 위한 두번째 암호화 키입니다. \\ \\
 +4. //​reserved2//​ \\ 
 +예약된 공간입니다.\\ \\ 
 +5. //​startBlockIndex//​ \\ 
 +Mifare data storage에서의 start block index입니다.\\ \\ 
 +6. //​dataSize//​ \\ 
 +카드 데이터가 몇 byte의 크기를 갖는지를 나타냅니다. \\ \\
 +7. //​skipBytes//​ \\ 
 +카드 데이터가 나타나는 위치를 의미합니다. \\
 +카드 데이터를 읽어들일 시작점 입니다. 처음부터 읽을경우 0이고, 첫번째 이후일 경우 건너뛴 byte 수를 나타냅니다. \\ \\
 +8. //​reserved//​ \\ 
 +예약된 공간입니다.\\ \\
 +==== BS2CustomDesFireCard ====
 +<code cpp>
 +typedef struct {
 + uint8_t primaryKey[16];​
 + uint8_t secondaryKey[16];​
 + uint8_t appID[3];
 + uint8_t fileID;
 + uint8_t encryptionType; ​                // 0: DES/3DES, 1: AES
 + uint8_t operationMode; ​                 // 0: legacy(use picc master key), 1: new mode(use app master, file read, file write key)
 + uint8_t dataSize;
 + uint8_t skipBytes;
 + uint8_t reserved[4];​
 + BS2DesFireAppLevelKey desfireAppKey;​ ///<​52 bytes
 +} BS2CustomDesFireCard; ​                          ///<​96 Bytes
 +</​code>​
 +1. //​primaryKey//​ \\ 
 +DesFire card 정보에 접근하기 위한 첫번째 암호화 키입니다. (일반설정) \\ \\
 +2. //​secondaryKey//​ \\ 
 +DesFire card 정보에 접근하기 위한 두번째 암호화 키입니다. (일반설정) \\ \\
 +3. //appID// \\ 
 +사용자 인증을 위해 DESFire 카드내에 내장된 사용할 애플리케이션 식별자입니다.\\ \\ 
 +4. //fileID// \\ 
 +DESFire 카드내에 내장된 사용할 애플리케이션이 데이터를 읽고 쓰기 위한 파일 식별자입니다.\\ \\ 
 +5. //​encryptionType//​ \\ 
 +데이터 암호화 방식을 나타냅니다.\\ ​
 +<WRAP group 50%>
 +^값  ^설명 ​ ^
 +|0  |DES/​3DES ​ |
 +|1  |AES  |
 +</​WRAP>​
 +6. //​operationMode//​ \\ 
 +운영 방식을 지정합니다. \\ 
 +<WRAP group 50%>
 +^값  ^설명 ​ ^
 +|0  |일반설정 사용 (PICC master key를 사용) ​ |
 +|1  |고급설정 사용 (App master key를 사용) ​ |
 +</​WRAP>​
 +7. //​dataSize//​ \\ 
 +카드 데이터가 몇 byte의 크기를 갖는지를 나타냅니다. \\ \\
 +8. //​skipBytes//​ \\ 
 +카드 데이터가 나타나는 위치를 의미합니다. \\
 +카드 데이터를 읽어들일 시작점 입니다. 처음부터 읽을경우 0이고, 첫번째 이후일 경우 건너뛴 byte 수를 나타냅니다. \\ \\
 +9. //​reserved//​ \\ 
 +예약된 공간입니다.\\ \\ 
 +10. //​desfireAppKey//​ \\ 
 +DesFire card 정보에 접근하기 위한 키 정보를 나타냅니다. (고급설정) \\ \\
 +==== BS2CustomCardConfig ====
 +<code cpp>
 +typedef struct {
 + BS2_CARD_DATA_TYPE dataType;
 + BS2_BOOL useSecondaryKey;​
 + uint8_t reserved1[2];​
 +
 + BS2CustomMifareCard mifare;
 + BS2CustomDesFireCard desfire;
 + uint8_t reserved2[24];​
 + uint8_t reserved3[96];​
 +
 + BS2_CARD_BYTE_ORDER smartCardByteOrder;​
 + uint8_t reserved4[3];​
 + BS2_UID formatID;
 + uint8_t reserved5[8];​
 +} BS2CustomCardConfig;​
 +</​code>​
 +1. //​dataType//​ \\ 
 +Card의 데이터 유형입니다. \\ 
 +<WRAP group 50%>
 +^값  ^설명 ​ ^
 +|0  |바이너리 ​ |
 +|1  |아스키 ​ |
 +|2  |UTF16 ​ |
 +|3  |BCD  |
 +</​WRAP>​
 +2. //​useSecondaryKey//​ \\ 
 +두번째 암호화 키 사용 유무를 결정하는 flag입니다. \\ \\ 
 +3. //​reserved1//​ \\ 
 +예약된 공간입니다. \\ \\ 
 +4. //mifare// \\ 
 +Mifare custom card 정보를 설정합니다. \\ \\ 
 +5. //desfire// \\ 
 +DESFire custom card 정보를 설정합니다. \\ \\ 
 +6. //​reserved2//​ \\ 
 +예약된 공간입니다. \\ \\ 
 +7. //​reserved3//​ \\ 
 +예약된 공간입니다. \\ \\ 
 +8. //​smartCardByteOrder//​ \\
 +MSB 또는 LSB로 출력을 지정할 수 있습니다. \\
 +<WRAP group 50%>
 +^값  ^설명 ​ ^
 +|0  |MSB  |
 +|1  |LSB  |
 +</​WRAP>​
 +9. //​reserved4//​ \\ 
 +예약된 공간입니다. \\ \\ 
 +10. //​formatID//​ \\ 
 +BioStar 2 애플리케이션에서 card configuration을 데이터베이스 관리할 필요가 있을 경우 사용할 수 있는 식별자입니다. \\ \\ 
 +11. //​reserved5//​ \\ 
 +예약된 공간입니다. \\ \\