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 [2019/05/28 11:51]
yjjung [BS2SystemConfig]
en:configuration_api [2020/02/25 08:29]
kkshin [BS2SystemConfig]
Line 57: Line 57:
   * [[BS2_GetCardConfigEx]]:​ Retrieves iClass SEOS card settings from the device.   * [[BS2_GetCardConfigEx]]:​ Retrieves iClass SEOS card settings from the device.
   * [[BS2_SetCardConfigEx]]:​ Stores iClass SEOS card settings on the device.  ​   * [[BS2_SetCardConfigEx]]:​ Stores iClass SEOS card settings on the device.  ​
-  * [[BS2_GetDstConfig]]:​​ ​Gets the device DST information. +  * [[BS2_GetDstConfig]]:​​ ​Retrieves ​the device DST information. 
-  * [[BS2_SetDstConfig]]:​​ ​Sets the device DST information. +  * [[BS2_SetDstConfig]]:​​ ​Stores ​the device DST information
-  * [[BS2_GetIPConfigViaUDPEx]]:​ [+ 2.6.3] IP 설정 정보를 ​UDP broadcasting를 통해 가져옵니다. (host ip 지정) +  * [[BS2_GetSupportedConfigMask]]:​ Retrieves supported configuration of the device
-  * [[BS2_SetIPConfigViaUDPEx]]:​ [+ 2.6.3] IP 설정 정보를 ​UDP broadcasting를 통해 저장합니다. (host ip 지정) +  * [[BS2_GetIPConfigViaUDPEx]]:​ [+ 2.6.3] ​Retrieves ​IP configuration through ​UDP broadcast with host IP.  
-  * [[BS2_GetIPV6Config]]:​ [+ 2.6.3] ​IP V6 설정 정보를 가져옵니다+  * [[BS2_SetIPConfigViaUDPEx]]:​ [+ 2.6.3] ​Stores ​IP configuration through ​UDP broadcast with host IP.  
-  * [[BS2_SetIPV6Config]]:​ [+ 2.6.3] ​IP V6 설정 정보를 저장합니다+  * [[BS2_GetIPV6Config]]:​ [+ 2.6.3] ​Retrieves IPv6 configuration information.  
-  * [[BS2_GetIPV6ConfigViaUDP]]:​ [+ 2.6.3] ​IP V6 설정 정보를 ​UDP broadcasting를 통해 가져옵니다+  * [[BS2_SetIPV6Config]]:​ [+ 2.6.3] ​Stores IPv6 configuration information
-  * [[BS2_SetIPV6ConfigViaUDP]]:​ [+ 2.6.3] ​IP V6 설정 정보를 ​UDP broadcasting를 통해 저장합니다+  * [[BS2_GetIPV6ConfigViaUDP]]:​ [+ 2.6.3] ​Retrieves IPv6 configuration through ​UDP broadcast
-  * [[BS2_GetIPV6ConfigViaUDPEx]]:​ [+ 2.6.3] ​IP V6 설정 정보를 ​UDP broadcasting를 통해 가져옵니다. (host ip 지정) +  * [[BS2_SetIPV6ConfigViaUDP]]:​ [+ 2.6.3] ​Stores IPv6 configuration through ​UDP broadcast
-  * [[BS2_SetIPV6ConfigViaUDPEx]]:​ [+ 2.6.3] ​IP V6 설정 정보를 ​UDP broadcasting를 통해 저장합니다. (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_GetDesFireCardConfigEx]]:​ [+ V2.6.4] Retrieves DesFire advanced configuration from the device. 
 +  * [[BS2_SetDesFireCardConfigEx]]:​ [+ V2.6.4] Sets DesFire advanced configuration in the device.
 \\ \\
 ===== Structure ===== ===== Structure =====
Line 120: Line 123:
  
 ==== 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 135: Line 137:
     uint32_t cameraFrequency; ​     uint32_t cameraFrequency; ​
     bool secureTamper;​​ ​     bool secureTamper;​​ ​
-private:  ​ 
     bool reserved0; ​    // (write protected)     bool reserved0; ​    // (write protected)
-    ​bool gdprSupport;​ +    uint8_t reserved[2]
-    ​uint8_t reserved[1]; +    uint32_t useCardOperationMask
-    uint8_t ​reserved2[20];     +    uint8_t ​reserved2[16];     
 } BS2SystemConfig;​ } BS2SystemConfig;​
 </​code>​ </​code>​
Line 173: Line 174:
 Flag to determine whether to use a security tamper. \\ Flag to determine whether to use a security tamper. \\
 When Tamper on, the following data is deleted from the device. (User, log, data encryption key, SSL certificate) \\ \\ When Tamper on, the following data is deleted from the device. (User, log, data encryption key, SSL certificate) \\ \\
-**13. //tamperOn//​** \\  +**13. //reserved0//** \\ 
-The information to manage the tampering internally, which should not be set. \\ +
-Be sure to call [[BS2_SetSystemConfig]] after completing the necessary settings except for tamperOn after [[BS2_GetSystemConfig]]. \\ \\ +
-**14. //reserved1//** \\ +
 Reserved space. \\ \\  Reserved space. \\ \\ 
-**15. //​reserved2//​** \\ +**14. //​reserved//​** \\  
 +Reserved space. \\ \\  
 +**15. //​useCardOperationMask//​** \\ 
 +[+ 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. \\ 
 +However, it can be applied to the card types the device supporting. If you add a card type which isn't supported from the device would be ignored. \\ 
 +Also, the required card type MASK should be combined with ''​CARD_OPERATION_USE''​. \\ 
 +For example, useCardOperationMask needs to be configured ''​x0x80000001''​ when EM card is selected only. 
 +<WRAP group 50%> 
 +^Value ​ ^Description ^ 
 +|0xFFFFFFFF ​ |CARD_OPERATION_MASK_DEFAULT ​ | 
 +|0x80000000 ​ |CARD_OPERATION_USE ​ | 
 +|0x00000200 ​ |CARD_OPERATION_MASK_BLE ​ | 
 +|0x00000100 ​ |CARD_OPERATION_MASK_NFC ​ | 
 +|0x00000080 ​ |CARD_OPERATION_MASK_SEOS ​ | 
 +|0x00000040 ​ |CARD_OPERATION_MASK_SR_SE ​ | 
 +|0x00000020 ​ |CARD_OPERATION_MASK_DESFIRE_EV1 ​ | 
 +|0x00000010 ​ |CARD_OPERATION_MASK_CLASSIC_PLUS ​ | 
 +|0x00000008 ​ |CARD_OPERATION_MASK_ICLASS ​ | 
 +|0x00000004 ​ |CARD_OPERATION_MASK_MIFARE_FELICA ​ | 
 +|0x00000002 ​ |CARD_OPERATION_MASK_HIDPROX ​ | 
 +|0x00000001 ​ |CARD_OPERATION_MASK_EM ​ | 
 +</​WRAP>​ 
 +**16. //​reserved2//​** \\ 
 Reserved space. \\ \\  Reserved space. \\ \\ 
  
Line 242: Line 263:
 **7. //​faceDetectionLevel//​** \\  **7. //​faceDetectionLevel//​** \\ 
 Level of face detection in user authentication. If the detected face level is lower than the configuration,​ it will be processed as authentication fail.\\ Level of face detection in user authentication. If the detected face level is lower than the configuration,​ it will be processed as authentication fail.\\
 +When set, the camera view according to Normal/​Strict is displayed, access is denied if the device doesn'​t recognize facial image through image log. Default is 0. 
 <WRAP group 50%> <WRAP group 50%>
 ^Value ​ ^Description ​ ^ ^Value ​ ^Description ​ ^
Line 249: Line 271:
 </​WRAP>​ </​WRAP>​
 <WRAP info> <WRAP info>
-Only valid for devices ​with a camera.+Only valid for A2. Not used with FaceStation2 or FaceLite.
 </​WRAP>​ </​WRAP>​
 **8. //​useServerMatching//​** \\  **8. //​useServerMatching//​** \\ 
Line 581: Line 603:
     uint8_t fileID;     uint8_t fileID;
     uint8_t encryptionType;​     uint8_t encryptionType;​
-    uint8_t reserved[3];+    ​uint8_t operationMode;​ 
 +    ​uint8_t reserved[2];
 } BS2DesFireCard;​ } BS2DesFireCard;​
  
Line 627: Line 650:
 File ID that is stored inside the DesFire card, which will be used by the application to read and write data.\\ \\  File ID that is stored inside the DesFire card, which will be used by the application to read and write data.\\ \\ 
 **15. //​encryptionType//​** \\  **15. //​encryptionType//​** \\ 
-Type of data encryption. AES will be supported soon.\\ +Type of data encryption.\\ ​
 <WRAP group 50%> <WRAP group 50%>
 ^Value ​ ^Description ​ ^ ^Value ​ ^Description ​ ^
Line 633: Line 656:
 |1  |AES  | |1  |AES  |
 </​WRAP>​ </​WRAP>​
-**16. //​reserved//​** \\ +**16. //​operationMode//​** \\  
 +Operation mode. (operationMode will be supported soon.)\\  
 +<WRAP group 50%> 
 +^Value ​ ^Description ​ ^ 
 +|0  |Lagacy mode (Using PICC master key)  | 
 +|1  |New mode (Using App master key)  | 
 +</​WRAP>​ 
 +**17. //​reserved//​** \\ 
 Reserved space.\\ \\  Reserved space.\\ \\ 
-**17. //​byteOrder//​** \\ +**18. //​byteOrder//​** \\ 
 Order of how the byte of the card is stored. When it is set as 0, will function as MSB((Most Significant Bit)). When it is set as 1, will function as LSB((Least Significant Bit)). \\ \\  Order of how the byte of the card is stored. When it is set as 0, will function as MSB((Most Significant Bit)). When it is set as 1, will function as LSB((Least Significant Bit)). \\ \\ 
-**18. //​useWiegandFormat//​** \\ +**19. //​useWiegandFormat//​** \\ 
 Decides whether to use Wiegand format.\\ \\  Decides whether to use Wiegand format.\\ \\ 
-**19. //​dataType//​** \\ +**20. //​dataType//​** \\ 
 Type of card data. \\  Type of card data. \\ 
 <WRAP group 50%> <WRAP group 50%>
Line 648: Line 678:
 |3  |BCD  | |3  |BCD  |
 </​WRAP>​ </​WRAP>​
-**20. //​useSecondaryKey//​** \\ +**21. //​useSecondaryKey//​** \\ 
 Decides whether to use the secondary encryption key. \\ \\  Decides whether to use the secondary encryption key. \\ \\ 
-**21. //​formatID//​** \\ +**22. //​formatID//​** \\ 
 ID that is used when the card configuration needs to be managed from the database on the BioStar application.\\ \\  ID that is used when the card configuration needs to be managed from the database on the BioStar application.\\ \\ 
-**22. //​cipher//​** \\+**23. //​cipher//​** \\
 Activates '​Keypad card ID' option. \\ Activates '​Keypad card ID' option. \\
 Default value is 0, it is only valid for XPass D2 Gangbox Keypad type. \\ Default value is 0, it is only valid for XPass D2 Gangbox Keypad type. \\
Line 659: Line 689:
 |0  |Deactivate ​ | |0  |Deactivate ​ |
 |1  |Activate ​ | |1  |Activate ​ |
-**23. //​reserved5//​** \\ +**24. //​reserved5//​** \\ 
 Reserved space. \\  ​ Reserved space. \\  ​
 +</​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 727: Line 760:
 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 735: Line 768:
 |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 1525: Line 1560:
 <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 ​      ​reserved[2];​ 
 + 
 +    uint8_t ​      ​reserved2[26];
 } 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 1542: Line 1584:
 |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 1550: Line 1592:
 |2  |Automatic ​ | |2  |Automatic ​ |
 </​WRAP>​ </​WRAP>​
-3. //​enrollThreshold//​ \\ +**3. //​enrollThreshold//​** \\ 
 Threshold of face enrollment.\\ ​ Threshold of face enrollment.\\ ​
 <WRAP group 50%> <WRAP group 50%>
Line 1565: Line 1607:
 |9  |THRESHOLD_9 ​ | |9  |THRESHOLD_9 ​ |
 </​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 1574: Line 1616:
 |3  |High  | |3  |High  |
 </​WRAP>​ </​WRAP>​
-5. //​enrollTimeout//​ \\ +**5. //​enrollTimeout//​** \\ 
 Timeout period of face scanning which is 60 seconds by default.\\ \\ Timeout period of face scanning which is 60 seconds by default.\\ \\
-6. //reserved3// \\  +**6. //lfdLevel//** \\ 
-Reserved space.\\ \\ +[+ V2.6.3] Configuration for the LFD(Live Face Detection - fake face detection) sensitivity. \\ 
 +<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 rpcoess 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 face. \\ 
 +Only used to ''​FaceLite''​. \\ 
 +<WRAP group 50%> 
 +^Value ​ ^Description ​ ^ 
 +|0  |Preview not used  | 
 +|1  |Preview not used at frist 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. //​reserved//​** ​\\  
 +Reserved space. \\ \\ 
 +**11. //​reserved2//​** \\  
 +Reserved space. \\ \\
 ==== BS2Rs485ConfigEX ==== ==== BS2Rs485ConfigEX ====
 <code cpp> <code cpp>
Line 1795: Line 1863:
 |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. \\