차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
|
ko:configuration_api [2025/06/10 15:02] mwkim |
ko:configuration_api [2025/06/13 09:37] (현재) mwkim [BS2Rs485ConfigEXDynamic] |
||
|---|---|---|---|
| 줄 94: | 줄 94: | ||
| * [[BS2_GetMifareCardConfigEx]]: [+ 2.9.9] 장치의 Mifare 카드 중 AES128 암호화 된 카드에 사용되는 설정 정보를 가져옵니다. | * [[BS2_GetMifareCardConfigEx]]: [+ 2.9.9] 장치의 Mifare 카드 중 AES128 암호화 된 카드에 사용되는 설정 정보를 가져옵니다. | ||
| * [[BS2_SetMifareCardConfigEx]]: [+ 2.9.9] 장치의 Mifare 카드 중 AES128 암호화 된 카드에 사용되는 설정 정보를 저장합니다. | * [[BS2_SetMifareCardConfigEx]]: [+ 2.9.9] 장치의 Mifare 카드 중 AES128 암호화 된 카드에 사용되는 설정 정보를 저장합니다. | ||
| + | * [[BS2_GetFacilityCodeConfig]]: [+ 2.9.9] ''Door Interface(DI-24)''와 마스터 장치의 OSDP 연결이 끊어진 경우 인증코드로 사용되는 BS2FacilityCode를 가져옵니다. | ||
| + | * [[BS2_SetFacilityCodeConfig]]: [+ 2.9.9] ''Door Interface(DI-24)''와 마스터 장치의 OSDP 연결이 끊어진 경우 인증코드로 사용되는 BS2FacilityCode 설정을 저장합니다. | ||
| + | * [[BS2_GetRS485ConfigExDynamic]]: [+ 2.9.9] ''CoreStation''일 경우 RS485 네트워크 설정 정보를 가져옵니다. | ||
| + | * [[BS2_SetRS485ConfigExDynamic]]: [+ 2.9.9] ''CoreStation''일 경우 RS485 네트워크 설정 정보를 저장합니다. | ||
| ===== 구조체 ===== | ===== 구조체 ===== | ||
| ==== BS2FactoryConfig ==== | ==== BS2FactoryConfig ==== | ||
| 줄 711: | 줄 715: | ||
| uint8_t smartCardByteOrder; | uint8_t smartCardByteOrder; | ||
| uint8_t reserved[1]; | uint8_t reserved[1]; | ||
| - | BS2_MIFARE_ENCRYPTION mifareEncType; | + | uint8_t mifareEncType; |
| - | uint8_t reserved[20]; | + | uint8_t reserved[20]; |
| } BS2CardConfig; | } BS2CardConfig; | ||
| </code> | </code> | ||
| 줄 796: | 줄 800: | ||
| 예약된 공간입니다. \\ | 예약된 공간입니다. \\ | ||
| 26. //mifareEncType// \\ | 26. //mifareEncType// \\ | ||
| - | [+2.9.9] Mifare Card의 암호화 방식을 지정합니다. Mifare Classic 카드는 CRYPTO1만 지원하며, Mifare Plus 카드는 CRYPTO1과 AES128 모두 지원합니다. \\ | + | [+2.9.9] Mifare Card의 암호화 방식을 지정합니다. Mifare Classic 카드는 CRYPTO1만 지원하며, \\ |
| - | CRYPTO1으로 설정하면 BS2MifareCard의 Mifare 설정이 적용되고, AES128로 설정하면 BS2_SetMifareCardConfigEx 및 BS2_GetMifareCardConfigEx를 통해 설정할 수 있는 BS2MifareCardConfigEx 설정이 적용됩니다. \\ | + | Mifare Plus 카드는 CRYPTO1과 AES128 모두 지원합니다. \\ |
| + | CRYPTO1으로 설정하면 BS2MifareCard의 Mifare 설정이 적용되고, AES128로 설정하면 \\ | ||
| + | BS2_SetMifareCardConfigEx 및 BS2_GetMifareCardConfigEx를 통해 설정할 수 있는 \\ | ||
| + | BS2MifareCardConfigEx 설정이 적용됩니다. \\ | ||
| <WRAP group 50%> | <WRAP group 50%> | ||
| ^값 ^설명 ^ | ^값 ^설명 ^ | ||
| 줄 2605: | 줄 2612: | ||
| 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 { | ||
| 줄 2614: | 줄 2633: | ||
| 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]; | ||
| 줄 2626: | 줄 2645: | ||
| 2. //numSupervised// \\ | 2. //numSupervised// \\ | ||
| supervised input 포트의 개수입니다. \\ \\ | supervised input 포트의 개수입니다. \\ \\ | ||
| - | 3. //reserved// \\ | + | 3. //tamperAuxIndex, acFailAuxIndex, fireAuxIndex// \\ |
| + | [+2.9.9] Aux 입력을 설정합니다. 4bit 크기이며 CS20, DI24는 고정되어 있고 변경할 수 없습니다. \\ | ||
| + | <WRAP group 50%> | ||
| + | ^Aux이름 ^인덱스 ^ | ||
| + | |AC Fail |0 | | ||
| + | |TAMPER |1 | | ||
| + | |FIRE |2 | | ||
| + | </WRAP> | ||
| + | 4. //aux0Type, aux1Type, aux2Type// \\ | ||
| + | [+2.9.9] Aux 입력 신호 유형을 설정합니다. \\ | ||
| + | <WRAP group 50%> | ||
| + | ^값 ^설명 ^ | ||
| + | |0 |Normally Open | | ||
| + | |1 |Normally Closed | | ||
| + | </WRAP> | ||
| + | 5. //reserved// \\ | ||
| 예약된 공간입니다. \\ \\ | 예약된 공간입니다. \\ \\ | ||
| - | 4. //portIndex// \\ | + | 6. //portIndex// \\ |
| Input 포트 번호입니다. \\ \\ | Input 포트 번호입니다. \\ \\ | ||
| - | 5. //switchType// \\ | + | 7. //switchType// \\ |
| Input 신호 유형입니다. \\ | Input 신호 유형입니다. \\ | ||
| <WRAP group 50%> | <WRAP group 50%> | ||
| 줄 2637: | 줄 2671: | ||
| |1 |Normally Closed | | |1 |Normally Closed | | ||
| </WRAP> | </WRAP> | ||
| - | 6. //duration// \\ | + | 8. //duration// \\ |
| Input 신호의 지속시간으로 단위는 밀리초(ms)입니다. \\ \\ | Input 신호의 지속시간으로 단위는 밀리초(ms)입니다. \\ \\ | ||
| - | 7. //reserved// \\ | + | 9. //reserved// \\ |
| 예약된 공간입니다. \\ \\ | 예약된 공간입니다. \\ \\ | ||
| - | 8. //supervisedResistor// \\ | + | 10. //supervisedResistor// \\ |
| Supervised input 저항 값의 유형을 설정하거나, 해제할 수(unsupervised) 있습니다. \\ | Supervised input 저항 값의 유형을 설정하거나, 해제할 수(unsupervised) 있습니다. \\ | ||
| <WRAP group 50%> | <WRAP group 50%> | ||
| 줄 2651: | 줄 2685: | ||
| |254 |Unsupervised(기본값) | | |254 |Unsupervised(기본값) | | ||
| </WRAP> | </WRAP> | ||
| - | 9. //reserved1// \\ | + | 11. //reserved2// \\ |
| 예약된 공간입니다. \\ \\ | 예약된 공간입니다. \\ \\ | ||
| - | 10. //reserved2// \\ | + | 12. //reserved2// \\ |
| - | 예약된 공간입니다. \\ \\ | + | |
| - | 11. //reserved2// \\ | + | |
| 예약된 공간입니다. \\ \\ | 예약된 공간입니다. \\ \\ | ||
| 줄 3251: | 줄 3283: | ||
| ==== 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; | ||
| 줄 3258: | 줄 3299: | ||
| 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; | ||
| 줄 3267: | 줄 3309: | ||
| } BS2CustomCardConfig; | } BS2CustomCardConfig; | ||
| </code> | </code> | ||
| - | 1. //dataType// \\ | + | 1. //primaryKey// \\ |
| + | Mifare card 정보에 접근하기 위한 첫번째 암호화 키입니다. \\ \\ | ||
| + | 2. //secondaryKey// \\ | ||
| + | Mifare card 정보에 접근하기 위한 두번째 암호화 키입니다. \\ \\ | ||
| + | 3. //startBlockIndex// \\ | ||
| + | Mifare data storage에서의 start block index입니다. \\ \\ | ||
| + | 4. //datasize// \\ | ||
| + | 카드 데이터가 몇 byte의 크기를 갖는지를 나타냅니다. \\ \\ | ||
| + | 5. //skipBytes// \\ | ||
| + | 카드 데이터가 나타나는 위치를 의미합니다. \\ | ||
| + | 카드 데이터를 읽어들일 시작점 입니다. 처음부터 읽을경우 0이고, 첫번째 이후일 경우 건너뛴 byte 수를 나타냅니다. \\ \\ | ||
| + | 6. //reserved// \\ | ||
| + | 예약된 공간입니다. \\ \\ | ||
| + | |||
| + | 7. //dataType// \\ | ||
| Card의 데이터 유형입니다. \\ | Card의 데이터 유형입니다. \\ | ||
| <WRAP group 50%> | <WRAP group 50%> | ||
| 줄 3276: | 줄 3332: | ||
| |3 |BCD | | |3 |BCD | | ||
| </WRAP> | </WRAP> | ||
| - | 2. //useSecondaryKey// \\ | + | 8. //useSecondaryKey// \\ |
| 두번째 암호화 키 사용 유무를 결정하는 flag입니다. \\ \\ | 두번째 암호화 키 사용 유무를 결정하는 flag입니다. \\ \\ | ||
| - | 3. //reserved1// \\ | + | 9. //reserved1// \\ |
| 예약된 공간입니다. \\ \\ | 예약된 공간입니다. \\ \\ | ||
| - | 4. //mifare// \\ | + | 10. //mifare// \\ |
| Mifare custom card 정보를 설정합니다. \\ \\ | Mifare custom card 정보를 설정합니다. \\ \\ | ||
| - | 5. //desfire// \\ | + | 11. //desfire// \\ |
| DESFire custom card 정보를 설정합니다. \\ \\ | DESFire custom card 정보를 설정합니다. \\ \\ | ||
| - | 6. //reserved2// \\ | + | 12. //mifareEx// \\ |
| - | 예약된 공간입니다. \\ \\ | + | [+2.9.9] 장치의 Mifare Custom Card 중에서 AES128 암호화 된 카드에 사용되는 설정 정보를 저장합니다. \\ \\ |
| - | 7. //reserved3// \\ | + | 13. //mifareEncType// \\ |
| + | [+2.9.9] Mifare Custom Card의 암호화 방식을 지정합니다. Mifare Classic 카드는 CRYPTO1만 지원하며, Mifare Plus 카드는 CRYPTO1과 AES128 모두 지원합니다. \\ | ||
| + | CRYPTO1으로 설정하면 BS2CustomMifareCard의 Mifare 설정이 적용되고, AES128로 설정하면 BS2CustomMifareConfigEx의 mifareEx 설정이 적용됩니다. \\ | ||
| + | <WRAP group 50%> | ||
| + | ^값 ^설명 ^ | ||
| + | |0 |CRYPTO1 | | ||
| + | |1 |AES128 | | ||
| + | </WRAP> | ||
| + | 14. //reserved3// \\ | ||
| 예약된 공간입니다. \\ \\ | 예약된 공간입니다. \\ \\ | ||
| - | 8. //smartCardByteOrder// \\ | + | 15. //smartCardByteOrder// \\ |
| MSB 또는 LSB로 출력을 지정할 수 있습니다. \\ | MSB 또는 LSB로 출력을 지정할 수 있습니다. \\ | ||
| <WRAP group 50%> | <WRAP group 50%> | ||
| 줄 3295: | 줄 3359: | ||
| |1 |LSB | | |1 |LSB | | ||
| </WRAP> | </WRAP> | ||
| - | 9. //reserved4// \\ | + | 16. //reserved4// \\ |
| 예약된 공간입니다. \\ \\ | 예약된 공간입니다. \\ \\ | ||
| - | 10. //formatID// \\ | + | 17. //formatID// \\ |
| BioStar 2 애플리케이션에서 card configuration을 데이터베이스 관리할 필요가 있을 경우 사용할 수 있는 식별자입니다. \\ \\ | BioStar 2 애플리케이션에서 card configuration을 데이터베이스 관리할 필요가 있을 경우 사용할 수 있는 식별자입니다. \\ \\ | ||
| - | 11. //reserved5// \\ | + | 18. //reserved5// \\ |
| 예약된 공간입니다. \\ \\ | 예약된 공간입니다. \\ \\ | ||
| 줄 3317: | 줄 3381: | ||
| </code> | </code> | ||
| 1. //primaryKey// \\ | 1. //primaryKey// \\ | ||
| - | Mifare card 정보에 접근하기 위한 첫번째 암호화 키입니다. \\ | + | Mifare card 정보에 접근하기 위한 첫번째 암호화 키입니다. \\ |
| + | \\ | ||
| 2. //secondaryKey// \\ | 2. //secondaryKey// \\ | ||
| Mifare card 정보에 접근하기 위한 두번째 암호화 키입니다. \\ | Mifare card 정보에 접근하기 위한 두번째 암호화 키입니다. \\ | ||
| + | \\ | ||
| 3. //startBlockIndex// \\ | 3. //startBlockIndex// \\ | ||
| - | Mifare data storage에서의 start block index입니다. | + | Mifare data storage에서의 start block index입니다. \\ |
| + | \\ | ||
| 4. //reserved// \\ | 4. //reserved// \\ | ||
| 예약된 공간입니다. | 예약된 공간입니다. | ||
| + | |||
| + | ==== 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// \\ | ||
| + | 설정할 FacilityCode의 개수를 설정합니다. 최대 16개까지 지원합니다. \\ \\ | ||
| + | 2. //reserved0// \\ | ||
| + | 예약된 공간입니다. \\ \\ | ||
| + | 3. //BS2FacilityCode// \\ | ||
| + | Door Interface(DI-24)와 마스터 장치의 OSDP 연결이 끊어진 경우 인증코드로 사용됩니다. \\ \\ | ||
| + | 4. //reserved1// \\ | ||
| + | 예약된 공간입니다. \\ \\ | ||
| + | |||
| + | ==== 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> | ||
| + | baudRate을 제외한 모든 값은 읽기 전용으로 변경이 불가능합니다. \\ | ||
| + | ''지원 장치'': CoreStation 20(CS-20, CS-20P), Door Interface(DI-24) | ||
| + | </WRAP> | ||
| + | 1. //baudRate// \\ | ||
| + | RS485 통신 속도이며 설정할 수 있는 범위는 다음과 같습니다. \\ | ||
| + | <WRAP group 50%> | ||
| + | ^값 ^ | ||
| + | |9600 | | ||
| + | |19200 | | ||
| + | |38400 | | ||
| + | |57600 | | ||
| + | |115200 | | ||
| + | </WRAP> | ||
| + | 2. //channelIndex// \\ | ||
| + | RS485 network의 통신 채널 번호입니다. \\ \\ | ||
| + | 3. //useRegistance// \\ | ||
| + | 종단 저항을 설정할지 결정하는 flag입니다. \\ \\ | ||
| + | 4. //numOfDevices// \\ | ||
| + | 슬레이브 장치의 개수입니다. \\ \\ | ||
| + | 5. //channelType// \\ | ||
| + | 해당 포트에 연결된 슬레이브 장치타입을 나타냅니다. \\ | ||
| + | <WRAP group 50%> | ||
| + | ^값 ^설명 ^ | ||
| + | |0 |연결이 없음 | | ||
| + | |1 |슈프리마 장치 | | ||
| + | |2 |OSDP 표준 장치 | | ||
| + | |3 |더 이상 연결할 수 없음 | | ||
| + | </WRAP> | ||
| + | 6. //slaveDevices// \\ | ||
| + | 장치에 연결된 슬레이브 장치를 나열한 포인터 \\ | ||
| + | <WRAP group 50%> | ||
| + | 포트별 연결가능한 최대 장치 | ||
| + | |Host 포트 |16개 | | ||
| + | |0번 포트 |2개 | | ||
| + | |1번 포트 |2개 | | ||
| + | </WRAP> | ||
| + | 7. //mode// \\ | ||
| + | RS485 네트워크에서 어떤 모드로 동작할지 결정하는 flag입니다. \\ | ||
| + | <WRAP group 50%> | ||
| + | ^값 ^설명 ^ | ||
| + | |1 |Master | | ||
| + | |2 |Slave | | ||
| + | |3 |Standalone | | ||
| + | </WRAP> | ||
| + | <WRAP info> | ||
| + | CoreStation은 Master로만 사용 가능합니다. 다른 값은 설정할 수 없습니다. | ||
| + | </WRAP> | ||
| + | 8. //numOfChannels// \\ | ||
| + | RS485 채널의 개수입니다.\\ \\ | ||
| + | 9. //reserved// \\ | ||
| + | 예약된 공간입니다.\\ \\ | ||
| + | 10. //reserved1// \\ | ||
| + | 예약된 공간입니다.\\ \\ | ||
| + | 11. //channels// \\ | ||
| + | RS485 채널을 나열한 리스트로 최대 8개까지 설정할 수 있습니다.\\ \\ | ||
| + | |||