Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
en:log_management_api [2020/06/01 13:31]
kkshin [BS2EventSmallBlob]
en:log_management_api [2024/02/22 10:34]
kkshin
Line 5: Line 5:
  
   * [[BS2_GetLog]]:​ Gets certain amount of logs.   * [[BS2_GetLog]]:​ Gets certain amount of logs.
-  * [[BS2_GetFilteredLog]]:​ Gets filtered logs.+  * [[BS2_GetFilteredLog]]: ​''​[Deprecated]'' ​Gets filtered logs.
   * [[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]]: ​''​[Deprecated]'' ​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 certain amount of logs based on the event mask in an efficient way.    * [[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, BS2Eventlog, uint32_t temperature);​ 
 +</​code>​ 
 +\\ 
 +1. //deviceId// \\  
 +Device ID  \\ \\  
 +2. //log// \\  
 +New log information structure ​  \\ \\  
 +3//​temperature//​ \\  
 +Temperature information ​\\ \\
  
  
Line 55: Line 74:
             uint8_t reserved[12];​             uint8_t reserved[12];​
         } interlock;         } interlock;
 +        struct {
 +            uint16_t relayPort;
 +            uint16_t inputPort;
 +            uint8_t reserved[28];​
 +        } relayAction;​
 +        struct {
 +            BS2_DEVICE_ID deviceId;
 +            uint8_t data[28];
 +        } osdpStandard;​
     };     };
     union {     union {
Line 67: Line 95:
     BS2_BOOL image; ​        // Deprecated in V2.6.0     BS2_BOOL image; ​        // Deprecated in V2.6.0
 #else #else
-    uint8_t image: 1;       // ​Support ​image and DST by bit division+    uint8_t image: 1;       // ​Supports ​image and DST by splitting ​bit unit
     uint8_t isDST: 1;     uint8_t isDST: 1;
     uint8_t half: 1;     uint8_t half: 1;
Line 114: Line 142:
 **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. //​osdpStandard.deviceId//​** \\  
 +Identifier of the OSDP standard device. \\ \\  
 +**19. //​osdpStandard.data//​** \\  
 +This is notification structure information with a total size of 28 bytes generated from OSDP standard devices. \\ 
 +For detailed information about the structure, please refer to [[slave_control_api#​BS2OsdpStandardDeviceNotify|BS2OsdpStandardDeviceNotify]]. \\ \\ 
 +**20. //​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 132: Line 169:
 |::: |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 145: Line 190:
 |::: |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 157: Line 203:
 |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  |
- +**21. //​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 240: Line 285:
 |:::  |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//** \\ + 
 +**22.//​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 283: Line 333:
 \\ \\  \\ \\ 
  
-**19. //image//** \\ +**23. //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 326: Line 376:
 <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 450: Line 499:
 <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 489: Line 537:
 13. //​reserved//​ \\  13. //​reserved//​ \\ 
 Reserved space.\\ \\ 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. \\ \\