|
@@ -97,7 +97,8 @@ void Event::handle_alarm_event(EVENT_TYPE et,uint64_t id,double limit_value,doub
|
|
|
{
|
|
|
//已经存在告警
|
|
|
event_ptr->m_cur_value = cur_value;
|
|
|
- event_ptr->m_is_sent=false;
|
|
|
+ if(et!=ET_READER_ERROR)
|
|
|
+ event_ptr->m_is_sent=false;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
@@ -252,10 +253,11 @@ void event_list::save_event(const std::shared_ptr<ya_event> &ev_ptr)
|
|
|
|
|
|
void event_list::load_his_data_from_db(bool init /*=true*/)
|
|
|
{
|
|
|
+ static std::time_t s_last_time=0;
|
|
|
if(!init){
|
|
|
std::time_t t=time(0);
|
|
|
- if(t-m_last_time<15)return;
|
|
|
- m_last_time=t;
|
|
|
+ if(t-s_last_time<15)return;
|
|
|
+ s_last_time=t;
|
|
|
}
|
|
|
std::unordered_map<uint64_t, std::shared_ptr<ya_event>> map;
|
|
|
std::string sql("SELECT event_id, id,stat,event_type_id,obj_type_id,obj_id,dis_type,map_id,area_id,\
|
|
@@ -332,10 +334,13 @@ void event_list::load_his_data_from_db(bool init /*=true*/)
|
|
|
bool flag=false;
|
|
|
if(!init){
|
|
|
ev=event_list::instance()->get(id);
|
|
|
- if(!ev) ev = std::make_shared<ya_event>(event_id);
|
|
|
- else flag=true;
|
|
|
- }
|
|
|
- else{
|
|
|
+ if(!ev){
|
|
|
+ ev = std::make_shared<ya_event>(event_id);
|
|
|
+ }else{
|
|
|
+ flag=true;
|
|
|
+ if(stat==100)ev->m_is_sent=false;
|
|
|
+ }
|
|
|
+ }else{
|
|
|
ev = std::make_shared<ya_event>(event_id);
|
|
|
}
|
|
|
|
|
@@ -355,7 +360,6 @@ void event_list::load_his_data_from_db(bool init /*=true*/)
|
|
|
ev->x = x;
|
|
|
ev->y = y;
|
|
|
ev->m_id = id;
|
|
|
- ev->m_is_sent=false;
|
|
|
//这里当是卡告警的时候,对m_event数据进行赋值
|
|
|
//方便清理
|
|
|
//备注防追尾告警和一人多卡告警可能不适用,后续整理
|