목차

Log Management API

장치의 로그를 제어하는 API입니다.

콜백 함수

OnLogReceived

장치로부터 새로운 로그를 수신했을 때 호출되는 콜백 함수입니다.

typedef void (*OnLogReceived)(uint32_t deviceId, BS2Event* log);


1. deviceId
새로운 로그를 보내준 장치 ID입니다.

2. log
새로운 로그 정보 구조체입니다.

OnLogReceivedEx

[+ V2.7.1] 장치로부터 새로운 로그를 수신했을 때 호출되는 콜백 함수입니다.
열화상 카메라를 통해 측정된 체온이 세번째 인자로 수신되며, BS2FaceConfigExt의 auditTemperature가 true로 설정되어져야 합니다.

typedef void (*OnLogReceivedEx)(uint32_t deviceId, BS2Event* log, uint32_t temperature);


1. deviceId
새로운 로그를 보내준 장치 ID입니다.

2. log
새로운 로그 정보 구조체입니다.

3. temperature
새로운 로그 발생 시, 측정된 체온 정보입니다.

구조체

BS2Event

typedef struct {
    uint32_t id;
    uint32_t dateTime;
    uint32_t deviceID;
    union {
        char userID[BS2_USER_ID_SIZE];
        uint32_t uid;
        uint32_t doorID;
        uint32_t liftID;
        uint32_t zoneID;
        struct {
            uint32_t ioDeviceID;
            uint16_t port;
            int8_t value;
            uint8_t reserved[25];
        };
        struct {
            uint32_t zoneID;
            uint32_t doorID;
            uint32_t ioDeviceID;
            uint16_t port;
            uint8_t reserved[18];
        } alarm;
        struct {
            uint32_t zoneID;
            uint32_t doorID[4];
            uint8_t reserved[12];
        } interlock;
        struct {
            uint16_t relayPort;
            uint16_t inputPort;
            uint8_t reserved[28];
        } relayAction;
        struct {
            BS2_DEVICE_ID deviceId;
            uint8_t data[28];
        } osdpStandard;
    };
    union {
        uint16_t code;
        struct {
            uint8_t subCode;
            uint8_t mainCode;
        };
    };
    uint8_t param;
#ifdef LESS_THAN_SDK_2_6_0
    BS2_BOOL image;         // Deprecated in V2.6.0
#else
    uint8_t image: 1;       // bit 단위 분할하여 image 및 DST 지원
    uint8_t isDST: 1;
    uint8_t half: 1;
    uint8_t hour: 4;
    uint8_t negative: 1;
#endif
} BS2Event;


1. id
로그 레코드의 식별자이며 로그가 발생될 때마다 1부터 자동으로 증가합니다.

2. dateTime
로그가 발생된 시간 정보이며, UTC로부터 현재까지 흐른 초(sec) 수를 의미합니다.

3. deviceID
로그가 발생된 장치 식별자입니다.

4. userID
로그와 관련된 사용자 식별자로써 사용자와 관련 없는 로그일 경우 0으로 설정됩니다.

5. uid
출입문에 대한 로그라면 doorID를, 구역에 대한 로그라면 zoneID를 참조하면 되지만,
이를 정확히 알 수 없는 경우 uid를 참조하면 됩니다.
uid, doorID, liftID, zoneID는 union으로 선언되어 있기때문에 기본적으로 같은 정보를 의미합니다.

6. doorID
로그가 발생된 출입문 식별자입니다.

7. liftID
로그가 발생된 리프트 식별자입니다.

8. zoneID
로그가 발생된 구역 식별자입니다.

9. ioDeviceID
Door나 Input 장치의 식별자로 Door나 Input 장치와 관련 없는 로그일 경우 0으로 설정됩니다.

10. port
ioDeviceID에 대한 port를 의미합니다.

11. value
ioDeviceID에 대한 port value를 나타하며 다음을 의미합니다.
BS2_PORT_VALUE_UNKNOWN : -1
BS2_PORT_VALUE_OPEN : 0
BS2_PORT_VALUE_CLOSED : 1
BS2_PORT_VALUE_SUPERVISED_SHORT : 2
BS2_PORT_VALUE_SUPERVISED_OPEN : 3

12. alarm.zoneID
침입탐지 구역 경보 발생 시 구역에대한 식별자를 의미합니다.

13. alarm.doorID
침입탐지 구역 경보를 발생시킨 출입문 식별자를 의미합니다.

14. interlock.zoneID
인터락 위반을 발생시킨 구역 식별자를 의미합니다.

15. interlock.doorID
인터락 위반을 발생시킨 출입문 식별자를 의미합니다.

16. relayAction.relayPort
IM-120에서 RelayAction 동작 시 relay의 port 식별자입니다.

17. relayAction.inputPort
IM-120에서 RelayAction 동작 시 input의 port 식별자입니다.

18. osdpStandard.deviceId
OSDP standard 장치의 식별자입니다.

19. osdpStandard.data
OSDP standard 장치에서 발생된 총 28byte 크기의 알림 구조체 정보입니다.
구조체에 대한 상세한 정보는 BS2OsdpStandardDeviceNotify를 참조하세요.

20. 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 인증 성공
BS2_SUB_EVENT_VERIFY_CARD_FACE_FINGER 0x10 카드, 얼굴, 지문 인증 성공
BS2_SUB_EVENT_VERIFY_CARD_FINGER_FACE 0x11 카드, 지문, 얼굴 인증 성공
BS2_SUB_EVENT_VERIFY_ID_FACE_FINGER 0x12 ID, 얼굴, 지문 인증 성공
BS2_SUB_EVENT_VERIFY_ID_FINGER_FACE 0x13 ID, 지문, 얼굴 인증 성공
BS2_SUB_EVENT_VERIFY_MOBLIE_CARD 0x16 Mobile카드 인증 성공 (+2.8)
BS2_SUB_EVENT_VERIFY_MOBILE_CARD_PIN 0x17 Mobile카드, PIN 인증 성공 (+2.8)
BS2_SUB_EVENT_VERIFY_MOBILE_CARD_FINGER 0x18 Mobile카드, 지문 인증 성공 (+2.8)
BS2_SUB_EVENT_VERIFY_MOBILE_CARD_FINGER_PIN 0x19 Mobile카드, 지문, PIN 인증 성공 (+2.8)
BS2_SUB_EVENT_VERIFY_MOBILE_CARD_FACE 0x1A Mobile카드, 얼굴 인증 성공 (+2.8)
BS2_SUB_EVENT_VERIFY_MOBILE_CARD_FACE_PIN 0x1B Mobile카드, 얼굴, PIN 인증 성공 (+2.8)
BS2_SUB_EVENT_VERIFY_MOBILE_CARD_FACE_FINGER 0x20 Mobile카드, 얼굴, 지문 인증 성공 (+2.8)
BS2_SUB_EVENT_VERIFY_MOBILE_CARD_FINGER_FACE 0x21 Mobile카드, 지문, 얼굴 인증 성공 (+2.8)
BS2_SUB_EVENT_VERIFY_QR 0x25 QR 인증 성공
BS2_SUB_EVENT_VERIFY_QR_PIN 0x26 QR, PIN 인증 성공
BS2_SUB_EVENT_VERIFY_QR_FINGER 0x27 QR, finger 인증 성공
BS2_SUB_EVENT_VERIFY_QR_FINGER_PIN 0x28 QR, finger, PIN 인증 성공
BS2_SUB_EVENT_VERIFY_QR_FACE 0x29 QR, face 인증 성공
BS2_SUB_EVENT_VERIFY_QR_FACE_PIN 0x2A QR, face, PIN 인증 성공
BS2_SUB_EVENT_VERIFY_QR_FACE_FINGER 0x2B QR, face, finger 인증 성공
BS2_SUB_EVENT_VERIFY_QR_FINGER_FACE 0x2C QR, finger, face 인증 성공
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 인증으로 사용자 식별
BS2_SUB_EVENT_IDENTIFY_FACE_FINGER 0x05 얼굴 인식과 지문 인증으로 사용자 식별
BS2_SUB_EVENT_IDENTIFY_FACE_FINGER_PIN 0x06 얼굴 인식과 지문, PIN 인증으로 사용자 식별
BS2_SUB_EVENT_IDENTIFY_FINGER_FACE 0x07 지문 인증과 얼굴 인식으로 사용자 식별
BS2_SUB_EVENT_IDENTIFY_FINGER_FACE_PIN 0x08 지문 인증과 얼굴 인식, PIN 인증으로 사용자 식별
User BS2_SUB_EVENT_ENROLL_FAIL_INVALID_FACE 0x01 등록실패(잘못된 얼굴 정보)
BS2_SUB_EVENT_UPDATE_FAIL_INVALID_FACE 0x01 갱신실패(잘못된 얼굴 정보)
BS2_SUB_EVENT_ENROLL_FAIL_MISMATCHED_FORMAT 0x02 등록실패(존재하지 않는 사용자 등록 시, 템플릿 포멧이 장치 설정과 다름)
BS2_SUB_EVENT_UPDATE_FAIL_MISMATCHED_FORMAT 0x02 갱신실패(존재하는 사용자 갱신 시, 템플릿 포멧이 장치 설정과 다름)
BS2_SUB_EVENT_ENROLL_FAIL_FULL_CREDENTIAL 0x03 등록실패(사용자 등록으로 인해 장치의 credential 허용치를 초과함)
BS2_SUB_EVENT_UPDATE_FAIL_FULL_CREDENTIAL 0x03 갱신실패(사용자 갱신으로 인해 장치의 credential 허용치를 초과함)
BS2_SUB_EVENT_ENROLL_FAIL_INVALID_USER 0x04 등록실패(사용자 ID가 비어있다거나, 등록이 불가한 상황)
BS2_SUB_EVENT_UPDATE_FAIL_INVALID_USER 0x04 갱신실패(등록된 사용자가 없는 경우)
BS2_SUB_EVENT_ENROLL_FAIL_INTERNAL_ERROR 0x09 등록실패(내부오류)
BS2_SUB_EVENT_UPDATE_FAIL_INTERNAL_ERROR 0x09 갱신실패(내부오류)
Auth BS2_SUB_EVENT_DUAL_AUTH_FAIL_TIMEOUT 0x01 이중 인증(2인 인증) 시간 만료
BS2_SUB_EVENT_DUAL_AUTH_FAIL_ACCESS_GROUP 0x02 유효하지 않은 사용자로 2인 인증 시도
BS2_SUB_EVENT_HIGH_TEMPERATURE 0x00 고온 감지
BS2_SUB_EVENT_NO_TEMPERATURE 0x01 체온 감지 실패
BS2_SUB_EVENT_UNMASKED_FACE 0x02 마스트 미착용
BS2_SUB_EVENT_BYPASS_NO_VIOLATION 0x00 Bypass violation (No)
BS2_SUB_EVENT_BYPASS_THERMAL_VIOLATION 0x01 Bypass violation (체온)
BS2_SUB_EVENT_BYPASS_MASK_VIOLATION 0x02 Bypass violation (마스크)
BS2_SUB_EVENT_BYPASS_MASK_THERMAL_VIOLATION 0x03 Bypass violation (마스크 + 체온)
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 지문
BS2_SUB_EVENT_CREDENTIAL_MOBILE_CARD 0x08 유효하지 않은 Mobile카드 (+2.8)
BS2_SUB_EVENT_NON_NUMERIC_QR 0x09 QR에 숫자가 아닌 문자가 포함됨
BS2_SUB_EVENT_CREDENTIAL_QR 0x0C 유효하지 않은 QR (+2.8.3)
BS2_SUB_EVENT_NON_PRINTABLE_QR 0x0A QR에 사용 불가능한 제어문자가 포함됨
BS2_SUB_EVENT_TOO_LONG_QR 0x0B QR로 너무 긴 문자열이 사용됨
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 인증 시간 만료
BS2_SUB_EVENT_AUTH_FAIL_MATCHING_REFUSAL 0x04 매칭 거부
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 강제 잠금 구역이기 때문에 출입 실패
BS2_SUB_EVENT_ACCESS_DENIED_SCHEDULED_LOCK 0x07 출입 스케줄에 의하여 출입 실패
BS2_SUB_EVENT_ACCESS_EXCUSED_APB 0x08 APB 규칙 위반 및 출입허용(Soft APB)
BS2_SUB_EVENT_ACCESS_EXCUSED_TIMED_APB 0x09 Timed APB 규칙 위반 및 출입허용(Soft APB)
BS2_SUB_EVENT_ACCESS_DENIED_FACE_DETECTION 0x0A 출입거부(얼굴 검출 실패)
BS2_SUB_EVENT_ACCESS_DENIED_CAMERA_CAPTURE 0x0B 출입거부(카메라 캡쳐 실패)
BS2_SUB_EVENT_ACCESS_DENIED_FAKE_FINGER 0x0C 출입거부(위조된 얼굴인식)
BS2_SUB_EVENT_ACCESS_DENIED_DEVICE_ZONE_ENTRANCE_LIMIT 0x0D 출입거부(Device zone에서 인증 횟수 제한)
BS2_SUB_EVENT_ACCESS_DENIED_INTRUSION_ALARM 0x0E 출입거부(Intrusion alarm)
BS2_SUB_EVENT_ACCESS_DENIED_INTERLOCK 0x0F 출입거부(Interlock 위반)
BS2_SUB_EVENT_ACCESS_EXCUSED_AUTH_LIMIT 0x10 출입허용(인증제한 위반)
BS2_SUB_EVENT_ACCESS_DENIED_AUTH_LIMIT 0x11 출입거부(인증제한 위반)
BS2_SUB_EVENT_ACCESS_DENIED_ANTI_TAILGATE 0x12 출입거부(Anti tailgating)
BS2_SUB_EVENT_ACCESS_DENIED_HIGH_TEMPERATURE 0x13 출입거부(비정상 체온 감지 중 고온)
BS2_SUB_EVENT_ACCESS_DENIED_NO_TEMPERATURE 0x14 출입거부(비정상 체온 감지 중 저온)
BS2_SUB_EVENT_ACCESS_DENIED_UNMASKED_FACE 0x15 출입거부(마스크 미착용)
APB BS2_SUB_EVENT_ZONE_HARD_APB 0x01 하드 APB 구역
BS2_SUB_EVENT_ZONE_SOFT_APB 0x02 소프트 APB 구역
Door BS2_SUB_EVENT_DOOR_FLAG_SCHEDULE 0x01 출임문 플래그 (Schedule)
BS2_SUB_EVENT_DOOR_FLAG_OPERATOR 0x04 출임문 플래그 (Operator)
BS2_SUB_EVENT_DOOR_FLAG_EMERGENCY 0x02 출임문 플래그 (Emergency)
Floor BS2_SUB_EVENT_FLOOR_FLAG_SCHEDULE 0x01 층 플래그 (Schedule)
BS2_SUB_EVENT_FLOOR_FLAG_OPERATOR 0x04 층 플래그 (Operator)
BS2_SUB_EVENT_FLOOR_FLAG_ACTION 0x08 층 플래그 (Action)
BS2_SUB_EVENT_FLOOR_FLAG_EMERGENCY 0x02 층 플래그 (Emergency)

21. 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 위조지문 감지됨
BS2_EVENT_BYPASS_SUCCESS 0x1B00 Bypass 인증 성공 (체온감지 또는 마스크 검출 시)
BS2_EVENT_BYPASS_FAIL 0x1C00 Bypass 인증 실패 (체온감지 또는 마스크 검출 시)
BS2_EVENT_ABNORMAL_TEMPERATURE_DETECTED 0x1D00 고온 감지 또는 체온감지 실패
BS2_EVENT_UNMASKED_FACE_DETECTED 0x1E00 마스크 미착용
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로 인증 성공
BS2_EVENT_USER_DUPLICATE_CREDENTIAL 0x2800 중복 인증(카드/지문/얼굴)정보 검출
BS2_EVENT_USER_UPDATE_PARTIAL_SUCCESS 0x2900 사용자 부분정보 갱신 성공
BS2_EVENT_USER_UPDATE_PARTIAL_FAIL 0x2A00 사용자 부분정보 갱신 실패
BS2_EVENT_USER_RELOADED 0x2B00 사용자가 다시 로드됨.
Device BS2_EVENT_DEVICE_SYSTEM_RESET 0x3000 시스템 다시 시작
BS2_EVENT_DEVICE_SYSTEM_STARTED 0x3100 시스템이 시작됨
BS2_EVENT_DEVICE_TIME_SET 0x3200 시스템 시간 변경
BS2_EVENT_DEVICE_TIMEZONE_SET 0x3201 Time zone 변경
BS2_EVENT_DEVICE_DST_SET 0x3202 DST 설정 변경
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_RTSP_CONNECTED 0x3B10 RTSP 연결됨
BS2_EVENT_DEVICE_RTSP_DISCONNECTED 0x3C10 RTSP 연결이 끊어짐
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 시스템 구성 정보가 초기화됨 (네트워크 정보 제외)
BS2_EVENT_DEVICE_FACTORY_RESET_WITHOUT_ETHERNET 0x4504 공장 초기화 (네트워크 정보 제외)
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 성공
BS2_EVENT_EXIT_BUTTON 0x4A00 퇴실 버튼 눌림
BS2_EVENT_SIMULATED_EXIT_BUTTON 0x4A01 Simulated 버튼 눌림
BS2_EVENT_OPERATOR_OPEN 0x4B00 관리자에 의한 열림
BS2_EVENT_VOIP_OPEN 0x4C00 VoIP에 의한 열림
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_SCHEDULED_LOCK_VIOLATION 0x6900 스케줄 잠금 구역 위반 감지
BS2_EVENT_ZONE_SCHEDULED_LOCK_START 0x6A00 스케줄 잠금 구역 시작
BS2_EVENT_ZONE_SCHEDULED_LOCK_END 0x6B00 스케줄 잠금 구역 끝
BS2_EVENT_ZONE_SCHEDULED_UNLOCK_START 0x6C00 스케줄 개방 구역 시작
BS2_EVENT_ZONE_SCHEDULED_UNLOCK_END 0x6D00 스케줄 개방 구역 끝
BS2_EVENT_ZONE_SCHEDULED_LOCK_ALARM 0x6E00 스케줄 잠금 구역 경보 시작
BS2_EVENT_ZONE_SCHEDULED_LOCK_ALARM_CLEAR 0x6F00 스케줄 잠금 구역 경보 해제
Lift BS2_EVENT_FLOOR_ACTIVATED 0x7000 층이 활성화 됨
BS2_EVENT_FLOOR_DEACTIVATED 0x7100 층이 비활성화 됨
BS2_EVENT_FLOOR_RELEASE 0x7200 층이 개방 됨
BS2_EVENT_FLOOR_ACTIVATE 0x7300 층 활성화
BS2_EVENT_FLOOR_DEACTIVATE 0x7400 층 비활성화
BS2_EVENT_LIFT_ALARM_INPUT 0x7500 엘리베이터 알람 입력
BS2_EVENT_LIFT_ALARM 0x7600 엘리베이터 알람
BS2_EVENT_LIFT_ALARM_CLEAR 0x7700 엘리베이터 알람 해제
BS2_EVENT_ALL_FLOOR_ACTIVATED 0x7800 층이 활성화 됨 (전체)
BS2_EVENT_ALL_FLOOR_DEACTIVATED 0x7900 층이 비활성화 됨 (전체)
RelayAction BS2_EVENT_RELAY_ACTION_ON 0xC300 RelayAction 켜짐
BS2_EVENT_RELAY_ACTION_OFF 0xC400 RelayAction 꺼짐
BS2_EVENT_RELAY_ACTION_KEEP 0xC500 RelayAction 신호유지

22. param
이벤트 발생 장치의 추가 정보가 필요할 경우에만 사용되고, 주로 근태 코드나 출입문이나 입력 장치의 포트 번호가 저장됩니다. 근태 코드가 저장될 때는 아래의 코드표를 참고하십시오.

장치 종류 근태 코드
BioStation 2BS2_TNA_UNSPECIFIED(N/A)0
BS2_TNA_KEY_1F11
BS2_TNA_KEY_2F22
BS2_TNA_KEY_3F33
BS2_TNA_KEY_4F44
BS2_TNA_KEY_515
BS2_TNA_KEY_626
BS2_TNA_KEY_737
BS2_TNA_KEY_848
BS2_TNA_KEY_959
BS2_TNA_KEY_10610
BS2_TNA_KEY_11711
BS2_TNA_KEY_12812
BS2_TNA_KEY_13913
BS2_TNA_KEY_14Call14
BS2_TNA_KEY_15015
BS2_TNA_KEY_16Esc16


[+ 2.6.3] param의 추가기능
event code가 사용자와 관련된 경우에 한합니다.
장치에서 직접 사용자를 추가 또는 편집, 삭제하였다면 param은 1, BioStar를 통해 이루어졌다면 0입니다.
예를들어 BS2_EVENT_USER_ENROLL_SUCCESS와 함께 param이 1이었다면, 장치에서 직접 추가된 사용자를 나타냅니다.
이 기능은 아래의 펌웨어 버전 이후부터 지원합니다.

장치 종류 지원 버전
BioStation 2 V1.7.0
BioStation A2 V1.6.0
CoreStation 40 V1.2.0
BioEntry P2 V1.2.0
BioStation L2 V1.4.0
BioLite N2 V1.1.0
BioEntry W2 V1.3.0
FaceStation 2 V1.2.0



23. image
SDK V2.6.0 이전까지는 1byte 전체를 사용하여 다음을 의미했습니다.
- 이벤트 발생되었을 때 이미지 정보가 포함되었는지 여부 (true/false).
SDK V2.6.0 부터는 1byte를 bit 단위로 나누어 다음의 정보를 제공할 수 있도록 변경되었습니다.
- 이미지 정보가 포함되었는지 여부
- DST 적용 여부

범주 비트 수 변수 설명
SDK 2.6.0 이전 8 image 이벤트 발생되었을 때 이미지 정보가 포함될 경우에 사용됩니다.
SDK 2.6.0 부터 1 image 이벤트 발생되었을 때 이미지 정보가 포함될 경우에 사용됩니다.
1 isDST 현재 로그가 DST의 적용을 받았는지 여부를 표시
1 half DST가 30분 단위의 적용을 받는지여부. 0은 0분, 1은 30분
4 hour 시간을 표시. 1~12시
1 negative 0은 +시간, 1은 -시간

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)값을 인식할 수 있습니다.

설명
0x0000 없음
0x0001 BS2EventExtInfo 구조체
0x0002 User ID
0x0004 Card ID
0x0008 Door ID
0x0010 Zone ID
0x0020 BS2EventExtIoDevice 구조체
0x0040 TNA Key
0x0080 Job Code
0x0100 Image
0x0200 Temperature
0x0400 QR data
0xFFFF ALL

2. id
로그 레코드의 식별자이며 로그가 발생될 때마다 1부터 자동으로 증가합니다.

3. info
BS2EventExtInfo 구조체 정보입니다.

4. userID
로그와 관련된 사용자 식별자로써 사용자와 관련 없는 로그일 경우 0으로 설정됩니다.

5. cardID
로그와 관련된 card 식별자로써 card와 관련 없는 로그일 경우 0으로 설정됩니다.
인증 실패의 경우에만 기록하며, 인증 성공의 경우에는 eventMask와 상관없이 user ID를 리턴합니다.

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
예약된 공간입니다.

BS2EventSmallBlob

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* imageObj;                        // valid if eventMask has BS2_EVENT_MASK_IMAGE
    uint8_t reserved;
} BS2EventSmallBlob;


1. eventMask
Event mask값입니다. mask값에 따라서 해당 ID(User, card, door, zone)값을 인식할 수 있습니다.

설명
0x0000 없음
0x0001 BS2EventExtInfo 구조체
0x0002 User ID
0x0004 Card ID
0x0008 Door ID
0x0010 Zone ID
0x0020 BS2EventExtIoDevice 구조체
0x0040 TNA Key
0x0080 Job Code
0x0100 Image
0x0200 Temperature
0x0400 QR data
0xFFFF ALL

2. id
로그 레코드의 식별자이며 로그가 발생될 때마다 1부터 자동으로 증가합니다.

3. info
BS2EventExtInfo 구조체 정보입니다.

4. userID
로그와 관련된 사용자 식별자로써 사용자와 관련 없는 로그일 경우 0으로 설정됩니다.

5. cardID
로그와 관련된 card 식별자로써 card와 관련 없는 로그일 경우 0으로 설정됩니다.
인증 실패의 경우에만 기록하며, 인증 성공의 경우에는 eventMask와 상관없이 user ID를 리턴합니다.

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. imageObj
이벤트 발생되었을 때 이미지 정보가 포함될 경우에 사용됩니다

13. reserved
예약된 공간입니다.

BS2EventSmallBlobEx

typedef struct {
    uint16_t eventMask;
    uint32_t id;
    BS2EventExtInfo info;                         // valid if eventMask has BS2_EVENT_MASK_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;                               // valid if eventMask has BS2_EVENT_MASK_TNA_KEY
    uint32_t jobCode;                             // valid if eventMask has BS2_EVENT_MASK_JOB_CODE
    uint16_t imageSize;                           // valid if eventMask has BS2_EVENT_MASK_IMAGE
    uint8_t* imageObj;                            // valid if eventMask has BS2_EVENT_MASK_IMAGE
    uint8_t reserved;
    uint32_t temperature;                         // valid if eventMask has BS2_EVENT_MASK_TEMPERATURE
} BS2EventSmallBlobEx;


1. eventMask
Event mask값입니다. mask값에 따라서 해당 ID(User, card, door, zone)값을 인식할 수 있습니다.

설명
0x0000 없음
0x0001 BS2EventExtInfo 구조체
0x0002 User ID
0x0004 Card ID
0x0008 Door ID
0x0010 Zone ID
0x0020 BS2EventExtIoDevice 구조체
0x0040 TNA Key
0x0080 Job Code
0x0100 Image
0x0200 Temperature
0x0400 QR data
0xFFFF ALL

2. id
로그 레코드의 식별자이며 로그가 발생될 때마다 1부터 자동으로 증가합니다.

3. info
BS2EventExtInfo 구조체 정보입니다.

4. userID
로그와 관련된 사용자 식별자로써 사용자와 관련 없는 로그일 경우 0으로 설정됩니다.

5. cardID
로그와 관련된 card 식별자로써 card와 관련 없는 로그일 경우 0으로 설정됩니다.
인증 실패의 경우에만 기록하며, 인증 성공의 경우에는 eventMask와 상관없이 user ID를 리턴합니다.

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. imageObj
이벤트 발생되었을 때 이미지 정보가 포함될 경우에 사용됩니다

13. temperature
열화상 카메라가 설치되어 있으며, 로그를 남기도록 설정이 되어 있는경우 체온정보가 설정됩니다. auditTemperature 참조

14. reserved
예약된 공간입니다.