瀏覽代碼

add v2r send update timer to optimize the RSU logic

HAPO-9# 3 年之前
父節點
當前提交
7c0fbf1f36

+ 1 - 0
src/decition/common/common/car_status.h

@@ -233,6 +233,7 @@ namespace iv {
         double iTrafficeLightLat = 0;
         double iTrafficeLightLon = 0;
         QTime milightCheckTimer;
+        QTime mRSUupdateTimer;
     };
     typedef boost::serialization::singleton<iv::CarStatus> CarStatusSingleton;//非线程安全,注意多线程加锁,单例模式
 }

+ 2 - 0
src/decition/decition_brain_sf_1x/decition/brain.cpp

@@ -1665,6 +1665,8 @@ void iv::decition::BrainDecition::UpdateV2r(const char *pdata, const int ndatasi
         std::cout<<"ListenV2Rmessage Parse fail."<<std::endl;
         return;
     }
+    ServiceCarStatus.mRSUupdateTimer.start();
+
     if(group_message.has_radiobroadcastgpslat())
     {
         ServiceCarStatus.rsu_gps_lat = group_message.radiobroadcastgpslat();

+ 9 - 0
src/decition/decition_brain_sf_1x/decition/decide_gps_00.cpp

@@ -2022,6 +2022,14 @@ iv::decition::Decition iv::decition::DecideGps00::getDecideFromGPS(GPS_INS now_g
 
 
     //-----------------------------------------1+X采集车车路协同,add---------------------------------------------
+    if(ServiceCarStatus.mRSUupdateTimer.elapsed()>5*1000)
+    {
+       ServiceCarStatus.rsu_traffic_type=200;//lvdeng
+       ServiceCarStatus.rsu_warning_type=200;
+//       ServiceCarStatus.rsu_gps_lat = 0.0;  //路况信息或预警信息有效的时候才会使用到这写变量,所以这些变量的信息可不清除
+//       ServiceCarStatus.rsu_gps_lng = 0.0;
+//       ServiceCarStatus.rsu_trafficelimit_spd=200;
+    }
     int traffic_type=ServiceCarStatus.rsu_traffic_type;//路况信息
     int warning_type=ServiceCarStatus.rsu_warning_type;//预警信息,RSU获得
     double distance_to_center=0;
@@ -2094,6 +2102,7 @@ if((traffic_type==0x01)||(traffic_type==0x02)||(traffic_type==0x03)||(traffic_ty
     else if(warning_type==0x02)
     {
         dSpeed=0.0;
+        minDecelerate=-2.0;
          ServiceCarStatus.vehicle_state_1x = 2;
          ServiceCarStatus.target_spd_1x = 0;
     }