#ifndef FuncOrdinary_H #define FuncOrdinary_H #include "FuncBase.h" #include "spdlog/spdlog.h" struct ListAlarmInfo; /** * @brief 普通任务识别,一个算法只需要一个摄像机,包括 违禁品识别、玩手机检测、老鼠等 1、报警判断条件:机房内出现摄像头的违禁物品识别算法输出结果包含指定违规内容时,记为报警行为,直接 展示报警结果 2、这里应该是不区分违禁物品是什么,只要有违禁物品就报警。如果一个违禁物品消失之前又出现了第二个违禁物品, 两个违禁物品都消失后,这次报警才会结束,也就是说,一个房间内不会同时出现两个报警信息。 3、有报警信息先写入到缓存中,报警持续超过设定的时间后再写入到EQM数据库的tAlarmInfo表中,报警开始时间是EventTime 4、如果报警结束时间小于设置的最小间隔,就从缓存中删除这条数据,超过这个时间,就更新结束时间 5、报警信息要有图片,如果当前没有图片,就使用上一张图片 * * @param info 线程信息 */ class FuncOrdinary : public FuncBase { public: FuncOrdinary(); ~FuncOrdinary(); protected: /* 任务线程 */ void task() override; /* old处理方法 */ void oldTask(); private: /* 判断报警时长是否符合不同应用的最小间隔 */ bool isOutAlarmTimeVaild(const AlarmInfo& info); /* 读取Redis数据 */ // void readRedisData(std::list& listAlarmTemp); private: ListAlarmInfo m_listSrcAlarm; /* 原始的报警信息 */ ListAlarmInfo m_listAlarmBuffer; /* 报警列表缓存 */ }; #endif // FuncOrdinary_H