문서의 이전 판입니다!
Log Management API
장치의 로그를 제어하는 API입니다.
- BS2_GetLog: 일정량의 로그를 가져옵니다.
- BS2_GetFilteredLog: 조건에 맞는 로그를 가져옵니다.
- BS2_ClearLog: 모든 로그를 삭제합니다.
- BS2_StartMonitoringLog: 실시간 로그 스트리밍을 시작합니다.
- BS2_StopMonitoringLog: 실시간 로그 스트리밍을 중단합니다.
- BS2_GetLogBlob: EventMask에 맞게 일정량의 로그를 가져옵니다.
- BS2_GetFilteredLogSinceEventId: 조건에 맞는 로그를 가져옵니다.
콜백 함수
typedef void (*OnLogReceived)(uint32_t deviceId, BS2Event* log);
1. OnLogReceived
장치로부터 새로운 로그를 수신했을 때 호출되는 콜백 함수입니다.
구조체
BS2Event
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;
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
이벤트 발생 장치의 추가 정보가 필요할 경우에만 사용되고, 주로 근태 코드나 출입문이나 입력 장치의 포트 번호가 저장됩니다. 근태 코드가 저장될 때는 아래의 코드표를 참고하십시오.
장치 종류 | 근태 코드 | 키 | 값 |
---|---|---|---|
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 |
9. image
이벤트 발생되었을 때 이미지 정보가 포함될 경우에 사용됩니다.
BS2EventBlob
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;
1. eventMask
Event mask값입니다. mask값에 따라서 해당 ID(User, card, door, zone)값을 인식할 수 있습니다.
값 | 설명 |
---|---|
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 |
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
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;
1. dateTime
로그가 발생된 시간 정보이며, UTC로부터 현재까지 흐른 초(sec) 수를 의미합니다.
2. deviceID
로그가 발생된 장치 식별자입니다.
3. subCode
로그 유형의 하위 코드 값입니다. 추가 정보가 필요할 경우 사용하십시오
4. mainCode
로그 유형의 주코드 값입니다.
5. reserved
예약된 공간입니다.
BS2EventExtIoDevice
typedef struct { uint32_t ioDeviceID; uint16_t port; uint8_t value; uint8_t reserved[1]; } BS2EventExtInfo;
1. ioDeviceID
Door나 Input 장치의 식별자로 Door나 Input 장치와 관련 없는 로그일 경우 0으로 설정됩니다.
2. port
입력 port number입니다.
3. value
입력 port 상태를 말합니다.
값 | 설명 |
---|---|
-1 | UNKNOWN |
0 | Open |
1 | Closed |
2 | Supervised Short |
3 | Supervised Open |
4. reserved
예약된 공간입니다.