From abb9aa03e711ad1cb7bd029f5a0cc9fc01d5a699 Mon Sep 17 00:00:00 2001 From: xinfengkun Date: Thu, 14 Sep 2023 19:34:09 +0800 Subject: [PATCH] =?UTF-8?q?[610][adas]=E8=83=BD=E5=90=A6=E5=90=AF=E5=8A=A8?= =?UTF-8?q?=E8=87=AA=E9=A9=BE=E6=9D=A1=E4=BB=B6=E4=BF=AE=E6=94=B9=EF=BC=8C?= =?UTF-8?q?Taxi=E6=97=A0=E4=BA=BA=E5=8C=96=E6=93=8D=E4=BD=9C=EF=BC=88DF?= =?UTF-8?q?=E5=92=8CHQ=EF=BC=89MAP>=3D360=E5=BC=80=E5=A7=8B=E7=A7=BB?= =?UTF-8?q?=E9=99=A4P=E6=A1=A3=E5=92=8C=E6=89=8B=E5=88=B9=E9=99=90?= =?UTF-8?q?=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ability/AutopilotAbility250.java | 25 ++++++++++------- .../ability/AutopilotAbility350And360.java | 27 ++++++++++++------- .../ability/AutopilotAbilityManager.java | 19 +++++++++++-- 3 files changed, 49 insertions(+), 22 deletions(-) diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbility250.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbility250.java index 74a9312eae..38a391d2f4 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbility250.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbility250.java @@ -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); } diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbility350And360.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbility350And360.java index 9ea99c68d6..582f69af80 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbility350And360.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbility350And360.java @@ -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); } diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbilityManager.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbilityManager.java index 256e526868..7456ff819c 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbilityManager.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbilityManager.java @@ -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 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 {