Browse Source

修改了分站初始化顺序,删除了不必要的函数和日志

lixioayao 6 years ago
parent
commit
546e0f03a1
19 changed files with 29 additions and 147 deletions
  1. 4 84
      ant.cpp
  2. 1 1
      ant.h
  3. 13 1
      area.cpp
  4. 1 16
      area.h
  5. 3 3
      area_business.cpp
  6. 1 0
      area_business.h
  7. 1 3
      card.cpp
  8. 0 1
      card_base.h
  9. 0 5
      card_car.cpp
  10. 0 1
      card_car.h
  11. 1 0
      card_message_handle.cpp
  12. 0 4
      card_person.cpp
  13. 0 1
      card_person.h
  14. 1 1
      main.cpp
  15. 0 11
      module_service/area_business_forbid.cpp
  16. 0 2
      module_service/area_business_forbid.h
  17. 1 9
      site_area.cpp
  18. 0 1
      site_area.h
  19. 2 3
      write-copy.h

+ 4 - 84
ant.cpp

@@ -63,6 +63,7 @@ void sit_list::read_ant_path(int id)
          return ;
      }
 
+    log_info( "read_ant_path. The record count=%ld\n", nCount );
      while ( DBRes.GetNextRecod(Error) )
      {
          int reader_id  = 0;
@@ -103,7 +104,6 @@ void sit_list::read_ant_path(int id)
          {
             sit_.clear_path();
             log_info( "修改path 清空path,分站id=%d\n", id );
-            std_debug( "修改path 清空path,分站id=%d\n", id );
          }
 
          if(pid == 0)
@@ -144,7 +144,6 @@ void sit_list::read_ant_path(int id)
 
      if(-1==id)
      {
-         log_info( "read_ant_path. The record count=%ld\n", nCount );
          for(auto&_s:sit_list::instance()->m_map)
          {
              _s.second->deal_path();
@@ -157,7 +156,6 @@ void sit_list::read_ant_path(int id)
          {
              sit_ptr->deal_path();
              log_info( "修改path成功,分站id=%d\n", id );
-             std_debug( "修改path成功,分站id=%d\n", id );
          }
      }
 }
@@ -193,7 +191,7 @@ void sit_list::init_site(int id)
          return ;
      }
 
-     log_info( "增加或修改 init_site. The record count=%ld\n", nCount );
+     log_info( "init_site. The record count=%ld\n", nCount );
 
      while ( DBRes.GetNextRecod(Error) )
      {
@@ -253,7 +251,6 @@ void sit_list::read_sit_list(int id)
         sql.append(std::to_string(id));
         sql.append(";");
 
-        std_debug("基础数据 增加或修改天线 sql=%s", sql.c_str());
         log_info("基础数据 增加或修改天线 sql=%s", sql.c_str());
     }
 
@@ -267,7 +264,7 @@ void sit_list::read_sit_list(int id)
         return ;
     }
 
-    std::unordered_map<int,std::shared_ptr<site>> map;
+    log_info( "init_antenna. The record count=%ld\n", nCount );
     while ( DBRes.GetNextRecod(Error) )
     {
         int antenna_id = 0;
@@ -296,16 +293,11 @@ void sit_list::read_sit_list(int id)
         {
             std::shared_ptr<site> site_ptr=nullptr;
             site_ptr = sit_list::instance()->get(reader_id);
-            //auto it = map.find(reader_id);
-            //if(it==map.end())
-           // {
-            //    site_ptr = std::make_shared<site>(reader_id);
-             //   map.insert({reader_id,site_ptr});
-            //}
             if(!site_ptr)
               continue;
             site_ptr->m_ant[antid].m_id = antenna_id;
             site_ptr->m_ant[antid].set(x,-y);
+            site_ptr->set_ex();
             log_info("reand_ant..%d,%d,%.2f,%.2f",reader_id,antid,x,y);
         }
         else
@@ -314,22 +306,9 @@ void sit_list::read_sit_list(int id)
             if(site_ptr)
             {
                 site_ptr->m_ant[antid].set(x,-y);
-
                 site_ptr->set_ex();
             }
-
             log_info("基础数据 增加或修改天线成功:天线id:%d,分站id:%d",id,reader_id);
-            std_debug("基础数据 增加或修改天线成功:天线id:%d,分站id:%d",id,reader_id);
-        }
-    }
-
-    if(-1 == id)
-    {
-        log_info( "init_antenna. The record count=%ld\n", nCount );
-        sit_list::instance()->add(map);
-        for(auto&sit_:map)
-        {
-            sit_.second->set_ex();
         }
     }
 }
@@ -353,65 +332,6 @@ void site::on_power_status(bool ac_down)//电源状态
     event_tool::instance()->handle_event(OT_DEVICE_READER,ET_READER_POWER_BY_BATTERY,id(),tool_time::now_to_seconds(),ac_down,m_power_ac_down);
     log_info("[event warning: reader power supply by battery] reader_id: Power %d->%d.",id(),!m_power_ac_down,m_power_ac_down);
 }
-
-#if 0
-void sit_list::init_site()
-{
-    const char *sql = "SELECT reader_id, reader_type_id, dat_reader.map_id, \
-            area_id, device_type_id, dimension, dat_map.scale\
-            FROM dat_reader, dat_map where \
-            dat_reader.map_id=dat_map.map_id and state=0;";
-
-    std::string Error;
-    YADB::CDBResultSet DBRes;
-    sDBConnPool.Query(sql,DBRes,Error);
-    uint64_t nCount = DBRes.GetRecordCount( Error );
-    if (nCount > 0)
-    {
-        log_info( "init_site. The record count=%ld\n", nCount );
-
-        while ( DBRes.GetNextRecod(Error) )
-        {
-            int reader_id  = 0;
-            DBRes.GetField( "reader_id",reader_id, Error );
-
-            auto site_ptr=sit_list::instance()->get(reader_id);
-            if(nullptr==site_ptr)
-            {
-                site_ptr = std::make_shared<site>(reader_id);
-                sit_list::instance()->add(reader_id,site_ptr);
-            }
-
-            int reader_type_id  = 0;
-            DBRes.GetField( "reader_type_id",reader_type_id, Error );
-
-            int map_id  = 0;
-            DBRes.GetField( "map_id",map_id, Error );
-
-            int area_id  = 0;
-            DBRes.GetField( "area_id",area_id, Error );
-
-            int device_type_id  = 0;
-            DBRes.GetField( "device_type_id",device_type_id, Error );
-
-            int dimension  = 0;
-            DBRes.GetField( "dimension",dimension, Error );
-
-            double scale= 0;
-            DBRes.GetField( "scale",scale, Error );
-
-            site_ptr->m_reader_type_id = reader_type_id;
-            site_ptr->m_map_id = map_id;
-            site_ptr->m_area_id = area_id;
-
-            site_ptr->m_device_type_id = device_type_id;
-
-            site_ptr->m_dimension = dimension;
-            site_ptr->m_scale = scale;
-        }
-    }
-}
-#endif
 algo_config site::g_config[]=
 {
 	{ "tof-1",  1, 2, 0.1, 1 },

+ 1 - 1
ant.h

@@ -359,8 +359,8 @@ struct sit_list:single_base<sit_list,int,std::shared_ptr<site>>
     ///id=-1为初始化所有
     void load_from_db(int id=-1)
     {
-        load();
         init_site(id);
+        load();
     }
     void read_sit_list(int id);
     void read_ant_path(int id);

+ 13 - 1
area.cpp

@@ -17,6 +17,7 @@
 #include "site_area.h"
 #include "card.h"
 #include "tool_time.h"
+#include "common_tool.h"
 #include "websocket/ws_common.h"
 #include "websocket/wsClientMgr.h"
 #include "ant.h"
@@ -113,6 +114,14 @@ void area::on_leave(const std::shared_ptr<area_hover>&a,const std::shared_ptr<ca
 	}
 }
 
+void area::on_load(const std::shared_ptr<area_hover>&a,const std::shared_ptr<card_location_base>&c)
+{
+    for(const auto &i:m_area_business_list)
+	{
+		auto &x=a->get_business_data(i->area_business_type());
+		i->on_load(a,c,x);
+	}
+}
 bool area::in_area(const std::shared_ptr<site>&s,const std::shared_ptr<card_location_base>&c, const point & p,int & sarid)
 {
 	if(m_bound.empty())
@@ -419,7 +428,10 @@ std::vector<point> area_list::init_path(std::string &str)
 std::vector<std::shared_ptr<area>> area_list::get_area(const std::shared_ptr<site> s,const std::shared_ptr<card_location_base> &c,const point&pt,int & sarid)
 {
 	std::vector<std::shared_ptr<area>> ret;
-		
+
+	if(tool_other::is_person(c->type_())&&s&&s->is_up_site())
+	    return std::move(ret);
+
 	auto map = area_list::instance()->m_map;
 
 	for(const auto &a:map)

+ 1 - 16
area.h

@@ -27,6 +27,7 @@ struct area
   	virtual void on_hover(const std::shared_ptr<area_hover>&a,const std::shared_ptr<card_location_base>&c);
 	virtual	void on_enter(const std::shared_ptr<area_hover>&a,const std::shared_ptr<card_location_base>&c);
 	virtual	void on_leave(const std::shared_ptr<area_hover>&a,const std::shared_ptr<card_location_base>&c);
+	virtual	void on_load(const std::shared_ptr<area_hover>&a,const std::shared_ptr<card_location_base>&c);
 
     virtual bool in_area(const std::shared_ptr<site>&s,const std::shared_ptr<card_location_base>&c, const point & p,int &);
     int id()const
@@ -183,22 +184,6 @@ struct area_tool
 	std::map<int,std::tuple<int,int,int,double,uint64_t>> m_area_info;
 	int m_mapid=-1;
 	double m_scale=2.0;
-	//返回第一个,人卡第一个全部是井下0
-	std::shared_ptr<area_hover> get_area_first()const
-	{
-		if(m_hover_list.empty())
-			return nullptr;
-
-		return m_hover_list.front();
-	}
-
-	void init_area(std::shared_ptr<area>&a,const point&pt,const std::shared_ptr<card_location_base> &c)
-	{
-		m_hover_list.clear();
-		m_hover_list.push_back(std::make_shared<area_hover>(a,pt));
-		a->on_enter(m_hover_list.back(), c);
-	}
-
 	void on_point(const std::shared_ptr<site>&s,const std::shared_ptr<card_location_base>& c,const point&pt);
     void on_leave(const std::shared_ptr<card_location_base>& c);
 

+ 3 - 3
area_business.cpp

@@ -9,9 +9,9 @@
 #include "area_business_person_attendance.h"
 #include "area_business_post_area.h"
 #include "area_business_speed_checker.h"
-#include"area_business_motionless_persion.h"
-#include"area_business_geofault.h"
-#include"area_business_work_rate.h"
+#include "area_business_motionless_persion.h"
+#include "area_business_geofault.h"
+#include "area_business_work_rate.h"
 
 
 

+ 1 - 0
area_business.h

@@ -18,6 +18,7 @@ struct area_business
 	virtual void on_enter(const std::shared_ptr<area_hover>&a,const std::shared_ptr<card_location_base>&c,std::shared_ptr<business_data>&ptr){}
 	virtual void on_hover(const std::shared_ptr<area_hover>&a,const std::shared_ptr<card_location_base>&c,std::shared_ptr<business_data> ptr){}
 	virtual void on_leave(const std::shared_ptr<area_hover>&a,const std::shared_ptr<card_location_base>&c,std::shared_ptr<business_data> ptr){}
+	virtual void on_load(const std::shared_ptr<area_hover>&a,const std::shared_ptr<card_location_base>&c,std::shared_ptr<business_data> ptr){}
 
 	virtual ~area_business(){};
 

+ 1 - 3
card.cpp

@@ -248,7 +248,6 @@ void card_list::load_his_card_postion_vehicle()
             area->m_vehicle_count++;
 
             //point pt = *card_ptr;
-            //card_ptr->m_area_tool->init_area(area,pt,temp_ptr);
 			//m_area_hover = std::make_shared<area_hover>( area, pt,speed);
             //auto area_hover_ptr = card_ptr->get_area_hover();
 
@@ -373,7 +372,6 @@ void card_list::load_his_card_postion_staff()
             area->m_person_count++;
 
             //point pt = *card_ptr;
-            //card_ptr->m_area_tool->init_area(area,pt,temp_ptr);
 //			m_area_hover = std::make_shared<area_hover>(area,pt,speed);
 
 			log_info("load_staff...%d,areaid:%d,mapid:%d",id,area->id(),area->mapid());
@@ -415,7 +413,7 @@ void card_list::on_message(zloop<task*> *loop,const message_locinfo&loc,bool is_
 		log_warn("数据库中未定义该卡的信息,card_id=%d, card_type=%d,cardid:%lld",loc.m_card_id,loc.m_card_type,cardid);
 		return;
 	}
-	log_info("card message:site=%d,ant=%d,card=%d,tof=%lld,rav=%02X,acc=%02X,rssi=%d,stamp=%llu",
+	log_info("card_message:site=%d,ant=%d,card=%d,tof=%lld,rav=%02X,acc=%02X,rssi=%d,stamp=%llu",
 			loc.m_site_id,loc.m_ant_id,loc.m_card_id,loc.m_tof,loc.m_rav,loc.m_acc,loc.m_rssi,loc.m_time_stamp);
 
 	c->on_message(loop,loc,is_history);

+ 0 - 1
card_base.h

@@ -82,7 +82,6 @@ struct card_location_base:card,std::enable_shared_from_this<card_location_base>
 	virtual void do_business(const std::shared_ptr<site>&site,const point &pt,double acc)=0;
 	virtual void on_timer()=0;
 	virtual void site_hover(int sid)=0;
-    virtual std::shared_ptr<area_hover> get_area_hover()=0;
     virtual std::shared_ptr<mine_tool> get_mine_tool()=0;
     virtual std::shared_ptr<site_area_hover> get_site_area()=0;
     virtual void clear();

+ 0 - 5
card_car.cpp

@@ -30,11 +30,6 @@ void car::site_hover(int sid)
 	m_site_area->on_point(m_id,sid,0, m_type);
 }
 
-std::shared_ptr<area_hover> car::get_area_hover()
-{
-	return m_area_tool->get_area_first();
-}
-
 std::shared_ptr<mine_tool> car::get_mine_tool()
 {
 	return m_mine_tool;

+ 0 - 1
card_car.h

@@ -27,7 +27,6 @@ public:
 	~car();
 
 	virtual void site_hover(int sid);
-    virtual std::shared_ptr<area_hover> get_area_hover();
     virtual std::shared_ptr<mine_tool> get_mine_tool();
     virtual std::shared_ptr<site_area_hover> get_site_area();
 	virtual void do_business(const std::shared_ptr<site>&site,const point &pt,double acc);

+ 1 - 0
card_message_handle.cpp

@@ -113,6 +113,7 @@ struct one_ct_message_handle
         auto v = m_msg_list;
 
 		std::vector<point> rc=std::move(m_loc_tool.calc_location(v));
+		log_info("calc_location:%d size:%d",m_card->m_id,rc.size());
         
 		if(!rc.empty()) m_card->on_location(std::move(rc),v);
 

+ 0 - 4
card_person.cpp

@@ -76,10 +76,6 @@ void person::IKSDK_DB(int sid)
 		}
 	}
 }
-std::shared_ptr<area_hover> person::get_area_hover()
-{
-	return m_area_tool->get_area_first();
-}
 
 std::shared_ptr<mine_tool> person::get_mine_tool()
 {

+ 0 - 1
card_person.h

@@ -23,7 +23,6 @@ struct person:card_location_base, card_area
     point getSmoothPoint(uint64_t& t);
 
     virtual void site_hover(int sid);
-    virtual std::shared_ptr<area_hover> get_area_hover();
     virtual std::shared_ptr<mine_tool> get_mine_tool();
     virtual std::shared_ptr<site_area_hover> get_site_area();
     virtual void do_business(const std::shared_ptr<site>&site,const point &pt,double acc);

+ 1 - 1
main.cpp

@@ -63,8 +63,8 @@ struct Init_Setting
         //auto s = special_area_list::instance()->get_special_id(1013,point(4727,-254),2);
         //std_info("test special_area:%d",s);
 		mine_business::inst()->load();
-        card_list::instance()->load_his_card_postion_from_db();
         event_list::instance()->load_his_data_from_db();
+        card_list::instance()->load_his_card_postion_from_db();
         db_para dp;	
         dp.Host=DBSetting.Host;
         dp.User=DBSetting.User;

+ 0 - 11
module_service/area_business_forbid.cpp

@@ -7,17 +7,6 @@
 #include "card.h"
 #include "module_call.h"
 
-struct forbid_data:business_data
-{
-    forbid_data()
-    {
-    }
-};
-
-area_business_forbid::area_business_forbid()
-{
-}
-
 //记录进入时间等信息,生成告警
 void area_business_forbid::on_enter(const std::shared_ptr<area_hover>&a,
                                     const std::shared_ptr<card_location_base>&card_ptr,std::shared_ptr<business_data>&ptr)

+ 0 - 2
module_service/area_business_forbid.h

@@ -6,8 +6,6 @@
 class area_business_forbid : public area_business
 {
 public:
-    area_business_forbid();
-
     virtual int area_business_type()
     {
         return 7;

+ 1 - 9
site_area.cpp

@@ -52,12 +52,4 @@ void site_area_hover::leave_site(uint32_t card_id,int enter_site,int32_t type)
 {
 
 }
-int site_area_hover::get_att_type() const 
-{
-	int id = -1;
-		const auto &s = sit_list::instance()->get(m_site_id);
-		if(s)
-			if(s->m_reader_type_id == READER_TYPE_ID_DOWN)
-				id=0;
-		return id;
-}
+

+ 0 - 1
site_area.h

@@ -31,7 +31,6 @@ private:
 	point  m_enter_point,m_last_point;
 
 public:
-	int get_att_type() const;
     int site_id() const
     {
         return m_site_id;

+ 2 - 3
write-copy.h

@@ -122,7 +122,7 @@ struct safe_shared_ptr
 	std::atomic<int> m_mutex;
 	std::shared_ptr<T> m_ptr;
 
-	safe_shared_ptr(std::shared_ptr<T> ptr)
+	explicit safe_shared_ptr(std::shared_ptr<T> ptr)
 	{
 		m_mutex=0;
 		m_ptr=ptr;
@@ -151,7 +151,6 @@ struct safe_shared_ptr
 		unlock();
 		return ret;
 	}
-
 private:
 	void lock()
 	{
@@ -216,7 +215,7 @@ struct single_base:write_copy_base<T,K,V>
     }
 };
 
-template<typename T,typename K,typename V> safe_shared_ptr<T> single_base<T,K,V>::m_instance=std::make_shared<T>();
+template<typename T,typename K,typename V> safe_shared_ptr<T> single_base<T,K,V>::m_instance{std::make_shared<T>()};
 
 #endif