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 [2024/10/24 14:56] 127.0.0.1 external edit |
en:configuration_api [2025/06/13 10:43] (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 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 1065: | Line 1093: | ||
| Input mask for the wiegand input of the master device. \\ \\ | Input mask for the wiegand input of the master device. \\ \\ | ||
| **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. Only one index can be set to this field. |
| + | \\ \\ | ||
| **17. //useWiegandUserID//** \\ | **17. //useWiegandUserID//** \\ | ||
| The flag you can select whether card ID or user ID to be sent via Wiegand output. \\ | The flag you can select whether card ID or user ID to be sent via Wiegand output. \\ | ||
| Line 2623: | 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 2632: | 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 2644: | 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 2655: | 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 2669: | 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 3272: | 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 3279: | 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 3288: | 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 3297: | 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 3316: | 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. \\ \\ | ||