Browse Source

add ios service module

zhuyf 4 years ago
parent
commit
1e862ce0d9

+ 6 - 4
Makefile.am

@@ -16,19 +16,21 @@ SRC_MODULE_SERVICE= module_service/area_business_car_attendance.cpp module_servi
 					module_service/module_call.cpp module_service/module_call_help.cpp module_service/module_mgr.cpp \
 					module_service/module_call.cpp module_service/module_call_help.cpp module_service/module_mgr.cpp \
 					module_service/module_other_alarm.cpp 
 					module_service/module_other_alarm.cpp 
 
 
+SRC_SYNCTIME_MODULE= sync_time/sync_helper.cpp sync_time/sync_manager.cpp
 
 
 SRC_MAIN= ant.cpp area.cpp base64.cpp bindmorecard.cpp mine_business.cpp card_area.cpp card_base.cpp card_car.cpp his_location.cpp\
 SRC_MAIN= ant.cpp area.cpp base64.cpp bindmorecard.cpp mine_business.cpp card_area.cpp card_base.cpp card_car.cpp his_location.cpp\
     	  card.cpp  cardMgr.cpp card_path.cpp card_person.cpp crc.cpp geo_hash.cpp \
     	  card.cpp  cardMgr.cpp card_path.cpp card_person.cpp crc.cpp geo_hash.cpp \
 		  landmark.cpp line_fit.cpp  message.cpp message_file.cpp mine.cpp \
 		  landmark.cpp line_fit.cpp  message.cpp message_file.cpp mine.cpp \
 		  net-service.cpp point.cpp  special_area.cpp tdoa_sync.cpp visit.cpp \
 		  net-service.cpp point.cpp  special_area.cpp tdoa_sync.cpp visit.cpp \
 		  web-client.cpp worker.cpp event.cpp znet.cpp ya_setting.cpp area_business.cpp\
 		  web-client.cpp worker.cpp event.cpp znet.cpp ya_setting.cpp area_business.cpp\
-		  forbid_staff_down_mine.cpp bulletin_broad_show.cpp area_persons_thre_time.cpp
+		  forbid_staff_down_mine.cpp bulletin_broad_show.cpp area_persons_thre_time.cpp \
+		  service_position.cpp
 
 
-AM_SOURCES=$(SRC_MONKEYCAR) $(SRC_MODULE_SERVICE) $(SRC_MAIN) $(SRC_MAIN_EVENT)
+AM_SOURCES=$(SRC_MONKEYCAR) $(SRC_MODULE_SERVICE) $(SRC_SYNCTIME_MODULE) $(SRC_MAIN) $(SRC_MAIN_EVENT)
 
 
-AM_CPPFLAGS=-Wall -pthread -m64 -g -std=c++11 -I${prefix}/include -I/usr/local/include/mysql -Iwebsocket -Iwebsocket/sio -I./db  -Imodule_service
+AM_CPPFLAGS=-Wall -pthread -m64 -g -std=c++11 -I${prefix}/include -I/usr/local/include/mysql -Iwebsocket -Iwebsocket/sio -I./db  -Imodule_service -I./sync_time -I/usr/local/include/eigen3
 
 
-AM_LDFLAGS=-Wall -pthread -m64 -g -std=c++11  -L${prefix}/lib  -L/usr/local/mysql/lib
+AM_LDFLAGS=-Wall -pthread -m64 -g -std=c++11  -L${prefix}/lib  -L/usr/local/lib
 
 
 yals_SOURCES=${AM_SOURCES} main.cpp
 yals_SOURCES=${AM_SOURCES} main.cpp
 yals_CPPFLAGS=${AM_CPPFLAGS}
 yals_CPPFLAGS=${AM_CPPFLAGS}

+ 5 - 6
main.cpp

@@ -4,7 +4,6 @@
 #include "db_api/CDBSingletonDefine.h"
 #include "db_api/CDBSingletonDefine.h"
 #include "websocket/wsClientMgr.h"
 #include "websocket/wsClientMgr.h"
 #include "websocket/wsTimerThread.h"
 #include "websocket/wsTimerThread.h"
-
 #include "card.h"
 #include "card.h"
 #include "ant.h"
 #include "ant.h"
 #include "area.h"
 #include "area.h"
@@ -13,7 +12,7 @@
 #include "special_area.h"
 #include "special_area.h"
 #include "mine.h"
 #include "mine.h"
 #include "event.h"
 #include "event.h"
-#include"module_service/module_mgr.h"
+#include "module_service/module_mgr.h"
 #include <config_file.h>
 #include <config_file.h>
 #include "three_rates.h"
 #include "three_rates.h"
 #include "mine_business.h"
 #include "mine_business.h"
@@ -21,7 +20,6 @@
 #include "websocket/web_connect.h"
 #include "websocket/web_connect.h"
 #include "forbid_staff_down_mine.h"
 #include "forbid_staff_down_mine.h"
 #include "bulletin_broad_show.h"
 #include "bulletin_broad_show.h"
-#include "service_position.h"
 
 
 config_file config;
 config_file config;
 void handlereader(uint32_t readerid,bool duration,uint32_t t)
 void handlereader(uint32_t readerid,bool duration,uint32_t t)
@@ -187,14 +185,15 @@ int main(int argc ,char * argv[])
     is.init();
     is.init();
 
 
     module_mgr::start();
     module_mgr::start();
-    web_connect::start_beatheart_monitor();
-    atexit(&cleanup);
+    //web_connect::start_beatheart_monitor();
+    //atexit(&cleanup);
 
 
     net_service mh;
     net_service mh;
     int port=config.get("service.port",4000);
     int port=config.get("service.port",4000);
 
 
     int interface_port = config.get("service.interface_port",7001);
     int interface_port = config.get("service.interface_port",7001);
-    service_position::instance(interface_port);
+    log_info("service-position.run(%d)",interface_port);
+    ios_service::start_service_position(interface_port);
 
 
     log_info("service_handle::instance(&mh)->run(%d)",port);
     log_info("service_handle::instance(&mh)->run(%d)",port);
     std_info("service_handle::instance(&mh)->run(%d)",port);
     std_info("service_handle::instance(&mh)->run(%d)",port);

+ 1 - 11
message.cpp

@@ -53,8 +53,6 @@ void message_locinfo::load(zistream&is,bool tdoa)
 	//卡类型、卡号、CT、电池状态
 	//卡类型、卡号、CT、电池状态
 	is>>b>>m_card_id>>m_card_ct>>m_batty_status;
 	is>>b>>m_card_id>>m_card_ct>>m_batty_status;
 
 
-
-
 	if(m_card_id & 0xFFFF0000) 
 	if(m_card_id & 0xFFFF0000) 
 		log_warn("card_id=%#X,CT=%d,大于0xFFFF.",m_card_id,m_card_ct);
 		log_warn("card_id=%#X,CT=%d,大于0xFFFF.",m_card_id,m_card_ct);
 
 
@@ -103,7 +101,6 @@ void message_locinfo::load(zistream&is,bool tdoa)
 	m_rssi=10*log10(1.*sp1*(1<<17)/pow(sp2-64.,2))-121.74;
 	m_rssi=10*log10(1.*sp1*(1<<17)/pow(sp2-64.,2))-121.74;
 	log_info("timestamp=%llu,type=%d,card=%d,site=%d,ct=%d,bat=%#X,acc=%d,tof=%llu,ant_id=%d,spq=%d",
 	log_info("timestamp=%llu,type=%d,card=%d,site=%d,ct=%d,bat=%#X,acc=%d,tof=%llu,ant_id=%d,spq=%d",
 			m_time_stamp,m_card_type,m_card_id,m_site_id,m_card_ct,m_batty_status,m_acc,m_tof,m_ant_id,m_rssi);
 			m_time_stamp,m_card_type,m_card_id,m_site_id,m_card_ct,m_batty_status,m_acc,m_tof,m_ant_id,m_rssi);
-
 }
 }
 
 
 //优化协议数据解析
 //优化协议数据解析
@@ -140,9 +137,7 @@ std::vector<task*> message_locinfo::load_opt(zistream&is)
 		m.m_acc=b;
 		m.m_acc=b;
 	else
 	else
 		m.m_acc=((b&0x80)?-1.:1.)*(b&0x7f)*0.01;
 		m.m_acc=((b&0x80)?-1.:1.)*(b&0x7f)*0.01;
-   
-    //log_info("load_opt: card_type: %d,card_id: %d,ct:%d, callinfo:%d, rav:%d,acc:%.2f",m.m_card_type,m.m_card_id,m.m_card_ct,m.m_callinfo,m.m_rav,m.m_acc);
-	 
+    
     //天线
     //天线
     is>>b;
     is>>b;
     m.m_ant_id = b-1; 
     m.m_ant_id = b-1; 
@@ -155,8 +150,6 @@ std::vector<task*> message_locinfo::load_opt(zistream&is)
     is>>d;
     is>>d;
     m.m_distance = d*0.02;
     m.m_distance = d*0.02;
 
 
-    //log_info("load_opt: ant1 ant_id:%d, rssi: %d, d: %.2f",m.m_ant_id,m.m_rssi,m.m_distance);
-
     task* t2 = message_locinfo::clone(&m);
     task* t2 = message_locinfo::clone(&m);
     message_locinfo& m2 = t2->body<message_locinfo>();
     message_locinfo& m2 = t2->body<message_locinfo>();
 
 
@@ -167,9 +160,6 @@ std::vector<task*> message_locinfo::load_opt(zistream&is)
     //天线2距离
     //天线2距离
     is>>d;
     is>>d;
     m2.m_distance = d*0.02;
     m2.m_distance = d*0.02;
-    
-    //log_info("load_opt: ant2 ant_id:%d, rssi: %d, d: %.2f",m2.m_ant_id,m2.m_rssi,m2.m_distance);
-
 
 
     log_info("load_opt: type=%d, card_id=%d,ct=%d, callinfo=%d, rav=%d, acc=%d, ant1=%d, tof1=%.2f, spq1=%d, ant2=%d, tof2=%.2f, sqp2=%d",m.m_card_type,m.m_card_id,m.m_card_ct,m.m_callinfo,m.m_rav,m.m_acc,m.m_ant_id,m.m_distance,m.m_rssi,m2.m_ant_id,m2.m_distance,m2.m_rssi);
     log_info("load_opt: type=%d, card_id=%d,ct=%d, callinfo=%d, rav=%d, acc=%d, ant1=%d, tof1=%.2f, spq1=%d, ant2=%d, tof2=%.2f, sqp2=%d",m.m_card_type,m.m_card_id,m.m_card_ct,m.m_callinfo,m.m_rav,m.m_acc,m.m_ant_id,m.m_distance,m.m_rssi,m2.m_ant_id,m2.m_distance,m2.m_rssi);
 
 

+ 21 - 21
message.h

@@ -20,21 +20,21 @@ struct zistream;
 //	分站传上来的卡定位数据,包括tof,tdoa
 //	分站传上来的卡定位数据,包括tof,tdoa
 struct message_locinfo:task
 struct message_locinfo:task
 {
 {
-	uint64_t m_time_stamp;
-	time_t   m_site_time;
+	uint64_t m_time_stamp;  // 分站时间戳
+	time_t   m_site_time;   // 分站时间
 	uint64_t m_tof;
 	uint64_t m_tof;
-	uint32_t m_site_id;
+	uint32_t m_site_id;     // 分站号
 
 
-	uint32_t m_card_type;
-	uint32_t m_card_id;
-	uint16_t m_card_ct;
-	uint8_t  m_batty_status;
-	uint8_t  m_callinfo;//0x80-呼救,0x01-一般呼叫,0x02-紧急呼叫
-	uint8_t  m_rav;
-	uint8_t  m_acc;
-	uint8_t  m_ant_id;
-	uint16_t m_sync_ct;
-	int16_t  m_rssi;
+	uint32_t m_card_type;   // 卡类型
+	uint32_t m_card_id;     // 卡id
+	uint16_t m_card_ct;     // 卡报文时间戳
+	uint8_t  m_batty_status;//  电池状态
+	uint8_t  m_callinfo;    // 0x80-呼救,0x01-一般呼叫,0x02-紧急呼叫
+	uint8_t  m_rav;         // 角速度
+	uint8_t  m_acc;         // 加速度
+	uint8_t  m_ant_id;      // 天线号
+	uint16_t m_sync_ct;     // 同步序列号 
+	int16_t  m_rssi;        //
 
 
     //优化协议
     //优化协议
     float m_distance;
     float m_distance;
@@ -54,14 +54,14 @@ struct message_locinfo:task
 //tdoa分站同步数据
 //tdoa分站同步数据
 struct message_tdoasync:task
 struct message_tdoasync:task
 {
 {
-	uint32_t m_local_site_id;
-	uint32_t m_parent_site_id;
-	uint16_t m_local_ant_id;
-	uint16_t m_parent_ant_id;
-	uint16_t m_sync_ct;
-	uint16_t m_local_level;
-	uint64_t m_recv_time;
-	uint64_t m_send_time;
+	uint32_t m_local_site_id;       // 本地分站号
+	uint32_t m_parent_site_id;      // 上一级分站号
+	uint16_t m_local_ant_id;        // 分站分站天线号
+	uint16_t m_parent_ant_id;       // 上一级分站天线号
+	uint16_t m_sync_ct;             // 同步序列号
+	uint16_t m_local_level;         // 分站本地层级
+	uint64_t m_recv_time;           // 接收时间
+	uint64_t m_send_time;           // 发送时间
 
 
 	void zero_this();
 	void zero_this();
     void load(zistream&is);
     void load(zistream&is);

+ 7 - 9
service_position.cpp

@@ -1,3 +1,4 @@
+#include <log.h>
 #include "service_position.h"
 #include "service_position.h"
 #include <boost/bind.hpp>
 #include <boost/bind.hpp>
 #include <boost/format.hpp>
 #include <boost/format.hpp>
@@ -25,6 +26,7 @@ void service_position::notify(const std::string& msg, const std::string& id, con
 
 
     if(0.001 > feq || 1000.0 < feq){
     if(0.001 > feq || 1000.0 < feq){
         // 频率非法
         // 频率非法
+        log_info("[service-position] 频率非法,频率值:%.3f", feq);
         return;
         return;
     }
     }
 
 
@@ -124,9 +126,12 @@ bool service_position::start()
 {
 {
     try{
     try{
         if(0 >= m_port || 65536 < m_port){
         if(0 >= m_port || 65536 < m_port){
+            log_info("[service-position] port is invalid, port = %d", m_port);
             return false;
             return false;
         }
         }
 
 
+        log_info("[service-position] ios service is running, listen port: %d", m_port);
+
         m_stop = false;
         m_stop = false;
         m_service = service_ptr(new service_ptr::element_type());
         m_service = service_ptr(new service_ptr::element_type());
         boost::asio::ip::tcp::endpoint point(boost::asio::ip::address::from_string("0.0.0.0"), m_port);
         boost::asio::ip::tcp::endpoint point(boost::asio::ip::address::from_string("0.0.0.0"), m_port);
@@ -189,6 +194,7 @@ void service_position::handle_acceptor(const boost::system::error_code& ec, sock
 
 
     m_sockets.push_back(p_socket);
     m_sockets.push_back(p_socket);
 
 
+    log_info("[service-position] client %s is connected.", p_socket->remote_endpoint().address().to_string().c_str());
     auto _service = m_service;
     auto _service = m_service;
     if(!_service){
     if(!_service){
         return;
         return;
@@ -223,6 +229,7 @@ void service_position::handle_notify(buffer_ptr p_buffer)
         return;
         return;
     }
     }
 
 
+    log_info("[service-position] send msg: %s", p_buffer->c_str());
     for(auto iter = m_sockets.begin(); iter != m_sockets.end(); ++iter){
     for(auto iter = m_sockets.begin(); iter != m_sockets.end(); ++iter){
         (*iter)->async_write_some(boost::asio::buffer(p_buffer->c_str(), p_buffer->size()), boost::bind(&service_position::handle_write, shared_from_this(), _1, _2, *iter, p_buffer));
         (*iter)->async_write_some(boost::asio::buffer(p_buffer->c_str(), p_buffer->size()), boost::bind(&service_position::handle_write, shared_from_this(), _1, _2, *iter, p_buffer));
     }
     }
@@ -230,12 +237,3 @@ void service_position::handle_notify(buffer_ptr p_buffer)
 
 
 void service_position::handle_write(const boost::system::error_code&, unsigned int, socket_ptr, buffer_ptr)
 void service_position::handle_write(const boost::system::error_code&, unsigned int, socket_ptr, buffer_ptr)
 {}
 {}
-
-service_position_ptr service_position::instance(int port)
-{
-    service_position_ptr _service = service_position_ptr(new service_position_ptr::element_type());
-    _service->set_port(port);
-    _service->start();
-
-    return _service;
-}

+ 3 - 5
service_position.h

@@ -8,6 +8,7 @@
 #include <boost/enable_shared_from_this.hpp>
 #include <boost/enable_shared_from_this.hpp>
 #include <boost/atomic.hpp>
 #include <boost/atomic.hpp>
 #include <chrono>
 #include <chrono>
+#include <boost/serialization/singleton.hpp>
 
 
 struct info_data{
 struct info_data{
     boost::shared_ptr<std::string> p_msg;
     boost::shared_ptr<std::string> p_msg;
@@ -27,9 +28,6 @@ class info_send{
 };
 };
 
 
 typedef std::shared_ptr<info_send> info_send_ptr;
 typedef std::shared_ptr<info_send> info_send_ptr;
-class service_position;
-typedef boost::shared_ptr<service_position> service_position_ptr;
-
 class service_position: public boost::enable_shared_from_this<service_position>{
 class service_position: public boost::enable_shared_from_this<service_position>{
     public:
     public:
         typedef boost::shared_ptr<boost::asio::io_service> service_ptr;
         typedef boost::shared_ptr<boost::asio::io_service> service_ptr;
@@ -62,8 +60,8 @@ class service_position: public boost::enable_shared_from_this<service_position>{
         virtual void handle_timer(const boost::system::error_code& ec, std::weak_ptr<info_send> p_info);
         virtual void handle_timer(const boost::system::error_code& ec, std::weak_ptr<info_send> p_info);
         virtual std::string to_str(const std::chrono::system_clock::time_point& time);
         virtual std::string to_str(const std::chrono::system_clock::time_point& time);
         virtual void init_cache(info_send_ptr& p_info);
         virtual void init_cache(info_send_ptr& p_info);
-    public:
-        static service_position_ptr instance(int port);
 };
 };
 
 
+typedef boost::shared_ptr<service_position> service_position_ptr;
+
 #endif
 #endif

+ 42 - 0
websocket/jsonBuilder.cpp

@@ -506,6 +506,48 @@ namespace YA
 		return sb.GetString();
 		return sb.GetString();
 	}
 	}
 
 
+    std::string jsonBuilder::build_ios_card_pos(const _BASE_CARD_& stCard)
+    {
+        rapidjson::StringBuffer sb;
+        rapidjson::Writer<rapidjson::StringBuffer> writer(sb); 
+        rapidjson::Document doc;
+	rapidjson::Document::AllocatorType& allocator = doc.GetAllocator();
+
+	rapidjson::Value root( rapidjson::kObjectType );
+
+        // "cmd":
+	__SetCmd( JSON_CMD_VALUE_POS_MAP, root, allocator );
+ 	// "version"
+        __AddVersion(root, allocator);
+
+       
+        // "data"
+        rapidjson::Value data(rapidjson::kObjectType);
+        data.AddMember("card_type", 1 , allocator);
+        data.AddMember("cardid", "10", allocator);
+        data.AddMember("x", 10.0 , allocator);
+        data.AddMember("y", 20.0 , allocator);
+        data.AddMember("z", 30.0, allocator);
+        data.AddMember("acc" , 10.0 , allocator);
+        data.AddMember("speed", 3.5 , allocator);
+        data.AddMember("acc_x", 0.1, allocator);
+        data.AddMember("acc_y", 0.2 , allocator);
+        data.AddMember("acc_z", 0.3 , allocator);
+        data.AddMember("ang_x", 0.4, allocator);
+        data.AddMember("ang_y", 0.5 , allocator);
+        data.AddMember("ang_z", 0.6 , allocator);
+        data.AddMember("steps", 7, allocator);
+        data.AddMember("jump", 8 , allocator);
+        data.AddMember("hang_time", 3 , allocator);
+        data.AddMember("hang_height", 4, allocator);
+
+        root.AddMember("data", data, allocator);
+
+        root.Accept(writer);  
+
+        return sb.GetString();
+    }
+
 	std::string jsonBuilder::BuildSpecialAreaProcess( const _BASE_CARD_ & stCard )
 	std::string jsonBuilder::BuildSpecialAreaProcess( const _BASE_CARD_ & stCard )
 	{
 	{
 		rapidjson::StringBuffer sb;
 		rapidjson::StringBuffer sb;

+ 1 - 0
websocket/jsonBuilder.h

@@ -245,6 +245,7 @@ namespace YA
 
 
 		*/
 		*/
 		std::string BuildCardPos( const std::map<uint64_t, _CARD_POS_>& CardPosList );
 		std::string BuildCardPos( const std::map<uint64_t, _CARD_POS_>& CardPosList );
+        std::string build_ios_card_pos(const _BASE_CARD_& stCard);
 		/**
 		/**
 		* @brief
 		* @brief
 		生成车辆进入特殊区域jason函数。
 		生成车辆进入特殊区域jason函数。

+ 1 - 0
websocket/wsClient.cpp

@@ -218,6 +218,7 @@ namespace YA
 
 
 	void wsClient::_OnCallMessage( std::string const& name, sio::message::ptr const& data, bool need_ack, sio::message::list &ack_resp )
 	void wsClient::_OnCallMessage( std::string const& name, sio::message::ptr const& data, bool need_ack, sio::message::list &ack_resp )
 	{
 	{
+        // 接收web传送的json
 		log_info("web-message:%s",data->to_string().c_str());
 		log_info("web-message:%s",data->to_string().c_str());
 
 
 		if ( data->get_flag() == sio::message::flag_object ) 
 		if ( data->get_flag() == sio::message::flag_object ) 

+ 9 - 1
websocket/wsTimerThread.cpp

@@ -4,6 +4,7 @@
 #include "wsClientMgr.h"
 #include "wsClientMgr.h"
 #include "constdef.h"
 #include "constdef.h"
 #include "log.h"
 #include "log.h"
+#include "ya_setting.h"
 
 
 namespace YA
 namespace YA
 {
 {
@@ -66,7 +67,7 @@ namespace YA
 	{
 	{
 		std::map<uint64_t, _CARD_POS_> CardPosList;
 		std::map<uint64_t, _CARD_POS_> CardPosList;
 		if(__CardPosList.empty())
 		if(__CardPosList.empty())
-		  return;
+		    return;
 		__CardPosList.copy( CardPosList );
 		__CardPosList.copy( CardPosList );
 		std::string jsCardPos = __jsBuilder.BuildCardPos( CardPosList );
 		std::string jsCardPos = __jsBuilder.BuildCardPos( CardPosList );
 //		log_info("[pos_map]%s",jsCardPos.c_str());
 //		log_info("[pos_map]%s",jsCardPos.c_str());
@@ -113,6 +114,13 @@ namespace YA
 		}
 		}
 	}
 	}
 
 
+    void wsTimerThread::real_upt_card_pos(const _CARD_POS_& pos)
+    {
+        std::string pos_json = __jsBuilder.build_ios_card_pos(pos);
+        ios_service::m_ios_service->notify(pos_json, std::to_string(pos.ID), 10);
+        log_info("[service-position] json: %s", pos_json.c_str());
+    }
+
 	void wsTimerThread::del_card_pos( const _CARD_POS_ & pos )
 	void wsTimerThread::del_card_pos( const _CARD_POS_ & pos )
 	{
 	{
 		uint64_t type = pos.Type;
 		uint64_t type = pos.Type;

+ 1 - 0
websocket/wsTimerThread.h

@@ -182,6 +182,7 @@ namespace YA
 
 
 		*/
 		*/
 		void upt_card_pos( const _CARD_POS_& pos );
 		void upt_card_pos( const _CARD_POS_& pos );
+        void real_upt_card_pos(const _CARD_POS_& pos);
 		/**
 		/**
 		* @brief
 		* @brief
 		  删除卡位置函数。
 		  删除卡位置函数。

+ 9 - 2
ya_setting.cpp

@@ -1,10 +1,12 @@
 #include "ya_setting.h"
 #include "ya_setting.h"
 #include "db/db_api/CDBSingletonDefine.h"
 #include "db/db_api/CDBSingletonDefine.h"
 #include "log.h"
 #include "log.h"
-
 #include <config_file.h>
 #include <config_file.h>
+
 extern config_file config;
 extern config_file config;
 SSys_setting CYaSetting::m_sys_setting;
 SSys_setting CYaSetting::m_sys_setting;
+service_position_ptr ios_service::m_ios_service;
+
 /*
 /*
 * 从数据库的dat_setting表初始化系统阈值,
 * 从数据库的dat_setting表初始化系统阈值,
 * 包括:井下人员阈值,井下车辆阈值,人员超时阈值,车辆超时阈值,车辆超速阈值
 * 包括:井下人员阈值,井下车辆阈值,人员超时阈值,车辆超时阈值,车辆超速阈值
@@ -33,7 +35,6 @@ bool CYaSetting::Init_sys_setting()
 			log_info("init_setting:%s,%s",N,val.c_str());\
 			log_info("init_setting:%s,%s",N,val.c_str());\
 			K = atoi(val.c_str())*X;}\
 			K = atoi(val.c_str())*X;}\
 
 
-
 			D_GetValue(m_sys_setting.over_count_person,"over_count_person",1,"人员井下超员")
 			D_GetValue(m_sys_setting.over_count_person,"over_count_person",1,"人员井下超员")
 			D_GetValue(m_sys_setting.over_count_vehicle,"over_count_vehicle",1,"车辆井下超员")
 			D_GetValue(m_sys_setting.over_count_vehicle,"over_count_vehicle",1,"车辆井下超员")
 			D_GetValue(m_sys_setting.over_time_person,"over_time_person",60,"人员井下超时")
 			D_GetValue(m_sys_setting.over_time_person,"over_time_person",60,"人员井下超时")
@@ -56,3 +57,9 @@ bool CYaSetting::Init_sys_setting()
     return true;
     return true;
 }
 }
 
 
+void ios_service::start_service_position(const int& port)
+{
+    m_ios_service = service_position_ptr(new service_position_ptr::element_type());
+    m_ios_service->set_port(port);
+    m_ios_service->start();
+}

+ 7 - 0
ya_setting.h

@@ -4,6 +4,8 @@
 #include <time.h>
 #include <time.h>
 #include <map>
 #include <map>
 #include "common_tool.h"
 #include "common_tool.h"
+#include "service_position.h"
+
 // 系统设置,,读取DB.dat_setting
 // 系统设置,,读取DB.dat_setting
 struct  SSys_setting // system_limit_setting
 struct  SSys_setting // system_limit_setting
 {
 {
@@ -65,4 +67,9 @@ public:
     static bool Init_sys_setting();
     static bool Init_sys_setting();
 };
 };
 
 
+struct ios_service{
+    static service_position_ptr m_ios_service;
+    static void start_service_position(const int& port);
+};
+
 #endif
 #endif