[根据底盘自驾状态和鹰眼状态双重判断]
This commit is contained in:
yangyakun
2024-04-25 12:36:33 +08:00
parent bf3f5e340b
commit 6c83d9f7e1
16 changed files with 183 additions and 150 deletions

View File

@@ -19,10 +19,12 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.constraintlayout.widget.Group;
import com.mogo.commons.AbsMogoApplication;
import com.mogo.commons.mvp.IView;
import com.mogo.commons.mvp.MvpFragment;
import com.mogo.commons.mvp.Presenter;
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener;
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager;
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager;
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotRecordListenerManager;
import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager;
@@ -166,7 +168,7 @@ public abstract class BaseBusTabFragment<V extends IView, P extends Presenter<V>
});
initListener();
setAutopilotBtnStatus(CallerAutoPilotStatusListenerManager.INSTANCE.getState());
setAutopilotBtnStatus(CallerAutoPilotStatusListenerManager.INSTANCE.getState(), CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false));
ctvAutopilotStatus.setOnClickListener(new OnPreventFastClickListener() {
@Override
@@ -372,40 +374,46 @@ public abstract class BaseBusTabFragment<V extends IView, P extends Presenter<V>
*
* @param autopilotStatus 0:不可用 1:可用状态 2:自动驾驶中
*/
public void onAutopilotStatusChanged(int autopilotStatus) {
public void onAutopilotStatusChanged(int autopilotStatus,boolean canStartAutopilt) {
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
changeAutopilotBtnView(autopilotStatus, isAnimateRunning);
changeAutopilotBtnView(autopilotStatus, isAnimateRunning,canStartAutopilt);
}
},UiThreadHandler.MODE.QUEUE);
}
public void setAutopilotBtnStatus(int autopilotStatus) {
public void setAutopilotBtnStatus(int autopilotStatus,boolean canStartAutopilt) {
if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE
== autopilotStatus) {//0不可用
ctvAutopilotStatusTv.setTextColor(getResources().getColor(R.color.bus_autopilot_text_color_disable));
ctvAutopilotStatusTv.setTextColor(AbsMogoApplication.getApp().getColor(R.color.bus_autopilot_text_color_disable));
ctvAutopilotStatusTv.setText(getResources().getString(R.string.bus_loading_autopilot_runnig_tv));
ctvAutopilotStatusIv.setImageResource(R.drawable.bus_disable_autopilot_icon);
ctvAutopilotStatus.setClickable(true);
ctvAutopilotStatus.setBackground(getContext().getDrawable(R.drawable.bus_autopilot_0_1_status_bg));
ctvAutopilotStatus.setBackgroundResource(R.drawable.bus_autopilot_0_1_status_bg);
} else {
ctvAutopilotStatusTv.setTextColor(getResources().getColor(R.color.bus_autopilot_text_color_normal));
ctvAutopilotStatusTv.setTextColor(AbsMogoApplication.getApp().getColor(R.color.bus_autopilot_text_color_normal));
ctvAutopilotStatusIv.setImageResource(R.drawable.bus_ic_autopilot);
if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE == autopilotStatus) { //1可用
ctvAutopilotStatus.setClickable(true);
ctvAutopilotStatusTv.setText(getResources().getString(R.string.bus_loading_autopilot_runnig_tv));
ctvAutopilotStatus.setBackground(getContext().getDrawable(R.drawable.bus_autopilot_0_1_status_bg));
if(canStartAutopilt){
ctvAutopilotStatus.setClickable(true);
ctvAutopilotStatus.setBackgroundResource(R.drawable.bus_autopilot_0_1_status_bg);
}else {
ctvAutopilotStatusTv.setTextColor(AbsMogoApplication.getApp().getColor(R.color.bus_autopilot_text_color_disable));
ctvAutopilotStatusIv.setImageResource(R.drawable.bus_disable_autopilot_icon);
ctvAutopilotStatus.setClickable(true);
ctvAutopilotStatus.setBackgroundResource(R.drawable.bus_autopilot_0_1_status_bg);
}
} else if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING == autopilotStatus) {
ctvAutopilotStatusTv.setText(R.string.bus_loading_autopilot_runnig_tv);
ctvAutopilotStatus.setClickable(true);
ctvAutopilotStatus.setBackground(getContext().getDrawable(R.drawable.bus_autopilot_2_status_bg));
ctvAutopilotStatus.setBackgroundResource(R.drawable.bus_autopilot_2_status_bg);
} else if (IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING
== autopilotStatus) {
ctvAutopilotStatusTv.setText(R.string.bus_pingxing_driver);
ctvAutopilotStatus.setClickable(false);
ctvAutopilotStatus.setBackground(getContext().getDrawable(R.drawable.pingxingjiashi));
ctvAutopilotStatus.setBackgroundResource(R.drawable.pingxingjiashi);
}
}
@@ -426,10 +434,10 @@ public abstract class BaseBusTabFragment<V extends IView, P extends Presenter<V>
ctvAutopilotStatus.setClickable(false);
// ctvAutopilotStatus.setSelected(false);
}
UiThreadHandler.postDelayed(() -> setAutopilotBtnStatus(autopilotStatus), 1000);
UiThreadHandler.postDelayed(() -> setAutopilotBtnStatus(autopilotStatus,CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false)), 1000);
}
private void changeAutopilotBtnView(int autopilotStatus, boolean isAnimateRunning) {
private void changeAutopilotBtnView(int autopilotStatus, boolean isAnimateRunning, boolean canStartAutopilt) {
if (isAnimateRunning && IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING
!= autopilotStatus) {
// 主动开启自动驾驶中不为2为0、1则继续loading
@@ -438,7 +446,7 @@ public abstract class BaseBusTabFragment<V extends IView, P extends Presenter<V>
if (isAnimateRunning) {
stopAnimAndUpdateBtnStatus();
} else {
setAutopilotBtnStatus(autopilotStatus);
setAutopilotBtnStatus(autopilotStatus,canStartAutopilt);
}
}

View File

@@ -13,6 +13,7 @@ import com.mogo.commons.mvp.Presenter;
import com.mogo.eagle.core.data.config.FunctionBuildConfig;
import com.mogo.eagle.core.data.map.MogoLocation;
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener;
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager;
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager;
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
import com.mogo.eagle.core.utilcode.util.UiThreadHandler;
@@ -185,13 +186,13 @@ public class BusPresenter extends Presenter<BusFragment>
return;
}
// 改变UI自动驾驶状态
runOnUIThread(() -> mView.onAutopilotStatusChanged(state));
runOnUIThread(() -> mView.onAutopilotStatusChanged(state, CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false)));
break;
case IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING:
OrderModel.getInstance().triggerStartServiceEvent(
OrderModel.getInstance().isRestartAutopilot(), true);
// 改变UI自动驾驶状态
runOnUIThread(() -> mView.onAutopilotStatusChanged(state));
runOnUIThread(() -> mView.onAutopilotStatusChanged(state, CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false)));
break;
default:
runOnUIThread(() -> mView.onAutopilotEnableChange(false));
@@ -219,7 +220,7 @@ public class BusPresenter extends Presenter<BusFragment>
//中间站点再次开启自驾时, 自动驾驶状态是2未改变 此次鹰眼底层不再返给业务,需优化按钮动画显示
if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING
== CallerAutoPilotStatusListenerManager.INSTANCE.getState()){
mView.onAutopilotStatusChanged(CallerAutoPilotStatusListenerManager.INSTANCE.getState());
mView.onAutopilotStatusChanged(CallerAutoPilotStatusListenerManager.INSTANCE.getState(), CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false));
}
}
@@ -283,6 +284,6 @@ public class BusPresenter extends Presenter<BusFragment>
@Override
public void canStartAutopilot(boolean canStart) {
mView.onAutopilotStatusChanged(CallerAutoPilotStatusListenerManager.INSTANCE.getState(), canStart);
}
}

View File

@@ -7,6 +7,7 @@ import com.magic.mogo.och.charter.constant.CharterConst
import com.magic.mogo.och.charter.model.DriverM1Model
import com.mogo.eagle.core.data.config.FunctionBuildConfig
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS_P
@@ -158,8 +159,13 @@ class AutopilotStatusViewModel: ViewModel(), IDriverM1ControllerStatusCallback,
viewCallback?.autopilotDisable()
}
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE -> {
// 自动驾驶状态就绪可启动自驾
viewCallback?.canStartAutopilot()
if(CallerAutoPilotControlManager.isCanStartAutopilot(false)){
// 自动驾驶状态就绪可启动自驾
viewCallback?.canStartAutopilot()
}else {
// 自动驾驶未就绪
viewCallback?.autopilotDisable()
}
}
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING -> {
// 自动驾驶中
@@ -181,6 +187,14 @@ class AutopilotStatusViewModel: ViewModel(), IDriverM1ControllerStatusCallback,
},ThreadUtils.MODE.QUEUE)
}
override fun canStartAutopilot(canStart: Boolean) {
super.canStartAutopilot(canStart)
ThreadUtils.runOnUiThread( {
// 自驾状态变更回调(可能成功可能失败)
assertStartAutopiloState(CallerAutoPilotStatusListenerManager.getState())
},ThreadUtils.MODE.QUEUE)
}
interface IAutopilotStatusCallback{
/**
* 开始动画

View File

@@ -26,6 +26,7 @@ import com.mogo.commons.mvp.Presenter;
import com.mogo.eagle.core.data.config.FunctionBuildConfig;
import com.mogo.eagle.core.data.config.HdMapBuildConfig;
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener;
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager;
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager;
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotRecordListenerManager;
import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager;
@@ -159,7 +160,8 @@ public abstract class BaseShuttleTabFragment<V extends IView, P extends Presente
});
initListener();
setAutopilotBtnStatus(CallerAutoPilotStatusListenerManager.INSTANCE.getState());
setAutopilotBtnStatus(CallerAutoPilotStatusListenerManager.INSTANCE.getState(),
CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false));
ctvAutopilotStatus.setOnClickListener(new OnPreventFastClickListener() {
@Override
@@ -375,45 +377,46 @@ public abstract class BaseShuttleTabFragment<V extends IView, P extends Presente
*
* @param autopilotStatus 0:不可用 1:可用状态 2:自动驾驶中
*/
public void onAutopilotStatusChanged(int autopilotStatus) {
public void onAutopilotStatusChanged(int autopilotStatus,boolean canStartAuto) {
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
changeAutopilotBtnView(autopilotStatus, isAnimateRunning);
changeAutopilotBtnView(autopilotStatus, isAnimateRunning,canStartAuto);
}
}, UiThreadHandler.MODE.QUEUE);
}
public void setAutopilotBtnStatus(int autopilotStatus) {
if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE
== autopilotStatus) {//0不可用
public void setAutopilotBtnStatus(int autopilotStatus,boolean canStartAuto) {
if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE == autopilotStatus) {//0不可用
ctvAutopilotStatusTv.setTextColor(getResources().getColor(R.color.bus_autopilot_text_color_disable));
ctvAutopilotStatusTv.setText(getResources().getString(R.string.bus_loading_autopilot_runnig_tv));
ctvAutopilotStatusIv.setImageResource(R.drawable.bus_disable_autopilot_icon);
// ctvAutopilotStatus.setSelected(false);
ctvAutopilotStatus.setClickable(true);
ctvAutopilotStatus.setBackground(getContext().getDrawable(R.drawable.bus_autopilot_0_1_status_bg));
ctvAutopilotStatus.setBackgroundResource(R.drawable.start_failure);
} else {
ctvAutopilotStatusTv.setTextColor(getResources().getColor(R.color.bus_autopilot_text_color_normal));
ctvAutopilotStatusTv.setTextColor(AbsMogoApplication.getApp().getColor(R.color.bus_autopilot_text_color_normal));
ctvAutopilotStatusIv.setImageResource(R.drawable.bus_ic_autopilot);
if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE == autopilotStatus) { //1可用
// ctvAutopilotStatus.setSelected(false);
ctvAutopilotStatus.setClickable(true);
ctvAutopilotStatusTv.setText(getResources().getString(R.string.bus_loading_autopilot_runnig_tv));
ctvAutopilotStatus.setBackground(getContext().getDrawable(R.drawable.bus_autopilot_0_1_status_bg));
if(canStartAuto){
ctvAutopilotStatus.setClickable(true);
ctvAutopilotStatus.setBackgroundResource(R.drawable.press_start_status);
}else {
ctvAutopilotStatusTv.setTextColor(getResources().getColor(R.color.bus_autopilot_text_color_disable));
ctvAutopilotStatusIv.setImageResource(R.drawable.bus_disable_autopilot_icon);
ctvAutopilotStatus.setClickable(true);
ctvAutopilotStatus.setBackgroundResource(R.drawable.start_failure);
}
} else if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING == autopilotStatus) {
ctvAutopilotStatusTv.setText(R.string.bus_loading_autopilot_runnig_tv);
ctvAutopilotStatus.setClickable(true);
ctvAutopilotStatus.setBackground(getContext().getDrawable(R.drawable.bus_autopilot_2_status_bg));
// ctvAutopilotStatus.setSelected(true);
ctvAutopilotStatus.setBackgroundResource(R.drawable.start_success);
} else if (IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING
== autopilotStatus){
ctvAutopilotStatusTv.setText(R.string.bus_pingxing_driver);
ctvAutopilotStatus.setClickable(false);
ctvAutopilotStatus.setBackground(getContext().getDrawable(R.drawable.pingxingjiashi));
ctvAutopilotStatus.setBackgroundResource(R.drawable.pingxingjiashi);
}
}
}
@@ -435,12 +438,12 @@ public abstract class BaseShuttleTabFragment<V extends IView, P extends Presente
UiThreadHandler.postDelayed(new Runnable() {
@Override
public void run() {
setAutopilotBtnStatus(autopilotStatus);
setAutopilotBtnStatus(autopilotStatus,CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false));
}
}, 1000);
}
private void changeAutopilotBtnView(int autopilotStatus, boolean isAnimateRunning) {
private void changeAutopilotBtnView(int autopilotStatus, boolean isAnimateRunning,boolean canStartAuto) {
if (isAnimateRunning && IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING
!= autopilotStatus) {
// 主动开启自动驾驶中不为2为0、1则继续loading
@@ -449,7 +452,7 @@ public abstract class BaseShuttleTabFragment<V extends IView, P extends Presente
if (isAnimateRunning) {
stopAnimAndUpdateBtnStatus();
} else {
setAutopilotBtnStatus(autopilotStatus);
setAutopilotBtnStatus(autopilotStatus,canStartAuto);
}
}

View File

@@ -13,6 +13,7 @@ import com.mogo.commons.mvp.Presenter;
import com.mogo.eagle.core.data.config.FunctionBuildConfig;
import com.mogo.eagle.core.data.map.MogoLocation;
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener;
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager;
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager;
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
import com.mogo.eagle.core.utilcode.util.UiThreadHandler;
@@ -180,13 +181,13 @@ public class BusPresenter extends Presenter<ShuttleFragment>
return;
}
// 改变UI自动驾驶状态
runOnUIThread(() -> mView.onAutopilotStatusChanged(state));
runOnUIThread(() -> mView.onAutopilotStatusChanged(state, CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false)));
break;
case IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING:
OrderModel.getInstance().triggerStartServiceEvent(
OrderModel.getInstance().isRestartAutopilot(), true);
// 改变UI自动驾驶状态
runOnUIThread(() -> mView.onAutopilotStatusChanged(state));
runOnUIThread(() -> mView.onAutopilotStatusChanged(state, CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false)));
break;
default:
runOnUIThread(() -> mView.onAutopilotEnableChange(false));
@@ -209,7 +210,8 @@ public class BusPresenter extends Presenter<ShuttleFragment>
//中间站点再次开启自驾时, 自动驾驶状态是2未改变 此次鹰眼底层不再返给业务,需优化按钮动画显示
if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING
== CallerAutoPilotStatusListenerManager.INSTANCE.getState()){
mView.onAutopilotStatusChanged(CallerAutoPilotStatusListenerManager.INSTANCE.getState());
mView.onAutopilotStatusChanged(CallerAutoPilotStatusListenerManager.INSTANCE.getState(),
CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false));
}
}
@@ -260,6 +262,6 @@ public class BusPresenter extends Presenter<ShuttleFragment>
@Override
public void canStartAutopilot(boolean canStart) {
runOnUIThread(() -> mView.onAutopilotStatusChanged(CallerAutoPilotStatusListenerManager.INSTANCE.getState(),canStart));
}
}

View File

@@ -10,18 +10,18 @@ public interface ITaxiADASStatusCallback {
void onAutopilotArriveEnd();
// 自动驾驶可用状态
void onAutopilotEnable();
void onAutopilotEnable(boolean canStartAuto);
// 自动驾驶不可用状态
void onAutopilotDisable();
void onAutopilotDisable(boolean canStartAuto);
// 自动驾驶运行中
void onAutopilotRunning();
void onAutopilotRunning(boolean canStartAuto);
//人机共驾
void onManMachineCoDriving();
void onManMachineCoDriving(boolean canStartAuto);
void updateAutopilotStatus();
void updateAutopilotStatus(boolean canStartAuto);
//自驾返回失败
void onStartAdasFailure();

View File

@@ -857,7 +857,7 @@ public class TaxiModel {
CallerLogger.d(M_TAXI + TAG, "setIPCDemoModefalse");
CallerAutoPilotControlManager.INSTANCE.setIPCDemoMode(false);
if (mADASStatusCallback != null) {
mADASStatusCallback.updateAutopilotStatus();
mADASStatusCallback.updateAutopilotStatus(CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false));
}
}
@@ -1221,7 +1221,7 @@ public class TaxiModel {
public void onAutopilotStatusResponse(int state) {
if (state == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING) {
if (mADASStatusCallback != null) {
mADASStatusCallback.onAutopilotRunning();
mADASStatusCallback.onAutopilotRunning(CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false));
}
if (mCurrentOCHOrder != null
&& TaxiOrderStatusEnum.OnTheWayToEnd.getCode() == mCurrentOCHOrder.orderStatus) {
@@ -1244,7 +1244,7 @@ public class TaxiModel {
return;
}
if (mADASStatusCallback != null) {
mADASStatusCallback.onAutopilotEnable();
mADASStatusCallback.onAutopilotEnable(CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false));
}
} else if (state == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE) {
if (FunctionBuildConfig.isDemoMode
@@ -1255,7 +1255,7 @@ public class TaxiModel {
return;
}
if (mADASStatusCallback != null) {
mADASStatusCallback.onAutopilotDisable();
mADASStatusCallback.onAutopilotDisable(CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false));
}
} else if (state == IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING) {
if (FunctionBuildConfig.isDemoMode) {
@@ -1265,17 +1265,24 @@ public class TaxiModel {
// 当美化模式演示模式开启时且有订单、且为去往目的地状态维持自动驾驶icon开启状态
} else { //美化模式下没订单,显示人工驾驶
if (mADASStatusCallback != null) {
mADASStatusCallback.onAutopilotDisable();
mADASStatusCallback.onAutopilotDisable(CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false));
}
}
return;
}
if (mADASStatusCallback != null) {
mADASStatusCallback.onManMachineCoDriving();
mADASStatusCallback.onManMachineCoDriving(CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false));
}
}
}
@Override
public void canStartAutopilot(boolean canStart) {
if (mADASStatusCallback != null) {
mADASStatusCallback.updateAutopilotStatus(canStart);
}
}
@Override
public void onAutopilotArriveAtStation(ArrivedStation data) {
CallerLogger.i(M_TAXI + TAG, "onAutopilotArriveAtStation = " + data.toString());

View File

@@ -188,33 +188,33 @@ public class TaxiPresenter extends Presenter<TaxiFragment> implements ITaxiADASS
}
@Override
public void onAutopilotEnable() {
public void onAutopilotEnable(boolean canStartAuto) {
runOnUIThread(() -> mView.updateAutopilotStatus(
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE));
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE,canStartAuto));
}
@Override
public void onAutopilotDisable() {
public void onAutopilotDisable(boolean canStartAuto) {
runOnUIThread(() -> mView.updateAutopilotStatus(
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE));
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE,canStartAuto));
}
@Override
public void onAutopilotRunning() {
public void onAutopilotRunning(boolean canStartAuto) {
runOnUIThread(() -> mView.updateAutopilotStatus(
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING));
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING,canStartAuto));
}
@Override
public void onManMachineCoDriving() {
runOnUIThread(() -> mView.onManMachineCoDriving(IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING));
public void onManMachineCoDriving(boolean canStartAuto) {
runOnUIThread(() -> mView.onManMachineCoDriving(IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING,canStartAuto));
}
@Override
public void updateAutopilotStatus() {
public void updateAutopilotStatus(boolean canStartAuto) {
runOnUIThread(() -> mView.updateAutopilotStatus(
CallerAutoPilotStatusListenerManager.INSTANCE.getState()));
CallerAutoPilotStatusListenerManager.INSTANCE.getState(),canStartAuto));
}
@Override

View File

@@ -26,6 +26,7 @@ import com.mogo.commons.mvp.IView;
import com.mogo.commons.mvp.MvpFragment;
import com.mogo.commons.mvp.Presenter;
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener;
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager;
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager;
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotRecordListenerManager;
import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager;
@@ -177,28 +178,28 @@ public abstract class BaseTaxiTabFragment<V extends IView, P extends Presenter<V
return false;
});
onAutopilotStatusChanged(CallerAutoPilotStatusListenerManager.INSTANCE.getState());
onAutopilotStatusChanged(CallerAutoPilotStatusListenerManager.INSTANCE.getState(), CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false));
// 模拟 不可自动驾驶目前场景是刚开机adas还未和工控机连接
findViewById(R.id.btnAutopilotDisable).setOnClickListener(view ->
onAutopilotStatusChanged(IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE)
onAutopilotStatusChanged(IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE,true)
);
// 模拟 可自动驾驶,工控机连接正常,且处于人工干预状态
findViewById(R.id.btnAutopilotEnable).setOnClickListener(view ->
onAutopilotStatusChanged(IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE)
onAutopilotStatusChanged(IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE,true)
);
// 模拟 自动驾驶能力,自动驾驶中,可能是停车,可能是行进,但是是机器在处理车的前进后退,不是人
findViewById(R.id.btnAutopilotRunning).setOnClickListener(view ->
onAutopilotStatusChanged(IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING)
onAutopilotStatusChanged(IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING,true)
);
findViewById(R.id.btnAutopilotmanco).setOnClickListener(view ->
onAutopilotStatusChanged(IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING));
onAutopilotStatusChanged(IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING,true));
tvOperationStatus.setOnClickListener(new OnPreventFastClickListener() {
@Override
@@ -295,7 +296,7 @@ public abstract class BaseTaxiTabFragment<V extends IView, P extends Presenter<V
super.onDestroy();
}
public void onAutopilotStatusChanged(int status) {
public void onAutopilotStatusChanged(int status,boolean canStart) {
getActivity().runOnUiThread(() -> {
if (isStarting && IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING != status) {
// 1. 主动开启自动驾驶中不为2为0、1则继续loading
@@ -308,7 +309,7 @@ public abstract class BaseTaxiTabFragment<V extends IView, P extends Presenter<V
}
// 3. 其他过程直接更新
startOrStopLoadingAnim(false);
autopilotStatusAnimchanged(status);
autopilotStatusAnimchanged(status,canStart);
});
}
@@ -317,8 +318,8 @@ public abstract class BaseTaxiTabFragment<V extends IView, P extends Presenter<V
startAutopilotDone(false);
}
public void onManMachineCoDriving(int manMachineCoDriving) {
autopilotStatusAnimchanged(manMachineCoDriving);
public void onManMachineCoDriving(int manMachineCoDriving,boolean canStartAuto) {
autopilotStatusAnimchanged(manMachineCoDriving,canStartAuto);
}
public void updateCtvAutopilotStatusTag(boolean tag) {
@@ -332,28 +333,34 @@ public abstract class BaseTaxiTabFragment<V extends IView, P extends Presenter<V
protected abstract void updateOrderBottomBtnUI();
public void autopilotStatusAnimchanged(int status) {
public void autopilotStatusAnimchanged(int status,boolean canStart) {
if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING == status) {
mAutopilotTv.setText("自动驾驶");
mAutopilotTv.setTextColor(getResources().getColor(R.color.taxi_autopilot_text_color_normal));
mAutopilotImage.setImageResource(R.drawable.taxi_ic_autopilot);
//ctvAutopilotStatusRL.setBackgroundResource(R.drawable.taxi_autopilot_success);
ctvAutopilotStatusRL.setBackgroundResource(R.drawable.taxi_autopilot_success);
} else if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE == status) {
mAutopilotTv.setText("自动驾驶");
mAutopilotTv.setTextColor(getResources().getColor(R.color.taxi_autopilot_text_color_normal));
mAutopilotImage.setImageResource(R.drawable.taxi_ic_autopilot);
//ctvAutopilotStatusRL.setBackgroundResource(R.drawable.taxi_autopilot_bg_selector);
if(canStart){
mAutopilotTv.setTextColor(getResources().getColor(R.color.taxi_autopilot_text_color_normal));
mAutopilotImage.setImageResource(R.drawable.taxi_ic_autopilot);
ctvAutopilotStatusRL.setBackgroundResource(R.drawable.taxi_ic_autopilot_bg_pressed);
}else {
mAutopilotTv.setTextColor(getResources().getColor(R.color.taxi_autopilot_text_color_disable));
mAutopilotImage.setImageResource(R.drawable.taxi_ic_autopilot_disable);
ctvAutopilotStatusRL.setBackgroundResource(R.drawable.taxi_ic_autopilot_bg);
}
} else if (IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING == status) {
mAutopilotTv.setText("远程代驾");
mAutopilotTv.setTextColor(getResources().getColor(R.color.taxi_autopilot_text_color_normal));
mAutopilotImage.setImageResource(R.drawable.taxi_ic_autopilot);
//ctvAutopilotStatusRL.setBackgroundResource(R.drawable.taxi_autopilot_pingxjs);
ctvAutopilotStatusRL.setBackgroundResource(R.drawable.taxi_autopilot_pingxjs);
// 平行驾驶
} else {
mAutopilotTv.setText("自动驾驶");
mAutopilotTv.setTextColor(getResources().getColor(R.color.taxi_autopilot_text_color_disable));
mAutopilotImage.setImageResource(R.drawable.taxi_ic_autopilot_disable);
//ctvAutopilotStatusRL.setBackgroundResource(R.drawable.taxi_ic_autopilot_bg);
ctvAutopilotStatusRL.setBackgroundResource(R.drawable.taxi_ic_autopilot_bg);
}
}
@@ -377,7 +384,7 @@ public abstract class BaseTaxiTabFragment<V extends IView, P extends Presenter<V
@Override
public void run() {
startOrStopLoadingAnim(false);
onAutopilotStatusChanged(CallerAutoPilotStatusListenerManager.INSTANCE.getState());
onAutopilotStatusChanged(CallerAutoPilotStatusListenerManager.INSTANCE.getState(),CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false));
}
}, 1000L);
}

View File

@@ -184,8 +184,8 @@ public class TaxiFragment extends BaseTaxiTabFragment<TaxiFragment, TaxiPresente
}
}
public void updateAutopilotStatus(int status) {
onAutopilotStatusChanged(status);
public void updateAutopilotStatus(int status,boolean canStart) {
onAutopilotStatusChanged(status,canStart);
}
@RequiresApi(api = Build.VERSION_CODES.P)

View File

@@ -10,19 +10,19 @@ public interface ITaxiADASStatusCallback {
void onAutopilotArriveEnd();
// 自动驾驶可用状态
void onAutopilotEnable();
void onAutopilotEnable(boolean canStartAuto);
// 自动驾驶不可用状态
void onAutopilotDisable();
void onAutopilotDisable(boolean canStartAuto);
// 自动驾驶运行中
void onAutopilotRunning();
void onAutopilotRunning(boolean canStartAuto);
//人机共驾
void onParallelDrivingStatus();
void onParallelDrivingStatus(boolean canStartAuto);
//自驾返回失败
void onStartAdasFailure();
void updateAutopilotStatus();
void updateAutopilotStatus(boolean canStartAuto);
}

View File

@@ -21,9 +21,9 @@ public interface ITaxiControllerStatusCallback {
void startOpenAutopilotNonManual();
//停止启动自动驾驶
void stopOpenAutopilotNonManual();
void stopOpenAutopilotNonManual(boolean canStartAuto);
void pauseOpenAutopilotNonManual();
void pauseOpenAutopilotNonManual(boolean canStartAuto);
void resumeOpenAutopilotNonManual();
}

View File

@@ -18,6 +18,7 @@ import com.mogo.commons.mvp.MvpFragment
import com.mogo.commons.mvp.Presenter
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotRecordListener
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager.getState
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotRecordListenerManager
import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager
@@ -187,7 +188,7 @@ abstract class BaseTaxiTabFragment<V : IView, P : Presenter<V>> : MvpFragment<V,
// false
// }
// }
onAutopilotStatusChanged(getState())
onAutopilotStatusChanged(getState(),CallerAutoPilotControlManager.isCanStartAutopilot(false))
// 打开任务调试面板
findViewById<View>(R.id.btnOpenDebugView)?.setOnClickListener {
@@ -301,7 +302,7 @@ abstract class BaseTaxiTabFragment<V : IView, P : Presenter<V>> : MvpFragment<V,
*
* @param status 2 - running 1 - enable 2 - disable
*/
fun onAutopilotStatusChanged(status: Int) {
fun onAutopilotStatusChanged(status: Int,canStartAuto :Boolean) {
activity?.runOnUiThread(Runnable runOnUiThread@{
if (isStarting && IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING != status) {
// 1. 主动开启自动驾驶中不为2为0、1则继续loading
@@ -315,7 +316,7 @@ abstract class BaseTaxiTabFragment<V : IView, P : Presenter<V>> : MvpFragment<V,
}
// 3. 其他过程直接更新
startOrStopLoadingAnim(false)
updateAutopilotBtnByStatus(status)
updateAutopilotBtnByStatus(status,canStartAuto)
})
}
@@ -330,55 +331,41 @@ abstract class BaseTaxiTabFragment<V : IView, P : Presenter<V>> : MvpFragment<V,
/**
* 平行驾驶 【开启自动驾驶按钮】 更新
*/
fun onParallelDrivingStatus(parallelDrivingValue: Int) {
updateAutopilotBtnByStatus(parallelDrivingValue)
fun onParallelDrivingStatus(parallelDrivingValue: Int,canStartAuto:Boolean) {
updateAutopilotBtnByStatus(parallelDrivingValue,canStartAuto)
}
private fun updateCtvAutopilotStatusTag(tag: Boolean) {
module_mogo_och_autopilot_status.tag = tag
}
private fun updateAutopilotBtnByStatus(status: Int) {
private fun updateAutopilotBtnByStatus(status: Int,canStartAuto:Boolean) {
if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING == status) {
module_och_autopilot_tv.text = "自动驾驶"
module_och_autopilot_tv.setTextColor(
resources.getColor(
R.color.taxi_autopilot_text_color_normal,
null
)
)
module_och_autopilot_tv.setTextColor(AbsMogoApplication.getApp().getColor(R.color.taxi_autopilot_text_color_normal));
module_och_autopilot_iv.setImageResource(R.drawable.taxi_ic_autopilot)
module_mogo_och_autopilot_status.setBackgroundResource(R.drawable.taxi_autopilot_success);
} else if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE == status) {
module_och_autopilot_tv.text = "自动驾驶"
module_och_autopilot_tv.setTextColor(
resources.getColor(
R.color.taxi_autopilot_text_color_normal,
null
)
)
module_och_autopilot_iv.setImageResource(R.drawable.taxi_ic_autopilot)
module_mogo_och_autopilot_status.setBackgroundResource(R.drawable.taxi_autopilot_bg_selector)
if(CallerAutoPilotControlManager.isCanStartAutopilot(false)){
module_och_autopilot_tv.setTextColor(AbsMogoApplication.getApp().getColor(R.color.taxi_autopilot_text_color_normal));
module_och_autopilot_iv.setImageResource(R.drawable.taxi_ic_autopilot)
module_mogo_och_autopilot_status.setBackgroundResource(R.drawable.taxi_ic_autopilot_bg_pressed)
}else{
module_och_autopilot_tv.setTextColor(AbsMogoApplication.getApp().getColor(R.color.taxi_autopilot_text_color_disable));
module_och_autopilot_iv.setImageResource(R.drawable.taxi_ic_autopilot_disable)
module_mogo_och_autopilot_status.setBackgroundResource(R.drawable.taxi_ic_autopilot_bg)
}
} else if (IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING == status) {
module_och_autopilot_tv.text = "远程代驾"
module_och_autopilot_tv.setTextColor(
resources.getColor(
R.color.taxi_autopilot_text_color_normal,
null
)
)
module_och_autopilot_tv.setTextColor(AbsMogoApplication.getApp().getColor(R.color.taxi_autopilot_text_color_normal));
module_och_autopilot_iv.setImageResource(R.drawable.taxi_ic_autopilot)
module_mogo_och_autopilot_status.setBackgroundResource(R.drawable.taxi_autopilot_pingxjs)
} else {
module_och_autopilot_tv.text = "自动驾驶"
module_och_autopilot_tv.setTextColor(
resources.getColor(
R.color.taxi_autopilot_text_color_disable,
null
)
)
module_och_autopilot_tv.setTextColor(AbsMogoApplication.getApp().getColor(R.color.taxi_autopilot_text_color_disable));
module_och_autopilot_iv.setImageResource(R.drawable.taxi_ic_autopilot_disable)
module_mogo_och_autopilot_status.setBackgroundResource(R.drawable.taxi_autopilot_bg_selector)
module_mogo_och_autopilot_status.setBackgroundResource(R.drawable.taxi_ic_autopilot_bg)
}
}
@@ -446,7 +433,7 @@ abstract class BaseTaxiTabFragment<V : IView, P : Presenter<V>> : MvpFragment<V,
}
UiThreadHandler.postDelayed({
startOrStopLoadingAnim(false)
onAutopilotStatusChanged(getState())
onAutopilotStatusChanged(getState(),CallerAutoPilotControlManager.isCanStartAutopilot(false))
}, 1000L)
}

View File

@@ -289,8 +289,8 @@ class TaxiFragment : BaseTaxiTabFragment<TaxiFragment, TaxiPresenter>(),
override fun onMapLoaded() {}
fun updateAutopilotStatus(status: Int) {
onAutopilotStatusChanged(status)
fun updateAutopilotStatus(status: Int,canStartAuto:Boolean) {
onAutopilotStatusChanged(status,canStartAuto)
}
fun onNaviToEnd(isAmap: Boolean, isShow: Boolean) {

View File

@@ -110,26 +110,26 @@ public class TaxiPresenter extends Presenter<TaxiFragment> implements ITaxiADASS
}
@Override
public void onAutopilotEnable() {
public void onAutopilotEnable(boolean canStartAuto) {
runOnUIThread(() -> mView.updateAutopilotStatus(
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE));
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE,canStartAuto));
}
@Override
public void onAutopilotDisable() {
public void onAutopilotDisable(boolean canStartAuto) {
runOnUIThread(() -> mView.updateAutopilotStatus(
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE));
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE,canStartAuto));
}
@Override
public void onAutopilotRunning() {
public void onAutopilotRunning(boolean canStartAuto) {
runOnUIThread(() -> mView.updateAutopilotStatus(
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING));
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING,canStartAuto));
}
@Override
public void onParallelDrivingStatus() {
runOnUIThread(() -> mView.onParallelDrivingStatus(IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING));
public void onParallelDrivingStatus(boolean canStartAuto) {
runOnUIThread(() -> mView.onParallelDrivingStatus(IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING,canStartAuto));
}
@Override
@@ -138,8 +138,8 @@ public class TaxiPresenter extends Presenter<TaxiFragment> implements ITaxiADASS
}
@Override
public void updateAutopilotStatus() {
mView.updateAutopilotStatus(CallerAutoPilotStatusListenerManager.INSTANCE.getState());
public void updateAutopilotStatus(boolean canStartAuto) {
mView.updateAutopilotStatus(CallerAutoPilotStatusListenerManager.INSTANCE.getState(),canStartAuto);
}
@Override
@@ -177,19 +177,19 @@ public class TaxiPresenter extends Presenter<TaxiFragment> implements ITaxiADASS
}
@Override
public void stopOpenAutopilotNonManual() {
public void stopOpenAutopilotNonManual(boolean canStartAuto) {
runOnUIThread(() -> {
mView.startOrStopLoadingAnim(false);
mView.updateAutopilotStatus(CallerAutoPilotStatusListenerManager.INSTANCE.getState());
mView.updateAutopilotStatus(CallerAutoPilotStatusListenerManager.INSTANCE.getState(),canStartAuto);
mView.stopAutopilotBlinkAnimation();
});
}
@Override
public void pauseOpenAutopilotNonManual() {
public void pauseOpenAutopilotNonManual(boolean canStartAuto) {
runOnUIThread(() -> {
mView.startOrStopLoadingAnim(false);
mView.updateAutopilotStatus(CallerAutoPilotStatusListenerManager.INSTANCE.getState());
mView.updateAutopilotStatus(CallerAutoPilotStatusListenerManager.INSTANCE.getState(),canStartAuto);
mView.pauseAutopilotBlinkAnimation();
});
}

View File

@@ -261,7 +261,7 @@ object TaxiTaskModel {
if (brakeStatus) {
mControllerStatusCallback?.resumeOpenAutopilotNonManual()
} else {
mControllerStatusCallback?.pauseOpenAutopilotNonManual()
mControllerStatusCallback?.pauseOpenAutopilotNonManual(CallerAutoPilotControlManager.isCanStartAutopilot(false))
}
}
@@ -293,7 +293,7 @@ object TaxiTaskModel {
i(TAG, "onAutopilotStatusResponse autopilotsState= $state")
if (state == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING) {
DebugView.printInfoMsg("[自驾状态变化] afterValue=STATUS_AUTOPILOT_RUNNINGmeaning=自动驾驶中")
mADASStatusCallback?.onAutopilotRunning()
mADASStatusCallback?.onAutopilotRunning(CallerAutoPilotControlManager.isCanStartAutopilot(false))
if ((QueryCurrentTaskRespBean.isTaskStartTaskType(mCurrentTaskWithOrder))) {
TaxiAnalyticsManager.getInstance().triggerStartAutopilotEvent(
isRestartAutopilot,
@@ -315,7 +315,7 @@ object TaxiTaskModel {
// 当美化模式演示模式开启时且有订单、且为去往目的地状态维持自动驾驶icon开启状态
return
}
mADASStatusCallback?.onAutopilotEnable()
mADASStatusCallback?.onAutopilotEnable(CallerAutoPilotControlManager.isCanStartAutopilot(false))
} else if (state == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE) {
DebugView.printInfoMsg("[自驾状态变化] afterValue=STATUS_AUTOPILOT_DISABLEmeaning=不可自动驾驶")
if ((FunctionBuildConfig.isDemoMode
@@ -326,7 +326,7 @@ object TaxiTaskModel {
// 当美化模式演示模式开启时且有订单、且为去往目的地状态维持自动驾驶icon开启状态
return
}
mADASStatusCallback?.onAutopilotDisable()
mADASStatusCallback?.onAutopilotDisable(CallerAutoPilotControlManager.isCanStartAutopilot(false))
} else if (state == IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING) {
DebugView.printInfoMsg("[自驾状态变化] afterValue=STATUS_PARALLEL_DRIVINGmeaning=平行驾驶中")
if (FunctionBuildConfig.isDemoMode) {
@@ -338,11 +338,11 @@ object TaxiTaskModel {
) { //订单中
// 当美化模式演示模式开启时且有订单、且为去往目的地状态维持自动驾驶icon开启状态
} else { //美化模式下没订单,显示人工驾驶
mADASStatusCallback?.onAutopilotDisable()
mADASStatusCallback?.onAutopilotDisable(CallerAutoPilotControlManager.isCanStartAutopilot(false))
}
return
}
mADASStatusCallback?.onParallelDrivingStatus()
mADASStatusCallback?.onParallelDrivingStatus(CallerAutoPilotControlManager.isCanStartAutopilot(false))
}
}
@@ -396,6 +396,10 @@ object TaxiTaskModel {
}
}
override fun canStartAutopilot(canStart: Boolean) {
super.canStartAutopilot(canStart)
}
}
private val mMogoStatusChangedListener: IMogoStatusChangedListener =
@@ -805,7 +809,7 @@ object TaxiTaskModel {
// 主要是解决A-B演练任务同时接到A-B订单状态流转的问题
//注意: 需要去除到达乘客上车点的节点, 这个节点不拉取任务
if (QueryCurrentTaskRespBean.isTaskCompleteTaskType(result)) {
mADASStatusCallback?.updateAutopilotStatus()
mADASStatusCallback?.updateAutopilotStatus(CallerAutoPilotControlManager.isCanStartAutopilot(false))
mTaxiTaskWithOrderCallbackMap.forEach {
val listener = it.value
listener.onTaskCompleted(result)
@@ -1516,7 +1520,7 @@ object TaxiTaskModel {
TAG, "stopAutoStartAutopilot = ${mCurrentTaskWithOrder?.currentStatus}"
)
if (QueryCurrentTaskRespBean.isTaskGetTaskType(mCurrentTaskWithOrder)) {
mControllerStatusCallback?.stopOpenAutopilotNonManual()
mControllerStatusCallback?.stopOpenAutopilotNonManual(CallerAutoPilotControlManager.isCanStartAutopilot(false))
mTaxiTaskWithOrderCallbackMap.forEach {
val listener = it.value
listener.onStopAutopilot()