Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
en:configuration_api [2025/03/18 09:29] alex [BS2WiegandConfig] |
en:configuration_api [2026/03/11 16:04] (current) |
||
|---|---|---|---|
| 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 161: | Line 167: | ||
| bool reserved0; // (write protected) | bool reserved0; // (write protected) | ||
| uint8_t reserved[2]; | uint8_t reserved[2]; | ||
| - | uint32_t useCardOperationMask; | + | uint32_t useCardOperationMask; ///< 4 bytes (bitmask , no use 0 position bit - 0~30 bit, valid data - 31 bit) |
| - | uint8_t reserved2[16]; | + | uint8_t reserved1[6]; ///< 6 bytes |
| + | BS2_BOOL adminTwoStepAuth; ///< 1 byte , BDP-788 | ||
| + | uint8_t reserved2[9]; ///< 8 bytes (reserved) | ||
| } BS2SystemConfig; | } BS2SystemConfig; | ||
| </code> | </code> | ||
| Line 224: | Line 232: | ||
| |0x00000001 |CARD_OPERATION_MASK_EM | | |0x00000001 |CARD_OPERATION_MASK_EM | | ||
| </WRAP> | </WRAP> | ||
| - | **16. //reserved2//** \\ | + | **16. //reserved1//** \\ |
| + | Reserved space. \\ \\ | ||
| + | **17. //adminTwoStepAuth//** \\ | ||
| + | Indicates whether to perform two-step master admin authentication. \\ | ||
| + | In compliance with CE RED (Radio Equipment Directive) regulations, modification of this value is restricted for devices supporting the Master Admin feature (refer to the table below). \\ | ||
| + | For devices that do not support this feature, changes are permitted only after a firmware upgrade. \\ | ||
| + | When set to false, one-step authentication is performed. It is not affected by BS2AuthConfig or BS2AuthConfigEx, which are regular user authentication settings, and authentication proceeds using only the credential information assigned to the master admin. \\ | ||
| + | When set to true, two-step authentication is performed. If only one-step authentication is possible due to insufficient credentials enrolled on the device or other reasons, it may be treated as authentication failure. \\ \\ | ||
| + | **18. //reserved2//** \\ | ||
| Reserved space. \\ \\ | Reserved space. \\ \\ | ||
| Line 717: | Line 733: | ||
| 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 808: | ||
| |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 2553: | Line 2591: | ||
| <code cpp> | <code cpp> | ||
| typedef struct { | typedef struct { | ||
| - | uint8_t useBarcode; | + | BS2_BOOL useBarcode; |
| - | uint8_t scanTimeout; | + | BS2_BARCODE_TIMEOUT scanTimeout; |
| - | uint8_t bypassData; | + | BS2_BOOL bypassData; |
| - | uint8_t treatAsCSN; | + | BS2_BOOL treatAsCSN; |
| - | uint8_t useVisualBarcode; | + | BS2_BOOL useVisualBarcode; |
| - | uint8_t motionSensitivity; | + | BS2_MOTION_SENSITIVITY motionSensitivity; |
| - | uint8_t visualCameraScanTimeout; | + | BS2_VISUAL_BARCODE_TIMEOUT visualCameraScanTimeout; |
| - | uint8_t reserved[9]; | + | BS2_BOOL useQRDetectGuideLed; //BDP-1252, Q2 only |
| + | uint8_t reserved[8]; | ||
| } BS2BarcodeConfig; | } BS2BarcodeConfig; | ||
| </code> | </code> | ||
| Line 2616: | Line 2655: | ||
| |20 |BS2_VISUAL_BARCODE_TIMEOUT_MAX |Max Value | | |20 |BS2_VISUAL_BARCODE_TIMEOUT_MAX |Max Value | | ||
| </WRAP> | </WRAP> | ||
| - | 8. //reserved// \\ | + | 8. //useQRDetectGuideLed// \\ |
| + | [+ 2.9.12] Sets whether to display guidelines (outlines) on the ''XPass Q2'' screen to assist with QR code recognition. \\ \\ | ||
| + | 9. //reserved// \\ | ||
| Reserved Space. \\ \\ | Reserved Space. \\ \\ | ||
| Line 2624: | Line 2665: | ||
| 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 2686: | ||
| 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 2698: | ||
| 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 2724: | ||
| |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 2738: | ||
| |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 3339: | ||
| ==== 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 3355: | ||
| 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 3365: | ||
| } 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 3388: | ||
| |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 3415: | ||
| |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. \\ \\ | ||