Newer
Older
lynxi-casic-demo / model_handler / base_model_handler.py
zhangyingjie on 24 Jan 1 KB 增加后台接口调用
import time

def handle_alarm_info(bbox_dicts, last_alarm_time,device_no, alarm_interval):
    alarm_infos = []
    for bbox_dict in bbox_dicts:
        if bbox_dict["alarm"] != 0:
            model_code=bbox_dict["model_code"]
            last_time = last_alarm_time.get(f'{model_code}_{bbox_dict["id"]}')
            if last_time is None or (time.time() - last_time > alarm_interval):
                if any(item["algoModelCode"] == bbox_dict["model_code"] 
                        and item["recognitionTypeCode"] == bbox_dict["id"] 
                        for item in alarm_infos):
                    continue

                alarm_info = {
                    "alarmTime": time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()),
                    "algoModelCode": bbox_dict["model_code"],
                    "deviceNo": device_no,
                    "recognitionTypeCode": bbox_dict["id"] if bbox_dict["alarm"]==1 else bbox_dict["alarm"],
                }
                # 更新 last_alarm_time 中的时间
                last_alarm_time[f'{model_code}_{bbox_dict["id"]}'] = time.time()
                alarm_infos.append(alarm_info)
    return alarm_infos