차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판 이전 판 다음 판 | 이전 판 다음 판 양쪽 다음 판 | ||
ko:configuration_api [2022/08/24 19:52] kkshin [BS2FaceConfig] |
ko:configuration_api [2023/08/09 16:41] mashin |
||
---|---|---|---|
줄 86: | 줄 86: | ||
* [[BS2_GetRtspConfig]]: [+ 2.8.3] ''BS3'' RTSP 설정을 가져옵니다. | * [[BS2_GetRtspConfig]]: [+ 2.8.3] ''BS3'' RTSP 설정을 가져옵니다. | ||
* [[BS2_SetRtspConfig]]: [+ 2.8.3] ''BS3'' RTSP 설정을 저장합니다. | * [[BS2_SetRtspConfig]]: [+ 2.8.3] ''BS3'' RTSP 설정을 저장합니다. | ||
+ | * [[BS2_GetLicenseConfig]]: [+ 2.9.1] 장치 라이선스 활성화 정보를 가져옵니다. | ||
+ | * [[BS2_GetOsdpStandardConfig]]: [+ 2.9.1] 장치의 OSDP 설정 정보를 가져옵니다. | ||
+ | * [[BS2_GetOsdpStandardActionConfig]]: [+ 2.9.1] OSDP 장치의 action별 LED/buzzer 설정을 가져옵니다. | ||
+ | * [[BS2_SetOsdpStandardActionConfig]]: [+ 2.9.1] OSDP 장치의 action별 LED/buzzer 설정을 저장합니다. | ||
+ | * [[BS2_GetCustomCardConfig]]: [+ 2.9.4] Custom smart card 설정을 가져옵니다. | ||
+ | * [[BS2_SetCustomCardConfig]]: [+ 2.9.4] Custom smart card 설정을 저장합니다. | ||
===== 구조체 ===== | ===== 구조체 ===== | ||
==== BS2FactoryConfig ==== | ==== BS2FactoryConfig ==== | ||
줄 193: | 줄 198: | ||
예약된 공간입니다. \\ \\ | 예약된 공간입니다. \\ \\ | ||
15. //useCardOperationMask// \\ | 15. //useCardOperationMask// \\ | ||
- | [+ V2.6.4] 모든 카드를 읽지 않고, 사용자 선택에 의해 카드 타입별로 읽을 수 있도록 옵션을 제공합니다. \\ | + | [+ 2.6.4] 모든 카드를 읽지 않고, 사용자 선택에 의해 카드 타입별로 읽을 수 있도록 옵션을 제공합니다. \\ |
MASK값은 조합을 통하여 중복 설정이 가능며, 사용자는 이 옵션을 통하여 카드 타입의 읽기를 추가 또는 제거할 수 있습니다. \\ | MASK값은 조합을 통하여 중복 설정이 가능며, 사용자는 이 옵션을 통하여 카드 타입의 읽기를 추가 또는 제거할 수 있습니다. \\ | ||
단, 장치가 지원할 수 있는 카드 타입에 한하며, 장치가 지원하지 않는 카드 읽기를 추가하는 경우 해당 설정은 무시됩니다. \\ | 단, 장치가 지원할 수 있는 카드 타입에 한하며, 장치가 지원하지 않는 카드 읽기를 추가하는 경우 해당 설정은 무시됩니다. \\ | ||
또한, 지원하고자하는 카드 타입의 마스크는 ''CARD_OPERATION_USE''와 조합해야 합니다.\\ | 또한, 지원하고자하는 카드 타입의 마스크는 ''CARD_OPERATION_USE''와 조합해야 합니다.\\ | ||
예를들어 EM카드만 읽을 수 있도록 설정하고자 한다면 useCardOperationMask에는 ''0x80000001''로 설정되어져야 합니다. | 예를들어 EM카드만 읽을 수 있도록 설정하고자 한다면 useCardOperationMask에는 ''0x80000001''로 설정되어져야 합니다. | ||
- | <WRAP group 50%> | + | <WRAP group 60%> |
^값 ^설명 ^ | ^값 ^설명 ^ | ||
|0xFFFFFFFF |CARD_OPERATION_MASK_DEFAULT | | |0xFFFFFFFF |CARD_OPERATION_MASK_DEFAULT | | ||
|0x80000000 |CARD_OPERATION_USE | | |0x80000000 |CARD_OPERATION_USE | | ||
- | |0x00000200 |CARD_OPERATION_MASK_BLE | | + | |0x00000000 |CARD_OPERATION_MASK_NONE | |
- | |0x00000100 |CARD_OPERATION_MASK_NFC | | + | |0x00000001 |CARD_OPERATION_MASK_LF_EM | |
- | |0x00000080 |CARD_OPERATION_MASK_SEOS | | + | |0x00000002 |CARD_OPERATION_MASK_LF_PROX | |
- | |0x00000040 |CARD_OPERATION_MASK_SR_SE | | + | |0x00000004 |CARD_OPERATION_MASK_HF_CSN_MIFARE | |
- | |0x00000020 |CARD_OPERATION_MASK_DESFIRE_EV1 | | + | |0x00000008 |CARD_OPERATION_MASK_HF_CSN_ICLASS | |
- | |0x00000010 |CARD_OPERATION_MASK_CLASSIC_PLUS | | + | |0x00000010 |CARD_OPERATION_MASK_HF_SMART_MIFARE | |
- | |0x00000008 |CARD_OPERATION_MASK_ICLASS | | + | |0x00000020 |CARD_OPERATION_MASK_HF_SMART_MIFARE_DESFIRE | |
- | |0x00000004 |CARD_OPERATION_MASK_MIFARE_FELICA | | + | |0x00000040 |CARD_OPERATION_MASK_HF_SMART_ICLASS | |
- | |0x00000002 |CARD_OPERATION_MASK_HIDPROX | | + | |0x00000080 |CARD_OPERATION_MASK_HF_SMART_ICLASS_SEOS | |
- | |0x00000001 |CARD_OPERATION_MASK_EM | | + | |0x00000100 |CARD_OPERATION_MASK_MOBILE_NFC | |
+ | |0x00000200 |CARD_OPERATION_MASK_MOBILE_BLE | | ||
+ | |0x00000400 |CARD_OPERATION_MASK_HF_CSN_OTHERS | | ||
</WRAP> | </WRAP> | ||
16. //reserved2// \\ | 16. //reserved2// \\ | ||
줄 2427: | 줄 2434: | ||
uint8_t treatAsCSN; | uint8_t treatAsCSN; | ||
- | uint8_t reserved[12]; | + | uint8_t useVisualBarcode; |
+ | uint8_t motionSensitivity; | ||
+ | uint8_t visualCameraScanTimeout; | ||
+ | uint8_t reserved[9]; | ||
} BS2BarcodeConfig; | } BS2BarcodeConfig; | ||
</code> | </code> | ||
1. //useBarcode// \\ | 1. //useBarcode// \\ | ||
+ | ''XS2-QR 만 지원'' | ||
Barcode 사용여부 flag입니다. \\ \\ | Barcode 사용여부 flag입니다. \\ \\ | ||
2. //scanTimeout// \\ | 2. //scanTimeout// \\ | ||
Barcode scan 시간을 설정합니다. 단위는 초입니다. \\ | Barcode scan 시간을 설정합니다. 단위는 초입니다. \\ | ||
기본값은 4초이며, 4~10초 범위 내로 입력 가능합니다. \\ \\ | 기본값은 4초이며, 4~10초 범위 내로 입력 가능합니다. \\ \\ | ||
+ | <WRAP group 50%> | ||
+ | ^값 ^매크로 ^설명 ^ | ||
+ | |4 |BS2_BARCODE_TIMEOUT_DEFAULT |기본값 | | ||
+ | |4 |BS2_BARCODE_TIMEOUT_MIN |최소값 | | ||
+ | |10 |BS2_BARCODE_TIMEOUT_MAX |최대값 | | ||
+ | </WRAP> | ||
3. //bypassData// \\ | 3. //bypassData// \\ | ||
[+2.8.2] 읽혀진 barcode 정보를 장치에서 처리하지 않고, 서버로 전송하기 위해 사용합니다. \\ | [+2.8.2] 읽혀진 barcode 정보를 장치에서 처리하지 않고, 서버로 전송하기 위해 사용합니다. \\ | ||
줄 2447: | 줄 2464: | ||
따라서, 특수문자, 영문자가 들어있는 barcode 카드 데이터를 설정하고자 하면 오류를 반환할 수 있습니다. \\ | 따라서, 특수문자, 영문자가 들어있는 barcode 카드 데이터를 설정하고자 하면 오류를 반환할 수 있습니다. \\ | ||
이 경우, card type만 다르게, CSN 카드와 barcode 데이터를 동일한 값으로 사용하고자하는 사용자의 목적에 부합할 수 있습니다. \\ \\ | 이 경우, card type만 다르게, CSN 카드와 barcode 데이터를 동일한 값으로 사용하고자하는 사용자의 목적에 부합할 수 있습니다. \\ \\ | ||
- | 5. //reserved// \\ | + | 5. //useVisualBarcode// \\ |
+ | [+ 2.9.1] Visual barcode 사용여부 flag입니다. \\ | ||
+ | <WRAP group 50%> | ||
+ | ^지원장치 ^펌웨어 ^ | ||
+ | |XS2-Finger |V1.2.0 | | ||
+ | |XS2-Card |V1.2.0 | | ||
+ | |BS3 |V1.1.0 | | ||
+ | </WRAP> | ||
+ | Visual barcode는 QR code sensor가 아닌, 일반 visual camera를 통해 QR code 읽기를 지원하며, \\ | ||
+ | 이 기능을 사용하기 위해서는, 별도의 라이선스 활성화가 필요합니다. \\ | ||
+ | 라이선스 활성화는 [[qr_code_api#BS2_EnableBarcodeLicense]]를 통해 지원합니다. \\ \\ | ||
+ | 6. //motionSensitivity// \\ | ||
+ | [+ 2.9.1] Visual barcode에 대한, 모션 센서의 감도를 설정합니다. \\ | ||
+ | <WRAP group 50%> | ||
+ | ^값 ^매크로 ^설명 ^ | ||
+ | |0 |BS2_MOTION_SENSITIVITY_LOW |낮음 | | ||
+ | |1 |BS2_MOTION_SENSITIVITY_NORMAL |중간 | | ||
+ | |2 |BS2_MOTION_SENSITIVITY_HIGH |높음 | | ||
+ | </WRAP> | ||
+ | 7. //visualCameraScanTimeout// \\ | ||
+ | [+ 2.9.1] Visual camera에대한 scan 시간을 설정합니다. 단위는 초입니다. \\ | ||
+ | 기본값은 10초이며, 3~20초 범위 내로 입력 가능합니다. \\ | ||
+ | <WRAP group 50%> | ||
+ | ^값 ^매크로 ^설명 ^ | ||
+ | |10 |BS2_VISUAL_BARCODE_TIMEOUT_DEFAULT |기본값 | | ||
+ | |3 |BS2_VISUAL_BARCODE_TIMEOUT_MIN |최소값 | | ||
+ | |20 |BS2_VISUAL_BARCODE_TIMEOUT_MAX |최대값 | | ||
+ | </WRAP> | ||
+ | 8. //reserved// \\ | ||
예약된 공간입니다. \\ | 예약된 공간입니다. \\ | ||
- | |||
==== BS2InputConfigEx ==== | ==== BS2InputConfigEx ==== | ||
<code cpp> | <code cpp> | ||
줄 2701: | 줄 2745: | ||
예약된 공간입니다. \\ \\ | 예약된 공간입니다. \\ \\ | ||
+ | |||
+ | ==== BS2License ==== | ||
+ | <code cpp> | ||
+ | typedef struct { | ||
+ | uint8_t index; | ||
+ | uint8_t hasCapability; | ||
+ | uint8_t enable; | ||
+ | uint8_t reserved; | ||
+ | BS2_LICENSE_TYPE licenseType; | ||
+ | BS2_LICENSE_SUB_TYPE licenseSubType; | ||
+ | uint32_t enableTime; | ||
+ | uint32_t expiredTime; | ||
+ | uint32_t issueNumber; | ||
+ | uint8_t name[BS2_USER_ID_SIZE]; | ||
+ | } BS2License; | ||
+ | </code> | ||
+ | 1. //index// \\ | ||
+ | 라이선스 인덱스입니다. \\ \\ | ||
+ | 2. //hasCapability// \\ | ||
+ | 장치가 해당 라이선스를 지원하는지 여부를 나타냅니다. \\ | ||
+ | 통상적으로 1을 갖습니다. \\ \\ | ||
+ | 3. //enable// \\ | ||
+ | 라이선스가 활성화 되어있는지 여부를 나타냅니다. \\ \\ | ||
+ | 4. //reserved// \\ | ||
+ | 예약된 공간입니다. \\ \\ | ||
+ | 5. //licenseType// \\ | ||
+ | 라이선스의 종류를 나타냅니다. \\ | ||
+ | <WRAP group 50%> | ||
+ | ^값 ^설명 ^ | ||
+ | |0x0000 |None | | ||
+ | |0x0001 |Visual QR | | ||
+ | </WRAP> | ||
+ | 6. //licenseSubType// \\ | ||
+ | licenseType의 세부 형태를 나타냅니다. \\ \\ | ||
+ | <WRAP group 50%> | ||
+ | ^값 ^설명 ^ | ||
+ | |0 |None | | ||
+ | |1 |Visual QR (CodeCorp) | | ||
+ | </WRAP> | ||
+ | 7. //enableTime// \\ | ||
+ | 라이선스 활성화 개시 시간이며, POSIX time으로 표현됩니다. \\ \\ | ||
+ | 8. //expiredTime// \\ | ||
+ | 라이선스 활성화 종료 시간이며, 0은 제한 없음을 의미합니다. \\ \\ | ||
+ | 9. //issueNumber// \\ | ||
+ | 발급 고유 번호를 의미합니다. \\ \\ | ||
+ | 10. //name// \\ | ||
+ | 라이선스 명칭입니다. \\ \\ | ||
+ | |||
+ | |||
+ | ==== BS2LicenseConfig ==== | ||
+ | <code cpp> | ||
+ | typedef struct { | ||
+ | uint8_t version; | ||
+ | uint8_t numOfLicense; | ||
+ | uint8_t reserved[2]; | ||
+ | BS2License license[BS2_MAX_LICENSE_COUNT]; | ||
+ | uint8_t reserved1[16]; | ||
+ | } BS2LicenseConfig; | ||
+ | </code> | ||
+ | 1. //version// \\ | ||
+ | 라이선스 설정 정보의 버전 정보입니다. \\ \\ | ||
+ | 2. //numOfLicense// \\ | ||
+ | 등록된 라이선스 갯수를 의미합니다. \\ \\ | ||
+ | 3. //reserved// \\ | ||
+ | 예약된 공간입니다. \\ \\ | ||
+ | 4. //license// \\ | ||
+ | 라이선스 정보이며, 최대 16개까지 설정될 수 있습니다. \\ \\ | ||
+ | 5. //reserved1// \\ | ||
+ | 예약된 공간입니다. \\ \\ | ||
+ | |||
+ | |||
+ | ==== BS2BarcodeConfig ==== | ||
+ | <code cpp> | ||
+ | typedef struct { | ||
+ | uint8_t useBarcode; | ||
+ | uint8_t scanTimeout; | ||
+ | uint8_t bypassData; | ||
+ | uint8_t treatAsCSN; | ||
+ | |||
+ | uint8_t useVisualBarcode; | ||
+ | uint8_t motionSensitivity; | ||
+ | uint8_t visualCameraScanTimeout; | ||
+ | uint8_t reserved[9]; | ||
+ | } BS2BarcodeConfig; | ||
+ | </code> | ||
+ | 1. //useBarcode// \\ | ||
+ | ''XS2-QR 만 지원'' | ||
+ | Barcode 사용여부 flag입니다. \\ \\ | ||
+ | 2. //scanTimeout// \\ | ||
+ | Barcode scan 시간을 설정합니다. 단위는 초입니다. \\ | ||
+ | 기본값은 4초이며, 4~10초 범위 내로 입력 가능합니다. \\ \\ | ||
+ | <WRAP group 50%> | ||
+ | ^값 ^매크로 ^설명 ^ | ||
+ | |4 |BS2_BARCODE_TIMEOUT_DEFAULT |기본값 | | ||
+ | |4 |BS2_BARCODE_TIMEOUT_MIN |최소값 | | ||
+ | |10 |BS2_BARCODE_TIMEOUT_MAX |최대값 | | ||
+ | </WRAP> | ||
+ | 3. //bypassData// \\ | ||
+ | [+2.8.2] 읽혀진 barcode 정보를 장치에서 처리하지 않고, 서버로 전송하기 위해 사용합니다. \\ | ||
+ | 사용자 인증을 위해 사용자 정보 구조체에 barcode 값을 저장하게되는 경우, \\ | ||
+ | 32 byte의 크기 제약([[smartcard_api#BS2CSNCard|BS2CSNCard data 참조]])이 있으나, \\ | ||
+ | [[BS2_SetBarcodeScanListener]]를 호출하고, 이 옵션을 사용하면 최대 512 byte크기의 barcode를 서버로 전송할 수 있습니다. \\ \\ | ||
+ | 4. //treatAsCSN// \\ | ||
+ | [+2.8.2] Barcode를 일반 CSN 카드와 동일하게 처리할지의 여부를 나타냅니다. \\ | ||
+ | XS2-QR 1.1.3부터 적용되며, false의 경우, 이전과 동일하게 처리됩니다. \\ | ||
+ | 이방식은 barcode로 처리될 수 있는 문자셋을 ASCII code 32에서 126까지 자유롭게 지정할 수 있습니다. ([[qr_code_api#BS2_WriteQRCode|BS2_WriteQRCode의 설명 참조]]) \\ | ||
+ | true로 설정하면, barcode를 기존 CSN과 동일하게 숫자로만 취급하게 됩니다. \\ | ||
+ | 따라서, 특수문자, 영문자가 들어있는 barcode 카드 데이터를 설정하고자 하면 오류를 반환할 수 있습니다. \\ | ||
+ | 이 경우, card type만 다르게, CSN 카드와 barcode 데이터를 동일한 값으로 사용하고자하는 사용자의 목적에 부합할 수 있습니다. \\ \\ | ||
+ | 5. //useVisualBarcode// \\ | ||
+ | [+ 2.9.1] Visual barcode 사용여부 flag입니다. \\ | ||
+ | <WRAP group 50%> | ||
+ | ^지원장치 ^펌웨어 ^ | ||
+ | |XS2-Finger |V1.2.0 | | ||
+ | |XS2-Card |V1.2.0 | | ||
+ | |BS3 |V1.1.0 | | ||
+ | </WRAP> | ||
+ | Visual barcode는 QR code sensor가 아닌, 일반 visual camera를 통해 QR code 읽기를 지원하며, \\ | ||
+ | 이 기능을 사용하기 위해서는, 별도의 라이선스 활성화가 필요합니다. \\ | ||
+ | 라이선스 활성화는 [[qr_code_api#BS2_EnableBarcodeLicense]]를 통해 지원합니다. \\ \\ | ||
+ | 6. //motionSensitivity// \\ | ||
+ | [+ 2.9.1] Visual barcode에 대한, 모션 센서의 감도를 설정합니다. \\ | ||
+ | <WRAP group 50%> | ||
+ | ^값 ^매크로 ^설명 ^ | ||
+ | |0 |BS2_MOTION_SENSITIVITY_LOW |낮음 | | ||
+ | |1 |BS2_MOTION_SENSITIVITY_NORMAL |중간 | | ||
+ | |2 |BS2_MOTION_SENSITIVITY_HIGH |높음 | | ||
+ | </WRAP> | ||
+ | 7. //visualCameraScanTimeout// \\ | ||
+ | [+ 2.9.1] Visual camera에대한 scan 시간을 설정합니다. 단위는 초입니다. \\ | ||
+ | 기본값은 10초이며, 3~20초 범위 내로 입력 가능합니다. \\ | ||
+ | <WRAP group 50%> | ||
+ | ^값 ^매크로 ^설명 ^ | ||
+ | |10 |BS2_VISUAL_BARCODE_TIMEOUT_DEFAULT |기본값 | | ||
+ | |3 |BS2_VISUAL_BARCODE_TIMEOUT_MIN |최소값 | | ||
+ | |20 |BS2_VISUAL_BARCODE_TIMEOUT_MAX |최대값 | | ||
+ | </WRAP> | ||
+ | 8. //reserved// \\ | ||
+ | 예약된 공간입니다. \\ | ||
+ | |||
+ | |||
+ | ==== BS2OsdpStandardConfig ==== | ||
+ | <code cpp> | ||
+ | typedef struct { | ||
+ | uint32_t baudRate; ///< 4 bytes | ||
+ | uint8_t channelIndex; ///< 1 byte | ||
+ | uint8_t useRegistance; ///< 1 byte | ||
+ | uint8_t numOfDevices; ///< 1 byte | ||
+ | BS2_OSDP_CHANNEL_TYPE channelType; ///< 1 byte | ||
+ | BS2OsdpStandardDevice slaveDevices[BS2_RS485_MAX_SLAVES_PER_CHANNEL]; ///< 28 * 32 = 896 bytes | ||
+ | uint8_t reserved[4]; ///< 4 bytes | ||
+ | } BS2OsdpStandardChannel; ///< 908 bytes | ||
+ | |||
+ | typedef struct { | ||
+ | uint8_t mode[BS2_RS485_MAX_CHANNELS_EX]; ///< 8 byte | ||
+ | uint16_t numOfChannels; ///< 2 byte | ||
+ | uint8_t reserved[2]; ///< 2 bytes (packing) | ||
+ | uint8_t reserved1[32]; ///< 32 bytes (reserved) | ||
+ | BS2OsdpStandardChannel channels[BS2_RS485_MAX_CHANNELS_EX]; ///< 908 * 8 bytes = 7264 bytes | ||
+ | } BS2OsdpStandardConfig; ///< 7308 bytes | ||
+ | </code> | ||
+ | 1. //baudRate// \\ | ||
+ | OSDP 장치의 통신 속도이며 설정할 수 있는 범위는 다음과 같습니다. \\ | ||
+ | <WRAP group 50%> | ||
+ | ^값 ^ | ||
+ | |9600 | | ||
+ | |19200 | | ||
+ | |38400 | | ||
+ | |57600 | | ||
+ | |115200 | | ||
+ | </WRAP> | ||
+ | 2. //channelIndex// \\ | ||
+ | OSDP 장치가 RS485 통신을 할때 채널 번호입니다. \\ \\ | ||
+ | 3. //useRegistance// \\ | ||
+ | 종단 저항을 설정할지 결정하는 flag입니다. - 동작에 영향 없음. \\ \\ | ||
+ | 4. //numOfDevices// \\ | ||
+ | 슬레이브 장치의 개수입니다.\\ \\ | ||
+ | 5. //channelType// \\ | ||
+ | RS485 통신을 하는 장치가 어떠한 방식으로 연결되어 있는지를 나타냅니다. \\ | ||
+ | CoreStation40 기준으로, 할당 가능한 채널은 0~4까지 5개인데, 각 채널내에서는 슈프리마 장치와 OSDP 장치가 혼용되어 운용될어질 수 없습니다. \\ | ||
+ | 특정 채널에 연결된 장치가 없는 경우, Suprema 장치든, OSDP 장치이든 연결될 수 있음을 나타내는 0을 갖습니다. \\ | ||
+ | 만일 특정 채널로 Suprema 장치가 연결되면, 이후 해당 채널은 Suprema 장치들의 연결만 허용되며, channelType은 1을 갖습니다. OSDP 장치가 연결되어 있더라도 무시되어집니다. \\ | ||
+ | 만일 특정 채널로 OSDP 장치가 연결되면, 이후 해당 채널은 OSDP 장치 연결만 허용되며, channelType은 2를 갖습니다. Suprema 장치가 연결되어 있더라도 무시되어집니다. \\ | ||
+ | CoreStation40 각각의 채널들은 Suprema 장치 채널, OSDP 장치 채널들로 혼용되어 운용될 수 있습니다. \\ | ||
+ | 채널에 OSDP로 장치가 연결이되면 허용이 가능한 최대 장치수는 2대로 제한되며, 이미 해당 채널이 최대치에 도달했으면 channelType은 3을 갖으며 더이상 연결이 불가함을 나타냅니다. \\ | ||
+ | <WRAP group 50%> | ||
+ | ^값 ^설명 ^ | ||
+ | |0 |Normal | | ||
+ | |1 |Suprema 장치 | | ||
+ | |2 |OSDP 장치 | | ||
+ | |3 |OSDP 장치 FULL | | ||
+ | </WRAP> | ||
+ | 6. //slaveDevices// \\ | ||
+ | 채널내의 슬레이브 장치 정보입니다. \\ \\ | ||
+ | 7. //reserved// \\ | ||
+ | 예약된 공간입니다. \\ \\ | ||
+ | 8. //mode// \\ | ||
+ | RS485 네트워크에서 어떤 모드로 동작할지 결정하는 flag인데, 문서 작성일 2023/1/12일 기준으로 Osdp standard config를 지원하는 장치는 CoreStation40 뿐이므로 항상 master 값을 갖습니다. \\ \\ | ||
+ | <WRAP group 50%> | ||
+ | ^값 ^설명 ^ | ||
+ | |0 |사용안함 | | ||
+ | |1 |Master | | ||
+ | |2 |Slave | | ||
+ | |3 |Standalone (기본값) | | ||
+ | </WRAP> | ||
+ | 9. //numOfChannels// \\ | ||
+ | 채널의 개수입니다. CoreStation40은 총 5개의 채널을 갖습니다. \\ \\ | ||
+ | 10. //reserved// \\ | ||
+ | 예약된 공간입니다. \\ \\ | ||
+ | 11. //reserved1// \\ | ||
+ | 예약된 공간입니다. \\ \\ | ||
+ | 12. //channels// \\ | ||
+ | 채널별 OSDP 장치정보입니다. \\ | ||
+ | 최대 8개까지 채널정보를 가질 수 있으나, CoreStation40이 5개의 채널을 가지므로 0~4번까지만 유의미합니다. \\ \\ | ||
+ | |||
+ | |||
+ | ==== BS2OsdpStandardActionConfig ==== | ||
+ | <code cpp> | ||
+ | typedef struct{ | ||
+ | BS2_BOOL use; ///< 1 byte | ||
+ | uint8_t readerNumber; ///< 1 byte | ||
+ | uint8_t ledNumber; ///< 1 byte | ||
+ | |||
+ | BS2_OSDP_STANDARD_LED_COMMAND tempCommand; ///< 1 byte | ||
+ | uint8_t tempOnTime; ///< 1 byte | ||
+ | uint8_t tempOffTime; ///< 1 byte | ||
+ | BS2_OSDP_STANDARD_COLOR tempOnColor; ///< 1 byte | ||
+ | BS2_OSDP_STANDARD_COLOR tempOffColor; ///< 1 byte | ||
+ | uint16_t tempRunTime; ///< 2 bytes | ||
+ | |||
+ | BS2_OSDP_STANDARD_LED_COMMAND permCommand; ///< 1 byte | ||
+ | uint8_t permOnTime; ///< 1 byte | ||
+ | uint8_t permOffTime; ///< 1 byte | ||
+ | BS2_OSDP_STANDARD_COLOR permOnColor; ///< 1 byte | ||
+ | BS2_OSDP_STANDARD_COLOR permOffColor; ///< 1 byte | ||
+ | |||
+ | uint8_t reserved; ///< 1 byte | ||
+ | } BS2OsdpStandardLedAction; ///< 16 bytes | ||
+ | |||
+ | typedef struct { | ||
+ | BS2_BOOL use; ///< 1 byte | ||
+ | uint8_t readerNumber; ///< 1 byte | ||
+ | BS2_OSDP_STANDARD_TONE tone; ///< 1 byte | ||
+ | uint8_t onTime; ///< 1 byte | ||
+ | uint8_t offTime; ///< 1 byte | ||
+ | uint8_t numOfCycle; ///< 1 byte | ||
+ | uint8_t reserved[2]; ///< 2 bytes | ||
+ | } BS2OsdpStandardBuzzerAction; ///< 8 bytes | ||
+ | |||
+ | typedef struct { | ||
+ | BS2_OSDP_STANDARD_ACTION_TYPE actionType; ///< 1 byte | ||
+ | uint8_t reserved[3]; ///< 3 bytes | ||
+ | BS2OsdpStandardLedAction led[2]; ///< 16 x 2 = 32 bytes | ||
+ | BS2OsdpStandardBuzzerAction buzzer; ///< 8 bytes | ||
+ | } BS2OsdpStandardAction; ///< 44 bytes | ||
+ | |||
+ | typedef struct | ||
+ | { | ||
+ | uint8_t version; ///< 1 byte | ||
+ | uint8_t reserved[3]; ///< 3 byes | ||
+ | BS2OsdpStandardAction actions[BS2_OSDP_STANDARD_ACTION_MAX_COUNT]; ///< 44 x 32 = 1408 | ||
+ | } BS2OsdpStandardActionConfig; ///< 1412 bytes | ||
+ | </code> | ||
+ | 1. //use// \\ | ||
+ | 해당 LED action을 사용할 것인지 여부를 나타냅니다. \\ \\ | ||
+ | 2. //readerNumber// \\ | ||
+ | OSDP 장치의 순번입니다. \\ \\ | ||
+ | 3. //ledNumber// \\ | ||
+ | OSDP 장치가 갖고 있는 LED 순번입니다. \\ \\ | ||
+ | 4. //tempCommand// \\ | ||
+ | Temporary command 입니다. \\ | ||
+ | <WRAP group 50%> | ||
+ | ^값 ^설명 ^ | ||
+ | |0 |No Operation | | ||
+ | |1 |Cancel | | ||
+ | |2 |Set | | ||
+ | </WRAP> | ||
+ | 5. //tempOnTime// \\ | ||
+ | Temporary command에 대해서 LED가 켜져있는 시간을 의미하며, 100ms 단위로 설정합니다. \\ | ||
+ | 예를 들어 2초간 LED on 상태를 유지시키려면 20을 입력하면 됩니다. \\ \\ | ||
+ | 6. //tempOffTime// \\ | ||
+ | Temporary command에 대해서 LED가 꺼져있는 시간을 의미하며, 100ms 단위로 설정합니다. \\ | ||
+ | 예를 들어 1초간 LED off 상태를 유지시키려면 10을 입력하면 됩니다. \\ \\ | ||
+ | 7. //tempOnColor// \\ | ||
+ | Temporary command에 대해서 On 상태의 LED 색상을 지정합니다. \\ | ||
+ | <WRAP group 50%> | ||
+ | ^값 ^설명 ^ | ||
+ | |0 |BLACK | | ||
+ | |1 |RED | | ||
+ | |2 |GREEN | | ||
+ | |3 |AMBER | | ||
+ | |4 |BLUE | | ||
+ | |5 |MAGENTA | | ||
+ | |6 |CYAN | | ||
+ | |7 |WHITE | | ||
+ | </WRAP> | ||
+ | 8. //tempOffColor// \\ | ||
+ | Temporary command에 대해서 Off 상태의 LED 색상을 지정합니다. \\ | ||
+ | <WRAP group 50%> | ||
+ | ^값 ^설명 ^ | ||
+ | |0 |BLACK | | ||
+ | |1 |RED | | ||
+ | |2 |GREEN | | ||
+ | |3 |AMBER | | ||
+ | |4 |BLUE | | ||
+ | |5 |MAGENTA | | ||
+ | |6 |CYAN | | ||
+ | |7 |WHITE | | ||
+ | </WRAP> | ||
+ | 9. //tempRunTime// \\ | ||
+ | Temporary command에 대해 LED On/Off를 얼마나 지속시킬지를 100ms 단위로 설정합니다. \\ | ||
+ | tempOnTime/tempOffTime, tempOnColor/tempOffColor로 설정한 색상과 시간으로 번갈아 깜빡이며, 이 깜빡임은 tempRunTime 만큼 유지됩니다. \\ \\ | ||
+ | 10. //permCommand// \\ | ||
+ | Permanent command 입니다. | ||
+ | 11. //permOnTime// \\ | ||
+ | Permanent command에 대해서 LED가 켜져있는 시간을 의미하며, 100ms 단위로 설정합니다. \\ \\ | ||
+ | 12. //permOffTime// \\ | ||
+ | Permanent command에 대해서 LED가 꺼져있는 시간을 의미하며, 100ms 단위로 설정합니다. \\ \\ | ||
+ | 13. //permOnColor// \\ | ||
+ | Permanent command에 대해서 On 상태의 LED 색상을 지정합니다. \\ \\ | ||
+ | 14. //permOffColor// \\ | ||
+ | Permanent command에 대해서 Off 상태의 LED 색상을 지정합니다. \\ \\ | ||
+ | 15. //reserved// \\ | ||
+ | 예약된 공간입니다. \\ \\ | ||
+ | 16. //use// \\ | ||
+ | 해당 tone action을 사용할 것인지 여부를 나타냅니다. \\ \\ | ||
+ | 17. //readerNumber// | ||
+ | OSDP 장치의 순번입니다. \\ \\ | ||
+ | 18. //tone// \\ | ||
+ | Buzzer를 설정합니다. \\ | ||
+ | <WRAP group 50%> | ||
+ | ^값 ^설명 ^ | ||
+ | |0 |None | | ||
+ | |1 |Off | | ||
+ | |2 |On | | ||
+ | </WRAP> | ||
+ | 19. //onTime// \\ | ||
+ | tone에 대해서 On 상태 유지시간을 100ms 단위로 설정합니다. \\ \\ | ||
+ | 20. //offTime// \\ | ||
+ | tone에 대해서 Off 상태 유지시간을 100ms 단위로 설정합니다. \\ \\ | ||
+ | 21. //numOfCycle// \\ | ||
+ | tone On/Off를 얼마나 반복할지 횟수를 지정합니다. 0으로 설정 시 무한 반복을 의미합니다. \\ \\ | ||
+ | 22. //reserved// \\ | ||
+ | 예약된 공간입니다. \\ \\ | ||
+ | 23. //actionType// \\ | ||
+ | action을 지정합니다. \\ | ||
+ | <WRAP group 50%> | ||
+ | ^값 ^설명 ^ | ||
+ | |0 |None | | ||
+ | |1 |Success | | ||
+ | |2 |Fail | | ||
+ | |3 |Wait input | | ||
+ | </WRAP> | ||
+ | 24. //reserved// \\ | ||
+ | 예약된 공간입니다. \\ \\ | ||
+ | 25. //led// \\ | ||
+ | OSDP 장치의 LED 설정 정보입니다. \\ \\ | ||
+ | 26. //buzzer// \\ | ||
+ | OSDP 장치의 buzzer 설정 정보입니다. \\ \\ | ||
+ | 27. //version// \\ | ||
+ | Action configuration에 대한 버전 정보입니다. 현재는 0입니다. \\ \\ | ||
+ | 28. //reserved// \\ | ||
+ | 예약된 공간입니다. \\ \\ | ||
+ | 29. //actions// \\ | ||
+ | OSDP 장치에 대한 LED/buzzer 정보이며, 최대 32개 까지 지정할 수 있습니다. \\ \\ | ||
+ | |||
+ | |||
+ | ==== BS2CustomMifareCard ==== | ||
+ | <code cpp> | ||
+ | typedef struct { | ||
+ | uint8_t primaryKey[6]; | ||
+ | uint8_t reserved1[2]; | ||
+ | uint8_t secondaryKey[6]; | ||
+ | uint8_t reserved2[2]; | ||
+ | uint16_t startBlockIndex; | ||
+ | uint8_t dataSize; | ||
+ | uint8_t skipBytes; | ||
+ | uint8_t reserved[4]; | ||
+ | } BS2CustomMifareCard; | ||
+ | </code> | ||
+ | 1. //primaryKey// \\ | ||
+ | Mifare card 정보에 접근하기 위한 첫번째 암호화 키입니다. \\ \\ | ||
+ | 2. //reserved1// \\ | ||
+ | 예약된 공간입니다.\\ \\ | ||
+ | 3. //secondaryKey// \\ | ||
+ | Mifare card 정보에 접근하기 위한 두번째 암호화 키입니다. \\ \\ | ||
+ | 4. //reserved2// \\ | ||
+ | 예약된 공간입니다.\\ \\ | ||
+ | 5. //startBlockIndex// \\ | ||
+ | Mifare data storage에서의 start block index입니다.\\ \\ | ||
+ | 6. //dataSize// \\ | ||
+ | 카드 데이터가 몇 byte의 크기를 갖는지를 나타냅니다. \\ \\ | ||
+ | 7. //skipBytes// \\ | ||
+ | 카드 데이터가 나타나는 위치를 의미합니다. \\ | ||
+ | 카드 데이터가 저장 위치 처음부터 나타난다면 0, 이후에 나온다면 몇 byte가 skip 된 이후에 나타나는지를 의미합니다. \\ \\ | ||
+ | 8. //reserved// \\ | ||
+ | 예약된 공간입니다.\\ \\ | ||
+ | |||
+ | |||
+ | ==== BS2CustomDesFireCard ==== | ||
+ | <code cpp> | ||
+ | typedef struct { | ||
+ | uint8_t primaryKey[16]; | ||
+ | uint8_t secondaryKey[16]; | ||
+ | uint8_t appID[3]; | ||
+ | uint8_t fileID; | ||
+ | uint8_t encryptionType; // 0: DES/3DES, 1: AES | ||
+ | uint8_t operationMode; // 0: legacy(use picc master key), 1: new mode(use app master, file read, file write key) | ||
+ | uint8_t dataSize; | ||
+ | uint8_t skipBytes; | ||
+ | uint8_t reserved[4]; | ||
+ | BS2DesFireAppLevelKey desfireAppKey; ///<52 bytes | ||
+ | } BS2CustomDesFireCard; ///<96 Bytes | ||
+ | </code> | ||
+ | 1. //primaryKey// \\ | ||
+ | DesFire card 정보에 접근하기 위한 첫번째 암호화 키입니다. (일반설정) \\ \\ | ||
+ | 2. //secondaryKey// \\ | ||
+ | DesFire card 정보에 접근하기 위한 두번째 암호화 키입니다. (일반설정) \\ \\ | ||
+ | 3. //appID// \\ | ||
+ | 사용자 인증을 위해 DESFire 카드내에 내장된 사용할 애플리케이션 식별자입니다.\\ \\ | ||
+ | 4. //fileID// \\ | ||
+ | DESFire 카드내에 내장된 사용할 애플리케이션가 데이터를 읽고 쓰기 위한 파일 식별자입니다.\\ \\ | ||
+ | 5. //encryptionType// \\ | ||
+ | 데이터 암호화 방식을 나타냅니다.\\ | ||
+ | <WRAP group 50%> | ||
+ | ^값 ^설명 ^ | ||
+ | |0 |DES/3DES | | ||
+ | |1 |AES | | ||
+ | </WRAP> | ||
+ | 6. //operationMode// \\ | ||
+ | 운영 방식을 지정합니다. \\ | ||
+ | <WRAP group 50%> | ||
+ | ^값 ^설명 ^ | ||
+ | |0 |일반설정 사용 (PICC master key를 사용) | | ||
+ | |1 |고급설정 사용 (App master key를 사용) | | ||
+ | </WRAP> | ||
+ | 7. //dataSize// \\ | ||
+ | 카드 데이터가 몇 byte의 크기를 갖는지를 나타냅니다. \\ \\ | ||
+ | 8. //skipBytes// \\ | ||
+ | 카드 데이터가 나타나는 위치를 의미합니다. \\ | ||
+ | 카드 데이터가 저장 위치 처음부터 나타난다면 0, 이후에 나온다면 몇 byte가 skip 된 이후에 나타나는지를 의미합니다. \\ \\ | ||
+ | 9. //reserved// \\ | ||
+ | 예약된 공간입니다.\\ \\ | ||
+ | 10. //desfireAppKey// \\ | ||
+ | DesFire card 정보에 접근하기 위한 키 정보를 나타냅니다. (고급설정) \\ \\ | ||
+ | |||
+ | |||
+ | ==== BS2CustomCardConfig ==== | ||
+ | <code cpp> | ||
+ | typedef struct { | ||
+ | BS2_CARD_DATA_TYPE dataType; | ||
+ | BS2_BOOL useSecondaryKey; | ||
+ | uint8_t reserved1[2]; | ||
+ | |||
+ | BS2CustomMifareCard mifare; | ||
+ | BS2CustomDesFireCard desfire; | ||
+ | uint8_t reserved2[24]; | ||
+ | uint8_t reserved3[96]; | ||
+ | |||
+ | BS2_CARD_BYTE_ORDER smartCardByteOrder; | ||
+ | uint8_t reserved4[3]; | ||
+ | BS2_UID formatID; | ||
+ | uint8_t reserved5[8]; | ||
+ | } BS2CustomCardConfig; | ||
+ | </code> | ||
+ | 1. //dataType// \\ | ||
+ | Card의 데이터 유형입니다. \\ | ||
+ | <WRAP group 50%> | ||
+ | ^값 ^설명 ^ | ||
+ | |0 |바이너리 | | ||
+ | |1 |아스키 | | ||
+ | |2 |UTF16 | | ||
+ | |3 |BCD | | ||
+ | </WRAP> | ||
+ | 2. //useSecondaryKey// \\ | ||
+ | 두번째 암호화 키 사용 유무를 결정하는 flag입니다. \\ \\ | ||
+ | 3. //reserved1// \\ | ||
+ | 예약된 공간입니다. \\ \\ | ||
+ | 4. //mifare// \\ | ||
+ | Mifare custom card 정보를 설정합니다. \\ \\ | ||
+ | 5. //desfire// \\ | ||
+ | DESFire custom card 정보를 설정합니다. \\ \\ | ||
+ | 6. //reserved2// \\ | ||
+ | 예약된 공간입니다. \\ \\ | ||
+ | 7. //reserved3// \\ | ||
+ | 예약된 공간입니다. \\ \\ | ||
+ | 8. //smartCardByteOrder// \\ | ||
+ | MSB 또는 LSB로 출력을 지정할 수 있습니다. \\ | ||
+ | <WRAP group 50%> | ||
+ | ^값 ^설명 ^ | ||
+ | |0 |MSB | | ||
+ | |1 |LSB | | ||
+ | </WRAP> | ||
+ | 9. //reserved4// \\ | ||
+ | 예약된 공간입니다. \\ \\ | ||
+ | 10. //formatID// \\ | ||
+ | BioStar 애플리케이션에서 card configuration을 데이터베이스 관리할 필요가 있을 경우 사용할 수 있는 식별자입니다. \\ \\ | ||
+ | 11. //reserved5// \\ | ||
+ | 예약된 공간입니다. \\ \\ |