Differences

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

Link to this comparison view

Next revision
Previous revision
Next revision Both sides next revision
en:configuration_api [2020/08/28 12:38]
yjjung [Configuration API]
en:configuration_api [2021/02/23 11:29]
yjjung [BS2DisplayConfig]
Line 35: Line 35:
   * [[BS2_GetWiegandDeviceConfig]]:​ Retrieves Wiegand device settings from the device.   * [[BS2_GetWiegandDeviceConfig]]:​ Retrieves Wiegand device settings from the device.
   * [[BS2_SetWiegandDeviceConfig]]:​ Stores Wiegand device settings on the device.   * [[BS2_SetWiegandDeviceConfig]]:​ Stores Wiegand device settings on the device.
-  * [[BS2_GetInputConfig]]:​ Retrieves input port settings from the device. +  * [[BS2_GetInputConfig]]:​ Retrieves ​supervised ​input port settings from the device. 
-  * [[BS2_SetInputConfig]]:​ Stores input port settings on the device.+  * [[BS2_SetInputConfig]]:​ Stores ​supervised ​input port settings on the device.
   * [[BS2_GetWlanConfig]]:​ Retrieves wireless LAN settings from the device.   * [[BS2_GetWlanConfig]]:​ Retrieves wireless LAN settings from the device.
   * [[BS2_SetWlanConfig]]:​ Stores wireless LAN settings on the device.   * [[BS2_SetWlanConfig]]:​ Stores wireless LAN settings on the device.
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_GetDesFireCardConfigEx]]:​ [+ 2.6.4] Retrieves DesFire advanced configuration from the device. 
-  * [[BS2_SetDesFireCardConfigEx]]:​ [+ V2.6.4] Sets DesFire advanced configuration in the device. +  * [[BS2_SetDesFireCardConfigEx]]:​ [+ 2.6.4] Sets DesFire advanced configuration in the device. 
-  * [[BS2_GetAuthConfigExt]]:​ ''​FaceStation F2''​ Retrieves authentication settings from the device. ​[+ V2.7.1] +  * [[BS2_GetAuthConfigExt]]: ​[+ 2.7.1] ​''​FaceStation F2''​ Retrieves authentication settings from the device. 
-  * [[BS2_SetAuthConfigExt]]:​ ''​FaceStation F2''​ Stores authentication settings from the device. ​[+ V2.7.1] +  * [[BS2_SetAuthConfigExt]]: ​[+ 2.7.1] ​''​FaceStation F2''​ Stores authentication settings from the device. 
-  * [[BS2_GetFaceConfigExt]]:​ ''​FaceStation F2, FaceStation2''​ Retrieves configuration of thermal camera and mask detection. ​[+ V2.7.1] +  * [[BS2_GetFaceConfigExt]]: ​[+ 2.7.1] ​''​FaceStation F2, FaceStation2''​ Retrieves configuration of thermal camera and mask detection. 
-  * [[BS2_SetFaceConfigExt]]:​ ''​FaceStation F2, FaceStation2''​ Stores configuration of thermal camera and mask detection. ​[+ V2.7.1] +  * [[BS2_SetFaceConfigExt]]: ​[+ 2.7.1] ​''​FaceStation F2, FaceStation2''​ Stores configuration of thermal camera and mask detection. 
-  * [[BS2_GetThermalCameraConfig]]:​ ''​FaceStation F2, FaceStation2''​ Retrieves configuration of thermal camera. ​[+ V2.7.1] +  * [[BS2_GetThermalCameraConfig]]: ​[+ 2.7.1] ​''​FaceStation F2, FaceStation2''​ Retrieves configuration of thermal camera. 
-  * [[BS2_SetThermalCameraConfig]]:​ ''​FaceStation F2, FaceStation2''​ Stores configuration of thermal camera. ​[+ V2.7.1]+  * [[BS2_SetThermalCameraConfig]]: ​[+ 2.7.1] ​''​FaceStation F2, FaceStation2''​ Stores configuration of thermal camera.
  
 \\ \\
Line 375: Line 375:
     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>​
Line 449: Line 450:
 Home screen layout(Going to apply later, not used currently). \\ \\  Home screen layout(Going to apply later, not used currently). \\ \\ 
 **16. //​tnaIcon//​** \\  **16. //​tnaIcon//​** \\ 
-Icon displayed on the device corresponding ​to the job code. \\ \\ +Icon displayed on the device corresponding ​TNA key. \\ \\ 
-**17. //​reserved1//​** \\ +**17. //​useScreenSaver//​** \\  
 +''​FaceStation 2'',​ ''​FaceStation F2''​ If set true, you can activate the screensaver. \\ \\ 
 +**18. //​reserved1//​** \\ 
 Reserved space. \\  Reserved space. \\ 
  
Line 860: Line 863:
     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>​
Line 930: Line 934:
 **16. //​wiegandCSNIndex//​** \\ **16. //​wiegandCSNIndex//​** \\
 Index that determines in which format the device will send out a wiegand ouput after the card has been read. This field is used only for Mifare and EM devices. Please check the //​useWiegandFormat//​ field of the [[configuration api#​BS2CardConfig]] structure before configuring. \\ \\ Index that determines in which format the device will send out a wiegand ouput after the card has been read. This field is used only for Mifare and EM devices. Please check the //​useWiegandFormat//​ field of the [[configuration api#​BS2CardConfig]] structure before configuring. \\ \\
-**17. //​reserved//​** \\  +**17. //​useWiegandUserID//​** \\ 
-Reserved space\\ \\ +The flag you can select whether card ID or user ID to be sent via Wiegand output. \\ 
 +<WRAP group 50%> 
 +^Value ​ ^Description ​ ^ 
 +|0  |Not use  | 
 +|1  |Card ID  | 
 +|2  |User ID  | 
 +</​WRAP>​ 
 +**18. //​reserved//​** \\  
 +Reserved space.\\ 
  
  
Line 1335: Line 1347:
 26. //type// \\  26. //type// \\ 
 Action types. \\ Action types. \\
 +<WRAP round important 60%>
 +<wrap em>​[DoorModule-20,​ CoreStation-40]</​wrap>​ \\
 +If the action type is relay or TTL (Output) and the action device is DM20, CS40,
 +Action type should be set only as relay action (6). (TTL setting not possible) \\ \\
 +<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%>
 ^Value ​ ^Description ​ ^ ^Value ​ ^Description ​ ^
Line 1583: Line 1608:
     uint8_t ​      ​previewOption;​     uint8_t ​      ​previewOption;​
     bool          checkDuplicate;​     bool          checkDuplicate;​
-    uint8_t ​      reserved[2];+    uint8_t ​      operationMode;​ 
 +    uint8_t ​      ​maxRotation;
  
-    uint8_t ​      ​reserved2[26]; +    ​struct { 
 +        uint16_t ​ min; 
 +        uint16_t ​ max; 
 +    } faceWidth;​ 
 + 
 +    struct { 
 +        uint16_t ​ x; 
 +        uint16_t ​ width; 
 +    } searchRange;​ 
 + 
 +    ​uint8_t ​      ​reserved2[18];
 } BS2FaceConfig;​ } BS2FaceConfig;​
 </​code>​ </​code>​
Line 1625: Line 1661:
 |0  |Off  | |0  |Off  |
 |1  |Low  | |1  |Low  |
-|2  |Basic  |+|2  |Medium ​ |
 |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.\\ \\ 
 +<WRAP group 60%> 
 +^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//​** \\ **6. //​lfdLevel//​** \\
 [+ V2.6.3] Configuration for the LFD(Live Face Detection - fake face detection) sensitivity. \\ [+ 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%> <WRAP group 50%>
 ^Value ​ ^Description ​ ^ ^Value ​ ^Description ​ ^
Line 1642: Line 1695:
 [+ V2.6.3] Quick face enrollment process. \\ [+ V2.6.3] Quick face enrollment process. \\
 True - Face enrollment process with a single step.\\ True - Face enrollment process with a single step.\\
-False - Face enrollment ​rpcoess ​with 3 steps.\\+False - Face enrollment ​process ​with 3 steps.\\
 Please use false if you want to enroll with a high quality of face templates. \\ \\ Please use false if you want to enroll with a high quality of face templates. \\ \\
 **8. //​previewOption//​** \\ **8. //​previewOption//​** \\
-[+ V2.6.3] IR camera preview option when you authenticate with face. \\+[+ V2.6.3] IR camera preview option when you authenticate with the face. \\
 Only used to ''​FaceLite''​. \\ Only used to ''​FaceLite''​. \\
 <WRAP group 50%> <WRAP group 50%>
 ^Value ​ ^Description ​ ^ ^Value ​ ^Description ​ ^
 |0  |Preview not used  | |0  |Preview not used  |
-|1  |Preview not used at frist of authentication,​ preview at 1/2 stage  |+|1  |Preview not used at first of authentication,​ preview at 1/2 stage  |
 |2  |Preview of all stages on authentication ​ | |2  |Preview of all stages on authentication ​ |
 </​WRAP>​ </​WRAP>​
 **9. //​checkDuplicate//​** \\ **9. //​checkDuplicate//​** \\
 [+ V2.6.4] Check whether the scanned face is duplicated in the device. \\ \\ [+ V2.6.4] Check whether the scanned face is duplicated in the device. \\ \\
-**10. //reserved//** \\  + 
-Reserved space. \\ \\ +**10. //operationMode//** \\  
-**11. //reserved2//** \\  +[+ V2.7.1] ''​FaceStation F2''​ Configures operation mode with below values, default is Fusion mode. \\  
-Reserved space. \\ \\+<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 1967: Line 2041:
 8. //​reserved//​ \\ 8. //​reserved//​ \\
 Reserved space. \\  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//​ \\ 
 +The maximum response time in fingerprint or facial matching and the unit is seconds(sec). \\ \\
 +12. //​authTimeout//​ \\ 
 +The maximum response time in user authentication and the unit is seconds(sec). ​ \\ \\
 +13. //​numOperators//​ \\ 
 +The number of operators. \\ \\ 
 +14. //​reserved3//​ \\ 
 +Reserved \\ \\ 
 +15. //userID// \\ 
 +User ID \\ \\ 
 +16. //level// \\ 
 +It specifies the corresponding level of the user when the user is authenticated.\\ ​
 +<WRAP group 50%>
 +^Value ​ ^Description ​ ^
 +|0  |No level  |
 +|1  |Operator level  |
 +|2  |System configuration level  |
 +|3  |User information level  |
 +</​WRAP>​
 +<WRAP alert>
 +**CAUTION**\\
 +You must specify the number of operators to be added in the field **//​numOperators//​** when adding operators. ​
 +</​WRAP>​
 +17. //​reserved//​ \\ 
 +Reserved \\ 
 +18. //​reserved4//​ \\ 
 +Reserved \\ \\ 
 +
 +
 +==== 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//​ \\ 
 +Sets the thermal check mode. \\
 +When set to HARD, access is denied if exceeding the thermalThreshold. \\
 +When set to SOFT, access is not affected even if exceeding the thermalThreshold but leaves a related log. \\
 +If thermalCheckMode is set to No use(0), \\
 +The settings of thermalFormat,​ thermalThreshold,​ auditTemperature,​ and useOverlapThermal are ignored. \\
 +And the reject sound due to thermal check by useRejectSound,​ the temperature check by faceCheckOrder is ignored. \\
 +<WRAP group 50%>
 +^Value ​ ^Description ​ ^Default ​ ^
 +|0  |No use  |Default ​ |
 +|1  |Thermal Check Mode (HARD) ​ |  |
 +|2  |Thermal Check Mode (SOFT) ​ |  |
 +</​WRAP>​
 +2. //​maskCheckMode//​ \\ 
 +''​FaceStation F2''​ Sets the Mask Check Mode. \\ 
 +''​FaceStation 2''​ This setting is ignored. \\ 
 +When set to HARD, access is denied if not detecting any mask on the face based on maskDetectionLevel. \\
 +When set to SOFT, access is not affected even if not detecting any mask on the face based on maskDetectionLevel but leaves a related log. \\
 +If maskCheckMode is set to No use(0), \\
 +The setting of maskDetectionLevel is ignored. \\
 +And the reject sound due to mask detection check by useRejectSound,​ the mask detection check by faceCheckOrder is ignored. \\
 +<WRAP group 50%>
 +^Value ​ ^Description ​ ^Default ​ ^
 +|0  |No use  |Default ​ |
 +|1  |Mask Check Mode (HARD) ​ |  |
 +|2  |Mask Check Mode (SOFT) ​ |  |
 +</​WRAP>​
 +3. //​reserved//​ \\ 
 +Reserved \\ \\
 +4. //​thermalFormat//​ \\
 +Represents the temperature unit. You may choose the unit in Fahrenheit or Celsius \\
 +<WRAP group 50%>
 +^Value ​ ^Description ​ ^Default ​ ^
 +|0  |Fahrenheit ​  ​| ​ |
 +|1  |Celsius |Default ​ |
 +</​WRAP>​
 +5. //​reserved2//​ \\ 
 +Reserved \\ \\
 +6. //​thermalThresholdLow//​ \\
 +''​Supported version''​ : ''​FaceStation F2 V1.0.2'',​ ''​FaceStation 2 V1.5.0''​ \\ 
 +This is the range value for determining high temperature and must be entered as a value multiplied by 100 of the temperature to be set. \\
 +Also, you can only enter in degrees Celsius. \\
 +This value is the basis for the denial of authentication,​ and the setting range is between 100 (1º) and 4500 (45º). \\
 +The default value is 3200 (32º), and if a value larger or smaller than the setting range is entered, the default value a set to 3200 (32º). \\
 +And you must set a value less than thermalThresholdHigh. \\ \\
 +7. //​thermalThresholdHigh//​ \\
 +This is the range value for determining high temperature and must be entered as a value multiplied by 100 of the temperature to be set. \\
 +Also, you can only enter in degrees Celsius. \\
 +This value is the basis for the denial of authentication,​ and the setting range is between 100 (1º) and 4500 (45º). \\
 +The default value is 3800 (38º), and if a value larger or smaller than the setting range is entered, the default value a set to 3800 (38º). \\
 +And you must set a value greater than thermalThresholdLow. \\ \\
 +8. //​maskDetectionLevel//​ \\
 +''​FaceStation F2''​ Sets the mask detection level. The detecting level is based on internal setting value. \\
 +''​FaceStation 2''​ This setting is ignored. \\ 
 +<WRAP group 50%>
 +^Value ^Description ​ ^Default ​ ^
 +|0  |No detection ​ |Default ​ |
 +|1  |Detection level (Normal) ​ |  |
 +|2  |Detection level (High) ​ |  |
 +|3  |Detection level (Very high)  |  |
 +</​WRAP>​
 +9. //​auditTemperature//​ \\ 
 +Decides whether the measured temperature is recorded in the log or not. \\ \\
 +10. //​useRejectSound//​ \\
 +Decides whether it sounds when rejecting a user due to thermalThreshold or maskDetectionLevel. \\ \\
 +11. //​useOverlapThermal//​ \\
 +Displays a thermal image overlaid on the screen. \\ \\
 +12. //​useDynamicROI//​ \\ 
 +When set to true, when measuring temperature,​ the user's forehead is found and measured, not a fixed area. \\ \\
 +13. //​faceCheckOrder//​ \\ 
 +It defines the sequence of thermal check and mask detection and authentication. \\
 +Because the user should touch the device in the case of ID combination authentication or PIN combination authentication,​\\
 +it is important to decide whether the device authenticates before all check modes or afterward especially in a high-risk environment.\\
 +<WRAP group 50%>
 +^Value ​ ^Description ​ ^Default ​ ^
 +|0  |Temperature check or Mask detection check before authentication | Default ​ |
 +|1  |Authentication before Temperature check or Mask detection check  |  |
 +|2  |No authentication. Only Temperature check or Mask detection check  |  |
 +</​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//​ \\ 
 +The distance measured by the thermal imaging camera. The unit is cm, and the default is 100. \\ \\
 +2. //​emissionRate//​ \\
 +The emissivity of the subject reflecting heat. \\
 +It is recommended to enter within the [95/97/98] range. If the subject is a human, 98 is recommended. \\ \\
 +3. //roi// \\
 +ROI (Region of interest) refers to the region of interest. \\
 +It can be specified through coordinates (x, y) and range (width, height) values when measuring temperature on the face. \\ \\
 +4. //​useBodyCompensation//​ \\ 
 +It decides whether to use the compensate the body temperature. \\ \\
 +5. //​compensationTemperature//​ \\
 +There may be a slight difference between the actual body temperature and the body temperature measurement using the camera, and you can correct the difference by setting a value here. \\
 +It must be as the value multiplied by 10 of the temperature to be set. The value is available -50 ~ +50 \\ \\
 +