Browse Source

增加日志输出防追尾。增加容错处理:当卡配置得type_id与真实不符得时候,打印输出日志,并不继续执行

lixioayao 6 years ago
parent
commit
d0613c8091
4 changed files with 26 additions and 13 deletions
  1. 9 8
      bindmorecard.h
  2. 1 1
      cardMgr.cpp
  3. 13 1
      db/db_card.cpp
  4. 3 3
      mine_business.cpp

+ 9 - 8
bindmorecard.h

@@ -385,16 +385,17 @@ struct RemoteCardFactory : CardFactory
         //找到之前临近卡,现在非临近得卡
 		auto it = std::set_difference(vcard.begin(),vcard.end(),ov.begin(),ov.end(),v.begin());
 		v.resize(it-v.begin());
-		auto opcard = card_list::instance()->get(cid);
+//		auto opcard = card_list::instance()->get(cid);
         //过滤掉超过3s得卡信息
-		v.erase(std::remove_if(v.begin(),v.end(),[&](uint64_t cardid){
-						auto npcard = card_list::instance()->get(cardid);
-						uint64_t ct1 = opcard->time_();
-						uint64_t ct2 = npcard->time_();
-						uint64_t ct3 = ct1>ct2?ct1-ct2:ct2-ct1;
-						return ct3 > TIME_LIM_SEC; 
-						}),v.end());
+//		v.erase(std::remove_if(v.begin(),v.end(),[&](uint64_t cardid){
+//						auto npcard = card_list::instance()->get(cardid);
+//						uint64_t ct1 = opcard->time_();
+//						uint64_t ct2 = npcard->time_();
+//						uint64_t ct3 = ct1>ct2?ct1-ct2:ct2-ct1;
+//						return ct3 > TIME_LIM_SEC; 
+//						}),v.end());
         //执行卡
+		log_info("selectcard_remote.card_id:%d,%d...",cid,v.size());
 		auto vec = handlecard(v,cid);
 		return std::move(vec);
 	}

+ 1 - 1
cardMgr.cpp

@@ -69,7 +69,7 @@ void cardMgr::handleMessage(const Msg &m)
 		if (!map2.empty())
 		{
 			for(const auto x:map2)
-				log_info("---LemonHash----[%s]%s",i?"Remote":"Closer",x.second.c_str());
+				log_info("---LemonHash_call_event--[%s]%s",i?"Remote":"Closer",x.second.c_str());
 			//m_owner->uwb_alarm(map2,i,c);
 		}
 		if (!rc.empty())

+ 13 - 1
db/db_card.cpp

@@ -90,7 +90,12 @@ namespace db_card
 
 			double over_speed= 0;
 			DBRes.GetField( "over_speed",over_speed, Error );
-
+            int type = tool_other::card_id_to_type(card_id);
+            if(type != card_type_id)
+            {
+                log_error("init_vehicle_card error.Type is not matching..");
+                continue;
+            }
 			std::string strategy;
 			if(card_type_id ==CT_VEHICLE)
 				strategy = config.get("car.strategy","CS_1");
@@ -183,6 +188,13 @@ namespace db_card
 			int worktype_id;
 			DBRes.GetField( "worktype_id",worktype_id, Error );
 
+            int type = tool_other::card_id_to_type(card_id);
+            if(type != card_type_id)
+            {
+                log_error("init_staffer_card error.Type is not matching..");
+                continue;
+            }
+
             std::shared_ptr<card_location_base> clb =
                     std::make_shared<person>(strategy,vsid,need_display,card_type_id,dept_id,occupation_level_id,staff_id,work_line,staffer_name,dept_name,worktype_id);
             uint64_t cardid = tool_other::type_id_to_u64(card_type_id,vsid);

+ 3 - 3
mine_business.cpp

@@ -558,7 +558,7 @@ void rear_end_collision_prevented_business::handle_message()
         uint32_t id = hsh(vvid);
         if (rt>45*1000 || rt_>45*1000 )
         {
-            log_info("vehicle_alarm_time_ %s",vvid.c_str());
+            log_info("vehicle_alarm_time_ %s,%u",vvid.c_str(),id);
             if (vinfo.is_alarm){
                 event_tool::instance()->handle_event(OT_CARD,ET_VEHICLE_REAR_END,id,0,0,false,DT_COMMON,vvid);
             }
@@ -579,7 +579,7 @@ void rear_end_collision_prevented_business::handle_message()
             vinfo.real_end_start_time=0;
             if (tt-vinfo.backfired_start_time>CYaSetting::m_sys_setting.rear_end_t)
             {
-                log_info("vehicle_alarm_backfired_timeout %s",vvid.c_str());
+                log_info("vehicle_alarm_backfired_timeout %s,%u",vvid.c_str(),id);
                 if(vinfo.is_alarm){
                     event_tool::instance()->handle_event(OT_CARD,ET_VEHICLE_REAR_END,id,CYaSetting::m_sys_setting.rear_end_d,dis,false,DT_COMMON,vvid);
                 }
@@ -597,7 +597,7 @@ void rear_end_collision_prevented_business::handle_message()
                 //  debug_print_syslog(0,"vehicle_alarm_real_end_timeout %s",vvid.c_str());
                 if (!vinfo.is_alarm)
                 {
-                    log_info("vehicle_alarm_real_end_timeout_exec %s",vvid.c_str());
+                    log_info("vehicle_alarm_real_end_timeout_exec %s,%u",vvid.c_str(),id);
                     event_tool::instance()->handle_event(OT_CARD,ET_VEHICLE_REAR_END,id,CYaSetting::m_sys_setting.rear_end_d,dis,true,DT_COMMON,vvid);
                     vinfo.is_alarm = true;
                 }