Browse Source

拆分area_business.cpp中的业务到module_service/area_business_xxx.*

zzj 6 years ago
parent
commit
71f50ff72f

+ 7 - 3
Makefile.am

@@ -3,7 +3,11 @@ noinst_PROGRAMS=client async test
 
 SRC_MONKEYCAR= monkey_car/monkeycar_area.cpp monkey_car/monkeycar_bus.cpp monkey_car/monkeycar_person.cpp
 
-SRC_MODULE_SERVICE= module_service/module_call.cpp module_service/module_meta_date_changed.cpp module_service/module_web.cpp
+SRC_MODULE_SERVICE= module_service/area_business_car_attendance.cpp module_service/area_business_card_enter_or_leave.cpp \
+					module_service/area_business_count_checker.cpp module_service/area_business_forbid.cpp \
+					module_service/area_business_person_dwell_checker.cpp module_service/area_business_post_area.cpp \
+					module_service/module_call.cpp module_service/module_meta_date_changed.cpp module_service/module_web.cpp \
+					module_service/area_business_speed_checker.cpp
 
 SRC_MAIN= ant.cpp area.cpp base64.cpp bindmorecard.cpp mine_business.cpp card_area.cpp card_base.cpp card_car.cpp \
     	  card.cpp card_message_handle.cpp cardMgr.cpp card_path.cpp card_person.cpp crc.cpp geo_hash.cpp \
@@ -13,9 +17,9 @@ SRC_MAIN= ant.cpp area.cpp base64.cpp bindmorecard.cpp mine_business.cpp card_ar
 
 SRC_MAIN_EVENT= mine_module/MineCardManager.cpp
 
-AM_SOURCES=$(SRC_MONKEYCAR) $(SRC_MODULE_SERVICE) $(SRC_MAIN) $(SRC_MAIN_EVENT)
+AM_SOURCES=$(SRC_MODULE_SERVICE) $(SRC_MONKEYCAR) $(SRC_MAIN) $(SRC_MAIN_EVENT)
 
-AM_CPPFLAGS=-Wall -pthread -m64 -g -std=c++11  -I${prefix}/include -I/usr/local/mysql/include -Iwebsocket -Iwebsocket/sio -I./db -I../dist/include -I../rapidjson/include
+AM_CPPFLAGS=-Wall -pthread -m64 -g -std=c++11  -I${prefix}/include -I/usr/local/mysql/include -Iwebsocket -Iwebsocket/sio -I./db -I../dist/include -I../rapidjson/include -Imodule_service
 
 AM_LDFLAGS=-Wall -pthread -m64 -g -std=c++11  -L${prefix}/lib  -L/usr/local/mysql/lib -L../dist/lib
 

+ 13 - 212
area_business.cpp

@@ -1,132 +1,19 @@
 
 #include <assert.h>
 
-#include "card_base.h"
 #include "area_business.h"
-#include "area.h"
-#include "card.h"
-
-#include "module_service/module_call.h"
-/*
-	确定推送人员信息时的区域,每一个明确需要推送的区域,都要推送
-*/
-struct area_business_post_area:area_business
-{
-	virtual int area_business_type()
-	{
-		return 1;
-	}
-	//将推送区域信息加入人员数据
-	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){}
-};
-
-/*
-	判断车辆超速,确定超速后记录日志、数据库并告警
-	每张卡在每个区域的超速相关的数据信息记录在 area_hover 对象
-	人员&车辆的代码重用,请自行设计
-*/
-struct area_business_speed_checker:area_business
-{
-	struct speed_checker_data:business_data
-	{
-		std::vector<double> speed;
-	};
-
-	virtual int area_business_type()
-	{
-		return 4;
-	
-	}
-
-	//在ptr对象中初始化超速检测所需的对象
-	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){}
-	//根据超速检测的策略,进行超速判断,超速时进行告警
-	//建议使用最近M秒内N秒超时进行判断,M=20,N=15,策略数据记录在ptr中..如此:一辆车理想情况下15s才能检测出来。15*4m/s=60mbut.15s内有可能只上来一个超速点。
-	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){}
-};
-
-
-/*
-	禁区
-*/
-struct area_business_restricted:area_business
-{
-	virtual int area_business_type()
-	{
-
-		return 7;
-	}
-	//记录进入时间等信息,生成告警
-	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)
-	{
-#if 0
-        a->m_enter_point = point(c->x,c->y,c->z);
-        a->m_last_point.set(0,0,0);
-        a->m_last_time = 0;
-        a->m_enter_time = time(nullptr);
-
-        event_ptr evPtr = event_list::instance()->get_event_card(c->m_id,c->m_type,ET_CARD_AREA_FORBIDDEN_PERSON);
-        if (nullptr == evPtr)
-        {
-            event_ptr evPtr = event_list::create_event_card(c->m_id, c->m_type, ET_CARD_AREA_FORBIDDEN_PERSON);
-            event_list::instance()->copy_event(c, evPtr);
-            event_list::instance()->add(evPtr->get_list_id(), evPtr);
-        }
-        evPtr->m_limit_value = 0;
-        evPtr->m_cur_value = 0;
-        evPtr->m_is_display = false;
-        evPtr->m_status = EVENT_STATUS::ES_START ;
-        evPtr->m_cur_time = std::chrono::system_clock::now();
-
-        event_list::save_event(evPtr);
-
-        //呼叫
-        module_call::instance()->system_call_apoint(c->m_id,c->m_type);
-#endif
-
-	}
-	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)
-	{
-#if 0
-        a->m_last_point = point(c->x,c->y,c->z);
-        a->m_last_time = time(nullptr);
-
-        // 发送警告
-        int oldStatus = -1;
-        event_ptr evPtr = event_list::instance()->get_event_card(c->m_id,c->m_type,ET_CARD_AREA_FORBIDDEN_PERSON);
-        if (nullptr == evPtr)
-        {
-            event_ptr evPtr = event_list::create_event_card(c->m_id, c->m_type, ET_CARD_AREA_FORBIDDEN_PERSON);
-            event_list::instance()->copy_event(c, evPtr);
-            event_list::instance()->add(evPtr->get_list_id(), evPtr);
-            oldStatus = EVENT_STATUS::ES_END;
-        } else{
-            if (evPtr->m_status != EVENT_STATUS::ES_END)
-            {
-                oldStatus = EVENT_STATUS::ES_END;
-            }
-        }
-        evPtr->m_limit_value = 0;
-        evPtr->m_cur_value = 0;
-        evPtr->m_is_display = false;
-        evPtr->m_status = EVENT_STATUS::ES_END ;
-        evPtr->m_cur_time = std::chrono::system_clock::now();
-        if (oldStatus != -1)
-        {
-            event_list::save_event(evPtr);
-        }
-        //取消呼叫
-        module_call::instance()->system_cancel_call_apoint(c->m_id,c->m_type);
-#endif
-    }
-};
+//#include "card_base.h"
+//#include "area.h"
+//#include "card.h"
+
+#include "area_business_car_attendance.h"
+#include "area_business_card_enter_or_leave.h"
+#include "area_business_count_checker.h"
+#include "area_business_forbid.h"
+#include "area_business_person_dwell_checker.h"
+#include "area_business_person_attendance.h"
+#include "area_business_post_area.h"
+#include "area_business_speed_checker.h"
 
 /*
 	猴车区域
@@ -139,92 +26,6 @@ struct area_business_monkey_area:area_business
 	}
 };
 
-/*
-	车辆考勤
-*/
-struct area_business_car_attendance:area_business
-{
-	virtual int area_business_type()
-	{
-		return 6;
-	
-	}
-	//记录进入时间等信息,结束考勤,根据离开的时间和距离,判断是否记录一条新的考勤记录
-	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){}
-};
-
-/*
-	人员考勤
-*/
-struct area_business_person_attendance:area_business
-{
-	virtual int area_business_type()
-	{
-		return 5;
-	
-	}
-	//记录进入时间等信息,开始考勤
-	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){}
-};
-
-/*
-	判断当前区域a中的人数是否超过设定人数,超过后告警
-	区域内实时人数存储在area对象中,在当前类on_enter/on_leave中进行更新
-	整个井下的超员和某个区域的超员都使用这个代码
-*/
-struct area_business_count_checker:area_business
-{
-
-	virtual int area_business_type()
-	{
-		return 3;
-	
-	}
-	//增加计数,并进行判断
-	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){}
-};
-
-
-/*
-	判断当前区域a中的人卡停留时间
-	人员进入区域时间存储在area_hover对象中,在当前类on_enter/on_leave中进行更新
-	人员&车辆的代码重用,请自行设计
-*/
-struct area_business_person_dwell_checker:area_business
-{
-	virtual int area_business_type()
-	{
-		return 2;
-	}
-	//进入区域,记录进入时间
-	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){}
-};
-
-struct area_business_card_enter_or_leave:area_business
-{
-	virtual int area_business_type()
-	{
-		return 9;
-	}
-	//进入区域则入库操作
-	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){}
-};
 
 struct area_business_factory
 {
@@ -272,7 +73,7 @@ private:
 		regist(4,new area_business_speed_checker);
 		regist(5,new area_business_person_attendance);
 		regist(6,new area_business_car_attendance);
-		regist(7,new area_business_restricted);
+		regist(7,new area_business_forbid);
 		//regist(8,new area_business_monkey_area);
 		regist(9,new area_business_card_enter_or_leave);
 	}

+ 5 - 1
area_business.h

@@ -9,14 +9,18 @@ struct business_data
 	virtual ~business_data(){}
 };
 
+struct area_hover;
+struct card_location_base;
 struct area_business
 {
-	virtual int area_business_type()=0;
+	virtual int area_business_type();
 
 	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 ~area_business(){}
+
 	static std::vector<area_business*> get_instance_list(int business_type);
 };
 #endif

+ 14 - 3
module_service/area_business_car_attendance.cpp

@@ -1,3 +1,7 @@
+
+#include "area.h"
+#include "card_base.h"
+
 #include "area_business_car_attendance.h"
 
 struct car_attendance_data:business_data
@@ -19,16 +23,23 @@ area_business_car_attendance::area_business_car_attendance()
 
 
 //记录进入时间等信息,结束考勤,根据离开的时间和距离,判断是否记录一条新的考勤记录
-void on_enter(const std::shared_ptr<area_hover>&a,const std::shared_ptr<card_location_base>&c,std::shared_ptr<business_data>&ptr)
+void area_business_car_attendance::on_enter(const std::shared_ptr<area_hover>&a,
+					const std::shared_ptr<card_location_base>&c,std::shared_ptr<business_data>&ptr)
 {
 
 }
-void on_hover(const std::shared_ptr<area_hover>&a,const std::shared_ptr<card_location_base>&c,std::shared_ptr<business_data> ptr)
+
+void area_business_car_attendance::on_hover(const std::shared_ptr<area_hover>&a,
+					const std::shared_ptr<card_location_base>&c,std::shared_ptr<business_data> ptr)
 {
 
 }
+
 //记录离开考勤区域信息,开始考勤
-void on_leave(const std::shared_ptr<area_hover>&a,const std::shared_ptr<card_location_base>&c,std::shared_ptr<business_data> ptr)
+void area_business_car_attendance::on_leave(const std::shared_ptr<area_hover>&a,
+					const std::shared_ptr<card_location_base>&c,std::shared_ptr<business_data> ptr)
 {
 
 }
+
+

+ 4 - 6
module_service/area_business_car_attendance.h

@@ -1,17 +1,13 @@
 #ifndef AREA_BUSINESS_CAR_ATTENDANCE_H
 #define AREA_BUSINESS_CAR_ATTENDANCE_H
 
-#include"area.h"
-#include "card.h"
 #include"area_business.h"
 
-
-class area_business_car_attendance:public area_business
+struct area_business_car_attendance:area_business
 {
-public:
     area_business_car_attendance();
 
-    virtual int area_business_type()
+    int area_business_type()
     {
         return 6;
     }
@@ -24,3 +20,5 @@ public:
 
 
 #endif // AREA_BUSINESS_CAR_ATTENDANCE_H
+
+

+ 25 - 0
module_service/area_business_card_enter_or_leave.cpp

@@ -0,0 +1,25 @@
+#include "area.h"
+#include "card_base.h"
+
+#include "area_business_card_enter_or_leave.h"
+
+	//进入区域则入库操作
+void area_business_card_enter_or_leave::on_enter(const std::shared_ptr<area_hover>&a,
+							const std::shared_ptr<card_location_base>&c,std::shared_ptr<business_data>&ptr)
+{
+
+}
+
+void area_business_card_enter_or_leave::on_hover(const std::shared_ptr<area_hover>&a,
+							const std::shared_ptr<card_location_base>&c,std::shared_ptr<business_data> ptr)
+{
+
+}
+	//出区域则入库
+void area_business_card_enter_or_leave::on_leave(const std::shared_ptr<area_hover>&a,
+							const std::shared_ptr<card_location_base>&c,std::shared_ptr<business_data> ptr)
+{
+
+}
+
+

+ 21 - 0
module_service/area_business_card_enter_or_leave.h

@@ -0,0 +1,21 @@
+#ifndef _area_business_card_enter_or_leave_hpp_
+#define _area_business_card_enter_or_leave_hpp_
+
+#include "area_business.h"
+
+struct area_business_card_enter_or_leave:area_business
+{
+	int area_business_type()
+	{
+		return 9;
+	}
+
+	//进入区域则入库操作
+	void on_enter(const std::shared_ptr<area_hover>&a,const std::shared_ptr<card_location_base>&c,std::shared_ptr<business_data>&ptr);
+	void on_hover(const std::shared_ptr<area_hover>&a,const std::shared_ptr<card_location_base>&c,std::shared_ptr<business_data> ptr);
+	//出区域则入库
+	void on_leave(const std::shared_ptr<area_hover>&a,const std::shared_ptr<card_location_base>&c,std::shared_ptr<business_data> ptr);
+};
+
+#endif
+

+ 32 - 0
module_service/area_business_count_checker.cpp

@@ -0,0 +1,32 @@
+#include "area.h"
+#include "card_base.h"
+
+#include "area_business_count_checker.h"
+/*
+	判断当前区域a中的人数是否超过设定人数,超过后告警
+	区域内实时人数存储在area对象中,在当前类on_enter/on_leave中进行更新
+	整个井下的超员和某个区域的超员都使用这个代码
+*/
+	//增加计数,并进行判断
+void area_business_count_checker::on_enter(const std::shared_ptr<area_hover>&a,
+						const std::shared_ptr<card_location_base>&c,std::shared_ptr<business_data>&ptr)
+{
+
+
+}
+
+void area_business_count_checker::on_hover(const std::shared_ptr<area_hover>&a,
+						const std::shared_ptr<card_location_base>&c,std::shared_ptr<business_data> ptr)
+{
+
+
+}
+
+	//减少计数
+void area_business_count_checker::on_leave(const std::shared_ptr<area_hover>&a,
+						const std::shared_ptr<card_location_base>&c,std::shared_ptr<business_data> ptr)
+{
+
+
+}
+

+ 28 - 0
module_service/area_business_count_checker.h

@@ -0,0 +1,28 @@
+#ifndef _area_business_count_checker_hpp_
+#define _area_business_count_checker_hpp_
+
+#include "area_business.h"
+
+/*
+	判断当前区域a中的人数是否超过设定人数,超过后告警
+	区域内实时人数存储在area对象中,在当前类on_enter/on_leave中进行更新
+	整个井下的超员和某个区域的超员都使用这个代码
+*/
+struct area_business_count_checker:area_business
+{
+
+	int area_business_type()
+	{
+		return 3;
+	
+	}
+	//增加计数,并进行判断
+	void on_enter(const std::shared_ptr<area_hover>&a,const std::shared_ptr<card_location_base>&c,std::shared_ptr<business_data>&ptr);
+	void on_hover(const std::shared_ptr<area_hover>&a,const std::shared_ptr<card_location_base>&c,std::shared_ptr<business_data> ptr);
+	//减少计数
+	void on_leave(const std::shared_ptr<area_hover>&a,const std::shared_ptr<card_location_base>&c,std::shared_ptr<business_data> ptr);
+};
+
+
+#endif
+

+ 9 - 0
module_service/area_business_forbid.cpp

@@ -1,3 +1,7 @@
+
+#include "area.h"
+#include "card_base.h"
+
 #include "area_business_forbid.h"
 
 struct forbid_data:business_data
@@ -14,12 +18,17 @@ 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>&c,std::shared_ptr<business_data>&ptr)
 {
+
 }
+
 void area_business_forbid::on_hover(const std::shared_ptr<area_hover>&a,const std::shared_ptr<card_location_base>&c,std::shared_ptr<business_data> ptr)
 {
 
 }
+
 //记录退出时间等信息
 void area_business_forbid::on_leave(const std::shared_ptr<area_hover>&a,const std::shared_ptr<card_location_base>&c,std::shared_ptr<business_data> ptr)
 {
 }
+
+

+ 4 - 5
module_service/area_business_forbid.h

@@ -1,16 +1,13 @@
 #ifndef AREA_BUSINESS_FORBID_H
 #define AREA_BUSINESS_FORBID_H
 
-#include"area.h"
-#include "card.h"
 #include"area_business.h"
 
-class area_business_forbid : public area_business
+struct area_business_forbid:area_business
 {
-public:
     area_business_forbid();
 
-    virtual int area_business_type()
+    int area_business_type()
     {
         return 7;
     }
@@ -22,3 +19,5 @@ public:
 };
 
 #endif // AREA_BUSINESS_FORBID_H
+
+

+ 32 - 0
module_service/area_business_person_attendance.cpp

@@ -0,0 +1,32 @@
+
+#include "area.h"
+#include "card_base.h"
+
+#include "area_business_person_attendance.h"
+
+area_business_person_attendance::area_business_person_attendance()
+{
+}
+
+
+//记录进入时间等信息,结束考勤,根据离开的时间和距离,判断是否记录一条新的考勤记录
+void area_business_person_attendance::on_enter(const std::shared_ptr<area_hover>&a,
+					const std::shared_ptr<card_location_base>&c,std::shared_ptr<business_data>&ptr)
+{
+
+}
+
+void area_business_person_attendance::on_hover(const std::shared_ptr<area_hover>&a,
+					const std::shared_ptr<card_location_base>&c,std::shared_ptr<business_data> ptr)
+{
+
+}
+
+//记录离开考勤区域信息,开始考勤
+void area_business_person_attendance::on_leave(const std::shared_ptr<area_hover>&a,
+					const std::shared_ptr<card_location_base>&c,std::shared_ptr<business_data> ptr)
+{
+
+}
+
+

+ 27 - 0
module_service/area_business_person_attendance.h

@@ -0,0 +1,27 @@
+#ifndef _area_business_person_attendance_hpp_
+#define _area_business_person_attendance_hpp_
+
+#include"area_business.h"
+
+struct area_business_person_attendance:area_business
+{
+    area_business_person_attendance();
+
+    int area_business_type()
+    {
+        return 5;
+    }
+
+    //记录进入时间等信息,开始考勤
+    void on_enter(const std::shared_ptr<area_hover>&a,const std::shared_ptr<card_location_base>&c,std::shared_ptr<business_data>&ptr);
+
+    void on_hover(const std::shared_ptr<area_hover>&a,const std::shared_ptr<card_location_base>&c,std::shared_ptr<business_data> ptr);
+
+    //记录离开考勤区域信息,结束考勤
+    void on_leave(const std::shared_ptr<area_hover>&a,const std::shared_ptr<card_location_base>&c,std::shared_ptr<business_data> ptr);
+};
+
+
+#endif // AREA_BUSINESS_CAR_ATTENDANCE_H
+
+

+ 38 - 0
module_service/area_business_person_dwell_checker.cpp

@@ -0,0 +1,38 @@
+
+#include "area.h"
+#include "card_base.h"
+
+#include "area_business_person_dwell_checker.h"
+/*
+	判断当前区域a中的人卡停留时间
+	人员进入区域时间存储在area_hover对象中,在当前类on_enter/on_leave中进行更新
+	人员&车辆的代码重用,请自行设计
+*/
+
+
+//进入区域,记录进入时间
+void area_business_person_dwell_checker::on_enter(const std::shared_ptr<area_hover>&a,
+							const std::shared_ptr<card_location_base>&c,std::shared_ptr<business_data>&ptr)
+{
+
+
+}
+
+
+//判断是否超时
+void area_business_person_dwell_checker::on_hover(const std::shared_ptr<area_hover>&a,
+							const std::shared_ptr<card_location_base>&c,std::shared_ptr<business_data> ptr)
+{
+
+
+}
+
+
+//如果有超时告警,取消超时告警
+void area_business_person_dwell_checker::on_leave(const std::shared_ptr<area_hover>&a,
+							const std::shared_ptr<card_location_base>&c,std::shared_ptr<business_data> ptr)
+{
+
+
+}
+

+ 27 - 0
module_service/area_business_person_dwell_checker.h

@@ -0,0 +1,27 @@
+#ifndef _area_business_person_dwell_checker_hpp_
+#define _area_business_person_dwell_checker_hpp_
+
+#include"area_business.h"
+
+/*
+	判断当前区域a中的人卡停留时间
+	人员进入区域时间存储在area_hover对象中,在当前类on_enter/on_leave中进行更新
+	人员&车辆的代码重用,请自行设计
+*/
+struct area_business_person_dwell_checker:area_business
+{
+	int area_business_type()
+	{
+		return 2;
+	}
+	//进入区域,记录进入时间
+	void on_enter(const std::shared_ptr<area_hover>&a,const std::shared_ptr<card_location_base>&c,std::shared_ptr<business_data>&ptr);
+	//判断是否超时
+	void on_hover(const std::shared_ptr<area_hover>&a,const std::shared_ptr<card_location_base>&c,std::shared_ptr<business_data> ptr);
+	//如果有超时告警,取消超时告警
+	void on_leave(const std::shared_ptr<area_hover>&a,const std::shared_ptr<card_location_base>&c,std::shared_ptr<business_data> ptr);
+};
+
+
+#endif
+

+ 30 - 0
module_service/area_business_post_area.cpp

@@ -0,0 +1,30 @@
+
+#include "area.h"
+#include "card_base.h"
+
+#include "area_business_post_area.h"
+/*
+	确定推送人员信息时的区域,每一个明确需要推送的区域,都要推送
+*/
+
+//将推送区域信息加入人员数据
+void area_business_post_area::on_enter(const std::shared_ptr<area_hover>&a,
+						const std::shared_ptr<card_location_base>&c,std::shared_ptr<business_data>&ptr)
+{
+
+}
+
+void area_business_post_area::on_hover(const std::shared_ptr<area_hover>&a, \
+						const std::shared_ptr<card_location_base>&c,std::shared_ptr<business_data> ptr)
+{
+
+}
+
+//从人员数据中清除区域信息
+void area_business_post_area::on_leave(const std::shared_ptr<area_hover>&a,
+						const std::shared_ptr<card_location_base>&c,std::shared_ptr<business_data> ptr)
+{
+
+}
+
+

+ 23 - 0
module_service/area_business_post_area.h

@@ -0,0 +1,23 @@
+#ifndef _area_business_post_area_hpp_
+#define _area_business_post_area_hpp_
+
+#include"area_business.h"
+
+/*
+	确定推送人员信息时的区域,每一个明确需要推送的区域,都要推送
+*/
+struct area_business_post_area:area_business
+{
+	int area_business_type()
+	{
+		return 1;
+	}
+	//将推送区域信息加入人员数据
+	void on_enter(const std::shared_ptr<area_hover>&a,const std::shared_ptr<card_location_base>&c,std::shared_ptr<business_data>&ptr);
+	void on_hover(const std::shared_ptr<area_hover>&a,const std::shared_ptr<card_location_base>&c,std::shared_ptr<business_data> ptr);
+	//从人员数据中清除区域信息
+	void on_leave(const std::shared_ptr<area_hover>&a,const std::shared_ptr<card_location_base>&c,std::shared_ptr<business_data> ptr);
+};
+
+#endif
+

+ 7 - 4
module_service/area_business_speed_checker.cpp

@@ -18,15 +18,18 @@ area_business_speed_checker::area_business_speed_checker()
 {
 }
 
-void area_business_speed_checker::on_enter(const std::shared_ptr<area_hover>&a,const std::shared_ptr<card_location_base>&c,std::shared_ptr<business_data>&ptr)
+void area_business_speed_checker::on_enter(const std::shared_ptr<area_hover>&a,
+					const std::shared_ptr<card_location_base>&c,std::shared_ptr<business_data>&ptr)
 {
 }
 
-void area_business_speed_checker::on_hover(const std::shared_ptr<area_hover>&a,const std::shared_ptr<card_location_base>&c,std::shared_ptr<business_data> ptr)
+void area_business_speed_checker::on_hover(const std::shared_ptr<area_hover>&a,
+					const std::shared_ptr<card_location_base>&c,std::shared_ptr<business_data> ptr)
 {
-
 }
 
-void area_business_speed_checker::on_leave(const std::shared_ptr<area_hover>&a,const std::shared_ptr<card_location_base>&c,std::shared_ptr<business_data> ptr)
+void area_business_speed_checker::on_leave(const std::shared_ptr<area_hover>&a,
+					const std::shared_ptr<card_location_base>&c,std::shared_ptr<business_data> ptr)
 {
 }
+

+ 2 - 6
module_service/area_business_speed_checker.h

@@ -1,17 +1,13 @@
 #ifndef AREA_BUSINESS_SPEED_CHECKER_H
 #define AREA_BUSINESS_SPEED_CHECKER_H
 
-
-#include"area.h"
-#include "card.h"
 #include"area_business.h"
 
-class area_business_speed_checker : public area_business
+struct area_business_speed_checker:area_business
 {
-public:
     area_business_speed_checker();
 
-    virtual int area_business_type()
+    int area_business_type()
     {
         return 4;
     }