[660][adas] 当鹰眼不传递可启动自驾档位时,自动调用默认配置

This commit is contained in:
xinfengkun
2024-08-07 15:35:48 +08:00
parent f487dd3d55
commit bf5a654a42
6 changed files with 54 additions and 30 deletions

View File

@@ -32,6 +32,23 @@ android {
}
}
buildTypes.each {
//东风 T1
it.buildConfigField 'java.util.Set<chassis.Chassis.GearPosition>', 'LAUNCH_AUTOPILOT_GEAR_DF', 'new java.util.HashSet<chassis.Chassis.GearPosition>(){{add(chassis.Chassis.GearPosition.GEAR_D);add(chassis.Chassis.GearPosition.GEAR_N);add(chassis.Chassis.GearPosition.GEAR_P);}}'
//红旗 T2
it.buildConfigField 'java.util.Set<chassis.Chassis.GearPosition>', 'LAUNCH_AUTOPILOT_GEAR_HQ', 'new java.util.HashSet<chassis.Chassis.GearPosition>(){{add(chassis.Chassis.GearPosition.GEAR_D);add(chassis.Chassis.GearPosition.GEAR_N);add(chassis.Chassis.GearPosition.GEAR_P);}}'
//金旅小巴 B1
it.buildConfigField 'java.util.Set<chassis.Chassis.GearPosition>', 'LAUNCH_AUTOPILOT_GEAR_BUS', 'new java.util.HashSet<chassis.Chassis.GearPosition>(){{add(chassis.Chassis.GearPosition.GEAR_D);}}'
//金旅M1 M1
it.buildConfigField 'java.util.Set<chassis.Chassis.GearPosition>', 'LAUNCH_AUTOPILOT_GEAR_M1', 'new java.util.HashSet<chassis.Chassis.GearPosition>(){{add(chassis.Chassis.GearPosition.GEAR_D);}}'
//金旅M2 B2
it.buildConfigField 'java.util.Set<chassis.Chassis.GearPosition>', 'LAUNCH_AUTOPILOT_GEAR_M2', 'new java.util.HashSet<chassis.Chassis.GearPosition>(){{add(chassis.Chassis.GearPosition.GEAR_D);}}'
//福田清扫车 C1
it.buildConfigField 'java.util.Set<chassis.Chassis.GearPosition>', 'LAUNCH_AUTOPILOT_GEAR_SWEEPER', 'null'
//开沃
it.buildConfigField 'java.util.Set<chassis.Chassis.GearPosition>', 'LAUNCH_AUTOPILOT_GEAR_KAIWO', 'null'
}
sourceSets {
main {
jniLibs.srcDirs = ['libs']

View File

@@ -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<Chassis.GearPosition> launchAutopilotGear) {
AutopilotAbilityManager.getInstance().setLaunchAutopilotGear(launchAutopilotGear);
}
/**
* 自动驾驶设备基础信息应答
*

View File

@@ -1801,7 +1801,6 @@ public class AdasManager implements IAdasNetCommApi {
*
* @param launchAutopilotGear 能起自驾档位 null表示所有档位都可启动
*/
@Override
public void setLaunchAutopilotGear(@Nullable Set<Chassis.GearPosition> launchAutopilotGear) {
AutopilotAbilityManager.getInstance().setLaunchAutopilotGear(launchAutopilotGear);
}

View File

@@ -145,13 +145,6 @@ public interface IAdasNetCommApi {
*/
void setAutoConnect(boolean enable);
/**
* 设置可以启动自动驾驶的档位
*
* @param launchAutopilotGear 能起自驾档位 null表示所有档位都可启动
*/
void setLaunchAutopilotGear(@Nullable Set<Chassis.GearPosition> launchAutopilotGear);
/**
* 自动驾驶设备基础信息应答
*

View File

@@ -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);
}

View File

@@ -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<Chassis.GearPosition> launchAutopilotGear;
private boolean isSupportFSM2024 = false;
private AutopilotAbilityManager() {
@@ -81,7 +82,6 @@ public class AutopilotAbilityManager implements OnAutopilotAbilityListener {
}
public void setLaunchAutopilotGear(Set<Chassis.GearPosition> 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<Chassis.GearPosition> launchAutopilotGear = getGearPositions();
setLaunchAutopilotGear(launchAutopilotGear);
}
private @Nullable Set<Chassis.GearPosition> getGearPositions() {
AdasOptions options = AdasManager.getInstance().getAdasOptions();
Set<Chassis.GearPosition> 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;
}