Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
en:log_management_api [2020/02/18 10:58] yjjung [Log Management API] |
en:log_management_api [2021/08/06 15:37] kateyu [BS2Event] |
||
---|---|---|---|
Line 8: | Line 8: | ||
* [[BS2_ClearLog]]: Deletes all logs. | * [[BS2_ClearLog]]: Deletes all logs. | ||
* [[BS2_StartMonitoringLog]]: Starts Real-time log streaming. | * [[BS2_StartMonitoringLog]]: Starts Real-time log streaming. | ||
+ | * [[BS2_StartMonitoringLogEx]]: [+ V2.7.1] Starts Real-time log streaming including the temperature information. | ||
* [[BS2_StopMonitoringLog]]: Stops Real-time log streaming. | * [[BS2_StopMonitoringLog]]: Stops Real-time log streaming. | ||
* [[BS2_GetLogBlob]]: Gets certain amount of logs based on the event mask. | * [[BS2_GetLogBlob]]: Gets certain amount of logs based on the event mask. | ||
* [[BS2_GetFilteredLogSinceEventId]]: Gets filtered logs. | * [[BS2_GetFilteredLogSinceEventId]]: Gets filtered logs. | ||
* [[BS2_GetImageLog]] : Gets image logs using event ID. | * [[BS2_GetImageLog]] : Gets image logs using event ID. | ||
- | * [[BS2_GetLogSmallBlob]]: [+ 2.6.4] Gets filtered logs by EventMask from the device. | + | * [[BS2_GetLogSmallBlob]]: [+ 2.6.4] Gets certain amount of logs based on the event mask in an efficient way. |
+ | * [[BS2_GetLogSmallBlobEx]]: [+ 2.7.1] Gets certain amount of logs based on the event mask in an efficient way, including the temperature information. | ||
===== Callback Function ===== | ===== Callback Function ===== | ||
+ | ==== OnLogReceived ==== | ||
+ | Callback function that is called when receiving a new log from the device. \\ \\ | ||
<code cpp> | <code cpp> | ||
typedef void (*OnLogReceived)(uint32_t deviceId, BS2Event* log); | typedef void (*OnLogReceived)(uint32_t deviceId, BS2Event* log); | ||
</code> | </code> | ||
\\ | \\ | ||
+ | 1. //deviceId// \\ | ||
+ | Device ID \\ \\ | ||
+ | 2. //log// \\ | ||
+ | New log information structure \\ \\ | ||
- | **1. //OnLogReceived//** \\ | + | ==== OnLogReceivedEx ==== |
- | Callback function that is called when a new log is received. \\ \\ | + | [+ V2.7.1] Callback function that is called when receiving a new log from the device. \\ |
+ | The temperature information is transferred as the 3rd parameter, and auditTemperature should be true in [[configuration api#BS2FaceConfigExt]]. \\ \\ | ||
+ | <code cpp> | ||
+ | typedef void (*OnLogReceivedEx)(uint32_t deviceId, BS2Event* log, uint32_t temperature); | ||
+ | </code> | ||
+ | \\ | ||
+ | 1. //deviceId// \\ | ||
+ | Device ID \\ \\ | ||
+ | 2. //log// \\ | ||
+ | New log information structure \\ \\ | ||
+ | 3. //temperature// \\ | ||
+ | Temperature information \\ \\ | ||
Line 56: | Line 74: | ||
uint8_t reserved[12]; | uint8_t reserved[12]; | ||
} interlock; | } interlock; | ||
+ | struct { | ||
+ | uint16_t relayPort; | ||
+ | uint16_t inputPort; | ||
+ | uint8_t reserved[28]; | ||
+ | } relayAction; | ||
}; | }; | ||
union { | union { | ||
Line 115: | Line 138: | ||
**15. //interlock.doorID//** \\ | **15. //interlock.doorID//** \\ | ||
Door ID that makes interlock zone alarms. \\ \\ | Door ID that makes interlock zone alarms. \\ \\ | ||
- | **16. //subCode//** \\ | + | **16. //relayAction.relayPort//** \\ |
+ | Relay port identifier when IM-120 RelayAction takes place. \\ \\ | ||
+ | **17. //relayAction.inputPort// \\ | ||
+ | Relay port identifier when IM-120 RelayAction takes place. \\ \\ | ||
+ | **18. //subCode// \\ | ||
Sub code value of log types. Use if the additional information is necessary. \\ | Sub code value of log types. Use if the additional information is necessary. \\ | ||
- | ^Category ^Event code ^Value ^Description ^ | + | |
+ | ^Category ^Event code ^Value ^Description ^ | ||
|Verify |BS2_SUB_EVENT_VERIFY_ID_PIN |0x01 |ID and PIN verification success | | |Verify |BS2_SUB_EVENT_VERIFY_ID_PIN |0x01 |ID and PIN verification success | | ||
|::: |BS2_SUB_EVENT_VERIFY_ID_FINGER |0x02 |ID and fingerprint verification success | | |::: |BS2_SUB_EVENT_VERIFY_ID_FINGER |0x02 |ID and fingerprint verification success | | ||
Line 133: | Line 161: | ||
|::: |BS2_SUB_EVENT_VERIFY_AOC_FINGER |0x0E |AOC card and fingerprint verification success | | |::: |BS2_SUB_EVENT_VERIFY_AOC_FINGER |0x0E |AOC card and fingerprint verification success | | ||
|::: |BS2_SUB_EVENT_VERIFY_AOC_FINGER_PIN |0x0F |AOC card, fingerprint, PIN verification success | | |::: |BS2_SUB_EVENT_VERIFY_AOC_FINGER_PIN |0x0F |AOC card, fingerprint, PIN verification success | | ||
+ | |::: |BS2_SUB_EVENT_VERIFY_MOBLIE_CARD |0x16 |Mobile card verification success (+V2.8) | | ||
+ | |::: |BS2_SUB_EVENT_VERIFY_MOBILE_CARD_PIN |0x17 |Mobile card and PIN verification success (+V2.8) | | ||
+ | |::: |BS2_SUB_EVENT_VERIFY_MOBILE_CARD_FINGER |0x18 |Mobile card and fingerprint verification success (+V2.8) | | ||
+ | |::: |BS2_SUB_EVENT_VERIFY_MOBILE_CARD_FINGER_PIN |0x19 |Mobile card, fingerprint, PIN verification success (+V2.8) | | ||
+ | |::: |BS2_SUB_EVENT_VERIFY_MOBILE_CARD_FACE |0x1A |Mobile card and face verification success (+V2.8) | | ||
+ | |::: |BS2_SUB_EVENT_VERIFY_MOBILE_CARD_FACE_PIN |0x1B |Mobile card, face, PIN verification success (+V2.8) | | ||
+ | |::: |BS2_SUB_EVENT_VERIFY_MOBILE_CARD_FACE_FINGER |0x20 |Mobile card, face, fingerprint verification success (+V2.8) | | ||
+ | |::: |BS2_SUB_EVENT_VERIFY_MOBILE_CARD_FINGER_FACE |0x21 |Mobile card, fingerprint, face verification success (+V2.8) | | ||
|Identify |BS2_SUB_EVENT_IDENTIFY_FINGER |0x01 |Fingerprint identification success | | |Identify |BS2_SUB_EVENT_IDENTIFY_FINGER |0x01 |Fingerprint identification success | | ||
|::: |BS2_SUB_EVENT_IDENTIFY_FINGER_PIN |0x02 |Fingerprint and PIN identification success | | |::: |BS2_SUB_EVENT_IDENTIFY_FINGER_PIN |0x02 |Fingerprint and PIN identification success | | ||
Line 146: | Line 182: | ||
|::: |BS2_SUB_EVENT_CREDENTIAL_AOC_PIN |0x06 |Invalid AOC PIN | | |::: |BS2_SUB_EVENT_CREDENTIAL_AOC_PIN |0x06 |Invalid AOC PIN | | ||
|::: |BS2_SUB_EVENT_CREDENTIAL_AOC_FINGER |0x07 |Invalid AOC fingerprint | | |::: |BS2_SUB_EVENT_CREDENTIAL_AOC_FINGER |0x07 |Invalid AOC fingerprint | | ||
+ | |::: |BS2_SUB_EVENT_CREDENTIAL_MOBILE_CARD |0x08 |Invalid mobile card (+V2.8) | | ||
|Auth |BS2_SUB_EVENT_AUTH_FAIL_INVALID_AUTH_MODE |0x01 |Invalid authentication mode | | |Auth |BS2_SUB_EVENT_AUTH_FAIL_INVALID_AUTH_MODE |0x01 |Invalid authentication mode | | ||
|::: |BS2_SUB_EVENT_AUTH_FAIL_INVALID_CREDENTIAL |0x02 |Non-registered authentication method| | |::: |BS2_SUB_EVENT_AUTH_FAIL_INVALID_CREDENTIAL |0x02 |Non-registered authentication method| | ||
Line 158: | Line 195: | ||
|APB |BS2_SUB_EVENT_ZONE_HARD_APB |0x01 |Hard APB zone | | |APB |BS2_SUB_EVENT_ZONE_HARD_APB |0x01 |Hard APB zone | | ||
|::: |BS2_SUB_EVENT_ZONE_SOFT_APB |0x02 |Soft APB zone | | |::: |BS2_SUB_EVENT_ZONE_SOFT_APB |0x02 |Soft APB zone | | ||
- | + | **19. //mainCode//** \\ | |
- | **17. //mainCode//** \\ | + | |
Main code value of log types. \\ | Main code value of log types. \\ | ||
^Category ^Event code ^Value ^Description ^ | ^Category ^Event code ^Value ^Description ^ | ||
Line 241: | Line 277: | ||
|::: |BS2_EVENT_ZONE_SCHEDULED_LOCK_ALARM |0x6E00 |Scheduled lock alarm zone start | | |::: |BS2_EVENT_ZONE_SCHEDULED_LOCK_ALARM |0x6E00 |Scheduled lock alarm zone start | | ||
|::: |BS2_EVENT_ZONE_SCHEDULED_LOCK_ALARM_CLEAR |0x6F00 |Scheduled lock alarm zone clear | | |::: |BS2_EVENT_ZONE_SCHEDULED_LOCK_ALARM_CLEAR |0x6F00 |Scheduled lock alarm zone clear | | ||
+ | | | ||
+ | |RelayAction |BS2_EVENT_RELAY_ACTION_ON |0xC300 |RelayAction Switch-ON | | ||
+ | |::: |BS2_EVENT_RELAY_ACTION_OFF |0xC400 |RelayAction Switch-OFF | | ||
+ | |::: |BS2_EVENT_RELAY_ACTION_KEEP |0xC500 |RelayAction KEEP SIGNAL | | ||
- | **18. //param//** \\ | + | |
+ | **20.//param//** \\ | ||
It is used only when extra information on the device is needed. Usually, a time and attendance code, a port number of the door or input device is stored in the //param// argument. | It is used only when extra information on the device is needed. Usually, a time and attendance code, a port number of the door or input device is stored in the //param// argument. | ||
When a time and attendance code is stored, refer to the following values: | When a time and attendance code is stored, refer to the following values: | ||
Line 284: | Line 325: | ||
\\ \\ | \\ \\ | ||
- | **19. //image//** \\ | + | **21. //image//** \\ |
Prior to SDK V2.6.0, it used the whole 1 byte and means below: \\ | Prior to SDK V2.6.0, it used the whole 1 byte and means below: \\ | ||
- Whether the image was included when the event occurred (true / false). \\ \\ | - Whether the image was included when the event occurred (true / false). \\ \\ | ||
Line 327: | Line 368: | ||
<WRAP group 50%> | <WRAP group 50%> | ||
^Value ^Description ^ | ^Value ^Description ^ | ||
- | |0 |None | | + | |0x0000 |None| |
- | |1 |BS2EventExtInfo structure | | + | |0x0001 |BS2EventExtInfo Structure| |
- | |2 |User ID | | + | |0x0002 |User ID | |
- | |4 |Card ID | | + | |0x0004 |Card ID | |
- | |8 |Door ID | | + | |0x0008 |Door ID | |
- | |16 |Zone ID | | + | |0x0010 |Zone ID | |
- | |32 |BS2EventExtIoDevice structure | | + | |0x0020 |BS2EventExtIoDevice Structure| |
- | |64 |Door ID | | + | |0x0040 |TNA Key | |
- | |128 |Zone ID | | + | |0x0080 |Job Code | |
- | |256 |TNA Key | | + | |0x0100 |Image | |
- | |512 |Job Code | | + | |0x0200 |Temperature | |
- | |1024 |Image | | + | |0xFFFF |ALL | |
- | |65535 |ALL | | + | |
</WRAP> | </WRAP> | ||
2. //id// \\ | 2. //id// \\ | ||
Line 348: | Line 388: | ||
User ID related to log. When the value is 0, the log is not relevant to user. \\ \\ | User ID related to log. When the value is 0, the log is not relevant to user. \\ \\ | ||
5. //cardID// \\ | 5. //cardID// \\ | ||
- | Card ID related to log. When the value is 0, the log is not relevant to card. \\ \\ | + | Card ID related to log. When the value is 0, the log is not relevant to card. \\ |
+ | The device records card ID only for failure auth, it returns user ID when successful auth regardless of eventMask value. \\ \\ | ||
6. //doorID// \\ | 6. //doorID// \\ | ||
Door ID related to log. When the value is 0, the log is not relevant to door. \\ \\ | Door ID related to log. When the value is 0, the log is not relevant to door. \\ \\ | ||
Line 422: | Line 463: | ||
4. //reserved// \\ | 4. //reserved// \\ | ||
Reserved space.\\ \\ | Reserved space.\\ \\ | ||
+ | |||
+ | ==== BS2EventSmallBlob ==== | ||
+ | <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* imageObj; // valid if eventMask has BS2_EVENT_MASK_IMAGE | ||
+ | uint8_t reserved; | ||
+ | } BS2EventSmallBlob; | ||
+ | </code> | ||
+ | \\ | ||
+ | |||
+ | 1. //eventMask// \\ | ||
+ | Event mask value. Logs will be retrieved based on the mask value such as user, card, door, or zone.\\ \\ | ||
+ | <WRAP group 50%> | ||
+ | ^Value ^Description ^ | ||
+ | |0x0000 |None| | ||
+ | |0x0001 |BS2EventExtInfo Structure| | ||
+ | |0x0002 |User ID | | ||
+ | |0x0004 |Card ID | | ||
+ | |0x0008 |Door ID | | ||
+ | |0x0010 |Zone ID | | ||
+ | |0x0020 |BS2EventExtIoDevice Structure| | ||
+ | |0x0040 |TNA Key | | ||
+ | |0x0080 |Job Code | | ||
+ | |0x0100 |Image | | ||
+ | |0x0200 |Temperature | | ||
+ | |0xFFFF |ALL | | ||
+ | </WRAP> | ||
+ | 2. //id// \\ | ||
+ | Log record ID which automatically increases from 1 when the log is generated. \\ \\ | ||
+ | 3. //info// \\ | ||
+ | BS2EventExtInfo structure information. \\ \\ | ||
+ | 4. //userID// \\ | ||
+ | User ID related to log. When the value is 0, the log is not relevant to user. \\ \\ | ||
+ | 5. //cardID// \\ | ||
+ | Card ID related to log. When the value is 0, the log is not relevant to card. \\ | ||
+ | The device records card ID only for failure auth, it returns user ID when successful auth regardless of eventMask value. \\ \\ | ||
+ | 6. //doorID// \\ | ||
+ | Door ID related to log. When the value is 0, the log is not relevant to door. \\ \\ | ||
+ | 7. //zoneID// \\ | ||
+ | Zone ID related to log. When the value is 0, the log is not relevant to zone. \\ \\ | ||
+ | 8. //ioDevice// \\ | ||
+ | Door or input device ID related to log. When the value is 0, the log is not relevant to door or input. Refer to BS2EventExtIoDevice structure.\\ \\ | ||
+ | 9. //tnaKey// \\ | ||
+ | The T&A key that has been used for the authentication. When the value is 0, the log is not relevant to T&A key. \\ \\ | ||
+ | 10. //jobCode// \\ | ||
+ | The job code that has been used for the authentication. When the value is 0, the log is not relevant to job code. \\ \\ | ||
+ | 11. //imageSize// \\ | ||
+ | Size of the image when there is an image log. \\ \\ | ||
+ | 12. //imageObj// \\ | ||
+ | Data of the image. \\ \\ | ||
+ | 13. //reserved// \\ | ||
+ | Reserved space.\\ \\ | ||
+ | |||
+ | |||
+ | |||
+ | ==== BS2EventSmallBlobEx ==== | ||
+ | <code cpp> | ||
+ | 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; | ||
+ | </code> | ||
+ | \\ | ||
+ | |||
+ | 1. //eventMask// \\ | ||
+ | Event mask value. Logs will be retrieved based on the mask value such as user, card, door, or zone.\\ \\ | ||
+ | <WRAP group 50%> | ||
+ | ^Value ^Description ^ | ||
+ | |0x0000 |None| | ||
+ | |0x0001 |BS2EventExtInfo Structure| | ||
+ | |0x0002 |User ID | | ||
+ | |0x0004 |Card ID | | ||
+ | |0x0008 |Door ID | | ||
+ | |0x0010 |Zone ID | | ||
+ | |0x0020 |BS2EventExtIoDevice Structure| | ||
+ | |0x0040 |TNA Key | | ||
+ | |0x0080 |Job Code | | ||
+ | |0x0100 |Image | | ||
+ | |0x0200 |Temperature | | ||
+ | |0xFFFF |ALL | | ||
+ | </WRAP> | ||
+ | 2. //id// \\ | ||
+ | Log record ID which automatically increases from 1 when the log is generated. \\ \\ | ||
+ | 3. //info// \\ | ||
+ | BS2EventExtInfo structure information. \\ \\ | ||
+ | 4. //userID// \\ | ||
+ | User ID related to log. When the value is 0, the log is not relevant to user. \\ \\ | ||
+ | 5. //cardID// \\ | ||
+ | Card ID related to log. When the value is 0, the log is not relevant to card. \\ | ||
+ | The device records card ID only for failure auth, it returns user ID when successful auth regardless of eventMask value. \\ \\ | ||
+ | 6. //doorID// \\ | ||
+ | Door ID related to log. When the value is 0, the log is not relevant to door. \\ \\ | ||
+ | 7. //zoneID// \\ | ||
+ | Zone ID related to log. When the value is 0, the log is not relevant to zone. \\ \\ | ||
+ | 8. //ioDevice// \\ | ||
+ | Door or input device ID related to log. When the value is 0, the log is not relevant to door or input. Refer to BS2EventExtIoDevice structure.\\ \\ | ||
+ | 9. //tnaKey// \\ | ||
+ | The T&A key that has been used for the authentication. When the value is 0, the log is not relevant to T&A key. \\ \\ | ||
+ | 10. //jobCode// \\ | ||
+ | The job code that has been used for the authentication. When the value is 0, the log is not relevant to job code. \\ \\ | ||
+ | 11. //imageSize// \\ | ||
+ | Size of the image when there is an image log. \\ \\ | ||
+ | 12. //image// \\ | ||
+ | Data of the image. \\ \\ | ||
+ | 13. //temperature// \\ | ||
+ | Temperature information is set when there's a thermal camera installed and setting to record event logs. [[configuration api#BS2FaceConfigExt|Refer to auditTemperature]] \\ \\ | ||
+ | 14. //reserved// \\ | ||
+ | Reserved. \\ \\ |