Browse Source

status_lost 时间差值

lixioayao 6 years ago
parent
commit
8d4e0cc72a
3 changed files with 7 additions and 3 deletions
  1. 2 1
      card_base.cpp
  2. 4 1
      his_location.h
  3. 1 1
      mine_business.cpp

+ 2 - 1
card_base.cpp

@@ -178,7 +178,8 @@ int  card_location_base::get_stat()
 {
 	//盲区>呼救>呼叫>超时>超速>正常
     uint64_t now = time(0)*1000;
-    if(now-m_time>CARD_LOST_TIME_OUT)
+    uint64_t tlost=now>m_time?now-m_time:m_time-now;
+    if(tlost>CARD_LOST_TIME_OUT)
     {
         return STATUS_LOST;
     }

+ 4 - 1
his_location.h

@@ -77,10 +77,13 @@ struct location_card
 		point p=m_d.back().p;
 
 		//if(point::eq(p.x,pt.x,0.2) && point::eq(p.y,pt.y,0.2)) return false;
+        double dis1=m_p.dist(pt);
+        if(dis1<1.5)
+            return false;
         double dis = p.dist(pt);
 		double arg = make_arg(pt,p);
 		log_info("his_location:line_changed:%d,%f,m_arg:%f,%s,%f,%f",m_cardid,arg,m_arg, (arg-m_arg > -1e-10 && arg-m_arg<1e-10)?"same":"not same",m_arg-arg,dis);
-        if(dis<1.5 && fabs(fabs(arg)+fabs(m_arg)-3.141593)< 0.000005)
+        if(dis<0.5 && fabs(fabs(arg)+fabs(m_arg)-3.141593)< 0.000005)
           return false;
 		return !point::eq(arg,m_arg,1e-10);
 	}

+ 1 - 1
mine_business.cpp

@@ -400,7 +400,7 @@ void card_sensor_mgr::for_each()
         if(cs->sensorId_list.empty())
           continue;
         char strsql[512]={0};
-        snprintf(strsql,512, "SELECT data_value FROM his_sensor_data WHERE sensor_id = %d ORDER BY write_time DESC LIMIT 3;",cs->sensorId_list[0]);
+        snprintf(strsql,512, "SELECT data_value FROM his_sensor_data WHERE WHERE write_time > DATE_SUB(NOW(),INTERVAL 10 MINUTE) and sensor_id = %d ORDER BY write_time DESC LIMIT 3;",cs->sensorId_list[0]);
         std::string Error;
         YADB::CDBResultSet DBRes;
         sDBConnPool.Query(strsql,DBRes,Error);