Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
en:configuration_api [2020/02/18 10:16]
yjjung [BS2SystemConfig]
en:configuration_api [2020/08/28 13:56]
yjjung
Line 68: Line 68:
   * [[BS2_GetIPV6ConfigViaUDPEx]]:​ [+ 2.6.3] Retrieves IPv6 configuration through UDP broadcast with host IP.    * [[BS2_GetIPV6ConfigViaUDPEx]]:​ [+ 2.6.3] Retrieves IPv6 configuration through UDP broadcast with host IP. 
   * [[BS2_SetIPV6ConfigViaUDPEx]]:​ [+ 2.6.3] Stores IPv6 configuration through UDP broadcast with host IP.    * [[BS2_SetIPV6ConfigViaUDPEx]]:​ [+ 2.6.3] Stores IPv6 configuration through UDP broadcast with host IP. 
 +  * [[BS2_GetDesFireCardConfigEx]]:​ [+ V2.6.4] Retrieves DesFire advanced configuration from the device.
 +  * [[BS2_SetDesFireCardConfigEx]]:​ [+ V2.6.4] Sets DesFire advanced configuration in the device.
 +  * [[BS2_GetAuthConfigExt]]:​ ''​FaceStation F2''​ Retrieves authentication settings from the device. [+ V2.7.1]
 +  * [[BS2_SetAuthConfigExt]]:​ ''​FaceStation F2''​ Stores authentication settings from the device. [+ V2.7.1]
 +  * [[BS2_GetFaceConfigExt]]:​ ''​FaceStation F2, FaceStation2''​ Retrieves configuration of thermal camera and mask detection. [+ V2.7.1]
 +  * [[BS2_SetFaceConfigExt]]:​ ''​FaceStation F2, FaceStation2''​ Stores configuration of thermal camera and mask detection. [+ V2.7.1]
 +  * [[BS2_GetThermalCameraConfig]]:​ ''​FaceStation F2, FaceStation2''​ Retrieves configuration of thermal camera. [+ V2.7.1]
 +  * [[BS2_SetThermalCameraConfig]]:​ ''​FaceStation F2, FaceStation2''​ Stores configuration of thermal camera. [+ V2.7.1]
 +
 \\ \\
 ===== Structure ===== ===== Structure =====
Line 121: Line 130:
  
 ==== BS2SystemConfig ==== ==== BS2SystemConfig ====
-[[BS2_SetSystemConfig]] must be called after calling [[BS2_GetSystemConfig]] and completing necessary settings except for tamperOn. ​ \\ 
 <code cpp> <code cpp>
 typedef struct { typedef struct {
Line 151: Line 159:
 Reserved variable. \\ \\ Reserved variable. \\ \\
 **5. //​deviceLocked//​** \\  **5. //​deviceLocked//​** \\ 
-Decides whether to show lock screen in stand-by mode. \\ \\ +Indicates the current locked state of the device(Read only filed) ​\\ \\ 
 **6. //​useInterphone//​** \\  **6. //​useInterphone//​** \\ 
 Decides whether to use intercom. \\ \\  Decides whether to use intercom. \\ \\ 
Line 177: Line 185:
 **14. //​reserved//​** \\  **14. //​reserved//​** \\ 
 Reserved space. \\ \\  Reserved space. \\ \\ 
-15. //​useCardOperationMask//​ \\+**15. //​useCardOperationMask//​** \\
 [+ V2.6.4] Provides a card selective option not to read all kinds of cards from the device. \\ [+ V2.6.4] Provides a card selective option not to read all kinds of cards from the device. \\
 You can select multiple cards using MASK. The user can select or deselect of a specific card reading option using this option. \\ You can select multiple cards using MASK. The user can select or deselect of a specific card reading option using this option. \\
Line 363: Line 371:
     uint8_t timeFormat;     uint8_t timeFormat;
     uint8_t homeFormation;​     uint8_t homeFormation;​
-    ​uint8_t ​useUserPhrase;​ +    ​BS2_BOOL ​useUserPhrase;​ 
-    ​uint8_t reserved[1];+    ​BS2_BOOL queryUserPhrase;
     uint8_t shortcutHome[BS2_MAX_SHORTCUT_HOME];​     uint8_t shortcutHome[BS2_MAX_SHORTCUT_HOME];​
     uint8_t tnaIcon[16];​     uint8_t tnaIcon[16];​
Line 436: Line 444:
 **13. //​useUserPhrase//​** \\  **13. //​useUserPhrase//​** \\ 
 Flag that determines whether to use the user phrase feature. \\ \\  Flag that determines whether to use the user phrase feature. \\ \\ 
-**14. //​shortcutHome//​** \\  +**13. //​queryUserPhrase//​** \\  
-Home screen layout(Currently, not used). \\ \\  +If set true, asks for the user phrase to the server. \\ \\  
-**15. //​tnaIcon//​** \\ +**15. //​shortcutHome//​** \\  
 +Home screen layout(Going to apply later, not used currently). \\ \\  
 +**16. //​tnaIcon//​** \\ 
 Icon displayed on the device corresponding to the job code. \\ \\ Icon displayed on the device corresponding to the job code. \\ \\
-**16. //​reserved1//​** \\ +**17. //​reserved1//​** \\ 
 Reserved space. \\  Reserved space. \\ 
  
Line 691: Line 701:
 Reserved space. \\  ​ Reserved space. \\  ​
 </​WRAP>​ </​WRAP>​
 +
 ==== BS2FingerprintConfig ==== ==== BS2FingerprintConfig ====
 <code cpp> <code cpp>
 typedef struct { typedef struct {
-    uint8_t securityLevel;​ +    uint8_t ​     securityLevel;​ 
-    uint8_t fastMode; +    uint8_t ​     fastMode; 
-    uint8_t sensitivity;​ +    uint8_t ​     sensitivity;​ 
-    uint8_t sensorMode;​ +    uint8_t ​     sensorMode;​ 
-    uint16_t templateFormat;​ +    uint16_t ​    ​templateFormat;​ 
-    uint16_t scanTimeout;​ +    uint16_t ​    ​scanTimeout;​ 
-    uint8_t successiveScan;​ +    uint8_t ​     successiveScan;​ 
-    uint8_t advancedEnrollment;​ +    uint8_t ​     advancedEnrollment;​ 
-    uint8_t showImage;​ +    uint8_t ​     showImage;​ 
-    uint8_t lfdLevel; +    uint8_t ​     lfdLevel; 
-    uint8_t ​reserved1[32];+    bool         ​checkDuplicate;​ 
 + 
 +    uint8_t ​     ​reserved3[31];
 } BS2FingerprintConfig;​ } BS2FingerprintConfig;​
 </​code>​ </​code>​
Line 756: Line 769:
 Decides whether to display scanned fingerprint image on the screen. \\ \\  Decides whether to display scanned fingerprint image on the screen. \\ \\ 
 **10. //​lfdLevel//​** \\  **10. //​lfdLevel//​** \\ 
-Configuration for the LFD sensitivity. \\+Configuration for the LFD(Live Fingerprint Detection - fake fingerprint detection) ​sensitivity. \\
 <WRAP group 50%> <WRAP group 50%>
 ^Value ​ ^Description ​ ^ ^Value ​ ^Description ​ ^
Line 764: Line 777:
 |3  |Most Strict ​ | |3  |Most Strict ​ |
 </​WRAP>​ </​WRAP>​
-**11. //reserved1//** \\  +**11. //checkDuplicate//​** \\ 
-Reserved space.+[+ V2.6.4] If set to true, it will determine if the fingerprint is a duplicate. \\ \\ 
 +**12. //reserved3//** \\  
 +Reserved space. ​\\ \\
  
 ==== BS2Rs485Config ==== ==== BS2Rs485Config ====
Line 1335: Line 1350:
 |11|Led action| |11|Led action|
 |12|Fire alarm input| |12|Fire alarm input|
 +|13|Auth Success(Access granted)|
 +|14|Auth Fail(Access denied)|
 +|15|Lift action|
 </​WRAP>​ </​WRAP>​
 27. //​stopFlag//​ \\  27. //​stopFlag//​ \\ 
Line 1554: Line 1572:
 <code cpp> <code cpp>
 typedef struct { typedef struct {
- BS2_FACE_SECURITY_LEVEL ​      securityLevel;​  +    uint8_t ​      securityLevel;​ 
- BS2_FACE_LIGHT_CONDITON ​      lightCondition;​  +    ​uint8_t ​      lightCondition;​ 
- BS2_FACE_ENROLL_THRESHOLD ​    enrollThreshold;​  +    ​uint8_t ​      enrollThreshold;​ 
- BS2_FACE_DETECT_SENSITIVITY ​  detectSensitivity;​ +    ​uint8_t ​      detectSensitivity;​
  
- uint16_t ​                     enrollTimeout;​  +    ​uint16_t ​     enrollTimeout;​ 
- uint8_t ​                      reserved3[32]; +    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;​ } BS2FaceConfig;​
 </​code>​ </​code>​
-1. //​securityLevel//​ \\ +**1. //​securityLevel//​** \\ 
 Face authentication security level. This is used across the system. . \\  Face authentication security level. This is used across the system. . \\ 
 <WRAP group 50%> <WRAP group 50%>
Line 1571: Line 1607:
 |2  |Most highly secure ​ | |2  |Most highly secure ​ |
 </​WRAP>​ </​WRAP>​
-2. //​lightCondition//​ \\ +**2. //​lightCondition//​** \\ 
 Configuration of the light condition.\\ ​ Configuration of the light condition.\\ ​
 <WRAP group 50%> <WRAP group 50%>
Line 1579: Line 1615:
 |2  |Automatic ​ | |2  |Automatic ​ |
 </​WRAP>​ </​WRAP>​
-3. //​enrollThreshold//​ \\  +**3. //​enrollThreshold//​** \\  
-Threshold of face enrollment.\\ ​+Threshold of face enrollment. ​It determines how much movement of pose is allowed when enrolling the face.  ​\\ 
 <WRAP group 50%> <WRAP group 50%>
 ^Value ​ ^Description ​ ^ ^Value ​ ^Description ​ ^
-|0  |THRESHOLD_0 ​ |+|0  |THRESHOLD_0 ​(Most strict) ​|
 |1  |THRESHOLD_1 | |1  |THRESHOLD_1 |
 |2  |THRESHOLD_2 ​ | |2  |THRESHOLD_2 ​ |
Line 1592: Line 1628:
 |7  |THRESHOLD_7 ​ | |7  |THRESHOLD_7 ​ |
 |8  |THRESHOLD_8 ​ | |8  |THRESHOLD_8 ​ |
-|9  |THRESHOLD_9 ​ |+|9  |THRESHOLD_9 ​(Least strict) ​|
 </​WRAP> ​ </​WRAP> ​
-4. //​detectSensitivity//​ \\ +**4. //​detectSensitivity//​** \\ 
 Configuration of sensitivity on detecting the face. \\  Configuration of sensitivity on detecting the face. \\ 
 <WRAP group 50%> <WRAP group 50%>
Line 1603: Line 1639:
 |3  |High  | |3  |High  |
 </​WRAP>​ </​WRAP>​
-5. //​enrollTimeout//​ \\  +**5. //​enrollTimeout//​** \\  
-Timeout period of face scanning which is 60 seconds by default.\\ \\ +''​FaceStation2,​ FaceLite''​ : Timeout period of face scanning which is 60 seconds by default.\\ \\ 
-6. //​reserved3//​ \\  +<WRAP group 60%> 
-Reserved space.\\ \\+^Value ​ ^Description ​ ^ 
 +|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] Face scan wait time, default is 20 seconds. \\  
 +<WRAP group 70%> 
 +^Value ​ ^Description ​ ^ 
 +|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] Configuration for the LFD(Live Face Detection - fake face detection) sensitivity. \\
 +''​FaceStation2,​ FaceLite''​ : Default is 0. \\
 +''​FaceStation F2''​ : [+ V2.7.1] Default is 1. \\
 +<WRAP group 50%>
 +^Value ​ ^Description ​ ^
 +|0  |Not Use  |
 +|1  |Strict ​ |
 +|2  |More Strict ​ |
 +|3  |Most Strict ​ |
 +</​WRAP>​
 +**7. //​quickEnrollment//​** \\
 +[+ V2.6.3] Quick face enrollment process. \\
 +True - Face enrollment process with a single step.\\
 +False - Face enrollment process with 3 steps.\\
 +Please use false if you want to enroll with a high quality of face templates. \\ \\
 +**8. //​previewOption//​** \\
 +[+ V2.6.3] IR camera preview option when you authenticate with the face. \\
 +Only used to ''​FaceLite''​. \\
 +<WRAP group 50%>
 +^Value ​ ^Description ​ ^
 +|0  |Preview not used  |
 +|1  |Preview not used at first of authentication,​ preview at 1/2 stage  |
 +|2  |Preview of all stages on authentication ​ |
 +</​WRAP>​
 +**9. //​checkDuplicate//​** \\
 +[+ V2.6.4] Check whether the scanned face is duplicated in the device. \\ \\
 +
 +**10. //​operationMode//​** \\ 
 +[+ V2.7.1] ''​FaceStation F2''​ Configures operation mode with below values, default is Fusion mode. \\ 
 +<WRAP group 50%>
 +^Value ​ ^Mode  ^Description ​ ^Default ​ ^
 +|0  |Fusion Mode |Visual matching + IR matching |Default |
 +|1  |Visual Mode |Visual matching | |
 +|2  |Visual + IR |Visual matching, IR detects only face| |
 +</​WRAP> ​
 +
 +**11. //​maxRotation//​** \\ 
 +[+ V2.7.1] ''​FaceStation F2''​ When face is recognized normally it's front side. \\
 +Still, it is possible to determine how many degrees the image has been rotated from the front when FSF2 detects a face. \\
 +This enables detection failure in the case of images rotated over a certain angle. \\
 +maxRotation represents the maximum allowable value in this case, and the default value is 15 degrees. \\ \\
 +
 +**12. //​faceWidth//​** \\ 
 +[+ V2.7.1] ''​FaceStation F2''​ This indicates the width of the face image, and you can specify the minimum and maximum values. \\
 +The minimum and maximum values default to 66 and 250. \\ \\
 +
 +**13. //​searchRange//​** \\
 +[+ V2.7.1] ''​FaceStation F2''​ Represents the face search range, and you can specify the x value (horizontal coordinate) of the range and the width from the x value point. \\
 +The default values for x value and width are 144 and 432. \\ \\
 +14. //​reserved2//​ \\ 
 +Reserved space.\\ \\
 ==== BS2Rs485ConfigEX ==== ==== BS2Rs485ConfigEX ====
 <code cpp> <code cpp>
Line 1824: Line 1924:
 |0xFFFFFFFF|All configuration| |0xFFFFFFFF|All configuration|
 </​WRAP>​ </​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// \\ 
 +Flag indicating whether to use IP V6. \\ \\ 
 +2. //​reserved1//​ \\ 
 +Reserved space. \\ \\
 +3. //​useDhcpV6//​ \\ 
 +Flag indicating whether to use DHCP. \\ \\ 
 +4. //​useDnsV6//​ \\ 
 +Decides whether to use server address or server URL. \\ \\ 
 +5. //​staticIpAddressV6//​ \\ 
 +Static IP V6 address of current device. \\ \\ 
 +6. //​staticGatewayV6//​ \\ 
 +Static IP V6 address of gateway. \\ \\ 
 +7. //​dnsAddrV6//​ \\ 
 +DNS address. \\ \\ 
 +8. //​serverIpAddressV6//​ \\ 
 +IP address of BioStar. Used only in the server mode. \\ \\ 
 +9. //​serverPortV6//​ \\ 
 +Port number of BioStar. Used only in the server mode. \\ \\ 
 +10. //​sslServerPortV6//​ \\ 
 +Used when the connectionMode is set as server SSL mode, which is the port of the SDK application. \\ \\ 
 +11. //portV6// \\ 
 +Port number of the device. \\ \\ 
 +12. //​numOfAllocatedAddressV6//​ \\ 
 +The number of IP V6 address currently assigned to the device. \\ \\ 
 +13. //​numOfAllocatedGatewayV6//​ \\ 
 +The number of gateway address currently assigned to the device. \\ \\ 
 +14. //​reserved//​ \\ 
 +Reserved space. \\ \\
 +15. //​allocatedIpAddressV6//​ \\ 
 +The IP V6 address currently assigned to the device. \\ \\
 +16. //​allocatedGatewayV6//​ \\ 
 +The gateway address currently assigned to the device.\\ \\
 +
 +==== 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//​ \\ 
 +Application master key of DesFire. \\ \\ 
 +2. //​fileReadKey//​ \\ 
 +The key used to read the file. \\ \\ 
 +3. //​fileWriteKey//​ \\ 
 +The key used to write the file. \\ \\ 
 +4. //​fileReadKeyNumber//​ \\ 
 +The index of the key for reading the file. \\ \\ 
 +5. //​fileWriteKeyNumber//​ \\ 
 +The index of the key for writing the file. \\ \\ 
 +6. //​reserved//​ \\ 
 +Reserved space. \\ \\
 +7. //​desfireAppKey//​ \\ 
 +A structure containing DesFire key information. \\ \\ 
 +8. //​reserved//​ \\
 +Reserved space. \\ 
 +
 +
 +==== 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//​** \\ 
 +Schedule values to operate when each authentication mode is activated. \\
 +It has the following meanings for each value. \\
 +If the value in the array is greater than 0, the authentication mode is activated. \\
 +In the explanations below, biometric information means fingerprints or faces depending on the device. \\
 +<WRAP group 70%>
 +^Value ^Code  ^Description ​ ^
 +|11  |BS2_EXT_AUTH_MODE_FACE_ONLY ​ |Face |
 +|12  |BS2_EXT_AUTH_MODE_FACE_FINGERPRINT ​ |Face + Fingerprint ​ |
 +|13  |BS2_EXT_AUTH_MODE_FACE_PIN ​ |Face + PIN  |
 +|14  |BS2_EXT_AUTH_MODE_FACE_FINGERPRINT_OR_PIN ​ |Face + Fingerprint/​PIN ​ |
 +|15  |BS2_EXT_AUTH_MODE_FACE_FINGERPRINT_PIN ​ |Face + Fingerprint + PIN  |
 +|16  |BS2_EXT_AUTH_MODE_FINGERPRINT_ONLY ​ |Fingerprint |
 +|17  |BS2_EXT_AUTH_MODE_FINGERPRINT_FACE ​ |Fingerprint + Face |
 +|18  |BS2_EXT_AUTH_MODE_FINGERPRINT_PIN ​ |Fingerprint + PIN  |
 +|19  |BS2_EXT_AUTH_MODE_FINGERPRINT_FACE_OR_PIN ​ |Fingerprint + Face/​PIN ​ |
 +|20  |BS2_EXT_AUTH_MODE_FINGERPRINT_FACE_PIN ​ |Fingerprint + Face + PIN  |
 +|21  |BS2_EXT_AUTH_MODE_CARD_ONLY ​ |Card |
 +|22  |BS2_EXT_AUTH_MODE_CARD_FACE ​ |Cardn + Face  |
 +|23  |BS2_EXT_AUTH_MODE_CARD_FINGERPRINT ​ |Card + Fingerprint ​ |
 +|24  |BS2_EXT_AUTH_MODE_CARD_PIN ​ |Card + PIN  |
 +|25  |BS2_EXT_AUTH_MODE_CARD_FACE_OR_FINGERPRINT ​ |Card + Face/​Fingerprint ​ |
 +|26  |BS2_EXT_AUTH_MODE_CARD_FACE_OR_PIN ​ |Card + Face/​PIN ​ |
 +|27  |BS2_EXT_AUTH_MODE_CARD_FINGERPRINT_OR_PIN ​ |Card + Fingerprint/​PIN ​ |
 +|28  |BS2_EXT_AUTH_MODE_CARD_FACE_OR_FINGERPRINT_OR_PIN ​ |Card + Face/​Fingerprint/​PIN ​ |
 +|29  |BS2_EXT_AUTH_MODE_CARD_FACE_FINGERPRINT ​ |Card + Face + Fingerprint ​ |
 +|30  |BS2_EXT_AUTH_MODE_CARD_FACE_PIN ​ |Card + Face + PIN  |
 +|31  |BS2_EXT_AUTH_MODE_CARD_FINGERPRINT_FACE ​ |Card + Fingerprint + Face  |
 +|32  |BS2_EXT_AUTH_MODE_CARD_FINGERPRINT_PIN ​ |Card + Fingerprint + PIN  |
 +|33  |BS2_EXT_AUTH_MODE_CARD_FACE_OR_FINGERPRINT_PIN ​ |Card + Face/​Fingerprint + PIN  |
 +|34  |BS2_EXT_AUTH_MODE_CARD_FACE_FINGERPRINT_OR_PIN ​ |Card + Face + Fingerprint/​PIN ​ |
 +|35  |BS2_EXT_AUTH_MODE_CARD_FINGERPRINT_FACE_OR_PIN ​ |Card + Fingerprint + Face/​PIN ​ |
 +|36  |BS2_EXT_AUTH_MODE_ID_FACE ​ |ID + Face  |
 +|37  |BS2_EXT_AUTH_MODE_ID_FINGERPRINT ​ |ID + Fingerprint ​ |
 +|38  |BS2_EXT_AUTH_MODE_ID_PIN ​ |ID + PIN  |
 +|39  |BS2_EXT_AUTH_MODE_ID_FACE_OR_FINGERPRINT ​ |ID + Face/​Fingerprint ​ |
 +|40  |BS2_EXT_AUTH_MODE_ID_FACE_OR_PIN ​ |ID + Face/​PIN ​ |
 +|41  |BS2_EXT_AUTH_MODE_ID_FINGERPRINT_OR_PIN ​ |ID + Fingerprint/​PIN ​ |
 +|42  |BS2_EXT_AUTH_MODE_ID_FACE_OR_FINGERPRINT_OR_PIN ​ |ID + Face/​Fingerprint/​PIN ​ |
 +|43  |BS2_EXT_AUTH_MODE_ID_FACE_FINGERPRINT ​ |ID + Face + Fingerprint ​ |
 +|44  |BS2_EXT_AUTH_MODE_ID_FACE_PIN ​ |ID + Face + PIN  |
 +|45  |BS2_EXT_AUTH_MODE_ID_FINGERPRINT_FACE ​ |ID + Fingerprint + Face  |
 +|46  |BS2_EXT_AUTH_MODE_ID_FINGERPRINT_PIN ​ |ID + Fingerprint + PIN  |
 +|47  |BS2_EXT_AUTH_MODE_ID_FACE_OR_FINGERPRINT_PIN ​ |ID + Face/​Fingerprint + PIN  |
 +|48  |BS2_EXT_AUTH_MODE_ID_FACE_FINGERPRINT_OR_PIN ​ |ID + Face + Fingerprint/​PIN ​ |
 +|49  |BS2_EXT_AUTH_MODE_ID_FINGERPRINT_FACE_OR_PIN ​ |ID + Fingerprint + Face/​PIN ​ |
 +</​WRAP>​
 +2. //​useGlobalAPB//​ \\ 
 +This flag determines whether to enable Global APB zone. \\ \\ 
 +3. //​globalAPBFailAction//​ \\ 
 +This is a basic action to be performed when the device cannot query the server for Global APB violation. ​ \\
 +<WRAP group 50%>
 +^Value ​ ^Description ​ ^
 +|0  |Do not check APB  |
 +|1  |Soft APB  |
 +|2  |Hard APB  |
 +</​WRAP>​
 +4. //​useGroupMatching//​ \\
 +Enables facial group matching. \\ \\
 +5. //​reserved//​ \\ 
 +Reserved space. \\ \\ 
 +6. //​reserved2//​ \\ 
 +Reserved space. \\ \\ 
 +7. //​usePrivateAuth//​ \\ 
 +Enable private authentication mode. \\ \\ 
 +8. //​faceDetectionLevel//​ \\ 
 +This is the face detection level value when authenticating the user in BioStation A2, and if a face is detected at a level lower than the specified level, it is treated as an authentication failure.\\
 +When enabled, the camera view according to Normal/​Strict is displayed, and access is denied if the image log is not recognized as a face when successful authentication. The default is 0. \\
 +<WRAP group 50%>
 +^Value ​ ^Description ​ ^
 +|0  |Do not detect face  |
 +|1  |Normal mode  |
 +|2  |Strict mode  |
 +</​WRAP>​
 +<WRAP info>
 +It is available only in BioStation A2, not available in FaceStation2 or FaceLite. ​
 +</​WRAP>​
 +9. //​useServerMatching//​ \\ 
 +Enable server matching for fingerprint matching or facial matching. \\ \\ 
 +10. //​useFullAccess//​ \\ 
 +This parameter is not in use. \\ \\ 
 +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[3];​
 +
 +    uint16_t thermalThreshold;​
 +    uint8_t maskDetectionLevel;​
 +    uint8_t auditTemperature;​
 +
 +    uint8_t useRejectSound;​
 +    uint8_t useOverlapThermal;​
 +    uint8_t reserved4;
 +    uint8_t faceCheckOrder;​
 +} BS2FaceConfigExt;​
 +</​code>​
 +1. //​thermalCheckMode//​ \\ 
 +열화상 감지 모드를 설정합니다. \\ 
 +HARD로 설정 시, 고열의 기준인 thermalThreshold를 초과하면,​ 출입에 영향을 주게됩니다. \\
 +SOFT로 설정 시, 고열의 기준인 thermalThreshold를 초과하면,​ 근거를 로그를 남기고 출입에 영향을 주지 않습니다. \\
 +<WRAP group 50%>
 +^값  ^설명 ​ ^기본값 ​ ^
 +|0  |열화상 감지 사용 안함 ​ |기본값 ​ |
 +|1  |열화상 감지 사용 (HARD) ​ |  |
 +|2  |열화상 감지 사용 (SOFT) ​ |  |
 +</​WRAP>​
 +2. //​maskCheckMode//​ \\ 
 +''​FaceStation F2''​ 마스크 착용 감지 모드를 설정합니다. \\ 
 +''​FaceStation 2''​ 이 설정은 무시됩니다. \\ 
 +HARD로 설정 시, maskDetectionLevel에 근거하여 착용 위반이 감지되면,​ 출입에 영향을 주게됩니다. \\
 +SOFT로 설정 시, maskDetectionLevel에 근거하여 착용 위반이 감지되면,​ 근거를 로그를 남기고 출입에 영향을 주지 않습니다. \\
 +<WRAP group 50%>
 +^값  ^설명 ​ ^기본값 ​ ^
 +|0  |마스크 착용 감지 사용 안함 ​ |기본값 ​ |
 +|1  |마스크 착용 감지 사용 (HARD) ​ |  |
 +|2  |마스크 착용 감지 사용 (SOFT) ​ |  |
 +</​WRAP>​
 +3. //​reserved//​ \\ 
 +예약된 공간입니다. \\ \\
 +4. //​thermalFormat//​ \\
 +온도 단위를 나타내며,​ 화면상의 온도 표시를 화씨 또는 섭씨로 나타내도록 선택할 수 있습니다. \\
 +<WRAP group 50%>
 +^값  ^설명 ​ ^기본값 ​ ^
 +|0  |화씨 ​ |  |
 +|1  |섭씨 ​ |기본값 ​ |
 +</​WRAP>​
 +5. //​reserved2//​ \\ 
 +예약된 공간입니다. \\ \\
 +6. //​thermalThreshold//​ \\
 +고열 판단 기준 값이며, 설정 할 온도의 100을 곱한 값으로 입력하여야 합니다. \\
 +또한 섭씨 기준으로만 입력할 수 있습니다. \\
 +이 값은 인증 거부의 근거가 되며, 설정 범위는 섭씨로 3000에서 4500 사이 입니다. \\ \\
 +7. //​maskDetectionLevel//​ \\
 +''​FaceStation F2''​ 마스크 착용 감지 수준을 입력합니다. 여기서 감지 수준은 내부적으로 설정된 값에 근거합니다. \\
 +''​FaceStation 2''​ 이 설정은 무시됩니다. \\ 
 +<WRAP group 50%>
 +^값  ^설명 ​ ^기본값 ​ ^
 +|0  |착용 감지 안함 ​ |기본값 ​ |
 +|1  |감지수준 보통 ​ |  |
 +|2  |감지수준 높음 ​ |  |
 +|3  |감지수준 매우높음 ​ |  |
 +</​WRAP>​
 +8. //​auditTemperature//​ \\ 
 +측정 온도를 이벤트 로그에 기록할지 여부를 설정합니다. \\ \\
 +9. //​useRejectSound//​ \\
 +thermalThreshold 또는 maskDetectionLevel에 의해서 사용자 인증이 거부되는 경우, 효과음을 발생시킬지 여부를 설정합니다. \\ \\
 +10. //​useOverlapThermal//​ \\
 +화면상에 열화상 이미지를 중첩해서 표시합니다. \\ \\
 +11. //​reserved4//​ \\ 
 +예약된 공간입니다. \\ \\
 +12. //​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이며 기본값은 70 입니다. \\ \\
 +2. //​emissionRate//​ \\
 +피사체가 열을 방사하는 비율을 입력합니다. \\
 +[95/97/98] 범위내의 입력을 권장합니다. 피사체가 사람인 경우 적정 권장은 98 입니다. \\ \\
 +3. //roi// \\
 +ROI(Region of interest)는 관심영역을 의미하며,​ 얼굴에서 발열 측정 시, 관심 대상이되는 영역을 \\
 +좌표(x, y)와, 범위(width,​ height) 값을 통해서 지정할 수 있습니다. \\ \\
 +4. //​useBodyCompensation//​ \\ 
 +발열 측정된 체온의 보정을 사용할지 여부를 나타냅니다. \\ \\
 +5. //​compensationTemperature//​ \\
 +실제 체온측정값과,​ 카메라를 통한 체온측정은 약간의 차이가 존재할 수 있으며, 이곳에 값을 설정하여,​ 그 차이를 보정할 수 있습니다. \\
 +설정할 온도의 10을 곱한 값으로 입력하여야하며,​ 최소 -50에서 최대 50 사이의 값을 지정할 수 있습니다. \\ \\
 +