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/08/28 13:18]
yjjung [BS2FaceConfig]
en:configuration_api [2021/06/06 20:19]
kateyu [BS2Rs485Config]
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. 
 +  * [[BS2_GetBarcodeConfig]]: ​[+ 2.8''​X-Station 2''​ Retrieves configuration of Barcode. 
 +  * [[BS2_SetBarcodeConfig]]:​ [+ 2.8] ''​X-Station 2''​ Stores configuration of Barcode.
 \\ \\
 ===== Structure ===== ===== Structure =====
Line 375: Line 376:
     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 415: Line 417:
 </​WRAP>​ </​WRAP>​
 **6. //​menuTimeout//​** \\  **6. //​menuTimeout//​** \\ 
-Timeout in seconds for lock screen when the user is inactive. The timeout can be set from 0 to 255 seconds. 0 means no lock screen.\\ ​\\ +Timeout in seconds for lock screen when the user is inactive. The timeout can be set from 0 to 255 seconds. 0 means no lock screen.\\ ​ 
 +<WRAP group 50%> 
 +^Value ​ ^Description ​ ^ 
 +|0  |No timeout. ​ | 
 +|10  |Menu timeout 10 sec.  | 
 +|20  |Menu timeout 20 sec. (Default) ​ | 
 +|30  |Menu timeout 30 sec.  | 
 +|40  |Menu timeout 40 sec.  | 
 +|50  |Menu timeout 50 sec.  | 
 +|60  |Menu timeout 60 sec.  | 
 +</​WRAP>​
 **7. //​msgTimeout//​** \\  **7. //​msgTimeout//​** \\ 
-Message timeout in milliseconds. The timeout can be set from 500 to 5000 milliseconds.\\ ​\\ +Message timeout in milliseconds. The timeout can be set from 500 to 5000 milliseconds.\\ ​ 
 +<WRAP group 50%> 
 +^Value ​ ^Description ​ ^ 
 +|500  |Message timeout 500 msec.  | 
 +|1000  |Message timeout 1 sec.  | 
 +|2000  |Message timeout 2 sec. (Default) ​ | 
 +|3000  |Message timeout 3 sec.  | 
 +|4000  |Message timeout 4 sec.  | 
 +|5000  |Message timeout 5 sec.  | 
 +</​WRAP>​
 **8. //​backlightTimeout//​** \\  **8. //​backlightTimeout//​** \\ 
-Backlight timeout in seconds. \\ \\ +Backlight timeout in seconds. \\  
 +<WRAP group 50%> 
 +^Value ​ ^Description ​ ^ 
 +|0  |Backlight timeout 0 sec.  | 
 +|10  |Backlight timeout 10 sec.  | 
 +|20  |Backlight timeout 20 sec. (Default) ​ | 
 +|30  |Backlight timeout 30 sec.  | 
 +|40  |Backlight timeout 40 sec.  | 
 +|50  |Backlight timeout 50 sec.  | 
 +|60  |Backlight timeout 60 sec.  | 
 +</​WRAP>​
 **9. //​displayDateTime//​** \\  **9. //​displayDateTime//​** \\ 
 Decides whether to display clock on screen. \\ \\  Decides whether to display clock on screen. \\ \\ 
Line 449: Line 480:
 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 784: Line 817:
 ==== 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; ​  //​Added 2.8.0 for Intelligent Slave Feature
 +
 typedef struct { typedef struct {
     uint32_t baudRate;     uint32_t baudRate;
Line 796: Line 838:
     uint8_t mode;     uint8_t mode;
     uint8_t numOfChannels;​     uint8_t numOfChannels;​
-    uint8_t reserved[2];​ +    uint8_t reserved[2]; ​ 
-    uint8_t reserved1[32];+    BS2IntelligentPDInfo intelligentInfo; ​ //Updated to v2.8.0 
 +    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]''​ If this value is 0, the device will ignore all settings related to Intelligent PD (Peripheral Device) below. \\ 
 +useExceptionCode \\ 
 +exceptionCode \\ 
 +outputFormat \\ 
 +osdpID \\ 
 + 
 +**2. //​useExceptionCode//​** \\  
 +''​[+V2.8]''​ This option is available to choose whether the exception code is sent or not. 
 + 
 +**3. //​exceptionCode//​** \\  
 +''​[+V2.8]''​ This function sends an exception code in case of authentication failure or authentication success but no card registered user.\\ 
 +Set the exception code to be used at this time.\\ 
 +If the exception code is 0 (0x0000000000000000),​ no exception code is generated.\\ 
 + 
 +**4. //​outputFormat//​** \\  
 +''​[+V2.8]''​ Intelligent Slave device can send Card ID or User ID upon successful authentication. ​ \\ 
 +If it is 0, the card ID is output, if it is 1, the user ID is output. \\ 
 + 
 +**5. //​osdpID//​** \\  
 +''​[+V2.8]''​ This is a value used to distinguish two or more Suprema Intelligent devices from each other when connecting to the RS485 port of the same third party controller. You can set and designate a unique value between 0 and 127. 
 +The default OSDP ID for Suprema intelligent devices is 0. 
 + 
 + 
 +**6. //​reserved//​** \\  
 +''​[+V2.8]''​ Reserved space.\\  
 + 
 + 
 +**7. //​baudRate//​** \\ 
 The RS-485 communication speed which can be configured as below. \\ The RS-485 communication speed which can be configured as below. \\
 <WRAP group 50%> <WRAP group 50%>
Line 811: Line 882:
 |115200 ​ | |115200 ​ |
 </​WRAP>​ </​WRAP>​
-**2. //​channelIndex//​** \\  +**8. //​channelIndex//​** \\  
-Communication channel index of the RS-485 network. \\ \\ +(non configurable index) ​Communication channel index of the RS-485 network. \\ \\ 
-**3. //​useRegistance//​** \\  +**9. //​useRegistance//​** \\  
-Decides whether to use a resistance. \\ \\ +Registance flag - no effect on operation. \\ \\ 
-**4. //​numOfDevices//​** \\ +**10. //​numOfDevices//​** \\ 
 Number of slave devices.\\ \\ Number of slave devices.\\ \\
-**5. //​slaveDevices//​** \\ +**11. //​reserved//​** \\  
 +Reserved space.\\ \\ 
 +**12. //​slaveDevices//​** \\ 
 List of slave devices, which can be configured up to 32 devices.\\ \\ List of slave devices, which can be configured up to 32 devices.\\ \\
-**6. //mode//** \\ +**13. //mode//** \\ 
 Decides the operating mode on the RS-485 network.\\ Decides the operating mode on the RS-485 network.\\
 <WRAP group 50%> <WRAP group 50%>
Line 828: Line 901:
 |3  |Standalone ​ | |3  |Standalone ​ |
 </​WRAP>​ </​WRAP>​
-**7. //​numOfChannels//​** \\ +**14. //​numOfChannels//​** \\ 
 Number of RS-485 channel.\\ \\  Number of RS-485 channel.\\ \\ 
-**8. //​reserved//​** \\ +**15. //​reserved//​** \\ 
 Reserved space.\\ \\  Reserved space.\\ \\ 
-**9. //​reserved1//​** \\  +**16. //​intelligentInfo//​** \\  
-Reserved space.\\ \\ +''​[+V2.8]''​ This is Intelligent Slave Device Information\\  
-**10. //​channels//​** \\ +This only works when the device mode is RS485 default.\\ 
 +Once the Suprema device is connected to a slave device to the 3rd party ACU through RS485(OSDP),​ the Suprema device becomes a Peripheral Device of the OSDP automatically.\\ 
 +**17. //​reserved1//​** \\  
 +Reserved space.\\ \\  
 +**18. //​channels//​** \\ 
 List of RS-485 channels, which can be configured up to 4 channels.\\ \\  List of RS-485 channels, which can be configured up to 4 channels.\\ \\ 
  
Line 860: Line 937:
     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 1008:
 **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 1421:
 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 1614: Line 1713:
 |1  |Outdoor ​ | |1  |Outdoor ​ |
 |2  |Automatic ​ | |2  |Automatic ​ |
 +|3  |[+V2.8] Not used ''​(FaceStation F2 v1.1.0 or higher version)'' ​ |
 </​WRAP>​ </​WRAP>​
 +[Note]\\
 +FaceStation F2: v1.0.0 - v1.0.5 \\
 +Ambient Brightness: Normal, High, ''​Auto''​ \\
 +FaceStation F2: v1.1.0 or higher version \\ 
 +Light Brightness: Normal, High, ''​Not Used''​ \\
 +
 **3. //​enrollThreshold//​** \\  **3. //​enrollThreshold//​** \\ 
 Threshold of face enrollment. It determines how much movement of pose is allowed when enrolling the face.  \\  Threshold of face enrollment. It determines how much movement of pose is allowed when enrolling the face.  \\ 
Line 1636: Line 1742:
 |0  |Off  | |0  |Off  |
 |1  |Low  | |1  |Low  |
-|2  |Basic  |+|2  |Medium ​ |
 |3  |High  | |3  |High  |
 </​WRAP>​ </​WRAP>​
Line 2016: Line 2122:
 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 ​ ^
 +Authentication before Temperature check or Mask detection check 
 +|0  |Check after authentication | Default ​ |
 +|1  |Check before authentication ​ |  |
 +|2  |No authentication,​ check only  |  |
 +</​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 \\ \\
 +
 +==== BS2BarcodeConfig ====
 +<code cpp>
 +typedef struct {
 +    uint8_t useBarcode;
 +    uint8_t scanTimeout;​
 +    uint8_t reserved[14];​
 +} BS2BarcodeConfig;​
 +</​code>​
 +1. //​useBarcode//​ \\ 
 +This is the flag for enabling Barcode or disabling Barcode. \\ \\ 
 +2. //​scanTimeout//​ \\ 
 +This is Timeout(second) setting for scanning Barcode. \\ 
 +Default second is 4 seconds. The time out can be set from 4 to 10 seconds. \\ \\
 +3. //​reserved//​ \\ 
 +Reserved space. \\