Browse Source

Merge branch 'master' of http://local.beijingyongan.com:3000/linux-dev/ya-serv

zzj 6 years ago
parent
commit
b9dfb72271

+ 2 - 2
ant.h

@@ -101,8 +101,8 @@ struct ant :point
                 v.push_back(pt);
                 //std_info("get_sol:x:%.2f,y:%.2f",pt.x,pt.y);
             }
-            else
-                std_error(".%s","ant::getsol empty path..");
+            //else
+             //   std_error("ant[%d]::getsol empty path..",);
         }
         return std::move(v);
     }

+ 1 - 0
card_base.cpp

@@ -64,6 +64,7 @@ void card_location_base::on_message(zloop<task*> * loop,const message_locinfo&lo
 
 	if(site_ptr->is_up_site())
 	{
+        log_info("%d被井上分站[%d]收到",m_id,site_ptr->id());
 		auto area_tool=get_area_tool();
 		area_tool->set(site_ptr);
 		area_tool->on_point(shared_from_this(),point(1,1));

+ 0 - 1
card_person.cpp

@@ -58,7 +58,6 @@ void person::site_hover(int sid)
 //虹膜识别入库功能	
 void person::IKSDK_DB(int sid)
 {
-	printf("person::IKSDK_DB : card=%d,Sid=%d \n",m_id,sid);
 	time_t now = time(0);
 	if(now - m_iris_recognition_timeval > 5)
 	{

+ 1 - 0
db/db_api/CDBConnPool.cpp

@@ -327,6 +327,7 @@ namespace YADB
 		_ASYNC_SQL_* pData = new _ASYNC_SQL_;
 		if ( !pData )
 		{
+            logn_error(2,"PushAsync new pData失败");
 			return false;
 		}
 

+ 1 - 1
db/db_tool.cpp

@@ -16,7 +16,7 @@ namespace db_tool
         logn_info(2,"sql:[%s]",sql);
         if(!sDBConnPool.PushAsync(sql))
         {
-            log_error( "PushAsync记录到队列中失败\n");
+            logn_error(2,"PushAsync记录到队列中失败");
         }
     }
 

+ 1 - 0
message.h

@@ -6,6 +6,7 @@
 struct zistream;
 
 #define CHAR_LOCATEDATA_TOF_EXTEND 0x843b			// TOF实时定位数据,请求、应答
+#define CHAR_LOCATEDATASMALL_TOF_EXTEND 0x753b		// TOF实时小分站定位数据,请求、应答
 #define CHAR_LOCATEDATAHIS_TOF_EXTEND 0x853b		// TOF历史定位数据,请求、应答
 #define CHAR_LOCATEDATA_TDOA_EXTEND 0x863b			// TDOA实时定位数据,请求、应答
 #define CHAR_LOCATEDATAHIS_TDOA_EXTEND 0x873b		// TDOA历史定位数据,请求、应答

+ 9 - 45
module_service/area_business_person_attendance.cpp

@@ -47,6 +47,7 @@ void area_business_person_attendance::on_leave(const std::shared_ptr<area_hover>
     if(!mine_tool_ptr->m_is_attendance)
         return;
 
+    log_info("on_leave_person_att:%d",card_ptr->m_id);
     //考勤结束
     mine_tool_ptr->m_is_attendance=false;
 
@@ -90,66 +91,29 @@ void area_business_person_attendance::handle_up_mine(sio::message::ptr const& da
         return;
     }
 
-//    rapidjson::Document doc(rapidjson::kObjectType);
-//    rapidjson::Value datas(rapidjson::kArrayType);
-//    rapidjson::Document::AllocatorType& allocator=doc.GetAllocator();
-
     std::vector<sio::message::ptr>::const_iterator it_card = card_vec.begin();
     int type = 0;
     std::string s_card_id;
     for(; it_card != card_vec.end(); ++it_card)
     {
         if(!tool_map::try_get_value(s_card_id, JSON_KEY_CALL_CARD_CARD_ID, (*it_card))
-                ||!tool_map::try_get_value(type, JSON_KEY_CALL_CARD_CARD_TYPE_ID, (*it_card)))
+            ||!tool_map::try_get_value(type, JSON_KEY_CALL_CARD_CARD_TYPE_ID, (*it_card))
+            ||!tool_other::is_person(type)
+            )
         {
             log_error("手工升井,web发来的数据 card_id 或 card_type格式不对");
             continue;
         }
-
-        uint32_t id = tool_other::id64_to_id(s_card_id);
-        auto card_ptr = card_list::instance()->get(tool_other::type_id_to_u64(type, id));
-        if(card_ptr && card_ptr->is_person())
+        log_info("handle_up_card:%s,接收到手动升井的请求",s_card_id.c_str());
+        auto card_ptr = card_list::instance()->get(tool_other::card_id_to_u64(s_card_id));
+        if(card_ptr && STATUS_LOST == card_ptr->m_biz_stat)
         {
-            std_debug("手工升井,处理,卡id=%d,卡type=%d", id, type);
-            log_info("手工升井,处理,卡id=%d,卡type=%d", id, type);
-
+            log_info("handle_up_card:%s 手工升井,处理",s_card_id.c_str());
             module_meta_date_changed::clear_card(card_ptr);
-            //            auto rea_tool = card_ptr->get_area_tool();
-            //            rea_tool->on_leave(card_ptr);
-            //card_ptr->clear();
-
-            //            auto mine_tool_ptr = card_ptr->get_mine_tool();
-            //            if(mine_tool_ptr->m_is_attendance)
-            //            {
-            //                //考勤结束
-            //                mine_tool_ptr->m_is_attendance=false;
-
-            //                //作为一条结束考勤记录保存到数据库
-            //                db_tool::save_attendance(card_ptr);
-            //            }
-
-            //检查井下是否超员--是否需要取消
-            //CMineCardManager::instance()->OnPersonUp(card_ptr);
-
-            //            auto rea_tool = card_ptr->get_area_tool();
-            //			rea_tool->on_leave(card_ptr);
-            //			card_ptr->clear();
         }
         else
-        {
-            log_error("手工升井,在全局列表中找不到卡,卡id=%d,卡type=%d", id, type);
-        }
+            log_warn("handle_up_card:%s,手动升井的卡找不到,或者该卡不在盲区",s_card_id.c_str());
     }
-
-//    //升井json发给web
-//    if(datas.Size() > 0)
-//    {
-//        doc.AddMember(JSON_ROOT_KEY_CMD,JSON_CMD_VALUE_UP_MINE, allocator);
-//        //doc.AddMember(JSON_ROOT_KEY_VERSION,INTERFACE_VERSION, allocator);
-//        doc.AddMember(JSON_ROOT_KEY_DATA, datas, allocator);
-
-//        swsClientMgr.send(JSON_CMD_VALUE_PUSH, tool_json::doc_to_json(doc));
-//    }
 }
 
 ///升井json

+ 2 - 29
module_service/module_meta_date_changed.cpp

@@ -111,36 +111,9 @@ void module_meta_date_changed::accept(sio::message::ptr const& data)
 
 ///3.清除卡相关信息,区域相关,分站相关,考勤相关,清除定时器,
 ///速度,状态 呼救 呼叫 告警相关。即保留基础信息,其他的重置。
-void module_meta_date_changed::clear_card(std::shared_ptr<card_location_base> card_ptr)
+void module_meta_date_changed::clear_card(const std::shared_ptr<card_location_base>& card_ptr)
 {
-    auto rea_tool = card_ptr->get_area_tool();
-    rea_tool->on_leave(card_ptr);
-    //card_ptr->clear();
-
-    //    //删除
-    //    //card_ptr->del_card_pos();
-    // 升井 删除所有报警信息
-    for(int i=0; i < CARD_EVENT_COUNT_MAX; i++ )
-    {
-        if (i == EVENT_TYPE::ET_CARD_LOW_POWER_SERIOUS)
-        {
-            continue;
-        }
-
-        uint64_t id = tool_other::type_id_to_u64(card_ptr->m_type, card_ptr->m_id);
-        event_tool::instance()->handle_event(OT_CARD, static_cast<EVENT_TYPE>(i), id, 0, 0, false);
-
-        //        auto ev_ptr = event_list::instance()->get_event_card(
-        //                card_ptr->m_id, card_ptr->m_type, static_cast<EVENT_TYPE>(i));
-        //        if(ev_ptr && !ev_ptr->is_end()) //
-        //        {
-        //            event_list::copy_event(card_ptr, ev_ptr);
-
-        //            ev_ptr->m_status = ES_END;
-
-        //            event_list::save_event(ev_ptr);
-        //        }
-    }
+    card_ptr->get_area_tool()->on_leave(card_ptr);
 }
 /*
  * 修改车及卡的数据

+ 1 - 1
module_service/module_meta_date_changed.h

@@ -40,7 +40,7 @@ public:
 
     ///3.清除卡相关信息,区域相关,分站相关,考勤相关,清除定时器,
     ///速度,状态 呼救 呼叫 告警相关。即保留基础信息,其他的重置。
-    static void clear_card(std::shared_ptr<card_location_base> card_ptr);
+    static void clear_card(const std::shared_ptr<card_location_base> &card_ptr);
 
 private:
     /*

+ 1 - 0
net-service.cpp

@@ -57,6 +57,7 @@ void net_service::on_message(std::shared_ptr<client> clt,const char*data,size_t
 		switch(cmd)
 		{
 			case CHAR_LOCATEDATA_TOF_EXTEND://tof-扩展
+            case CHAR_LOCATEDATASMALL_TOF_EXTEND:
 				{
 
 					uint32_t site_id;

+ 3 - 11
websocket/wsTimerThread.cpp

@@ -10,11 +10,6 @@ namespace YA
 	wsTimerThread::wsTimerThread()
 	{
 		__Reset();
-
-		__LastSendTime = { 0 };
-		__LastSendTime.tm_year = 1970 - 1900;
-		__LastSendTime.tm_mon  = 1;
-		__LastSendTime.tm_mday = 1;
 	}
 
 	wsTimerThread::~wsTimerThread()
@@ -82,16 +77,13 @@ namespace YA
 	{	
 		while ( pOwner->__Enable )
 		{
-			std::tm *Now;
-			std::time_t t;
-			t = time( 0 );
-			Now = localtime( &t );
-			int seconds = (int)std::difftime( mktime( Now ), mktime( &__LastSendTime ) );
+			std::time_t t = time( 0 );
+			int seconds = (int)std::difftime( t, __LastSendTime );
 
 			if ( seconds >= pOwner->__Config.SendInterval )
 			{
 				pOwner->__SendCardPos();
-				__LastSendTime = *Now;
+				__LastSendTime = t;
 			}
 
 			boost::this_thread::sleep( boost::posix_time::millisec( 1 ) );

+ 1 - 1
websocket/wsTimerThread.h

@@ -47,7 +47,7 @@ namespace YA
 		boost::mutex __ExitMutex;//锁(配合__ExitCond)
 		_THREAD_CONFIG_ __Config;//线程配置
 		thread_safe_map<uint64_t, _CARD_POS_> __CardPosList;//卡位置列表
-		std::tm __LastSendTime;//上一次发送的时间
+        std::time_t  __LastSendTime{0};//上一次发送的时间
 		jsonBuilder __jsBuilder;//json构造器类
 	private:
 		/**