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