차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

ko:log_management_api [2018/02/21 21:23]
kkshin [BS2Event]
ko:log_management_api [2024/02/27 14:56]
줄 1: 줄 1:
-====== Log Management API ====== 
  
-장치의 로그를 제어하는 API입니다. ​ 
-\\ 
- 
-  * [[BS2_GetLog]]:​ 일정량의 로그를 가져옵니다. 
-  * [[BS2_GetFilteredLog]]:​ 조건에 맞는 로그를 가져옵니다. 
-  * [[BS2_ClearLog]]:​ 모든 로그를 삭제합니다. 
-  * [[BS2_StartMonitoringLog]]:​ 실시간 로그 스트리밍을 시작합니다. 
-  * [[BS2_StopMonitoringLog]]:​ 실시간 로그 스트리밍을 중단합니다. 
-  * [[BS2_GetLogBlob]]:​ EventMask에 맞게 일정량의 로그를 가져옵니다. 
-  * [[BS2_GetFilteredLogSinceEventId]]:​ 조건에 맞는 로그를 가져옵니다. 
-===== 콜백 함수 ===== 
-<code cpp> 
-typedef void (*OnLogReceived)(uint32_t deviceId, BS2Event* log); 
-</​code>​ 
-\\ 
- 
-1. //​OnLogReceived//​ \\  
-장치로부터 새로운 로그를 수신했을 때 호출되는 콜백 함수입니다. ​ \\ \\  
- 
-===== 구조체 ===== 
-==== BS2Event ==== 
- 
-<code cpp> 
-typedef struct { 
-    uint32_t id; 
-    uint32_t dateTime; 
-    uint32_t deviceID; 
-    union { 
-        char userID[BS2_USER_ID_SIZE];​ 
-        uint32_t ioDeviceID; 
-    }; 
-    union { 
-        uint16_t code; 
-        struct { 
-            uint8_t subCode; 
-            uint8_t mainCode; 
-        }; 
-    }; 
-    uint8_t param; 
-    uint8_t image; 
-} BS2Event; 
-</​code>​ 
-\\ 
- 
-1. //id// \\  
-로그 레코드의 식별자이며 로그가 발생될 때마다 1부터 자동으로 증가합니다. \\ \\  
-2. //​dateTime//​ \\  
-로그가 발생된 시간 정보이며,​ UTC로부터 현재까지 흐른 초(sec) 수를 의미합니다. \\ \\  
-3. //​deviceID//​ \\  
-로그가 발생된 장치 식별자입니다. \\ \\  
-4. //userID// \\  
-로그와 관련된 사용자 식별자로써 사용자와 관련 없는 로그일 경우 0으로 설정됩니다. \\ \\  
-5. //​ioDeviceID//​ \\  
-Door나 Input 장치의 식별자로 Door나 Input 장치와 관련 없는 로그일 경우 0으로 설정됩니다. \\ \\ 
-6. //subCode// \\  
-로그 유형의 하위 코드 값입니다. 추가 정보가 필요할 경우 사용하십시오. \\ 
-^범주 ​ ^이벤트 코드 ​ ^값  ^설명 ​ ^ 
-|Verify ​ |BS2_SUB_EVENT_VERIFY_ID_PIN ​ |0x01  |주어진 사용자 식별자로 PIN 인증 성공 ​ | 
-|::: |BS2_SUB_EVENT_VERIFY_ID_FINGER ​ |0x02  |주어진 사용자 식별자로 지문 인증 성공 ​ | 
-|::: |BS2_SUB_EVENT_VERIFY_ID_FINGER_PIN ​ |0x03  |주어진 사용자 식별자로 지문과 PIN 인증 성공 ​ | 
-|::: |BS2_SUB_EVENT_VERIFY_ID_FACE ​ |0x04  |주어진 사용자 식별자로 얼굴 인식 성공 ​ | 
-|::: |BS2_SUB_EVENT_VERIFY_ID_FACE_PIN ​ |0x05  |주어진 사용자 식별자로 얼굴 인식과 PIN 인증 성공 ​ | 
-|::: |BS2_SUB_EVENT_VERIFY_CARD ​ |0x06  |스마트 카드 인증 성공 ​ | 
-|::: |BS2_SUB_EVENT_VERIFY_CARD_PIN ​ |0x07  |스마트 카드와 PIN 인증 성공 ​ | 
-|::: |BS2_SUB_EVENT_VERIFY_CARD_FINGER ​ |0x08  |스마트 카드와 지문 인증 성공 ​ | 
-|::: |BS2_SUB_EVENT_VERIFY_CARD_FINGER_PIN ​ |0x09  |스마트 카드, 지문, PIN 인증 성공 ​ | 
-|::: |BS2_SUB_EVENT_VERIFY_CARD_FACE ​ |0x0A  |스마트 카드 인증과 얼굴 인식 성공 ​ | 
-|::: |BS2_SUB_EVENT_VERIFY_CARD_FACE_PIN ​ |0x0B  |스마트 카드, 얼굴 인식, PIN 인증 성공 ​ | 
-|::: |BS2_SUB_EVENT_VERIFY_AOC ​ |0x0C  |AOC 카드 인증 성공 ​ | 
-|::: |BS2_SUB_EVENT_VERIFY_AOC_PIN ​ |0x0D  |AOC 카드와 PIN 인증 성공 ​ | 
-|::: |BS2_SUB_EVENT_VERIFY_AOC_FINGER ​ |0x0E  |AOC 카드와 지문 인증 성공 ​ | 
-|::: |BS2_SUB_EVENT_VERIFY_AOC_FINGER_PIN ​ |0x0F  |AOC 카드, 지문, PIN 인증 성공 ​ | 
-|Identify ​ |BS2_SUB_EVENT_IDENTIFY_FINGER ​ |0x01  |지문 인증으로 사용자 식별 ​ | 
-|::: |BS2_SUB_EVENT_IDENTIFY_FINGER_PIN ​ |0x02  |지문과 PIN 인증으로 사용자 식별 ​ | 
-|::: |BS2_SUB_EVENT_IDENTIFY_FACE ​ |0x03  |얼굴 인식으로 사용자 식별 ​ | 
-|::: |BS2_SUB_EVENT_IDENTIFY_FACE_PIN ​ |0x04  |얼굴 인식과 PIN 인증으로 사용자 식별 ​ | 
-|Auth  |BS2_SUB_EVENT_DUAL_AUTH_FAIL_TIMEOUT ​ |0x01  |이중 인증(2인 인증) 시간 만료 ​ | 
-|::: |BS2_SUB_EVENT_DUAL_AUTH_FAIL_ACCESS_GROUP ​ |0x02  |유효하지 않은 사용자로 2인 인증 시도 ​ | 
-|Credential ​ |BS2_SUB_EVENT_CREDENTIAL_ID ​ |0x01  |등록되지 않은 사용자 식별자 ​ | 
-|::: |BS2_SUB_EVENT_CREDENTIAL_CARD ​ |0x02  |유효하지 않은 스마트 카드 ​ | 
-|::: |BS2_SUB_EVENT_CREDENTIAL_PIN ​ |0x03  |유효하지 않은 PIN  | 
-|::: |BS2_SUB_EVENT_CREDENTIAL_FINGER ​ |0x04  |유효하지 않은 지문 ​ | 
-|::: |BS2_SUB_EVENT_CREDENTIAL_FACE ​ |0x05  |유효하지 않은 얼굴 ​ | 
-|::: |BS2_SUB_EVENT_CREDENTIAL_AOC_PIN ​ |0x06  |유효하지 않은 AOC PIN  | 
-|::: |BS2_SUB_EVENT_CREDENTIAL_AOC_FINGER ​ |0x07  |유효하지 않은 AOC 지문 ​ | 
-|Auth  |BS2_SUB_EVENT_AUTH_FAIL_INVALID_AUTH_MODE ​ |0x01  |유효하지 않은 인증 모드 ​ | 
-|::: |BS2_SUB_EVENT_AUTH_FAIL_INVALID_CREDENTIAL ​ |0x02  |인증 모드에 설정되지 않은 인증 수단 ​ | 
-|::: |BS2_SUB_EVENT_AUTH_FAIL_TIMEOUT ​ |0x03  |인증 시간 만료 ​ | 
-|Access ​ |BS2_SUB_EVENT_ACCESS_DENIED_ACCESS_GROUP ​ |0x01  |출입 통제 구역에 등록되지 않아 출입 실패 ​ | 
-|::: |BS2_SUB_EVENT_ACCESS_DENIED_DISABLED ​ |0x02  |비활성화된 사용자이기 때문에 출입 실패 ​ | 
-|::: |BS2_SUB_EVENT_ACCESS_DENIED_EXPIRED ​ |0x03  |사용자 유효 기간 만료되어 출입 실패 ​ | 
-|::: |BS2_SUB_EVENT_ACCESS_DENIED_ON_BLACKLIST ​ |0x04  |블랙리스트 카드로 등록되어 출입 실패 ​ | 
-|::: |BS2_SUB_EVENT_ACCESS_DENIED_APB ​ |0x05  |APB 규칙 위반하여 출입 실패 ​ | 
-|::: |BS2_SUB_EVENT_ACCESS_DENIED_TIMED_APB ​ |0x06  |Timed APB 구역을 재진입 대기 시간내에 출입 ​ | 
-|::: |BS2_SUB_EVENT_ACCESS_DENIED_FORCED_LOCK ​ |0x07  |강제 잠금 구역이기 때문에 출입 실패 ​ | 
-|APB  |BS2_SUB_EVENT_ZONE_HARD_APB ​ |0x01  |하드 APB 구역 ​ | 
-|::: |BS2_SUB_EVENT_ZONE_SOFT_APB ​ |0x02  |소프트 APB 구역 ​ |  
-7. //​mainCode//​ \\  
-로그 유형의 주코드 값입니다. \\ 
-^범주 ​ ^이벤트 코드 ​ ^값  ^설명 ​ ^ 
-|Auth  |BS2_EVENT_VERIFY_SUCCESS ​ |0x1000 ​ |1:1 인증 성공 ​ | 
-|::: |BS2_EVENT_VERIFY_FAIL ​ |0x1100 ​ |1:1 인증 실패 ​ | 
-|::: |BS2_EVENT_VERIFY_DURESS ​ |0x1200 ​ |협박 지문으로 1:1 인증 성공에 성공 ​ | 
-|::: |BS2_EVENT_IDENTIFY_SUCCESS ​ |0x1300 ​ |1:N 인증 성공 ​ | 
-|::: |BS2_EVENT_IDENTIFY_FAIL ​ |0x1400 ​ |1:N 인증 실패 ​ | 
-|::: |BS2_EVENT_IDENTIFY_DURESS ​ |0x1500 ​ |협박 지문으로 1:N 인증 성공에 성공 ​ | 
-|::: |BS2_EVENT_DUAL_AUTH_SUCCESS ​ |0x1600 ​ |이중 인증(2인 인증) 성공 ​ | 
-|::: |BS2_EVENT_DUAL_AUTH_FAIL ​ |0x1700 ​ |이중 인증(2인 인증) 실패 ​ | 
-|::: |BS2_EVENT_AUTH_FAILED ​ |0x1800 ​ |등록되지 않은 인증 수단으로 인증 시도 ​ | 
-|::: |BS2_EVENT_ACCESS_DENIED ​ |0x1900 ​ |유효하지 사용자가 인증을 시도하거나 APB 규칙에 위반 ​ | 
-|::: |BS2_EVENT_FAKE_FINGER_DETECTED ​ |0x1A00 ​ |위조지문 감지됨 ​ | 
-|User  |BS2_EVENT_USER_ENROLL_SUCCESS ​ |0x2000 ​ |사용자 등록 성공 ​ | 
-|::: |BS2_EVENT_USER_ENROLL_FAIL ​ |0x2100 ​ |사용자 등록 실패 ​ | 
-|::: |BS2_EVENT_USER_UPDATE_SUCCESS ​ |0x2200 ​ |사용자 정보 갱신 성공 ​ | 
-|::: |BS2_EVENT_USER_UPDATE_FAIL ​ |0x2300 ​ |사용자 정보 갱신 실패 ​ | 
-|::: |BS2_EVENT_USER_DELETE_SUCCESS ​ |0x2400 ​ |사용자 삭제 성공 ​ | 
-|::: |BS2_EVENT_USER_DELETE_FAIL ​ |0x2500 ​ |사용자 삭제 실패 ​ | 
-|::: |BS2_EVENT_USER_DELETE_ALL_SUCCESS ​ |0x2600 ​ |전체 사용자 삭제 성공 ​ | 
-|::: |BS2_EVENT_USER_ISSUE_AOC_SUCCESS ​ |0x2700 ​ |Access card로 인증 성공 | 
-|Device ​ |BS2_EVENT_DEVICE_SYSTEM_RESET ​ |0x3000 ​ |시스템 다시 시작 ​ | 
-|::: |BS2_EVENT_DEVICE_SYSTEM_STARTED ​ |0x3100 ​ |시스템이 시작됨 ​ | 
-|::: |BS2_EVENT_DEVICE_TIME_SET ​ |0x3200 ​ |시스템 시간 변경 ​ | 
-|::: |BS2_EVENT_DEVICE_LINK_CONNECTED ​ |0x3300 ​ |LAN 케이블 연결됨 ​ | 
-|::: |BS2_EVENT_DEVICE_LINK_DISCONNETED ​ |0x3400 ​ |LAN 케이블 빠짐 ​ | 
-|::: |BS2_EVENT_DEVICE_DHCP_SUCCESS ​ |0x3500 ​ |DHCP로 IP할당됨 ​ | 
-|::: |BS2_EVENT_DEVICE_ADMIN_MENU ​ |0x3600 ​ |관리자 메뉴로 진입 ​ | 
-|::: |BS2_EVENT_DEVICE_UI_LOCKED ​ |0x3700 ​ |잠금 화면 시작 ​ | 
-|::: |BS2_EVENT_DEVICE_UI_UNLOCKED ​ |0x3800 ​ |잠금 화면 끝  | 
-|::: |BS2_EVENT_DEVICE_COMM_LOCKED ​ |0x3900 ​ |RS485 통신 잠금 ​ | 
-|::: |BS2_EVENT_DEVICE_COMM_UNLOCKED ​ |0x3A00 ​ |RS485 통신 잠금 해제 ​ | 
-|::: |BS2_EVENT_DEVICE_TCP_CONNECTED ​ |0x3B00 ​ |TCP 연결됨 ​ | 
-|::: |BS2_EVENT_DEVICE_TCP_DISCONNECTED ​ |0x3C00 ​ |TCP 연결이 끊어짐 ​ | 
-|::: |BS2_EVENT_DEVICE_RS485_CONNECTED ​ |0x3D00 ​ |RS485 연결됨 ​ | 
-|::: |BS2_EVENT_DEVICE_RS485_DISCONNCTED ​ |0x3E00 ​ |RS485 연결이 끊어짐 ​ | 
-|::: |BS2_EVENT_DEVICE_INPUT_DETECTED ​ |0x3F00 ​ |입력 장치가 검색됨 ​ | 
-|::: |BS2_EVENT_DEVICE_TAMPER_ON ​ |0x4000 ​ |장치 혹은 주변 장치가 제거됨 ​ | 
-|::: |BS2_EVENT_DEVICE_TAMPER_OFF ​ |0x4100 ​ |장치 혹은 주변 장치가 다시 연결됨 ​ | 
-|::: |BS2_EVENT_DEVICE_EVENT_LOG_CLEARED ​ |0x4200 ​ |로그 삭제됨 ​ | 
-|::: |BS2_EVENT_DEVICE_FIRMWARE_UPGRADED ​ |0x4300 ​ |펌웨어가 업데이트됨 ​ | 
-|::: |BS2_EVENT_DEVICE_RESOURCE_UPGRADED ​ |0x4400 ​ |리소스가 업데이트됨 ​ | 
-|::: |BS2_EVENT_DEVICE_CONFIG_RESET ​ |0x4500 ​ |시스템 구성 정보가 초기화됨 ​ | 
-|::: |BS2_EVENT_DEVICE_DATABASE_RESET ​ |0x4501 ​ |데이터베이스가 초기화됨 ​ | 
-|::: |BS2_EVENT_DEVICE_FACTORY_RESET ​ |0x4502 ​ |공장 초기화됨 ​ | 
-|::: |BS2_EVENT_DEVICE_CONFIG_RESET_EX ​ |0x4503 ​ |시스템 구성 정보가 초기화됨 ​ | 
-|Supervised Input  |BS2_EVENT_SUPERVISED_INPUT_SHORT ​ |0x4600 ​ |Supervised Input (단락 감지) ​ | 
-|:::  |BS2_EVENT_SUPERVISED_INPUT_OPEN ​ |0x4700 ​ |Supervised Input (단선 감지) ​ | 
-|Device-Ex ​ |BS2_EVENT_DEVICE_AC_FAIL ​ |0x4800 ​ |AC Power 실패 ​ | 
-|:::  |BS2_EVENT_DEVICE_AC_SUCCESS ​ |0x4900 ​ |AC Power 성공 ​ | 
-|Door  |BS2_EVENT_DOOR_UNLOCKED ​ |0x5000 ​ |출입문 잠금이 풀림 ​ | 
-|:::  |BS2_EVENT_DOOR_LOCKED ​ |0x5100 ​ |출입문이 잠김 ​ | 
-|:::  |BS2_EVENT_DOOR_OPENED ​ |0x5200 ​ |출입문이 열림 ​ | 
-|:::  |BS2_EVENT_DOOR_CLOSED ​ |0x5300 ​ |출입문이 닫힘 ​ | 
-|:::  |BS2_EVENT_DOOR_FORCED_OPEN ​ |0x5400 ​ |출입문이 강제로 열림 ​ | 
-|:::  |BS2_EVENT_DOOR_HELD_OPEN ​ |0x5500 ​ |출입문 열림이 일정 시간동안 지속됨 ​ | 
-|:::  |BS2_EVENT_DOOR_FORCED_OPEN_ALARM ​ |0x5600 ​ |BS2_EVENT_DOOR_FORCED_OPEN 이벤트 발생 경보 시작 ​ | 
-|:::  |BS2_EVENT_DOOR_FORCED_OPEN_ALARM_CLEAR ​ |0x5700 ​ |BS2_EVENT_DOOR_FORCED_OPEN 이벤트 발생 경보 해제 ​ | 
-|:::  |BS2_EVENT_DOOR_HELD_OPEN_ALARM ​ |0x5800 ​ |BS2_EVENT_DOOR_HELD_OPEN 이벤트 발생 경보 시작 ​ | 
-|:::  |BS2_EVENT_DOOR_HELD_OPEN_ALARM_CLEAR ​ |0x5900 ​ |BS2_EVENT_DOOR_HELD_OPEN 이벤트 발생 경보 해제 ​ | 
-|:::  |BS2_EVENT_DOOR_APB_ALARM ​ |0x5A00 ​ |APB 경보 시작 ​ | 
-|:::  |BS2_EVENT_DOOR_APB_ALARM_CLEAR ​ |0x5B00 ​ |APB 경보 해제 ​ | 
-|:::  |BS2_EVENT_DOOR_RELEASE ​ |0x5C00 ​ |출입문 해제 ​ | 
-|:::  |BS2_EVENT_DOOR_LOCK ​ |0x5D00 ​ |출입문 잠금 ​ | 
-|:::  |BS2_EVENT_DOOR_UNLOCK ​ |0x5E00 ​ |출입문 개방 ​ | 
-|Zone  |BS2_EVENT_ZONE_APB_VIOLATION ​ |0x6000 ​ |구역내 APB 규칙 위반 ​ | 
-|:::  |BS2_EVENT_ZONE_APB_ALARM ​ |0x6100 ​ |BS2_EVENT_ZONE_APB_VIOLATION 이벤트 발생 경보 시작 ​ | 
-|:::  |BS2_EVENT_ZONE_APB_ALARM_CLEAR ​ |0x6200 ​ |BS2_EVENT_ZONE_APB_VIOLATION 이벤트 발생 경보 해제 ​ | 
-|:::  |BS2_EVENT_ZONE_TIMED_APB_VIOLATION ​ |0x6300 ​ |구역내 TIMED APB 규칙 위반 ​ | 
-|:::  |BS2_EVENT_ZONE_TIMED_APB_ALARM ​ |0x6400 ​ |BS2_EVENT_ZONE_TIMED_APB_VIOLATION 이벤트 발생 경보 시작 ​ | 
-|:::  |BS2_EVENT_ZONE_TIMED_APB_ALARM_CLEAR ​ |0x6500 ​ |BS2_EVENT_ZONE_TIMED_APB_VIOLATION 이벤트 발생 경보 해제 ​ | 
-|:::  |BS2_EVENT_ZONE_FIRE_ALARM_INPUT ​ |0x6600 ​ |화재 발생 ​ | 
-|:::  |BS2_EVENT_ZONE_FIRE_ALARM ​ |0x6700 ​ |BS2_EVENT_ZONE_FIRE_ALARM_INPUT 이벤트 발생 경보 시작 ​ | 
-|:::  |BS2_EVENT_ZONE_FIRE_ALARM_CLEAR ​ |0x6800 ​ |BS2_EVENT_ZONE_FIRE_ALARM_INPUT 이벤트 발생 경보 해제 ​ | 
-|:::  |BS2_EVENT_ZONE_FORCED_LOCK_VIOLATION ​ |0x6900 ​ |구역내 강제 잠금 위반 감지 ​ | 
-|:::  |BS2_EVENT_ZONE_FORCED_LOCK_START ​ |0x6A00 ​ |구역내 강제 잠금 시작 ​ | 
-|:::  |BS2_EVENT_ZONE_FORCED_LOCK_END ​ |0x6B00 ​ |구역내 강제 잠금 끝  | 
-|:::  |BS2_EVENT_ZONE_FORCED_UNLOCK_START ​ |0x6C00 ​ |구역내 강제 잠금 해제 시작 ​ | 
-|:::  |BS2_EVENT_ZONE_FORCED_UNLOCK_END ​ |0x6D00 ​ |구역내 강제 잠금 해제 끝  | 
-|:::  |BS2_EVENT_ZONE_FORCED_LOCK_ALARM ​ |0x6E00 ​ |구역내 강제 잠금 경보 시작 ​ | 
-|:::  |BS2_EVENT_ZONE_FORCED_LOCK_ALARM_CLEAR ​ |0x6F00 ​ |구역내 강제 잠금 경보 해제 ​ | 
- 
- 
- 
-8. //param// \\  
-이벤트 발생 장치의 추가 정보가 필요할 경우에만 사용되고,​ 주로 근태 코드나 출입문이나 입력 장치의 포트 번호가 저장됩니다. 근태 코드가 저장될 때는 아래의 코드표를 참고하십시오. ​ 
-<WRAP group 60%> 
-^장치 종류 ^근태 코드 ​ ^키 ^값^ 
-|BioStation 2|BS2_TNA_UNSPECIFIED|(N/​A)|0| 
-|:::​|BS2_TNA_KEY_1|F1|1| 
-|:::​|BS2_TNA_KEY_2|F2|2| 
-|:::​|BS2_TNA_KEY_3|F3|3| 
-|:::​|BS2_TNA_KEY_4|F4|4| 
-|:::​|BS2_TNA_KEY_5|1|5| 
-|:::​|BS2_TNA_KEY_6|2|6| 
-|:::​|BS2_TNA_KEY_7|3|7| 
-|:::​|BS2_TNA_KEY_8|4|8| 
-|:::​|BS2_TNA_KEY_9|5|9| 
-|:::​|BS2_TNA_KEY_10|6|10| 
-|:::​|BS2_TNA_KEY_11|7|11| 
-|:::​|BS2_TNA_KEY_12|8|12| 
-|:::​|BS2_TNA_KEY_13|9|13| 
-|:::​|BS2_TNA_KEY_14|Call|14| 
-|:::​|BS2_TNA_KEY_15|0|15| 
-|:::​|BS2_TNA_KEY_16|Esc|16| 
-</​WRAP>​ 
-\\ \\  
- 
-9. //image// \\  
-이벤트 발생되었을 때 이미지 정보가 포함될 경우에 사용됩니다. 
- 
-==== BS2EventBlob==== 
- 
-<code cpp> 
-typedef struct { 
-    uint16_t eventMask; 
-    uint32_t id; 
-    BS2EventExtInfo info;  
-    union 
-    { 
- BS2_USER_ID userID; ​                      // valid if eventMask has BS2_EVENT_MASK_USER_ID 
- uint8_t cardID[BS2_CARD_DATA_SIZE]; ​      // valid if eventMask has BS2_EVENT_MASK_CARD_ID 
- BS2_DOOR_ID doorID; ​                      // valid if eventMask has BS2_EVENT_MASK_DOOR_ID 
- BS2_ZONE_ID zoneID; ​                      // valid if eventMask has BS2_EVENT_MASK_ZONE_ID 
- BS2EventExtIoDevice ioDevice; ​            // valid if eventMask has BS2_EVENT_MASK_IODEVICE 
-    }; 
-    uint8_t tnaKey; 
-    uint32_t jobCode; ​   ​ 
-    uint16_t imageSize; 
-    uint8_t image[BS2_EVENT_MAX_IMAGE_SIZE];​ 
-    uint8_t reserved; 
-} BS2EventBlob;​ 
-</​code>​ 
-\\ 
- 
-1. //​eventMask//​ \\  
-Event mask값입니다. mask값에 따라서 해당 ID(User, card, door, zone)값을 인식할 수 있습니다.\\ \\  
-<WRAP group 50%> 
-^값  ^설명 ​ ^ 
-|0     ​|없음 ​ | 
-|1     ​|BS2EventExtInfo 구조체 | 
-|2     |User ID | 
-|4     |Card ID | 
-|8     |Door ID | 
-|16    |Zone ID | 
-|32    |BS2EventExtIoDevice 구조체 ​ | 
-|64    |Door ID | 
-|128   |Zone ID | 
-|256   |TNA Key | 
-|512   |Job Code | 
-|1024  |Image | 
-|65535 |ALL | 
-</​WRAP>​ 
-2. //id// \\  
-로그 레코드의 식별자이며 로그가 발생될 때마다 1부터 자동으로 증가합니다. \\ \\  
-3. //info// \\  
-BS2EventExtInfo 구조체 정보입니다. \\ \\  
-4. //userID// \\  
-로그와 관련된 사용자 식별자로써 사용자와 관련 없는 로그일 경우 0으로 설정됩니다. \\ \\  
-5. //cardID// \\  
-로그와 관련된 card 식별자로써 card와 관련 없는 로그일 경우 0으로 설정됩니다. \\ \\  
-6. //doorID// \\  
-로그와 관련된 door 식별자로써 door와 관련 없는 로그일 경우 0으로 설정됩니다. \\ \\  
-7. //zoneID// \\  
-로그와 관련된 zone 식별자로써 zone와 관련 없는 로그일 경우 0으로 설정됩니다. \\ \\  
-8. //​ioDevice//​ \\  
-Door나 Input 장치의 식별자로 Door나 Input 장치와 관련 없는 로그일 경우 0으로 설정됩니다. (BS2EventExtIoDevice 구조체 참고)\\ \\  
-9. //tnaKey// \\  
-이벤트 발생 장치의 추가 정보가 필요할 경우에만 사용되고,​ 주로 근태 코드나 출입문이나 입력 장치의 포트 번호가 저장됩니다 \\ \\ 
-10. //jobCode// \\  
-사용자 정보에 JobCode가 존재했을 경우에, JobCode 사용하여 인증 할 때 사용자의 JobCode 값을 말합니다. \\ \\ 
-11. //​imageSize//​ \\  
-이벤트 발생되었을 때 이미지 size를 말합니다. \\ \\ 
-12. //image// \\  
-이벤트 발생되었을 때 이미지 정보가 포함될 경우에 사용됩니다 \\ \\ 
-13. //​reserved//​ \\  
-예약된 공간입니다.\\ \\ 
- 
-==== BS2EventExtInfo==== 
- 
-<code cpp> 
-typedef struct { 
-    uint32_t dateTime; 
-    uint32_t deviceID; ​   ​ 
-    union {                                       ///<​ 2 bytes 
- BS2_EVENT_CODE code; 
- struct { 
- uint8_t subCode; 
- uint8_t mainCode; 
- }; 
- }; 
- uint8_t reserved[2];​ 
-} BS2EventExtInfo;​ 
-</​code>​ 
-\\ 
- 
-1. //​dateTime//​ \\  
-로그가 발생된 시간 정보이며,​ UTC로부터 현재까지 흐른 초(sec) 수를 의미합니다. \\ \\  
-2. //​deviceID//​ \\  
-로그가 발생된 장치 식별자입니다. \\ \\  
-3. //subCode// \\  
-로그 유형의 하위 코드 값입니다. 추가 정보가 필요할 경우 사용하십시오 \\ \\  
-4. //​mainCode//​ \\  
-로그 유형의 주코드 값입니다. ​ \\ \\  
-5. //​reserved//​ \\  
-예약된 공간입니다.\\ \\ 
- 
-==== BS2EventExtIoDevice==== 
- 
-<code cpp> 
-typedef struct { 
-    uint32_t ioDeviceID; 
-    uint16_t port;    ​ 
-    uint8_t value; 
-    uint8_t reserved[1];​ 
-} BS2EventExtInfo;​ 
-</​code>​ 
-\\ 
- 
-1. //​ioDeviceID//​ \\  
-Door나 Input 장치의 식별자로 Door나 Input 장치와 관련 없는 로그일 경우 0으로 설정됩니다. \\ \\  
-2. //port// \\  
-입력 port number입니다.\\ \\  
-3. //value// \\  
-입력 port 상태를 말합니다. \\ \\  
-<WRAP group 50%> 
-^값  ^설명 ​ ^ 
-|-1  |UNKNOWN ​ | 
-|0   |Open | 
-|1   ​|Closed | 
-|2   ​|Supervised Short | 
-|3   ​|Supervised Open | 
-</​WRAP>​ 
-4. //​reserved//​ \\  
-예약된 공간입니다.\\ \\