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 [2019/05/27 15:11] yjjung [BS2Event] |
en:log_management_api [2020/09/10 15:59] yjjung [Log Management API] |
||
---|---|---|---|
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_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 ==== | ||
+ | 장치로부터 새로운 로그를 수신했을 때 호출되는 콜백 함수입니다. \\ \\ | ||
<code cpp> | <code cpp> | ||
typedef void (*OnLogReceived)(uint32_t deviceId, BS2Event* log); | typedef void (*OnLogReceived)(uint32_t deviceId, BS2Event* log); | ||
</code> | </code> | ||
\\ | \\ | ||
+ | 1. //deviceId// \\ | ||
+ | 새로운 로그를 보내준 장치 ID입니다. \\ \\ | ||
+ | 2. //log// \\ | ||
+ | 새로운 로그 정보 구조체입니다. \\ \\ | ||
- | **1. //OnLogReceived//** \\ | + | ==== OnLogReceivedEx ==== |
- | Callback function that is called when a new log is received. \\ \\ | + | [+ V2.7.1] 장치로부터 새로운 로그를 수신했을 때 호출되는 콜백 함수입니다. \\ |
+ | 열화상 카메라를 통해 측정된 체온이 세번째 인자로 수신되며, [[configuration api#BS2FaceConfigExt]]의 auditTemperature가 true로 설정되어져야 합니다. \\ \\ | ||
+ | <code cpp> | ||
+ | typedef void (*OnLogReceivedEx)(uint32_t deviceId, BS2Event* log, uint32_t temperature); | ||
+ | </code> | ||
+ | \\ | ||
+ | 1. //deviceId// \\ | ||
+ | 새로운 로그를 보내준 장치 ID입니다. \\ \\ | ||
+ | 2. //log// \\ | ||
+ | 새로운 로그 정보 구조체입니다. \\ \\ | ||
+ | 3. //temperature// \\ | ||
+ | 새로운 로그 발생 시, 측정된 체온 정보입니다. \\ \\ | ||
Line 262: | Line 283: | ||
|:::|BS2_TNA_KEY_16|Esc|16| | |:::|BS2_TNA_KEY_16|Esc|16| | ||
</WRAP> | </WRAP> | ||
+ | \\ | ||
+ | **[+ 2.6.3] Additional feature of param** \\ | ||
+ | Only if the event code is relevant to the user. \\ | ||
+ | If you add, modify or delete users directly from the device, param is 1, 0 if done through BioStar. \\ | ||
+ | For example, if param was 1 with the event BS2_EVENT_USER_ENROLL_SUCCESS, it means the user was added directly on the device. \\ | ||
+ | This feature is supported from the firmware version below. | ||
+ | <WRAP group 60%> | ||
+ | ^Device Type ^Supported Ver. ^ | ||
+ | |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| | ||
+ | </WRAP> | ||
+ | \\ \\ | ||
**19. //image//** \\ | **19. //image//** \\ | ||
Line 307: | Line 345: | ||
<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 328: | Line 365: | ||
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 402: | Line 440: | ||
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. \\ \\ |