From bf5a654a42bfd14dff970ec37855c7e345debb27 Mon Sep 17 00:00:00 2001 From: xinfengkun Date: Wed, 7 Aug 2024 15:35:48 +0800 Subject: [PATCH] =?UTF-8?q?[660][adas]=20=E5=BD=93=E9=B9=B0=E7=9C=BC?= =?UTF-8?q?=E4=B8=8D=E4=BC=A0=E9=80=92=E5=8F=AF=E5=90=AF=E5=8A=A8=E8=87=AA?= =?UTF-8?q?=E9=A9=BE=E6=A1=A3=E4=BD=8D=E6=97=B6=EF=BC=8C=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E8=B0=83=E7=94=A8=E9=BB=98=E8=AE=A4=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- libraries/mogo-adas/build.gradle | 17 +++++++ .../zhidao/support/adas/high/AdasChannel.java | 11 ----- .../zhidao/support/adas/high/AdasManager.java | 1 - .../support/adas/high/IAdasNetCommApi.java | 7 --- .../ability/AutopilotAbility350And360.java | 4 +- .../ability/AutopilotAbilityManager.java | 44 +++++++++++++++---- 6 files changed, 54 insertions(+), 30 deletions(-) diff --git a/libraries/mogo-adas/build.gradle b/libraries/mogo-adas/build.gradle index 52e20e4a23..c17874a6ad 100644 --- a/libraries/mogo-adas/build.gradle +++ b/libraries/mogo-adas/build.gradle @@ -32,6 +32,23 @@ android { } } + buildTypes.each { + //东风 T1 + it.buildConfigField 'java.util.Set', 'LAUNCH_AUTOPILOT_GEAR_DF', 'new java.util.HashSet(){{add(chassis.Chassis.GearPosition.GEAR_D);add(chassis.Chassis.GearPosition.GEAR_N);add(chassis.Chassis.GearPosition.GEAR_P);}}' + //红旗 T2 + it.buildConfigField 'java.util.Set', 'LAUNCH_AUTOPILOT_GEAR_HQ', 'new java.util.HashSet(){{add(chassis.Chassis.GearPosition.GEAR_D);add(chassis.Chassis.GearPosition.GEAR_N);add(chassis.Chassis.GearPosition.GEAR_P);}}' + //金旅小巴 B1 + it.buildConfigField 'java.util.Set', 'LAUNCH_AUTOPILOT_GEAR_BUS', 'new java.util.HashSet(){{add(chassis.Chassis.GearPosition.GEAR_D);}}' + //金旅M1 M1 + it.buildConfigField 'java.util.Set', 'LAUNCH_AUTOPILOT_GEAR_M1', 'new java.util.HashSet(){{add(chassis.Chassis.GearPosition.GEAR_D);}}' + //金旅M2 B2 + it.buildConfigField 'java.util.Set', 'LAUNCH_AUTOPILOT_GEAR_M2', 'new java.util.HashSet(){{add(chassis.Chassis.GearPosition.GEAR_D);}}' + //福田清扫车 C1 + it.buildConfigField 'java.util.Set', 'LAUNCH_AUTOPILOT_GEAR_SWEEPER', 'null' + //开沃 + it.buildConfigField 'java.util.Set', 'LAUNCH_AUTOPILOT_GEAR_KAIWO', 'null' + } + sourceSets { main { jniLibs.srcDirs = ['libs'] diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasChannel.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasChannel.java index 81fd08cf90..453817e594 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasChannel.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasChannel.java @@ -208,7 +208,6 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec this.adasOptions = options; } ReceiveTimeoutManager.getInstance().setEnable(adasOptions.isEnableTimeoutDetection(), getIpcConnectionStatus()); - setLaunchAutopilotGear(adasOptions.getLaunchAutopilotGear()); } /** @@ -1125,16 +1124,6 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec adasOptionsBuild(adasOptionsToBuilder().setAutoConnect(enable)); } - /** - * 设置可以启动自动驾驶的档位 - * - * @param launchAutopilotGear 能起自驾档位 null表示所有档位都可启动 - */ - @Override - public void setLaunchAutopilotGear(@Nullable Set launchAutopilotGear) { - AutopilotAbilityManager.getInstance().setLaunchAutopilotGear(launchAutopilotGear); - } - /** * 自动驾驶设备基础信息应答 * diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasManager.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasManager.java index a65b345c6f..a8210cd5c8 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasManager.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasManager.java @@ -1801,7 +1801,6 @@ public class AdasManager implements IAdasNetCommApi { * * @param launchAutopilotGear 能起自驾档位 null表示所有档位都可启动 */ - @Override public void setLaunchAutopilotGear(@Nullable Set launchAutopilotGear) { AutopilotAbilityManager.getInstance().setLaunchAutopilotGear(launchAutopilotGear); } diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/IAdasNetCommApi.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/IAdasNetCommApi.java index 4efee2505d..426b3c4a06 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/IAdasNetCommApi.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/IAdasNetCommApi.java @@ -145,13 +145,6 @@ public interface IAdasNetCommApi { */ void setAutoConnect(boolean enable); - /** - * 设置可以启动自动驾驶的档位 - * - * @param launchAutopilotGear 能起自驾档位 null表示所有档位都可启动 - */ - void setLaunchAutopilotGear(@Nullable Set launchAutopilotGear); - /** * 自动驾驶设备基础信息应答 * 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 7affb778ba..69f25f1732 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 @@ -1,7 +1,5 @@ package com.zhidao.support.adas.high.common.autopilot.ability; -import android.util.Log; - import androidx.annotation.NonNull; import com.zhidao.support.adas.high.AdasManager; @@ -288,7 +286,7 @@ public class AutopilotAbility350And360 { //// } //// } // } - Log.i(TAG, "方向盘是否在转动=" + isTurning.get()); +// Log.i(TAG, "方向盘是否在转动=" + isTurning.get()); if (isTurning.get()) { unableAutopilotReasons = manager.addUnableAutopilotReason(unableAutopilotReasons, UnableLaunchReason.SourceType.CHASSIS, UnableLaunchReason.UnableType.CHASSIS_STEERING, REASON_CHASSIS_STEERING); } 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 8cf5651d40..09b5a83ce1 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 @@ -1,9 +1,12 @@ package com.zhidao.support.adas.high.common.autopilot.ability; + import androidx.annotation.NonNull; import androidx.annotation.Nullable; import com.zhidao.support.adas.high.AdasManager; +import com.zhidao.support.adas.high.AdasOptions; +import com.zhidao.support.adas.high.BuildConfig; import com.zhidao.support.adas.high.OnAdasListener; import com.zhidao.support.adas.high.common.CupidLogUtils; import com.zhjt.mogo.adas.data.AdasConstants; @@ -46,6 +49,8 @@ public class AutopilotAbilityManager implements OnAutopilotAbilityListener { private boolean isJinlvM1 = false;//是否是M1 private boolean isJinlvM2 = false;//是否是M2 private boolean isHQ = false;//是否是HQ + private boolean isDF = false;//是否是DF + private boolean isKaiwo = false;//是否是开沃 private AutopilotAbility230 autopilotAbility230; private AutopilotAbility250 autopilotAbility250; private AutopilotAbility330 autopilotAbility330; @@ -60,10 +65,6 @@ public class AutopilotAbilityManager implements OnAutopilotAbilityListener { private final AtomicBoolean isOldSsmTimeout = new AtomicBoolean(false);//SSM是否超时 老状态 private final AtomicBoolean isOldFsmTimeout = new AtomicBoolean(false);//FSM是否超时 老状态 private final AtomicBoolean isInitCarConfig = new AtomicBoolean(false);//车辆信息是否初始化 - /** - * 能启动自动驾驶的档位 - */ - private Set launchAutopilotGear; private boolean isSupportFSM2024 = false; private AutopilotAbilityManager() { @@ -81,7 +82,6 @@ public class AutopilotAbilityManager implements OnAutopilotAbilityListener { } public void setLaunchAutopilotGear(Set launchAutopilotGear) { - this.launchAutopilotGear = launchAutopilotGear; if (autopilotAbility230 != null) { autopilotAbility230.setLaunchAutopilotGear(launchAutopilotGear); } else if (autopilotAbility250 != null) { @@ -119,16 +119,15 @@ public class AutopilotAbilityManager implements OnAutopilotAbilityListener { isJinlvM1 = carConfig.getIsJinlvM1(); isJinlvM2 = carConfig.getIsJinlvM2(); isHQ = carConfig.getIsHQ(); + isDF = carConfig.getIsDF(); + isKaiwo = carConfig.getIsKaiwo(); initAutopilotAbility(); if (autopilotAbility230 != null) { autopilotAbility230.setCarConfig(carConfig); - autopilotAbility230.setLaunchAutopilotGear(launchAutopilotGear); } else if (autopilotAbility250 != null) { autopilotAbility250.setCarConfig(carConfig); - autopilotAbility250.setLaunchAutopilotGear(launchAutopilotGear); } else if (autopilotAbility350And360 != null) { autopilotAbility350And360.setCarConfig(carConfig); - autopilotAbility350And360.setLaunchAutopilotGear(launchAutopilotGear); } } } @@ -256,6 +255,33 @@ public class AutopilotAbilityManager implements OnAutopilotAbilityListener { if (autopilotAbility230 == null) { startTimeoutTimer();//MAP230及以下没有SSM和FSM所以不需要超时 } + Set launchAutopilotGear = getGearPositions(); + setLaunchAutopilotGear(launchAutopilotGear); + } + + private @Nullable Set getGearPositions() { + AdasOptions options = AdasManager.getInstance().getAdasOptions(); + Set launchAutopilotGear = null;//用户未配置或未知车型时,默认null + if (options != null && options.getLaunchAutopilotGear() != null) { + launchAutopilotGear = options.getLaunchAutopilotGear(); + } else { + if (isDF) { + launchAutopilotGear = BuildConfig.LAUNCH_AUTOPILOT_GEAR_DF; + } else if (isHQ) { + launchAutopilotGear = BuildConfig.LAUNCH_AUTOPILOT_GEAR_HQ; + } else if (isJinlv) { + launchAutopilotGear = BuildConfig.LAUNCH_AUTOPILOT_GEAR_BUS; + } else if (isJinlvM1) { + launchAutopilotGear = BuildConfig.LAUNCH_AUTOPILOT_GEAR_M1; + } else if (isJinlvM2) { + launchAutopilotGear = BuildConfig.LAUNCH_AUTOPILOT_GEAR_M2; + } else if (isFutianSweeper) { + launchAutopilotGear = BuildConfig.LAUNCH_AUTOPILOT_GEAR_SWEEPER; + } else if (isKaiwo) { + launchAutopilotGear = BuildConfig.LAUNCH_AUTOPILOT_GEAR_KAIWO; + } + } + return launchAutopilotGear; } private void stop230() { @@ -414,10 +440,12 @@ public class AutopilotAbilityManager implements OnAutopilotAbilityListener { isInitCarConfig.set(false); mapVersion = -1; isFutianSweeper = false; + isDF = false; isHQ = false; isJinlv = false; isJinlvM1 = false; isJinlvM2 = false; + isKaiwo = false; isSupportFSM2024 = false; }