|
@@ -3706,6 +3706,7 @@ float iv::decition::DecideGps00::computeTrafficSpeedLimt(float trafficDis){
|
|
|
void iv::decition::DecideGps00::transferGpsMode2( const std::vector<GPSData> gpsMapLine){
|
|
|
static int obstacle_disable=0;
|
|
|
static int speed_slowdown_flag=0;
|
|
|
+ static bool lock_flag=false;
|
|
|
|
|
|
if( gpsMapLine[PathPoint]->mode2==3000){
|
|
|
if(obsDistance>7){ //7 zj-5
|
|
@@ -3728,6 +3729,7 @@ void iv::decition::DecideGps00::transferGpsMode2( const std::vector<GPSData> gps
|
|
|
ServiceCarStatus.msysparam.vehWidth=5.6;
|
|
|
}else if(gpsMapLine[PathPoint]->mode2==5000){
|
|
|
speed_slowdown_flag=1;
|
|
|
+ lock_flag=false;
|
|
|
}else if(gpsMapLine[PathPoint]->mode2==5001){
|
|
|
speed_slowdown_flag=0;
|
|
|
}
|
|
@@ -3735,12 +3737,15 @@ void iv::decition::DecideGps00::transferGpsMode2( const std::vector<GPSData> gps
|
|
|
if(obstacle_disable==1){
|
|
|
obsDistance=200;
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
if(speed_slowdown_flag==1)
|
|
|
{
|
|
|
- if(realspeed>ServiceCarStatus.mroadmode_vel.mfmode18){
|
|
|
+ if((realspeed>ServiceCarStatus.mroadmode_vel.mfmode18)&&(lock_flag==false)){
|
|
|
minDecelerate=-0.5;
|
|
|
}else{
|
|
|
dSpeed=min(dSpeed,ServiceCarStatus.mroadmode_vel.mfmode18);
|
|
|
+ lock_flag=true;
|
|
|
}
|
|
|
}
|
|
|
}
|