From 75536bda377a560fd194ab9b60ae5942f80b2e36 Mon Sep 17 00:00:00 2001 From: xuxinchao Date: Sun, 2 Apr 2023 00:34:19 +0800 Subject: [PATCH] =?UTF-8?q?[dev=5Frobobus-d=5F230322=5F3.0.0]=E4=BA=91?= =?UTF-8?q?=E8=B0=83=E5=BA=A6=E5=A2=9E=E5=8A=A0=E9=87=8D=E5=90=AF=E8=87=AA?= =?UTF-8?q?=E9=A9=BE=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../eagle/function/biz/FuncBizProvider.kt | 4 ++ .../biz/dispatch/DispatchAutoPilotManager.kt | 44 +++++++++++++-- .../core/function/hmi/ui/MoGoHmiProvider.kt | 8 +++ .../hmi/ui/notice/DispatchDialogManager.java | 20 +++++++ .../hmi/ui/notice/DispatchRestartDialog.java | 29 ++++++++++ .../layout/dialog_adas_dispatch_restart.xml | 55 +++++++++++++++++++ .../src/main/res/values/strings.xml | 3 + .../function/api/biz/IMoGoFuncBizProvider.kt | 5 ++ .../api/hmi/warning/IMoGoHmiProvider.kt | 5 ++ .../function/call/hmi/CallerHmiManager.kt | 6 ++ 10 files changed, 173 insertions(+), 6 deletions(-) create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/DispatchRestartDialog.java create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/res/layout/dialog_adas_dispatch_restart.xml diff --git a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/FuncBizProvider.kt b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/FuncBizProvider.kt index 4d457efad4..3a149c309d 100644 --- a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/FuncBizProvider.kt +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/FuncBizProvider.kt @@ -74,6 +74,10 @@ class FuncBizProvider : IMoGoFuncBizProvider { dispatchAutoPilotManager.stopCancel(manualTrigger) } + override fun restartDispatchAffirm() { + dispatchAutoPilotManager.restartDispatch() + } + override fun testDispatch(sceneType: Int) { dispatchAutoPilotManager.testDispatch(sceneType) } diff --git a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/dispatch/DispatchAutoPilotManager.kt b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/dispatch/DispatchAutoPilotManager.kt index cfd1e51e72..3a61b07d74 100644 --- a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/dispatch/DispatchAutoPilotManager.kt +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/dispatch/DispatchAutoPilotManager.kt @@ -32,6 +32,7 @@ import com.mogo.eagle.function.biz.dispatch.network.DispatchServiceModel.Compani import com.mogo.eagle.function.biz.dispatch.network.DispatchServiceModel.Companion.DISPATCH_STOP_MANUAL_CANCEL import com.mogo.eagle.function.biz.dispatch.network.DispatchServiceModel.Companion.DISPATCH_STOP_TIMER_CANCEL import com.mogo.eagle.function.biz.dispatch.network.DispatchServiceModel.Companion.dispatchServiceModel +import com.zhjt.mogo.adas.data.bean.MogoReport import mogo.telematics.pad.MessagePad import mogo_msg.MogoReportMsg @@ -251,6 +252,15 @@ class DispatchAutoPilotManager private constructor() : } } + /** + * 重启自驾 + */ + fun restartDispatch(){ + CallerHmiManager.dismissDispatchDialog() + //启动自动驾驶 + startAutoPilot() + } + override fun onCheck(isChecked: Boolean) { if (isChecked) { // 确保到达终点后,再次点击,不会有回馈,并且在下次调开始时,才会重置 @@ -329,18 +339,40 @@ class DispatchAutoPilotManager private constructor() : */ override fun onAutopilotGuardian(guardianInfo: MogoReportMsg.MogoReportMessage?) { if (guardianInfo == null || !guardianInfo.hasCode()) return - if ("ISYS_INIT_TRAJECTORY_START".equals(guardianInfo.getCode())){ + Log.i(TAG,"onAutopilotGuardian "+guardianInfo.code) + //掉自驾 + when(guardianInfo.code){ + MogoReport.Code.Error.EMAP.EXIT_AUTOPILOT_FOR_PLANNING, + MogoReport.Code.Error.EMAP.EXIT_AUTOPILOT_FOR_LOCATION, + MogoReport.Code.Error.EMAP.EXIT_AUTOPILOT_FOR_CHASSIS, + MogoReport.Code.Error.EMAP.EXIT_AUTOPILOT_FOR_DISTANCE, + MogoReport.Code.Error.EMAP.EXIT_AUTOPILOT_FOR_BRAKE, + MogoReport.Code.Error.EMAP.EXIT_AUTOPILOT_FOR_ACCEL, + MogoReport.Code.Error.EMAP.EXIT_AUTOPILOT_FOR_STEER, + MogoReport.Code.Error.EMAP.EXIT_AUTOPILOT_FOR_GEAR_SWITCH, + MogoReport.Code.Error.EMAP.EXIT_AUTOPILOT_FOR_CHASSIS_NO_RESPONSE, + MogoReport.Code.Error.EMAP.EXIT_AUTOPILOT_FOR_CHASSIS_UNKNOWN->{ + //如果到达终点,则不处理 + if(isArriveEnd){ + return + } + //处于云调度任务中且调度实体类不为空,弹出重启自驾弹窗 + if(isDispatch){ + receiverBean?.let { CallerHmiManager.showDispatchRestartDialog(it) } + } + } + } + if ("ISYS_INIT_TRAJECTORY_START".equals(guardianInfo.code)){ Log.i(TAG,"onAutopilotGuardian ISYS_INIT_TRAJECTORY_START 轨迹管理_轨迹开始下载(本地已有对应轨迹也触发)") - }else if ("ISYS_INIT_TRAJECTORY_SUCCESS".equals(guardianInfo.getCode())){ + }else if ("ISYS_INIT_TRAJECTORY_SUCCESS".equals(guardianInfo.code)){ Log.i(TAG,"onAutopilotGuardian ISYS_INIT_TRAJECTORY_SUCCESS 轨迹管理_轨迹下载成功(本地已有对应轨迹也触发)") - }else if ("ISYS_INIT_TRAJECTORY_FAILURE".equals(guardianInfo.getCode())){ + }else if ("ISYS_INIT_TRAJECTORY_FAILURE".equals(guardianInfo.code)){ Log.i(TAG,"onAutopilotGuardian ISYS_INIT_TRAJECTORY_FAILURE 轨迹管理_轨迹下载失败,本地无对应轨迹") - }else if ("ISYS_INIT_TRAJECTORY_WARNING".equals(guardianInfo.getCode())){ + }else if ("ISYS_INIT_TRAJECTORY_WARNING".equals(guardianInfo.code)){ Log.i(TAG,"onAutopilotGuardian ISYS_INIT_TRAJECTORY_WARNING 轨迹管理_轨迹下载失败,本地有对应轨迹,认为成功") - }else if ("ISYS_INIT_TRAJECTORY_TIMEOUT".equals(guardianInfo.getCode())){ + }else if ("ISYS_INIT_TRAJECTORY_TIMEOUT".equals(guardianInfo.code)){ Log.i(TAG,"onAutopilotGuardian ISYS_INIT_TRAJECTORY_TIMEOUT 轨迹管理_轨迹下载超时") } - } fun testDispatch(sceneType: Int) { diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiProvider.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiProvider.kt index 8d5ad1002c..1909e3caa8 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiProvider.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiProvider.kt @@ -226,6 +226,14 @@ class MoGoHmiProvider : IMoGoHmiProvider { } } + override fun showDispatchRestartDialog(msgData: DispatchAdasAutoPilotLocReceiverBean) { + ThreadUtils.runOnUiThread { + context?.let{ + DispatchDialogManager.getInstance(it).showRestartDialog(msgData) + } + } + } + override fun showNoticeForTrafficWithData(pushData: NoticeTrafficStylePushData?) { pushData?.let { ThreadUtils.runOnUiThread { diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/DispatchDialogManager.java b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/DispatchDialogManager.java index d3a04fa4bd..457a1682e9 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/DispatchDialogManager.java +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/DispatchDialogManager.java @@ -53,6 +53,26 @@ public class DispatchDialogManager { } } + /** + * 云调度重启自驾 + * @param msgData 长链下发实体 + */ + public void showRestartDialog(DispatchAdasAutoPilotLocReceiverBean msgData){ + if(isShowing()){ + return; + } + if (msgData == null) { + return; + } + if (dialog != null && dialog.isShowing()) { //避免下发两次 + return; + } + if(dialog == null){ + dialog = new DispatchRestartDialog(mContext); + } + dialog.showDialog(msgData); + } + private void dispatchHengYang(DispatchAdasAutoPilotLocReceiverBean msgData) { // if (msgData.getType() == DISPATCH_TYPE_START) { //衡阳只有开始调度 // } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/DispatchRestartDialog.java b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/DispatchRestartDialog.java new file mode 100644 index 0000000000..341234ee7e --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/DispatchRestartDialog.java @@ -0,0 +1,29 @@ +package com.mogo.eagle.core.function.hmi.ui.notice; + +import android.content.Context; +import android.widget.TextView; + +import androidx.annotation.NonNull; + +import com.mogo.eagle.core.data.biz.dispatch.DispatchAdasAutoPilotLocReceiverBean; +import com.mogo.eagle.core.function.call.biz.CallerFuncBizManager; +import com.mogo.eagle.core.function.hmi.R; + +public class DispatchRestartDialog extends DispatchBaseDialog{ + + public DispatchRestartDialog(@NonNull Context context) { + super(context); + setContentView(R.layout.dialog_adas_dispatch_restart); + setCanceledOnTouchOutside(false); + TextView dispatchRestartEnter = findViewById(R.id.tv_dispatch_restart_enter); + dispatchRestartEnter.setOnClickListener(v -> { + //启动自动驾驶 + CallerFuncBizManager.getBizProvider().restartDispatchAffirm(); + }); + } + + @Override + public void showDialog(DispatchAdasAutoPilotLocReceiverBean dispatchContent) { + show(); + } +} diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/dialog_adas_dispatch_restart.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/dialog_adas_dispatch_restart.xml new file mode 100644 index 0000000000..94e7f1ece3 --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/dialog_adas_dispatch_restart.xml @@ -0,0 +1,55 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/values/strings.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/values/strings.xml index 81a4373158..325ba8e816 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/values/strings.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/values/strings.xml @@ -63,6 +63,9 @@ 航班信息: 接受任务 调度确认 + 提示 + 当前车辆已退出自动驾驶,请点击下方按钮恢复 + 进入自动驾驶 车辆将开启自动驾驶,并行驶至: 确认 取消 diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/biz/IMoGoFuncBizProvider.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/biz/IMoGoFuncBizProvider.kt index a14a34fe90..def198adbf 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/biz/IMoGoFuncBizProvider.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/biz/IMoGoFuncBizProvider.kt @@ -46,6 +46,11 @@ interface IMoGoFuncBizProvider : IMoGoFunctionServerProvider { */ fun stopDispatchCancel(manualTrigger: Boolean) + /** + * 调度重启自驾确认 + */ + fun restartDispatchAffirm() + /** * 调度测试 */ diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/warning/IMoGoHmiProvider.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/warning/IMoGoHmiProvider.kt index c63df8e10a..b638739c28 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/warning/IMoGoHmiProvider.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/warning/IMoGoHmiProvider.kt @@ -107,6 +107,11 @@ interface IMoGoHmiProvider :IProvider{ */ fun dismissDispatchDialog() + /** + * 调度重启自驾弹窗展示 + */ + fun showDispatchRestartDialog(msgData: DispatchAdasAutoPilotLocReceiverBean) + /** * 设置状态栏暗夜或明亮模式 * 默认 light diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerHmiManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerHmiManager.kt index 5fd0254199..0b412adf03 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerHmiManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerHmiManager.kt @@ -165,6 +165,12 @@ object CallerHmiManager { hmiProviderApi?.dismissDispatchDialog() } + /** + * 云调度重启自驾弹窗 + */ + fun showDispatchRestartDialog(msgData: DispatchAdasAutoPilotLocReceiverBean){ + hmiProviderApi?.showDispatchRestartDialog(msgData) + } fun showVideoDialog(infList: List) { hmiProviderApi?.showVideoDialog(infList)