[610][adas]能否启动自驾条件修改,Taxi无人化操作(DF和HQ)MAP>=360开始移除P档和手刹限制

This commit is contained in:
xinfengkun
2023-09-14 19:34:09 +08:00
parent 6116bf4303
commit abb9aa03e7
3 changed files with 49 additions and 22 deletions

View File

@@ -30,6 +30,8 @@ public class AutopilotAbility250 {
private VehicleStateOuterClass.VehicleState vehicleState;
private int mapVersion = -1;//MAP版本
private int masterVersion = -1;//Master版本
private boolean isHQ = false;//是否是HQ
private boolean isDF = false;//是否是DF
private OnAutopilotAbilityListener listener;
protected interface OnAutopilotAbilityListener {
@@ -42,8 +44,10 @@ public class AutopilotAbility250 {
void onRemoveTimeoutMessages();
}
protected AutopilotAbility250(int mapVersion) {
protected AutopilotAbility250(int mapVersion, boolean isHQ, boolean isDF) {
this.mapVersion = mapVersion;
this.isHQ = isHQ;
this.isDF = isDF;
this.masterVersion = -1;
}
@@ -151,18 +155,19 @@ public class AutopilotAbility250 {
}
}
}
if (vehicleState != null) {
//TODO 关于手刹目前只有老底盘中存在这个字段df360开始其他车型未知
//电子驻车制动系统
if (vehicleState.hasParkingBrake()) {
boolean isBrake = vehicleState.getParkingBrake();
if (isBrake) {
isAutopilotAbility = false;
unableAutopilotReasons = AutopilotAbilityManager.getInstance().addUnableAutopilotReason(unableAutopilotReasons, UnableAutopilotReason.SourceType.CHASSIS, "施加驻车");
if ((!isHQ && !isDF) || mapVersion < 30600) {
if (vehicleState != null) {
//TODO 关于手刹目前只有老底盘中存在这个字段df360开始其他车型未知
//电子驻车制动系统
if (vehicleState.hasParkingBrake()) {
boolean isBrake = vehicleState.getParkingBrake();
if (isBrake) {
isAutopilotAbility = false;
unableAutopilotReasons = AutopilotAbilityManager.getInstance().addUnableAutopilotReason(unableAutopilotReasons, UnableAutopilotReason.SourceType.CHASSIS, "施加驻车");
}
}
}
}
if (listener != null) {
listener.onAutopilotAbility(isAutopilotAbility, unableAutopilotReasons);
}

View File

@@ -23,7 +23,10 @@ public class AutopilotAbility350And360 {
private static final String TAG = AutopilotAbility250.class.getSimpleName();
private ChassisStatesOuterClass.ChassisStates chassisStates;
private VehicleStateOuterClass.VehicleState vehicleState;
private int mapVersion = -1;//MAP版本
private int masterVersion = -1;//Master版本
private boolean isHQ = false;//是否是HQ
private boolean isDF = false;//是否是DF
private OnAutopilotAbilityListener listener;
protected interface OnAutopilotAbilityListener {
@@ -31,7 +34,10 @@ public class AutopilotAbility350And360 {
}
protected AutopilotAbility350And360() {
protected AutopilotAbility350And360(int mapVersion, boolean isHQ, boolean isDF) {
this.mapVersion = mapVersion;
this.isHQ = isHQ;
this.isDF = isDF;
this.masterVersion = -1;
}
@@ -124,18 +130,19 @@ public class AutopilotAbility350And360 {
}
}
}
if (vehicleState != null) {
//TODO 关于手刹目前只有老底盘中存在这个字段df360开始其他车型未知
//电子驻车制动系统
if (vehicleState.hasParkingBrake()) {
boolean isBrake = vehicleState.getParkingBrake();
if (isBrake) {
isAutopilotAbility = false;
unableAutopilotReasons = AutopilotAbilityManager.getInstance().addUnableAutopilotReason(unableAutopilotReasons, UnableAutopilotReason.SourceType.CHASSIS, "施加驻车");
if ((!isHQ && !isDF) || mapVersion < 30600) {
if (vehicleState != null) {
//TODO 关于手刹目前只有老底盘中存在这个字段df360开始其他车型未知
//电子驻车制动系统
if (vehicleState.hasParkingBrake()) {
boolean isBrake = vehicleState.getParkingBrake();
if (isBrake) {
isAutopilotAbility = false;
unableAutopilotReasons = AutopilotAbilityManager.getInstance().addUnableAutopilotReason(unableAutopilotReasons, UnableAutopilotReason.SourceType.CHASSIS, "施加驻车");
}
}
}
}
if (listener != null) {
listener.onAutopilotAbility(isAutopilotAbility, unableAutopilotReasons);
}

View File

@@ -47,6 +47,7 @@ public class AutopilotAbilityManager implements AutopilotAbility230.OnAutopilotA
private boolean isFutianSweeper = false;//是否是福田清扫车
private boolean isJinlvM1 = false;//是否是M1
private boolean isHQ = false;//是否是HQ
private boolean isDF = false;//是否是DF
private AutopilotAbility230 autopilotAbility230;
private AutopilotAbility250 autopilotAbility250;
private AutopilotAbility330 autopilotAbility330;
@@ -79,6 +80,7 @@ public class AutopilotAbilityManager implements AutopilotAbility230.OnAutopilotA
public void setUnableLaunchAutopilotGear(Set<Chassis.GearPosition> unableLaunchAutopilotGear) {
this.unableLaunchAutopilotGear = unableLaunchAutopilotGear;
taxiUnmanned();
}
/**
@@ -111,11 +113,24 @@ public class AutopilotAbilityManager implements AutopilotAbility230.OnAutopilotA
return unableAutopilotReasons;
}
/**
* Taxi无人化相关从MAP360开始去掉P档限制和手刹限制
*/
private void taxiUnmanned() {
if ((isHQ || isDF) && mapVersion >= 30600) {
if (unableLaunchAutopilotGear != null) {
unableLaunchAutopilotGear.remove(Chassis.GearPosition.GEAR_P);
}
}
}
public void setCarConfig(MessagePad.CarConfigResp carConfig) {
mapVersion = carConfig.getMapVersion();
isFutianSweeper = carConfig.getIsFutianSweeper();
isJinlvM1 = carConfig.getIsJinlvM1();
isHQ = carConfig.getIsHQ();
isDF = carConfig.getIsDF();
taxiUnmanned();
if (mapVersion != -1) {
stopTimer();
CupidLogUtils.i(TAG, "工控机版本=" + mapVersion);
@@ -265,7 +280,7 @@ public class AutopilotAbilityManager implements AutopilotAbility230.OnAutopilotA
stop330();
stop360();
if (autopilotAbility350And360 == null) {
autopilotAbility350And360 = new AutopilotAbility350And360();
autopilotAbility350And360 = new AutopilotAbility350And360(mapVersion, isHQ, isDF);
autopilotAbility350And360.start(this);
}
@@ -286,7 +301,7 @@ public class AutopilotAbilityManager implements AutopilotAbility230.OnAutopilotA
stop350And360();
stop360();
if (autopilotAbility250 == null) {
autopilotAbility250 = new AutopilotAbility250(mapVersion);
autopilotAbility250 = new AutopilotAbility250(mapVersion, isHQ, isDF);
autopilotAbility250.start(this);
}
} else {