Browse Source

change temporary parking logic

chenxiaowei 3 years ago
parent
commit
47343cedfc

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

@@ -225,7 +225,8 @@ namespace iv {
         double mfParkLng4;
         int mnparknum=0;  //停车点个数
         bool mbparkEN =false; //停车功能是否打开
-        int mnparktime = 0;  //停车时间,单位分
+        int mnparktime = 0;  //停车时间,单位改成秒
+        double distoParkPoint=200;
         std::vector<iv::GPS_INS> xlcParkPoint;//存放停车点经纬的vetor
          //巡逻车增加停车点位.end
     };

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

@@ -523,6 +523,8 @@ void iv::decition::BrainDecition::run() {
 
         std::string parktime = xp.GetParam("parktime","0");
         ServiceCarStatus.mnparktime =atoi(parktime.data());
+        std::string parkdis= xp.GetParam("parkdistance","0");
+        ServiceCarStatus.distoParkPoint = atof(parkdis.data());
     }
 
 //    //巡逻车临时停车点,end,20211203,cxw

+ 6 - 5
src/decition/decition_brain_sf_midcar_xunluoche/decition/decide_gps_00.cpp

@@ -2296,12 +2296,13 @@ iv::decition::Decition iv::decition::DecideGps00::getDecideFromGPS(GPS_INS now_g
     //巡逻车临时停车逻辑,begin,20211203,cxw
     int parkpointnum=-1;
     double min_distoparkpoint =8;
-    bool parktimeEN = false;
-    QTime parktimer;
-     static bool timer_en=true;
+    static bool parktimeEN = false;
+    static QTime parktimer;
+    static bool timer_en=true;
     if((ServiceCarStatus.mbparkEN==true)&&(ServiceCarStatus.mnparknum!=0))
     {
-        int timecnt =ServiceCarStatus.mnparktime*60*1000;
+//        int timecnt =ServiceCarStatus.mnparktime*60*1000;
+        int timecnt =ServiceCarStatus.mnparktime*1000;
         for(unsigned int i=0;i<ServiceCarStatus.xlcParkPoint.size();i++)
         {
            double dis= GetDistance(ServiceCarStatus.xlcParkPoint[i],now_gps_ins);
@@ -2315,7 +2316,7 @@ iv::decition::Decition iv::decition::DecideGps00::getDecideFromGPS(GPS_INS now_g
         givlog->debug("brain_decition","xlcparkpoingnum %d","min_distoparknum %f",
                       parkpointnum,min_distoparkpoint);
 
-        if((parkpointnum!=-1)&&(min_distoparkpoint<5) && (parktimeEN ==false))
+        if((parkpointnum!=-1)&&(min_distoparkpoint<ServiceCarStatus.distoParkPoint) && (parktimeEN ==false))
         {
            minDecelerate=-5;
            if(timer_en==true)