|
@@ -110,9 +110,12 @@ void Event::handle_alarm_event(EVENT_TYPE et,uint64_t id,double limit_value,doub
|
|
|
_id = tool_other::card_id_to_u64(cardid);
|
|
|
}
|
|
|
ev_ptr=on_message(et,_id,f);
|
|
|
- ev_ptr->m_cur_value=cur_value;
|
|
|
- ev_ptr->m_limit_value=limit_value;
|
|
|
- ev_ptr->m_desc=desc;
|
|
|
+ if(ev_ptr){
|
|
|
+ ev_ptr->m_cur_value=cur_value;
|
|
|
+ ev_ptr->m_limit_value=limit_value;
|
|
|
+ ev_ptr->m_desc=desc;
|
|
|
+ ev_ptr->m_id=eid;
|
|
|
+ }
|
|
|
//保存告警信息
|
|
|
event_list::instance()->add(eid,ev_ptr);
|
|
|
}
|
|
@@ -216,9 +219,6 @@ std::shared_ptr<ya_event> card_event::on_message(EVENT_TYPE et,uint64_t id,bool
|
|
|
auto lm = area_info_map.begin()->second;
|
|
|
event_ptr->m_area_id = std::get<0>(lm);
|
|
|
event_ptr->m_map_id = card_ptr->get_area_tool()->m_mapid;
|
|
|
- event_ptr->m_landmarkid = std::get<1>(lm);
|
|
|
- event_ptr->m_landmarkdist = std::get<3>(lm);
|
|
|
- event_ptr->m_landmarkdirect = std::get<2>(lm);
|
|
|
}
|
|
|
}
|
|
|
return event_ptr;
|
|
@@ -235,14 +235,12 @@ void event_list::save_event(std::shared_ptr<ya_event> ev_ptr)
|
|
|
char sql[LENGTH_SQL] = {0};
|
|
|
std::string _time = tool_time::to_str_ex(ev_ptr->m_cur_time);
|
|
|
sprintf(sql,
|
|
|
- "INSERT IGNORE INTO his_event_data(event_id, stat, event_type_id, obj_type_id, obj_id, \
|
|
|
- map_id, area_id, limit_value, cur_value, x, y, cur_time, description, \
|
|
|
- landmark_id, landmark_dist,direction_mapper_id )\
|
|
|
- VALUES(%ld, %d, %d, %d, %s, %d, %d, %.2f, %.2f, %f, %f, '%s', '%s', %d, %10.3f, %d);",
|
|
|
- ev_ptr->get_id(), ev_ptr->m_status, ev_ptr->m_ev_type, ev_ptr->m_obj_type, ev_ptr->m_obj_id.c_str(),
|
|
|
+ "INSERT IGNORE INTO his_event_data(event_id,id, stat, event_type_id, obj_type_id, obj_id, \
|
|
|
+ map_id, area_id, limit_value, cur_value, x, y, cur_time, description) \
|
|
|
+ VALUES(%ld,%ld, %d, %d, %d, %s, %d, %d, %.2f, %.2f, %f, %f, '%s', '%s');",
|
|
|
+ ev_ptr->get_id(),ev_ptr->m_id,ev_ptr->m_status, ev_ptr->m_ev_type, ev_ptr->m_obj_type, ev_ptr->m_obj_id.c_str(),
|
|
|
ev_ptr->m_map_id, ev_ptr->m_area_id, ev_ptr->m_limit_value, ev_ptr->m_cur_value, ev_ptr->x, ev_ptr->y,
|
|
|
- _time.c_str(), ev_ptr->m_desc.c_str(),
|
|
|
- ev_ptr->m_landmarkid, ev_ptr->m_landmarkdist, ev_ptr->m_landmarkdirect);
|
|
|
+ _time.c_str(), ev_ptr->m_desc.c_str());
|
|
|
|
|
|
db_tool::PushAsync(sql);
|
|
|
}
|
|
@@ -250,7 +248,7 @@ void event_list::save_event(std::shared_ptr<ya_event> ev_ptr)
|
|
|
void event_list::load_his_data_from_db()
|
|
|
{
|
|
|
std::unordered_map<uint64_t, std::shared_ptr<ya_event>> map;
|
|
|
- const char *sql = "SELECT event_id, stat,event_type_id,obj_type_id,obj_id,map_id,area_id,\
|
|
|
+ const char *sql = "SELECT event_id, id,stat,event_type_id,obj_type_id,obj_id,map_id,area_id,\
|
|
|
limit_value,cur_value,x,y, cur_time FROM his_event_data \
|
|
|
WHERE event_id IN (SELECT MAX(event_id) FROM his_event_data \
|
|
|
WHERE cur_time > (CASE obj_type_id \
|
|
@@ -271,13 +269,16 @@ void event_list::load_his_data_from_db()
|
|
|
uint64_t nCount = DBRes.GetRecordCount( Error );
|
|
|
if (nCount > 0)
|
|
|
{
|
|
|
- log_info( "init_vehicle_category. The record count=%ld\n", nCount );
|
|
|
+ log_info( "init_event_list. The record count=%ld\n", nCount );
|
|
|
|
|
|
while ( DBRes.GetNextRecod(Error) )
|
|
|
{
|
|
|
- long long event_id = 0;
|
|
|
+ long long int event_id = 0;
|
|
|
DBRes.GetField( "event_id",event_id, Error );
|
|
|
|
|
|
+ long long int id = 0;
|
|
|
+ DBRes.GetField( "id",id, Error );
|
|
|
+
|
|
|
int event_type_id = 0;
|
|
|
DBRes.GetField( "event_type_id",event_type_id, Error );
|
|
|
|
|
@@ -327,15 +328,11 @@ void event_list::load_his_data_from_db()
|
|
|
ev->m_area_id = area_id;
|
|
|
ev->x = x;
|
|
|
ev->y = y;
|
|
|
-
|
|
|
- map.insert(std::make_pair(event_id, ev));
|
|
|
- }
|
|
|
-
|
|
|
- for(auto&iter: m_map)
|
|
|
- {
|
|
|
- auto ev = iter.second;
|
|
|
- log_info("event list %lld,%d,%d,%d,%s,%d,%d,%f,%f,%f,%f,%s"
|
|
|
- , ev->get_id(),ev->m_status,ev->m_ev_type,ev->m_obj_type,ev->m_obj_id.c_str()
|
|
|
+ ev->m_id = id;
|
|
|
+
|
|
|
+ map.insert(std::make_pair(id, ev));
|
|
|
+ log_info("event_list %lld,%lld,%d,%d,%d,%s,%d,%d,%.2f,%.2f,%.2f,%.2f,%s"
|
|
|
+ , ev->get_id(),ev->m_id,ev->m_status,ev->m_ev_type,ev->m_obj_type,ev->m_obj_id.c_str()
|
|
|
,ev->m_map_id,ev->m_area_id,ev->m_limit_value,ev->m_cur_value
|
|
|
,ev->x,ev->y
|
|
|
,tool_time::to_str_ex(ev->m_cur_time).c_str());
|
|
@@ -393,10 +390,6 @@ void event_list::_ev_to_node(std::shared_ptr<ya_event> ev_ptr,
|
|
|
ev.AddMember(JSON_KEY_EVENT_CUR_VALUE,ev_ptr->m_cur_value, allocator);
|
|
|
ev.AddMember(JSON_KEY_EVENT_CUR_TIME,tool_time::to_ms(ev_ptr->m_cur_time), allocator);
|
|
|
|
|
|
- ev.AddMember(JSON_KEY_EVENT_LANDMARK_ID,ev_ptr->m_landmarkid, allocator);
|
|
|
- ev.AddMember(JSON_KEY_EVENT_LANDMARK_DIRECTION,ev_ptr->m_landmarkdirect, allocator);
|
|
|
- ev.AddMember(JSON_KEY_EVENT_LANDMARK_DISTANCE,ev_ptr->m_landmarkdist, allocator);
|
|
|
-
|
|
|
out_data.PushBack(ev, allocator);
|
|
|
}
|
|
|
|