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
en:configuration_api [2025/03/18 09:29]
alex [BS2WiegandConfig]
en:configuration_api [2025/12/09 15:34] (current)
alex BS2FaceConfig lfdLevel 영문 수정
Line 92: Line 92:
   * [[BS2_GetCustomCardConfig]]:​ [+ 2.9.4] Retrieves Custom smart card settings.   * [[BS2_GetCustomCardConfig]]:​ [+ 2.9.4] Retrieves Custom smart card settings.
   * [[BS2_SetCustomCardConfig]]:​ [+ 2.9.4] Stores Custom smart card settings.   * [[BS2_SetCustomCardConfig]]:​ [+ 2.9.4] Stores Custom smart card settings.
 +  * [[BS2_GetMifareCardConfigEx]]:​ [+ 2.9.9] Gets the setting information used for AES128-encrypted Mifare cards on the device.
 +  * [[BS2_SetMifareCardConfigEx]]:​ [+ 2.9.9] Saves the setting information used for AES128-encrypted Mifare cards on the device.
 +  * [[BS2_GetFacilityCodeConfig]]:​ [+ 2.9.9] Gets the BS2FacilityCode used as an authentication code when the OSDP connection between the ''​Door Interface (DI-24)''​ and the master device is lost.
 +  * [[BS2_SetFacilityCodeConfig]]:​ [+ 2.9.9] Saves the BS2FacilityCode setting used as an authentication code when the OSDP connection between the ''​Door Interface (DI-24)''​ and the master device is lost.
 +  * [[BS2_GetRS485ConfigExDynamic]]:​ [+ 2.9.9] Gets the RS485 network setting information for ''​CoreStation''​.
 +  * [[BS2_SetRS485ConfigExDynamic]]:​ [+ 2.9.9] Saves the RS485 network setting information for ''​CoreStation''​.
 \\ \\
 ===== Structure ===== ===== Structure =====
Line 717: Line 723:
     uint8_t formatID;     uint8_t formatID;
     uint8_t cipher;     uint8_t cipher;
-    uint8_t reserved[24];+    ​uint8_t smartCardByteOrder;​ 
 +    ​uint8_t reserved[1]; 
 +    BS2_MIFARE_ENCRYPTION mifareEncType;​ 
 +uint8_t reserved[20];
 } BS2CardConfig;​ } BS2CardConfig;​
 </​code>​ </​code>​
Line 789: Line 798:
 |0  |Deactivate ​ | |0  |Deactivate ​ |
 |1  |Activate ​ | |1  |Activate ​ |
-**24. //reserved5//** \\ +**24. //smartCardByteOrder//​** \\ 
 +[+2.8.2] Previously, card information written to the data area of a smart card was fixed to the MSB format. \\ 
 +As a result, when integrating with certain controllers that use the LSB format, the byte information was reversed and output as a completely different value. \\ 
 +With the smartCardByteOrder value, you can now flexibly change the output to either MSB or LSB format. \\ 
 +<WRAP group 50%> 
 +^Value ​ ^Description ​ ^ 
 +|0  |MSB  | 
 +|1  |LSB  | 
 +</​WRAP>​ 
 +**25. //​reserved//​** \\  
 +Reserved space. \\ \\ 
 +**26. //​mifareEncType//​** \\  
 +[+2.9.9] Specifies the encryption method for Mifare cards. Mifare Classic cards support only CRYPTO1, while Mifare Plus cards support both CRYPTO1 and AES128. \\ 
 +When set to CRYPTO1, the Mifare settings of BS2MifareCard are applied. When set to AES128, the BS2MifareCardConfigEx settings, which can be configured using BS2_SetMifareCardConfigEx and BS2_GetMifareCardConfigEx,​ are applied. \\  
 +<WRAP group 50%> 
 +^Value ​ ^Description ​ ^ 
 +|0  |CRYPTO1 ​ | 
 +|1  |AES128 ​ | 
 +</​WRAP>​ 
 +**27. //reserved//** \\ 
 Reserved space. \\  ​ Reserved space. \\  ​
 </​WRAP>​ </​WRAP>​
Line 1861: Line 1889:
 <WRAP group 50%> <WRAP group 50%>
 ^Value ​ ^Description ​ ^ ^Value ​ ^Description ​ ^
-|0  |Not Use  | +|0  |Normal ​ | 
-|1  |Strict ​ | +|1  |Secure ​ | 
-|2  |More Strict ​ | +|2  |More Secure ​ | 
-|3  |Most Strict ​ |+|3  |Most Secure ​ |
 </​WRAP>​ </​WRAP>​
 **7. //​quickEnrollment//​** \\ **7. //​quickEnrollment//​** \\
Line 2624: Line 2652:
     uint8_t ​   numInputs;     uint8_t ​   numInputs;
     uint8_t ​   numSupervised;​     uint8_t ​   numSupervised;​
-    ​uint8_t ​   ​reserved[18];+    ​union { 
 +        uint16_t value; 
 +        struct { 
 +            uint16_t tamperAuxIndex : 4; 
 +            uint16_t acFailAuxIndex : 4; 
 +            uint16_t aux0Type : 1; 
 +            uint16_t aux1Type : 1; 
 +            uint16_t aux2Type : 1; 
 +            uint16_t reserved : 1; 
 +            uint16_t fireAuxIndex : 4; 
 +        } field; 
 +    } aux; 
 +    uint8_t ​    reserved[16];
  
     struct {     struct {
Line 2633: Line 2673:
         uint8_t ​   reserved;         uint8_t ​   reserved;
         uint8_t ​   supervisedResistor;​         uint8_t ​   supervisedResistor;​
-        ​uint8_t ​   reserved1[16];+        ​BS2SupervisedInputConfig ​ supervisedConfig;
     ​     ​
         uint8_t ​   reserved2[26];​         uint8_t ​   reserved2[26];​
Line 2645: Line 2685:
 2. //​​numSupervised//​​ \\ 2. //​​numSupervised//​​ \\
 Number of supervised input port. \\ \\ Number of supervised input port. \\ \\
-3. //​​reserved//​​ \\+3. //​tamperAuxIndex,​ acFailAuxIndex,​ fireAuxIndex//​ \\ 
 +[+2.9.9] Sets the Aux input. It is 4bit in size and CS-20, DI-24 are fixed and cannot be changed. \\ 
 +<WRAP group 50%> 
 +^Aux Name  ^Index ​ ^ 
 +|AC Fail  |0  | 
 +|TAMPER ​ |1  | 
 +|FIRE  |2  | 
 +</​WRAP>​  
 +4. //aux0Type, aux1Type, aux2Type// \\ 
 +[+2.9.9] Sets the Aux input signal type. \\ 
 +<WRAP group 50%> 
 +^Value ​ ^Description ​ ^ 
 +|0  |Normally Open  | 
 +|1  |Normally Closed ​ | 
 +</​WRAP>​ 
 +5. //​​reserved//​​ \\
 Reserved Space. \\ \\ Reserved Space. \\ \\
-4. //​​portIndex//​​ \\ +6. //​​portIndex//​​ \\ 
 Input Port Number. \\ \\ Input Port Number. \\ \\
-5. //​switchType//​ \\+7. //​switchType//​ \\
 Input Signal Type. \\  Input Signal Type. \\ 
 <WRAP group 50%> <WRAP group 50%>
Line 2656: Line 2711:
 |1  |Normally Closed ​ | |1  |Normally Closed ​ |
 </​WRAP> ​ </​WRAP> ​
-6. //​​duration//​​ \\ +8. //​​duration//​​ \\ 
 Input Signal Duration Time Measurement is milliseconds(ms). \\ \\ Input Signal Duration Time Measurement is milliseconds(ms). \\ \\
-7. //​​reserved//​​ \\+9. //​​reserved//​​ \\
 Reserved Space. \\ \\ Reserved Space. \\ \\
-8. //​​supervisedResistor//​​ \\+10. //​​supervisedResistor//​​ \\
 You can set Supervised input resistance value type or unsupervise it. \\ You can set Supervised input resistance value type or unsupervise it. \\
 <WRAP group 50%> <WRAP group 50%>
Line 2670: Line 2725:
 |254  |Unsupervised(Default) ​ | |254  |Unsupervised(Default) ​ |
 </​WRAP> ​ </​WRAP> ​
-9. //​reserved1//​ \\+11. //​reserved2//​ \\
 Reserved Space. \\ \\ Reserved Space. \\ \\
-10. //​​reserved2//​​ \\ +12. //​​reserved2//​​ \\
-Reserved Space. \\ \\ +
-11. //​​reserved2//​​ \\+
 Reserved Space. \\ \\ Reserved Space. \\ \\
     
Line 3273: Line 3326:
 ==== BS2CustomCardConfig ==== ==== BS2CustomCardConfig ====
 <code cpp> <code cpp>
 +typedef struct {
 + uint8_t primaryKey[16];​
 + uint8_t secondaryKey[16];​
 + uint16_t startBlockIndex;​
 + uint8_t dataSize;
 + uint8_t skipBytes;
 + uint8_t reserved[16];​
 +} BS2CustomMifareCardEx;​
 +
 typedef struct { typedef struct {
  BS2_CARD_DATA_TYPE dataType;  BS2_CARD_DATA_TYPE dataType;
Line 3280: Line 3342:
  BS2CustomMifareCard mifare;  BS2CustomMifareCard mifare;
  BS2CustomDesFireCard desfire;  BS2CustomDesFireCard desfire;
- uint8_t reserved2[24]+ BS2CustomMifareCardEx mifareEx; 
- uint8_t reserved3[96];+ BS2_MIFARE_ENCRYPTION mifareEncType
 + uint8_t reserved3[67]; 
  
  BS2_CARD_BYTE_ORDER smartCardByteOrder;​  BS2_CARD_BYTE_ORDER smartCardByteOrder;​
Line 3289: Line 3352:
 } BS2CustomCardConfig;​ } BS2CustomCardConfig;​
 </​code>​ </​code>​
-1. //​dataType//​ \\ +1. //​primaryKey//​ \\ 
 +The first encryption key for accessing Mifare card information. \\ \\ 
 +2. //​secondaryKey//​ \\ 
 +The second encryption key for accessing Mifare card information. \\ \\ 
 +3. //​startBlockIndex//​ \\ 
 +The start block index in Mifare data storage. \\ \\ 
 +4. //​datasize//​ \\ 
 +Indicates the size of the card data in bytes. \\ \\ 
 +5. //​skipBytes//​ \\ 
 +Indicates the position where the card data appears. \\ 
 +Indicates the starting point for reading the card data. If reading from the beginning, it is 0; if reading after the first byte, it indicates the number of bytes skipped. \\ \\ 
 +6. //​reserved//​ \\ 
 +Reserved space. \\ \\ 
 + 
 +7. //​dataType//​ \\ 
 Type of card data. \\  Type of card data. \\ 
 <WRAP group 50%> <WRAP group 50%>
Line 3298: Line 3375:
 |3  |BCD  | |3  |BCD  |
 </​WRAP>​ </​WRAP>​
-2. //​useSecondaryKey//​ \\ +8. //​useSecondaryKey//​ \\ 
 Decides whether to use the secondary encryption key. \\ \\  Decides whether to use the secondary encryption key. \\ \\ 
-3. //​reserved1//​ \\ +9. //​reserved1//​ \\ 
 Reserved space. \\ \\  Reserved space. \\ \\ 
-4. //mifare// \\ +10. //mifare// \\ 
 Set the Mifare custom card information. \\ \\  Set the Mifare custom card information. \\ \\ 
-5. //desfire// \\ +11. //desfire// \\ 
 Set the DESFire custom card information. \\ \\  Set the DESFire custom card information. \\ \\ 
-6. //reserved2// \\ +12. //mifareEx// \\ 
 +[+2.9.9] Saves the setting information used for AES128-encrypted Mifare Custom cards on the device. \\ \\ 
 +13. //​mifareEncType//​ \\ 
 +[+2.9.9] Specifies the encryption method for Mifare Custom cards. Mifare Classic cards support only CRYPTO1, while Mifare Plus cards support both CRYPTO1 and AES128. \\ 
 +When set to CRYPTO1, the Mifare settings of BS2CustomMifareCard are applied. When set to AES128, applied to mifareEx settings of BS2CustomMifareConfigEx. \\  
 +<WRAP group 50%> 
 +^Value ​ ^Description ​ ^ 
 +|0  |CRYPTO1 ​ | 
 +|1  |AES128 ​ | 
 +</​WRAP>​ 
 +14. //reserved3// \\ 
 Reserved space. \\ \\  Reserved space. \\ \\ 
-7. //​reserved3//​ \\  +15. //​smartCardByteOrder//​ \\
-Reserved space. \\ \\  +
-8. //​smartCardByteOrder//​ \\+
 The output method can be selected from MSB or LSB. \\ The output method can be selected from MSB or LSB. \\
 <WRAP group 50%> <WRAP group 50%>
Line 3317: Line 3402:
 |1  |LSB  | |1  |LSB  |
 </​WRAP>​ </​WRAP>​
-9. //​reserved4//​ \\ +16. //​reserved4//​ \\ 
 Reserved space. \\ \\ Reserved space. \\ \\
-10. //​formatID//​ \\ +17. //​formatID//​ \\ 
 This is an identifier that can be used when the BioStar 2 application needs to manage the card configuration as a database. \\ \\  This is an identifier that can be used when the BioStar 2 application needs to manage the card configuration as a database. \\ \\ 
-11. //​reserved5//​ \\ +18. //reserved5// \\  
 +Reserved space. \\ \\ 
 + 
 +==== BS2MifareCardConfigEx ==== 
 +<code cpp> 
 +typedef struct { 
 +    uint8_t primaryKey[16];​ 
 +    uint8_t secondaryKey[16];​ 
 +    uint16_t startBlockIndex;​ 
 +    uint8_t reserved[14];​ 
 +} BS2MifareCardEx;​  
 + 
 +typedef struct { 
 +    BS2MifareCardEx mifareEx; 
 +    uint8_t reserved[16];​ 
 +} BS2MifareCardConfigEx;​ 
 +</​code>​ 
 +1. //​primaryKey//​ \\  
 +This is the first encryption key for accessing Mifare card information. \\ 
 +\\ 
 +2. //​secondaryKey//​ \\ 
 +This is the second encryption key for accessing Mifare card information. \\ 
 +\\ 
 +3. //​startBlockIndex//​ \\ 
 +This is the start block index in Mifare data storage. \\ 
 +\\ 
 +4. //​reserved//​ \\ 
 +Reserved space. 
 + 
 +==== BS2FacilityCodeConfig ==== 
 +<code cpp> 
 +typedef struct{ 
 +    uint8_t code[4];  
 +} BS2FacilityCode;​  
 + 
 +typedef struct{ 
 +        uint8_t numFacilityCode;​ 
 +        uint8_t reserved0[3];​ 
 +        BS2FacilityCode facilityCodes[16];​  
 +        uint8_t reserved1[128];​  
 +} BS2FacilityCodeConfig;​ 
 +</​code>​ 
 +1. //​numFacilityCode//​ \\ 
 +Set the number of FacilityCode to set. Up to 16 are supported. \\ \\ 
 +2. //​reserved0//​ \\ 
 +Reserved space. \\ \\ 
 +3. //​BS2FacilityCode//​ \\ 
 +Used as an authentication code when the OSDP connection between the Door Interface (DI-24) and the master device is lost. \\ \\ 
 +4. //​reserved1//​ \\ 
 +Reserved space. \\ \\ 
 + 
 +==== BS2Rs485ConfigEXDynamic ==== 
 +<code cpp> 
 +typedef struct { 
 +    uint32_t ​       deviceID; ​      ///<​  
 +    uint16_t ​       deviceType; ​    ///<​ 2 bytes 
 +    uint8_t ​        ​enableOSDP; ​    ///<​ 1 byte 
 +    uint8_t ​        ​connected; ​     ///< 1 bytes (packing) 
 + 
 +    union { 
 +            uint8_t ​        ​channelInfo;​ 
 +            uint32_t ​       parentID; 
 +    }; 
 +} BS2Rs485SlaveDeviceEX;​ 
 + 
 +typedef struct { 
 +    uint32_t ​               baudRate; 
 +    uint8_t ​                ​channelIndex;​ 
 +    uint8_t ​                ​useRegistance;​ 
 +    uint8_t ​                ​numOfDevices;​ 
 +    uint8_t ​                ​channelType;​ 
 +    BS2Rs485SlaveDeviceEX ​ *slaveDevices;​ 
 +} BS2Rs485ChannelEXDynamic;​ 
 + 
 +typedef struct { 
 +    BS2_RS485_MODE mode[8]; 
 +    uint16_t numOfChannels;​ 
 +    uint8_t reserved[2];​ 
 +    uint8_t reserved1[32];​ 
 +    BS2Rs485ChannelEXDynamic channels[8];​ 
 +} BS2Rs485ConfigEXDynamic;​ 
 +</​code>​ 
 +<WRAP info> 
 +All values ​​except baudRate are read-only and cannot be changed. \\ 
 +''​Supported devices:'':​ CoreStation 20(CS-20, CS-20P), Door Interface(DI-24) 
 +</​WRAP>​ 
 +1. //​baudRate//​ \\  
 +The RS-485 communication speed which can be configured as below. \\ 
 +<WRAP group 50%> 
 +^Value ​ ^ 
 +|9600  | 
 +|19200 ​ | 
 +|38400 ​ | 
 +|57600 ​ | 
 +|115200 ​ | 
 +</​WRAP>​ 
 +2. //​channelIndex//​ \\  
 +Communication channel index of the RS-485 network. \\ \\ 
 +3. //​useRegistance//​ \\  
 +Decides whether to use a resistance. \\ \\ 
 +4. //​numOfDevices//​ \\  
 +Number of slave devices. \\ \\ 
 +5. //​channelType//​ \\ 
 +Type of slave device connected to the port. \\ 
 +<WRAP group 50%> 
 +^Value ​ ^Description ​ ^ 
 +|0  |No connection ​ | 
 +|1  |Suprema device ​ | 
 +|2  |OSDP standard device ​ | 
 +|3  |Cannot connect anymore ​ | 
 +</​WRAP>​ 
 +6. //​slaveDevices//​ \\  
 +List of slave devices connected to the device. \\ 
 +<WRAP group 50%> 
 +Maximum Number of Devices Connectable per Port 
 +|Host port  |16  | 
 +|Port 0  |2  | 
 +|Port 1  |2  | 
 +</​WRAP>​ 
 +7. //mode// \\  
 +This flag determines the operating mode on the RS485 network. \\ 
 +<WRAP group 50%> 
 +^Value ​ ^Description ​ ^ 
 +|1  |Master ​ | 
 +|2  |Slave ​ | 
 +|3  |Standalone ​ | 
 +</​WRAP>​ 
 +<WRAP info> 
 +CoreStation can only be used as a Master. Other values cannot be configured. 
 +</​WRAP>​ 
 +8. //​numOfChannels//​ \\  
 +Number of RS485 channel. \\ \\  
 +9. //​reserved//​ \\  
 +Reserved space. \\ \\  
 +10. //reserved1// \\ 
 Reserved space. \\ \\ Reserved space. \\ \\
 +11. //​channels//​ \\ 
 +List of RS-485 channels, which can be configured up to 8 channels. \\ \\