Browse Source

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

researchman 5 years ago
parent
commit
3576a8a1b8
4 changed files with 13 additions and 7 deletions
  1. 3 1
      card_base.cpp
  2. 1 1
      card_base.h
  3. 2 2
      card_person.cpp
  4. 7 3
      message.cpp

+ 3 - 1
card_base.cpp

@@ -127,7 +127,7 @@ void card_location_base::on_location(const std::vector<point>&vp,const std::vect
 	}
 }
 
-void card_location_base::on_message(zloop<task*> * loop,const message_locinfo&loc,bool is_history)
+void card_location_base::on_message(zloop<task*> * loop,message_locinfo&loc,bool is_history)
 {
 	m_ct = loc.m_card_ct;
 	m_time = loc.m_time_stamp;
@@ -142,6 +142,8 @@ void card_location_base::on_message(zloop<task*> * loop,const message_locinfo&lo
 	auto area_tool=get_area_tool();
 	area_tool->set_site(site_ptr);
 
+	handle_message(loc.m_card_ct,loc.m_batty_status);
+
 	if(site_ptr->is_up_site())
 	{
         log_info("card=%d被井上分站[site=%d]收到",m_id,site_ptr->id());

+ 1 - 1
card_base.h

@@ -104,7 +104,7 @@ struct card_location_base:card,std::enable_shared_from_this<card_location_base>
     virtual void handle_message(uint16_t ct,uint8_t& value){}
 
     void make_his_location(uint64_t t,const point & pt,bool bclose = false);
-    void on_message(zloop<task*> * loop,const message_locinfo&loc,bool is_history);
+    void on_message(zloop<task*> * loop,message_locinfo&loc,bool is_history);
     void on_location(const std::vector<point>&vp,const std::vector<loc_message> &lm );
     void do_status(int st);
 	void upt_card_pos(YA::_CARD_POS_&cp, point &pt);

+ 2 - 2
card_person.cpp

@@ -293,13 +293,13 @@ void person::handle_message(uint16_t ct,uint8_t &value)
             sDBConnPool.PushAsync(nsql);
             logn_info(2,"%s",nsql);
         }
-        logn_info(3,"card_id:%d,充电时间:%u,放电时间:%u,电量%d%",m_id,m_charge_value,m_discharge_value,m_power*10);
+        log_info("card_id:%d,充电时间:%u,放电时间:%u,电量%d%",m_id,m_charge_value,m_discharge_value,m_power*10);
         m_index=0;m_ctflag=cttmp;memset(&m_value,0,sizeof(m_value));
     }
     uint8_t remainder=ct%5;
     m_value[remainder]=value;
     m_index|=(1<<remainder);
-    logn_info(3,"card_id:%d,ctflag:%u,index:%d,value:%d,,,,%d",m_id,m_ctflag,remainder,value,m_index);
+    log_info("card_id:%d,ctflag:%u,index:%#X,value:%#X,bitmask:%#X",m_id,m_ctflag,remainder,value,m_index);
     if(remainder==4){
         value>>=4;
         if(value>=5)value=0;

+ 7 - 3
message.cpp

@@ -54,6 +54,10 @@ void message_locinfo::load(zistream&is,bool tdoa)
 	is>>b>>m_card_id>>m_card_ct>>m_batty_status;
 
 
+
+	if(m_card_id & 0xFFFF0000) 
+		log_warn("card_id=%#X,CT=%d,大于0xFFFF.",m_card_id,m_card_ct);
+
 	m_card_id &= 0xFFFF; //卡号不会大于65535,分站上传数据的bug
 
 	m_card_type=b;
@@ -72,8 +76,7 @@ void message_locinfo::load(zistream&is,bool tdoa)
 	//加速度
 	is>>b;
     const auto &c=card_list::instance()->get(tool_other::type_id_to_u64(m_card_type,m_card_id));
-    if(m_card_type==1 && c)
-        c->handle_message(m_card_ct,m_batty_status);
+
 	if(m_card_type == 1 ||(c && tool_other::is_coal_or_driving(m_card_type,c->get_vehicle_type_id())))
 		m_acc=b;
 	else
@@ -98,8 +101,9 @@ void message_locinfo::load(zistream&is,bool tdoa)
 	uint16_t sp1=0,sp2=0;
 	is>>sp1>>sp2;
 	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,status=%d,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);
+
 }
 
 //优化协议数据解析