|
@@ -196,6 +196,7 @@ bool qiedianCount = false;
|
|
|
|
|
|
static int obstacle_avoid_flag=0;
|
|
static int obstacle_avoid_flag=0;
|
|
static int front_car_id=-1;
|
|
static int front_car_id=-1;
|
|
|
|
+static int front_car_vector_id=-1;
|
|
|
|
|
|
//日常展示
|
|
//日常展示
|
|
|
|
|
|
@@ -227,6 +228,7 @@ iv::decition::Decition iv::decition::DecideGps00::getDecideFromGPS(GPS_INS now_g
|
|
for(int i=0;i<xgroupgrpcinfo.mvehinfo_size();i++){
|
|
for(int i=0;i<xgroupgrpcinfo.mvehinfo_size();i++){
|
|
if((xgroupgrpcinfo.mutable_mvehinfo(i)->intragroupid()+1)==ServiceCarStatus.curID){
|
|
if((xgroupgrpcinfo.mutable_mvehinfo(i)->intragroupid()+1)==ServiceCarStatus.curID){
|
|
front_car_id=xgroupgrpcinfo.mutable_mvehinfo(i)->intragroupid();
|
|
front_car_id=xgroupgrpcinfo.mutable_mvehinfo(i)->intragroupid();
|
|
|
|
+ front_car_vector_id=i;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}else{
|
|
}else{
|
|
@@ -234,24 +236,24 @@ iv::decition::Decition iv::decition::DecideGps00::getDecideFromGPS(GPS_INS now_g
|
|
}
|
|
}
|
|
|
|
|
|
if(front_car_id>0){
|
|
if(front_car_id>0){
|
|
- if(xgroupgrpcinfo.mutable_mvehinfo(front_car_id)->has_mgpsimu()){
|
|
|
|
- front_car.front_car_ins.gps_lat=xgroupgrpcinfo.mutable_mvehinfo(front_car_id)->mgpsimu().lat();
|
|
|
|
- front_car.front_car_ins.gps_lng=xgroupgrpcinfo.mutable_mvehinfo(front_car_id)->mgpsimu().lon();
|
|
|
|
- front_car.front_car_ins.ins_heading_angle=xgroupgrpcinfo.mutable_mvehinfo(front_car_id)->mgpsimu().heading();
|
|
|
|
|
|
+ if(xgroupgrpcinfo.mutable_mvehinfo(front_car_vector_id)->has_mgpsimu()){
|
|
|
|
+ front_car.front_car_ins.gps_lat=xgroupgrpcinfo.mutable_mvehinfo(front_car_vector_id)->mgpsimu().lat();
|
|
|
|
+ front_car.front_car_ins.gps_lng=xgroupgrpcinfo.mutable_mvehinfo(front_car_vector_id)->mgpsimu().lon();
|
|
|
|
+ front_car.front_car_ins.ins_heading_angle=xgroupgrpcinfo.mutable_mvehinfo(front_car_vector_id)->mgpsimu().heading();
|
|
GaussProjCal(front_car.front_car_ins.gps_lng,front_car.front_car_ins.gps_lat, &front_car.front_car_ins.gps_x, &front_car.front_car_ins.gps_y);
|
|
GaussProjCal(front_car.front_car_ins.gps_lng,front_car.front_car_ins.gps_lat, &front_car.front_car_ins.gps_x, &front_car.front_car_ins.gps_y);
|
|
front_car.front_car_dis=GetDistance(now_gps_ins,front_car.front_car_ins);
|
|
front_car.front_car_dis=GetDistance(now_gps_ins,front_car.front_car_ins);
|
|
}else{
|
|
}else{
|
|
front_car.front_car_dis=500;
|
|
front_car.front_car_dis=500;
|
|
}
|
|
}
|
|
- if(xgroupgrpcinfo.mutable_mvehinfo(front_car_id)->has_mcarstate()){
|
|
|
|
- front_car.vehState=xgroupgrpcinfo.mutable_mvehinfo(front_car_id)->mcarstate().mstate();
|
|
|
|
- int avoidX_record=xgroupgrpcinfo.mutable_mvehinfo(front_car_id)->mcarstate().mavoidx();
|
|
|
|
|
|
+ if(xgroupgrpcinfo.mutable_mvehinfo(front_car_vector_id)->has_mcarstate()){
|
|
|
|
+ front_car.vehState=xgroupgrpcinfo.mutable_mvehinfo(front_car_vector_id)->mcarstate().mstate();
|
|
|
|
+ int avoidX_record=xgroupgrpcinfo.mutable_mvehinfo(front_car_vector_id)->mcarstate().mavoidx();
|
|
if(front_car.vehState!=0&&avoidX_record!=0)
|
|
if(front_car.vehState!=0&&avoidX_record!=0)
|
|
front_car.avoidX=avoidX_record;
|
|
front_car.avoidX=avoidX_record;
|
|
else
|
|
else
|
|
front_car.avoidX=0;
|
|
front_car.avoidX=0;
|
|
- front_car.obs_distance=xgroupgrpcinfo.mutable_mvehinfo(front_car_id)->mcarstate().mobsdistance();
|
|
|
|
- front_car.obs_speed=xgroupgrpcinfo.mutable_mvehinfo(front_car_id)->mcarstate().mobsspeed();
|
|
|
|
|
|
+ front_car.obs_distance=xgroupgrpcinfo.mutable_mvehinfo(front_car_vector_id)->mcarstate().mobsdistance();
|
|
|
|
+ front_car.obs_speed=xgroupgrpcinfo.mutable_mvehinfo(front_car_vector_id)->mcarstate().mobsspeed();
|
|
}
|
|
}
|
|
givlog->debug("decition_brain","front_car_id: %d,FrontState: %d,FrontAvoidX: %d,FrontDis: %f,FrontObs: %f",
|
|
givlog->debug("decition_brain","front_car_id: %d,FrontState: %d,FrontAvoidX: %d,FrontDis: %f,FrontObs: %f",
|
|
front_car_id,front_car.vehState,front_car.avoidX,front_car.front_car_dis,front_car.obs_distance);
|
|
front_car_id,front_car.vehState,front_car.avoidX,front_car.front_car_dis,front_car.obs_distance);
|