diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/layout/taxi_p_base_fragment.xml b/OCH/mogo-och-taxi-passenger/src/main/res/layout/taxi_p_base_fragment.xml index 4c54205202..5473f300af 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/res/layout/taxi_p_base_fragment.xml +++ b/OCH/mogo-och-taxi-passenger/src/main/res/layout/taxi_p_base_fragment.xml @@ -82,7 +82,6 @@ android:layout_width="650dp" android:layout_height="wrap_content" android:layout_marginBottom="20dp" - android:visibility="gone" app:layout_constraintBottom_toTopOf="@id/viewPassengerMsgBoxButton" app:layout_constraintLeft_toLeftOf="@id/viewPassengerMsgBoxButton" app:layout_constraintRight_toRightOf="@id/viewPassengerMsgBoxButton" /> diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/constant/TaxiConst.kt b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/constant/TaxiConst.kt index 9fb2851746..9b7e82ade1 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/constant/TaxiConst.kt +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/constant/TaxiConst.kt @@ -49,6 +49,7 @@ class TaxiConst { const val EVENT_PARAM_TIME = "time" const val EVENT_PARAM_START_NAME = "start_name" const val EVENT_PARAM_END_NAME = "end_name" + const val EVENT_PARAM_LINE_ID = "line_id" const val EVENT_PARAM_ORDER_NUMBER = "order_num" const val EVENT_PARAM_START_RESULT = "start_autopilot" // true/false const val EVENT_PARAM_START_FAILURE_CODE = "start_autopilot_failure_code" // 启动自驾失败code diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiModel.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiModel.java index 4201b9d844..d0d6536505 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiModel.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiModel.java @@ -1,10 +1,5 @@ package com.mogo.och.taxi.model; -import static com.mogo.eagle.core.data.deva.chain.ChainConstant.CHAIN_ALIAS_CODE_OCH_TAXI_START_AUTOPILOT; -import static com.mogo.eagle.core.data.deva.chain.ChainConstant.CHAIN_LINK_ADAS; -import static com.mogo.eagle.core.data.deva.chain.ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_AUTOPILOT; -import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAXI; - import android.content.Context; import android.content.Intent; import android.net.ConnectivityManager; @@ -96,6 +91,11 @@ import mogo.telematics.pad.MessagePad; import mogo_msg.MogoReportMsg; import system_master.SystemStatusInfo; +import static com.mogo.eagle.core.data.deva.chain.ChainConstant.CHAIN_ALIAS_CODE_OCH_TAXI_START_AUTOPILOT; +import static com.mogo.eagle.core.data.deva.chain.ChainConstant.CHAIN_LINK_ADAS; +import static com.mogo.eagle.core.data.deva.chain.ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_AUTOPILOT; +import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAXI; + /** * Created by pangfan on 2021/8/19 *

@@ -942,7 +942,7 @@ public class TaxiModel { + "isRestartAutopilot = "+isRestartAutopilot); TaxiAnalyticsManager.getInstance().triggerStartAutopilotEvent(isRestartAutopilot, false, - mCurrentOCHOrder.startSiteAddr, mCurrentOCHOrder.endSiteAddr, mCurrentOCHOrder.orderNo); + mCurrentOCHOrder.startSiteAddr, mCurrentOCHOrder.endSiteAddr, mCurrentOCHOrder.lineId, mCurrentOCHOrder.orderNo); if (mControllerStatusCallback != null) { mControllerStatusCallback.startOpenAutopilot(); @@ -1173,7 +1173,7 @@ public class TaxiModel { mPrevAPStatus = state; // 每个状态单独赋值,解决无订单时已经是2的状态导致的新订单来时无法进入此逻辑更新状态 TaxiAnalyticsManager.getInstance().triggerStartAutopilotEvent(isRestartAutopilot, true, - mCurrentOCHOrder.startSiteAddr, mCurrentOCHOrder.endSiteAddr, mCurrentOCHOrder.orderNo); + mCurrentOCHOrder.startSiteAddr, mCurrentOCHOrder.endSiteAddr, mCurrentOCHOrder.lineId, mCurrentOCHOrder.orderNo); if (FunctionBuildConfig.isDemoMode) { // 当美化模式(演示模式)开启时: 订单对应自动驾驶开启后,置true FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData = true; diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/utils/TaxiAnalyticsManager.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/utils/TaxiAnalyticsManager.java index 49e2bd29bf..c0e75d16ad 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/utils/TaxiAnalyticsManager.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/utils/TaxiAnalyticsManager.java @@ -86,7 +86,7 @@ public class TaxiAnalyticsManager { * @param send 是否直接发送埋点(15s内开启成功则直接发送成功埋点) */ public void triggerStartAutopilotEvent( - boolean restart, boolean send, String startName, String endName, String orderNo) { + boolean restart, boolean send, String startName, String endName, long lineId, String orderNo) { mStartAutopilotKey = restart ? TaxiConst.EVENT_KEY_RESTART_AUTOPILOT : TaxiConst.EVENT_KEY_START_SERVICE; String sn = MoGoAiCloudClientConfig.getInstance().getSn(); @@ -101,6 +101,7 @@ public class TaxiAnalyticsManager { mStartAutopilotParams.put(TaxiConst.EVENT_PARAM_TIME, dateTime); mStartAutopilotParams.put(TaxiConst.EVENT_PARAM_START_NAME, startName); mStartAutopilotParams.put(TaxiConst.EVENT_PARAM_END_NAME, endName); + mStartAutopilotParams.put(TaxiConst.EVENT_PARAM_LINE_ID, lineId); mStartAutopilotParams.put(TaxiConst.EVENT_PARAM_ORDER_NUMBER, orderNo); // CallerLogger.INSTANCE.d(M_TAXI + "埋点==","restart = "+restart+", send= "+send); diff --git a/app/urlConfig.json b/app/urlConfig.json index a767ba07c1..adb70908aa 100644 --- a/app/urlConfig.json +++ b/app/urlConfig.json @@ -8,7 +8,8 @@ "socket_tech_url": "", "eagle_mis_url": "", "eagle_dns_url": "", - "bind_driver_qr_url": "" + "bind_driver_qr_url": "", + "chart_socket_url":"" }, "online": { "och_url": "https://tech.zhidaohulian.com", @@ -18,7 +19,8 @@ "socket_tech_url": "", "eagle_mis_url": "", "eagle_dns_url": "", - "bind_driver_qr_url": "" + "bind_driver_qr_url": "", + "chart_socket_url":"" }, "demo": { "och_url": "http://tech-dev.zhidaohulian.com", @@ -28,7 +30,8 @@ "socket_tech_url": "", "eagle_mis_url": "", "eagle_dns_url": "", - "bind_driver_qr_url": "" + "bind_driver_qr_url": "", + "chart_socket_url":"" } }, "dali": { @@ -40,17 +43,19 @@ "socket_tech_url": "https://och-a.zhidaozhixing.com/arch/", "eagle_mis_url": "http://eagle-mis-a.zhidaozhixing.com/", "eagle_dns_url": "http://eagle-dns-a.zhidaozhixing.com/", - "bind_driver_qr_url": "https://tech.zhidaohulian.com?pipe=asafety&sn=%1$s" + "bind_driver_qr_url": "https://tech.zhidaohulian.com?pipe=asafety&sn=%1$s", + "chart_socket_url":"wss://acp-eh.zhidaozhixing.com/ws" }, "online": { - "och_url": "https://och-driver-eh.zhidaozhixing.com:18182", - "shuttle_url": "https://och-driver-eh.zhidaozhixing.com:18182", - "passport_url": "https://och-driver-eh.zhidaozhixing.com:18182/arch/passport/", - "socket_base_url": "https://och-driver-eh.zhidaozhixing.com:18182/arch/push/", - "socket_tech_url": "https://och-driver-eh.zhidaozhixing.com:18182/arch/", - "eagle_mis_url": "https://och-hailing-eh.zhidaozhixing.com:18182/", - "eagle_dns_url": "https://och-hailing-eh.zhidaozhixing.com:18182/", - "bind_driver_qr_url": "https://tech.zhidaohulian.com?pipe=ehsafety&sn=%1$s" + "och_url": "https://och-driver-eh.zhidaozhixing.com", + "shuttle_url": "https://och-driver-eh.zhidaozhixing.com", + "passport_url": "https://och-driver-eh.zhidaozhixing.com/arch/passport/", + "socket_base_url": "https://och-driver-eh.zhidaozhixing.com/arch/push/", + "socket_tech_url": "https://och-driver-eh.zhidaozhixing.com/arch/", + "eagle_mis_url": "https://och-hailing-eh.zhidaozhixing.com/", + "eagle_dns_url": "https://och-hailing-eh.zhidaozhixing.com/", + "bind_driver_qr_url": "https://tech.zhidaohulian.com?pipe=ehsafety&sn=%1$s", + "chart_socket_url":"wss://acp-eh.zhidaozhixing.com/ws" }, "demo": { "och_url": "https://och-a.zhidaozhixing.com", @@ -58,9 +63,10 @@ "passport_url": "https://och-a.zhidaozhixing.com/arch/passport/", "socket_base_url": "https://och-a.zhidaozhixing.com/arch/push/", "socket_tech_url": "https://och-a.zhidaozhixing.com/arch/", - "eagle_mis_url": "http://och-hailing-eh.zhidaozhixing.com:18181/", - "eagle_dns_url": "http://och-hailing-eh.zhidaozhixing.com:18181/", - "bind_driver_qr_url": "https://tech.zhidaohulian.com?pipe=ehsafety&sn=%1$s" + "eagle_mis_url": "http://och-hailing-eh.zhidaozhixing.com/", + "eagle_dns_url": "http://och-hailing-eh.zhidaozhixing.com/", + "bind_driver_qr_url": "https://tech.zhidaohulian.com?pipe=ehsafety&sn=%1$s", + "chart_socket_url":"wss://acp-eh.zhidaozhixing.com/ws" } }, "yantai": { @@ -72,7 +78,8 @@ "socket_tech_url": "https://och-a.zhidaozhixing.com/arch/", "eagle_mis_url": "http://eagle-mis-a.zhidaozhixing.com/", "eagle_dns_url": "http://eagle-dns-a.zhidaozhixing.com/", - "bind_driver_qr_url": "https://tech.zhidaohulian.com?pipe=asafety&sn=%1$s" + "bind_driver_qr_url": "https://tech.zhidaohulian.com?pipe=asafety&sn=%1$s", + "chart_socket_url":"" }, "online": { "och_url": "https://och-driver-yt.zhidaozhixing.com", @@ -82,7 +89,8 @@ "socket_tech_url": "https://och-driver-yt.zhidaozhixing.com/arch/", "eagle_mis_url": "https://och-hailing-yt.zhidaozhixing.com/", "eagle_dns_url": "https://och-hailing-yt.zhidaozhixing.com/", - "bind_driver_qr_url": "https://tech.zhidaohulian.com?pipe=ytsafety&sn=%1$s" + "bind_driver_qr_url": "https://tech.zhidaohulian.com?pipe=ytsafety&sn=%1$s", + "chart_socket_url":"" }, "demo": { "och_url": "https://och-a.zhidaozhixing.com", @@ -92,7 +100,8 @@ "socket_tech_url": "https://och-a.zhidaozhixing.com/arch/", "eagle_mis_url": "http://eagle-mis-a.zhidaozhixing.com/", "eagle_dns_url": "http://eagle-dns-a.zhidaozhixing.com/", - "bind_driver_qr_url": "https://tech.zhidaohulian.com?pipe=ytsafety&sn=%1$s" + "bind_driver_qr_url": "https://tech.zhidaohulian.com?pipe=ytsafety&sn=%1$s", + "chart_socket_url":"" } } } 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-chat/src/main/java/com/mogo/eagle/core/function/chat/facade/consts/Consts.kt b/core/function-impl/mogo-core-function-chat/src/main/java/com/mogo/eagle/core/function/chat/facade/consts/Consts.kt index 9bf65b3dcf..8ae3a7a508 100644 --- a/core/function-impl/mogo-core-function-chat/src/main/java/com/mogo/eagle/core/function/chat/facade/consts/Consts.kt +++ b/core/function-impl/mogo-core-function-chat/src/main/java/com/mogo/eagle/core/function/chat/facade/consts/Consts.kt @@ -1,6 +1,7 @@ package com.mogo.eagle.core.function.chat.facade.consts import com.mogo.commons.debug.DebugConfig +import com.mogo.eagle.core.data.config.FunctionBuildConfig //WebSocket发送数据相关 const val SOCKET_HAND_SHAKE = 0 @@ -60,10 +61,14 @@ class ChatHttp { } fun getSocketServer(): String { - return when (DebugConfig.getNetMode()) { - DebugConfig.NET_MODE_DEV, DebugConfig.NET_MODE_QA, DebugConfig.NET_MODE_DEMO -> DEV_SOCKET_SERVER - DebugConfig.NET_MODE_RELEASE -> SOCKET_SERVER - else -> SOCKET_SERVER + if(FunctionBuildConfig.urlJson.chartSocketUrl.isEmpty()){ + return when (DebugConfig.getNetMode()) { + DebugConfig.NET_MODE_DEV, DebugConfig.NET_MODE_QA, DebugConfig.NET_MODE_DEMO -> DEV_SOCKET_SERVER + DebugConfig.NET_MODE_RELEASE -> SOCKET_SERVER + else -> SOCKET_SERVER + } + }else{ + return FunctionBuildConfig.urlJson.chartSocketUrl } } 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/msgbox/MBoxBubbleView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/MBoxBubbleView.kt index 42ff1b43d0..42f7fa8178 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/MBoxBubbleView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/MBoxBubbleView.kt @@ -19,6 +19,9 @@ import com.mogo.eagle.core.function.msgbox.MsgBoxConfig import com.mogo.eagle.core.utilcode.util.UiThreadHandler import kotlinx.android.synthetic.main.layout_m_box_bubble.view.* +/** + * M2气泡态消息盒子 + */ class MBoxBubbleView @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null, diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/BusPassengerMsgBoxBubbleAdapter.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/BusPassengerMsgBoxBubbleAdapter.kt index a64c894066..196baac151 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/BusPassengerMsgBoxBubbleAdapter.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/BusPassengerMsgBoxBubbleAdapter.kt @@ -80,6 +80,7 @@ class BusPassengerMsgBoxBubbleAdapter(private val activity: Activity): RecyclerV holder.tvBusPV2XContent.text = v2XMsg.content holder.ivBusPV2XImage.setImageDrawable(activity.resources.getDrawable( EventTypeEnumNew.getUpdateIconRes(v2XMsg.type))) + holder.tvBusPV2XTitle.text = EventTypeEnumNew.getEventTitle(v2XMsg.type) } } } @@ -125,6 +126,7 @@ class BusPassengerMsgBoxBubbleAdapter(private val activity: Activity): RecyclerV var ivBusPV2XImage: ImageView = itemView.findViewById(R.id.ivBusPV2XImage) var tvBusPV2XTime: TextView = itemView.findViewById(R.id.tvBusPV2XTime) var tvBusPV2XContent: TextView = itemView.findViewById(R.id.tvBusPV2XContent) + var tvBusPV2XTitle: TextView = itemView.findViewById(R.id.tvBusPV2XTitle) } //运营消息 diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/DriverMsgBoxBubbleAdapter.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/DriverMsgBoxBubbleAdapter.kt index 466e5bf5a6..408fb9fcf3 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/DriverMsgBoxBubbleAdapter.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/DriverMsgBoxBubbleAdapter.kt @@ -181,6 +181,7 @@ class DriverMsgBoxBubbleAdapter(private val activity: Activity) : RecyclerView.A holder.clV2XLayout.setOnClickListener { CallerMsgBoxEventListenerManager.invokeBubbleV2XListener(msgBoxBean) } + holder.tvV2XTitle.text = EventTypeEnumNew.getEventTitle(v2XMsg.type) } } is BubbleSummaryHolder -> { @@ -275,6 +276,7 @@ class DriverMsgBoxBubbleAdapter(private val activity: Activity) : RecyclerView.A var tvV2XTime: TextView = itemView.findViewById(R.id.tvV2XTime) var tvV2XContent: TextView = itemView.findViewById(R.id.tvV2XContent) var clV2XLayout: RoundCanClickConstraintLayout = itemView.findViewById(R.id.clV2XLayout) + var tvV2XTitle: TextView = itemView.findViewById(R.id.tvV2XTitle) } //汇总消息 diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/DriverMsgBoxListAdapter.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/DriverMsgBoxListAdapter.kt index 6c27709cbf..a31166ff14 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/DriverMsgBoxListAdapter.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/DriverMsgBoxListAdapter.kt @@ -369,6 +369,7 @@ class DriverMsgBoxListAdapter(private val activity: Activity) : holder.ivV2XImage.setImageDrawable(activity.resources.getDrawable( EventTypeEnumNew.getUpdateIconRes(v2XMsg.type)) ) + holder.tvV2XTitle.text = EventTypeEnumNew.getEventTitle(v2XMsg.type) } } is MsgBoxSummary -> { @@ -472,6 +473,7 @@ class DriverMsgBoxListAdapter(private val activity: Activity) : var ivV2XImage: ImageView = itemView.findViewById(R.id.ivV2XImage) var tvV2XTime: TextView = itemView.findViewById(R.id.tvV2XTime) var tvV2XContent: TextView = itemView.findViewById(R.id.tvV2XContent) + var tvV2XTitle: TextView = itemView.findViewById(R.id.tvV2XTitle) } //汇总消息 diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/MBoxBubbleAdapter.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/MBoxBubbleAdapter.kt index 83842d19e9..ef6669cb99 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/MBoxBubbleAdapter.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/MBoxBubbleAdapter.kt @@ -82,6 +82,7 @@ class MBoxBubbleAdapter(private val activity: Activity): RecyclerView.Adapter { @@ -179,6 +180,7 @@ class MMsgBoxBubbleAdapter(private val activity: Activity): RecyclerView.Adapter var tvMV2XTime: TextView = itemView.findViewById(R.id.tvMV2XTime) var tvMV2XContent: TextView = itemView.findViewById(R.id.tvMV2XContent) var clMVeXLayout: RoundCanClickConstraintLayout = itemView.findViewById(R.id.clMVeXLayout) + var tvMV2XTitle: TextView = itemView.findViewById(R.id.tvMV2XTitle) } //汇总消息 diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/MMsgBoxListAdapter.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/MMsgBoxListAdapter.kt index 62172a1ff6..aa1ef8a854 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/MMsgBoxListAdapter.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/MMsgBoxListAdapter.kt @@ -100,6 +100,7 @@ class MMsgBoxListAdapter(private val activity: Activity): RecyclerView.Adapter { @@ -155,6 +156,7 @@ class MMsgBoxListAdapter(private val activity: Activity): RecyclerView.Adapter { @@ -167,6 +168,7 @@ class PassengerMsgBoxBubbleAdapter(private val activity: Activity): RecyclerView var tvPassengerV2XTime: TextView = itemView.findViewById(R.id.tvPassengerV2XTime) var tvPassengerV2XContent: TextView = itemView.findViewById(R.id.tvPassengerV2XContent) var clPassengerVeXLayout: RoundCanClickConstraintLayout = itemView.findViewById(R.id.clPassengerVeXLayout) + var tvPassengerV2XTitle: TextView = itemView.findViewById(R.id.tvPassengerV2XTitle) } //汇总消息 diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/PassengerMsgBoxListAdapter.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/PassengerMsgBoxListAdapter.kt index 3db034d364..21ae03bffc 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/PassengerMsgBoxListAdapter.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/PassengerMsgBoxListAdapter.kt @@ -97,6 +97,7 @@ class PassengerMsgBoxListAdapter(private val activity: Activity): RecyclerView.A holder.tvPassengerV2XContent.text = v2XMsg.content holder.ivPassengerV2XImage.setImageDrawable(activity.resources.getDrawable( EventTypeEnumNew.getUpdateIconRes(v2XMsg.type))) + holder.tvPassengerV2XTitle.text = EventTypeEnumNew.getEventTitle(v2XMsg.type) } } is ListSummaryHolder -> { @@ -140,6 +141,7 @@ class PassengerMsgBoxListAdapter(private val activity: Activity): RecyclerView.A var ivPassengerV2XImage: ImageView = itemView.findViewById(R.id.ivPassengerV2XImage) var tvPassengerV2XTime: TextView = itemView.findViewById(R.id.tvPassengerV2XTime) var tvPassengerV2XContent: TextView = itemView.findViewById(R.id.tvPassengerV2XContent) + var tvPassengerV2XTitle: TextView = itemView.findViewById(R.id.tvPassengerV2XTitle) } //汇总消息 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/java/com/mogo/eagle/core/function/hmi/ui/tools/AutoPilotAndCheckView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/AutoPilotAndCheckView.kt index 9b3d026e83..af151c2bc2 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/AutoPilotAndCheckView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/AutoPilotAndCheckView.kt @@ -9,8 +9,8 @@ import android.os.Process import android.util.AttributeSet import android.view.LayoutInflater import android.view.View +import android.view.View.OnTouchListener import android.widget.FrameLayout -import com.mogo.commons.debug.DebugConfig import com.mogo.eagle.core.data.app.AppConfigInfo import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo import com.mogo.eagle.core.data.deva.bindingcar.IPCUpgradeStateInfo @@ -31,6 +31,7 @@ import mogo.telematics.pad.MessagePad import org.greenrobot.eventbus.EventBus import kotlin.system.exitProcess + /** * @author ChenFufeng * 设置自动驾驶速度和检测页入口 @@ -69,29 +70,44 @@ internal class AutoPilotAndCheckView @JvmOverloads constructor( @SuppressLint("ClickableViewAccessibility") private fun initView() { background = ColorDrawable(Color.parseColor("#F0151D41")) - - keyBoardUtil?.setActionListener { inputContent -> - inputContent.toIntOrNull()?.let { speed -> - when { - speed > 60 -> { - // 设置失败键盘不消失,让用户直接修改 - ToastUtils.showShort("超过最大限速值60,设置失败") - } - else -> { - // 设置自动驾驶速度 - val isSuccess = CallerAutoPilotControlManager.setAutoPilotSpeed(speed) - when { - isSuccess -> { - ToastUtils.showShort("车速设置成功,立即生效") - } - else -> { - ToastUtils.showShort("设置车速失败,请启动域控制器") + if (keyBoardUtil == null) { + keyBoardUtil = KeyBoardUtil(sKeyBoardView, etInputSpeed) + } + keyBoardUtil?.setActionListener(object: KeyBoardUtil.ActionListener{ + override fun onComplete(inputContent: String?) { + inputContent?.toIntOrNull()?.let { speed -> + when { + speed > 60 -> { + // 设置失败键盘不消失,让用户直接修改 + ToastUtils.showShort("超过最大限速值60,设置失败") + } + else -> { + keyBoardUtil?.hideKeyboard() + etInputSpeed.clearFocus() + // 设置自动驾驶速度 + val isSuccess = CallerAutoPilotControlManager.setAutoPilotSpeed(speed) + when { + isSuccess -> { + ToastUtils.showShort("车速设置成功,立即生效") + } + else -> { + ToastUtils.showShort("设置车速失败,请启动域控制器") + } } } } } } - } + + override fun onUpdate(inputContent: String?) { + if (inputContent != null) { + speedLimit = inputContent.toInt() + } + } + + }) + + KeyBoardUtil.hideSystemSoftKeyboard(context, etInputSpeed) ivCloseIcon.setOnClickListener { clickListener?.onClose(it) } @@ -123,15 +139,37 @@ internal class AutoPilotAndCheckView @JvmOverloads constructor( // } tvAcceleration.text = "每次调整车速±5km/h,点击确定生效" if (speedLimit > 0) { - tvSpeed.text = speedLimit.toString() + etInputSpeed.setText(speedLimit.toString()) }else{ - tvSpeed.text = "0" + etInputSpeed.setText("0") } + etInputSpeed.setOnTouchListener { _, _ -> + val curTime = System.currentTimeMillis() + if (curTime - lastTime < 1000) { + return@setOnTouchListener true + } + etInputSpeed.isFocusableInTouchMode = true + if (keyBoardUtil == null) { + keyBoardUtil = KeyBoardUtil(sKeyBoardView, etInputSpeed) + } + keyBoardUtil?.showKeyboard() + //滑动滚动条 + svLayout.post { + svLayout.fullScroll(View.FOCUS_DOWN) + } + if (!connectStatus) { + ToastUtils.showShort("设置车速失败,请启动域控制器") + keyBoardUtil?.hideKeyboard() + return@setOnTouchListener true + } else { + return@setOnTouchListener false + } + } ivSpeedReduce.setOnClickListener { if(speedLimit>=5){ speedLimit -= 5 - tvSpeed.text = speedLimit.toString() + etInputSpeed.setText(speedLimit.toString()) }else{ ToastUtils.showShort("车速不能再减了") } @@ -140,7 +178,7 @@ internal class AutoPilotAndCheckView @JvmOverloads constructor( ivSpeedAdd.setOnClickListener { if(speedLimit<=55){ speedLimit += 5 - tvSpeed.text = speedLimit.toString() + etInputSpeed.setText(speedLimit.toString()) }else{ ToastUtils.showShort("车速不能再加了") } @@ -148,11 +186,16 @@ internal class AutoPilotAndCheckView @JvmOverloads constructor( //速度确认 tvSureModify.setOnClickListener { + if(speedLimit>60){ + // 设置失败键盘不消失,让用户直接修改 + ToastUtils.showShort("超过最大限速值60,设置失败") + return@setOnClickListener + } val isSuccess = CallerAutoPilotControlManager.setAutoPilotSpeed(speedLimit) when { isSuccess -> { //速度显示 - tvSpeed.text = speedLimit.toString() + etInputSpeed.setText(speedLimit.toString()) ToastUtils.showShort("车速设置成功,立即生效") } else -> { @@ -230,7 +273,7 @@ internal class AutoPilotAndCheckView @JvmOverloads constructor( // } maxAcceleration = carConfigResp.maxAcceleration speedLimit = (carConfigResp.speedLimit * 3.6).toInt() - tvSpeed.text = speedLimit.toString() + etInputSpeed.setText(speedLimit.toString()) } } } \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/utils/KeyBoardUtil.java b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/utils/KeyBoardUtil.java index 8b826a2255..b06500228f 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/utils/KeyBoardUtil.java +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/utils/KeyBoardUtil.java @@ -6,6 +6,7 @@ import android.inputmethodservice.KeyboardView; import android.os.Build; import android.text.Editable; import android.text.InputType; +import android.util.Log; import android.view.View; import android.view.inputmethod.InputMethodManager; import android.widget.EditText; @@ -78,6 +79,9 @@ public class KeyBoardUtil { editable.delete(start - 1, start); } } + if(actionListener != null){ + actionListener.onUpdate(editText.getText().toString()); + } break; case Keyboard.KEYCODE_DONE: if (actionListener != null) { @@ -86,6 +90,9 @@ public class KeyBoardUtil { break; default: editable.insert(start, Character.toString((char) primaryCode)); + if(actionListener != null){ + actionListener.onUpdate(editText.getText().toString()); + } break; } } @@ -133,5 +140,6 @@ public class KeyBoardUtil { public interface ActionListener { void onComplete(String inputContent); + void onUpdate(String inputContent); } } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/bg_msg_box_v2x.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/bg_msg_box_v2x.png new file mode 100644 index 0000000000..d41c75bc33 Binary files /dev/null and b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/bg_msg_box_v2x.png differ 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/layout/item_bus_box_v2x.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_bus_box_v2x.xml index 1c4c09f901..d787ce3fb9 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_bus_box_v2x.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_bus_box_v2x.xml @@ -19,14 +19,26 @@ android:layout_marginStart="@dimen/dp_26" /> + + @@ -35,16 +47,14 @@ android:id="@+id/tvBusPV2XContent" android:layout_width="0dp" android:layout_height="wrap_content" - app:layout_constraintTop_toTopOf="parent" + app:layout_constraintLeft_toLeftOf="@id/tvBusPV2XTitle" + app:layout_constraintRight_toRightOf="@id/tvBusPV2XTime" + app:layout_constraintTop_toBottomOf="@id/tvBusPV2XTitle" app:layout_constraintBottom_toBottomOf="parent" - app:layout_constraintLeft_toRightOf="@id/ivBusPV2XImage" - app:layout_constraintRight_toLeftOf="@id/tvBusPV2XTime" - android:layout_marginStart="@dimen/dp_26" - android:layout_marginEnd="@dimen/dp_16" - android:textColor="#FF203555" - android:textSize="@dimen/dp_36" + android:textColor="#CC203555" + android:textSize="@dimen/dp_28" android:gravity="start" - android:maxLines="1" + android:maxLines="2" android:ellipsize="end" /> diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_box_notice.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_box_notice.xml index 4f6a9e0465..75d41bf8bf 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_box_notice.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_box_notice.xml @@ -1,6 +1,6 @@ + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_box_v2x.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_box_v2x.xml index 27ae52a175..6f5eb37a39 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_box_v2x.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_box_v2x.xml @@ -19,12 +19,25 @@ android:layout_marginStart="@dimen/dp_13" /> + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_list_v2x.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_list_v2x.xml index deddc8f6e2..37f11a7689 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_list_v2x.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_list_v2x.xml @@ -14,12 +14,25 @@ android:layout_marginStart="@dimen/dp_16" /> + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_msg_box_v2x.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_msg_box_v2x.xml index ef36f539a0..394a6676bb 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_msg_box_v2x.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_msg_box_v2x.xml @@ -3,8 +3,7 @@ android:layout_width="804dp" android:layout_height="160dp" xmlns:app="http://schemas.android.com/apk/res-auto" - android:background="#53000000" - app:roundLayoutRadius="24dp" + android:background="@drawable/bg_msg_box_v2x" android:layout_gravity="center_horizontal" android:layout_marginStart="30dp" android:layout_marginEnd="30dp" @@ -20,11 +19,24 @@ app:layout_constraintLeft_toLeftOf="parent" android:layout_margin="25dp"/> + + diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_msg_bubble_v2x.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_msg_bubble_v2x.xml index 9888e42f87..80adf656b8 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_msg_bubble_v2x.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_msg_bubble_v2x.xml @@ -1,14 +1,14 @@ + android:layout_marginBottom="7dp" + > + + diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_passenger_msg_box_v2x.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_passenger_msg_box_v2x.xml index fbe95e1a36..3aae086477 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_passenger_msg_box_v2x.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_passenger_msg_box_v2x.xml @@ -20,32 +20,42 @@ /> + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_passenger_msg_list_v2x.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_passenger_msg_list_v2x.xml index a323fe7515..227d4c0f8d 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_passenger_msg_list_v2x.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_passenger_msg_list_v2x.xml @@ -14,31 +14,41 @@ /> + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/layout_m_box_bubble.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/layout_m_box_bubble.xml index f70a509ba8..7bfd821501 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/layout_m_box_bubble.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/layout_m_box_bubble.xml @@ -1,7 +1,7 @@ diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_auto_pilot_check.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_auto_pilot_check.xml index 6b77eb7543..86fe2cf08a 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_auto_pilot_check.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_auto_pilot_check.xml @@ -6,6 +6,7 @@ android:layout_height="match_parent"> - @@ -268,8 +271,8 @@ android:textColor="@android:color/white" android:textSize="42dp" android:layout_marginLeft="50dp" - app:layout_constraintTop_toTopOf="@id/tvSpeed" - app:layout_constraintBottom_toBottomOf="@id/tvSpeed" + app:layout_constraintTop_toTopOf="@id/etInputSpeed" + app:layout_constraintBottom_toBottomOf="@id/etInputSpeed" app:layout_constraintLeft_toRightOf="@id/tvUnit" tools:visibility="visible" /> 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-data/src/main/java/com/mogo/eagle/core/data/app/UrlConfig.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/app/UrlConfig.kt index 0e3e9d89e2..29b5fd2374 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/app/UrlConfig.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/app/UrlConfig.kt @@ -18,5 +18,7 @@ data class UrlConfig( @SerializedName("eagle_dns_url") val eagleDnsUrl: String, @SerializedName("bind_driver_qr_url") - val bindDriverQRUrl: String + val bindDriverQRUrl: String, + @SerializedName("chart_socket_url") + val chartSocketUrl: String ) \ No newline at end of file diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/EventTypeEnumNew.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/EventTypeEnumNew.kt index aea8bbfd7e..fa74444d2d 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/EventTypeEnumNew.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/EventTypeEnumNew.kt @@ -108,24 +108,24 @@ enum class EventTypeEnumNew( //接管 TAKE_OVER_EVENT( - "20000", "注意周围、立即接管", "注意周围、立即接管", R.drawable.icon_warning_take_over, + "20000", "接管", "注意周围、立即接管", R.drawable.icon_warning_take_over, "注意周围、立即接管", "自动驾驶退出请立即接管" ), // 前方静止or慢速车辆报警 - ALERT_FRONT_CAR("99999"), + ALERT_FRONT_CAR("99999","前方预警"), // 限行管理 ALERT_TRAFFIC_CONTROL("99998"), // 红绿灯事件、是建议以多少速度驶过 - ALERT_TRAFFIC_LIGHT_SUGGEST("99997"), + ALERT_TRAFFIC_LIGHT_SUGGEST("99997","红绿灯"), // 红绿灯事件、一种是绿灯不足3秒 - ALERT_TRAFFIC_LIGHT_WARNING("99996"), + ALERT_TRAFFIC_LIGHT_WARNING("99996","红绿灯"), // 故障车辆 - ALERT_CAR_TROUBLE_WARNING("20007"), + ALERT_CAR_TROUBLE_WARNING("20007","故障车辆"), // 疲劳驾驶 ALERT_FATIGUE_DRIVING("99993"), @@ -219,28 +219,28 @@ enum class EventTypeEnumNew( //---------弱势交通参与者 obu and cloud start ------> TYPE_USECASE_ID_VRUCW_MOTOR_VEHICLES( 1001.toString(), - "弱势交通参与者碰撞预警", + "碰撞预警", poiTypeSrcVr = R.drawable.icon_warning_v2x_motorcycle_collision, content = "注意摩托车", tts = "注意摩托车" ), TYPE_USECASE_ID_VRUCW_NOT_MOTOR_VEHICLES( 1002.toString(), - "弱势交通参与者碰撞预警", + "碰撞预警", poiTypeSrcVr = R.drawable.icon_warning_v2x_motobike, content = "注意非机动车", tts = "注意非机动车" ), TYPE_USECASE_ID_VRUCW_PERSON( 1003.toString(), - "弱势交通参与者碰撞预警", + "碰撞预警", poiTypeSrcVr = R.drawable.icon_warning_v2x_pedestrian_crossing, content = "注意行人", tts = "注意行人" ), TYPE_ERROR_WEAKNESS( 1006.toString(), - "未知/错误/异常", + "未知障碍物", poiTypeSrcVr = R.drawable.icon_warning_v2x_abnormal_vehicle, content = "前方有未知障碍物", tts = "前方有未知障碍物" @@ -397,7 +397,7 @@ enum class EventTypeEnumNew( ), TYPE_NO_PASSING( 51.toString(), - "不通", + "道路不通", poiTypeSrcVr = R.drawable.v2x_icon_fenglu_vr, content = "前方%s米不通", tts = "前方%s米不通" @@ -470,7 +470,7 @@ enum class EventTypeEnumNew( TYPE_SOCKET_ROAD_JINGZHI( "100251", - "前方%s米静止障碍物占道", + "静止障碍物占道", poiTypeSrcVr = R.drawable.v2x_icon_jingzhi_zhangai, content = "前方%s米静止障碍物占道", tts = "前方%s米静止障碍物占道" @@ -478,7 +478,7 @@ enum class EventTypeEnumNew( TYPE_SOCKET_ROAD_SHIGU( "100321", - "前方%s米道路事故", + "道路事故", poiTypeSrcVr = R.drawable.v2x_icon_shigu_sanjiaopai, content = "前方%s米道路事故", tts = "前方%s米道路事故" @@ -486,7 +486,7 @@ enum class EventTypeEnumNew( TYPE_SOCKET_ROAD_SHIGONG( "100061", - "前方%s米道路施工", + "道路施工", poiTypeSrcVr = R.drawable.v2x_icon_shigong_zhandao, content = "前方%s米道路施工", tts = "前方%s米道路施工" @@ -500,10 +500,10 @@ enum class EventTypeEnumNew( tts = "" ), - TYPE_VIP_IDENTIFICATION_PASS("20022", "", "", R.drawable.icon_warning_v2x_vip_turn_light, "VIP车辆优先通行,已为您变为绿灯", "VIP车辆优先通行,已为您变为绿灯"), - TYPE_VIP_IDENTIFICATION_EXTEND("20023", "", "", R.drawable.icon_warning_v2x_vip_turn_light, "VIP车辆优先通行,已为您延长绿灯", "VIP车辆优先通行,已为您延长绿灯"), - TYPE_VIP_ERROR_IDENTIFICATION("20024", "", "", R.drawable.icon_warning_v2x_vip_turn_light, "请求失败,", "请求失败,稍后重试"), - TYPE_OPTIMAL_ROUTE_RECOMMEND("2000", "", "", R.drawable.icon_warning_v2x_optimal_route, "为您推荐最优路线", "已为您选择最优路线"); + TYPE_VIP_IDENTIFICATION_PASS("20022", "VIP通行", "", R.drawable.icon_warning_v2x_vip_turn_light, "VIP车辆优先通行,已为您变为绿灯", "VIP车辆优先通行,已为您变为绿灯"), + TYPE_VIP_IDENTIFICATION_EXTEND("20023", "VIP通行", "", R.drawable.icon_warning_v2x_vip_turn_light, "VIP车辆优先通行,已为您延长绿灯", "VIP车辆优先通行,已为您延长绿灯"), + TYPE_VIP_ERROR_IDENTIFICATION("20024", "VIP通行", "", R.drawable.icon_warning_v2x_vip_turn_light, "请求失败,", "请求失败,稍后重试"), + TYPE_OPTIMAL_ROUTE_RECOMMEND("2000", "路线推荐", "", R.drawable.icon_warning_v2x_optimal_route, "为您推荐最优路线", "已为您选择最优路线"); companion object { @@ -706,6 +706,307 @@ enum class EventTypeEnumNew( } } + @JvmStatic + fun getEventTitle(poiType: String?): String{ + return when(poiType){ + //交通检查 + TRAFFIC_CHECK.poiType ->{ + TRAFFIC_CHECK.poiTypeStr + } + //封路 + ROAD_CLOSED.poiType ->{ + ROAD_CLOSED.poiTypeStr + } + //施工 + FOURS_ROAD_WORK.poiType ->{ + FOURS_ROAD_WORK.poiTypeStr + } + //道路施工 + TYPE_SOCKET_ROAD_SHIGONG.poiType ->{ + TYPE_SOCKET_ROAD_SHIGONG.poiTypeStr + } + //静止障碍物占道 + TYPE_SOCKET_ROAD_JINGZHI.poiType ->{ + TYPE_SOCKET_ROAD_JINGZHI.poiTypeStr + } + //道路事故 + TYPE_SOCKET_ROAD_SHIGU.poiType ->{ + TYPE_SOCKET_ROAD_SHIGU.poiTypeStr + } + //交通拥堵 + TYPE_SOCKET_ROAD_CONGESTION.poiType ->{ + TYPE_SOCKET_ROAD_CONGESTION.poiTypeStr + } + //道路拥堵 + FOURS_BLOCK_UP.poiType ->{ + FOURS_BLOCK_UP.poiTypeStr + } + //道路积水 + FOURS_PONDING.poiType ->{ + FOURS_PONDING.poiTypeStr + } + //浓雾 + FOURS_FOG.poiType ->{ + FOURS_FOG.poiTypeStr + } + //结冰 + FOURS_ICE.poiType ->{ + FOURS_ICE.poiTypeStr + } + //事故 + FOURS_ACCIDENT.poiType ->{ + FOURS_ACCIDENT.poiTypeStr + } + //重大事故 + FOURS_ACCIDENT_01.poiType ->{ + FOURS_ACCIDENT_01.poiTypeStr + } + //特大事故 + FOURS_ACCIDENT_02.poiType ->{ + FOURS_ACCIDENT_02.poiTypeStr + } + //较大事故 + FOURS_ACCIDENT_03.poiType ->{ + FOURS_ACCIDENT_03.poiTypeStr + } + //一般事故 + FOURS_ACCIDENT_04.poiType ->{ + FOURS_ACCIDENT_04.poiTypeStr + } + //轻微事故 + FOURS_ACCIDENT_05.poiType ->{ + FOURS_ACCIDENT_05.poiTypeStr + } + //事故 + FOURS_LIVING.poiType ->{ + FOURS_LIVING.poiTypeStr + } + //红绿灯数据 + ALERT_TRAFFIC_LIGHT_SUGGEST.poiType ->{ + ALERT_TRAFFIC_LIGHT_SUGGEST.poiTypeStr + } + //红绿灯数据 + ALERT_TRAFFIC_LIGHT_WARNING.poiType ->{ + ALERT_TRAFFIC_LIGHT_WARNING.poiTypeStr + } + //前方静止or慢速车辆报警 + ALERT_FRONT_CAR.poiType ->{ + ALERT_FRONT_CAR.poiTypeStr + } + // 故障车辆 + ALERT_CAR_TROUBLE_WARNING.poiType ->{ + ALERT_CAR_TROUBLE_WARNING.poiTypeStr + } + //VIP车辆优先通行,已为您变为绿灯 + TYPE_VIP_IDENTIFICATION_PASS.poiType ->{ + TYPE_VIP_IDENTIFICATION_PASS.poiTypeStr + } + //VIP车辆优先通行,已为您延长绿灯 + TYPE_VIP_IDENTIFICATION_EXTEND.poiType ->{ + TYPE_VIP_IDENTIFICATION_EXTEND.poiTypeStr + } + //VIP变灯请求失败 + TYPE_VIP_ERROR_IDENTIFICATION.poiType ->{ + TYPE_VIP_ERROR_IDENTIFICATION.poiTypeStr + } + //最优路线 + TYPE_OPTIMAL_ROUTE_RECOMMEND.poiType ->{ + TYPE_OPTIMAL_ROUTE_RECOMMEND.poiTypeStr + } + //绿波通行 + TYPE_USECASE_ID_IVP_GREEN.poiType ->{ + TYPE_USECASE_ID_IVP_GREEN.poiTypeStr + } + //闯红灯预警 + TYPE_USECASE_ID_IVP_RED.poiType ->{ + TYPE_USECASE_ID_IVP_RED.poiTypeStr + } + //鬼探头类型 + GHOST_PROBE.poiType ->{ + GHOST_PROBE.poiTypeStr + } + //接管 + TAKE_OVER_EVENT.poiType ->{ + TAKE_OVER_EVENT.poiTypeStr + } + //机动车 + TYPE_USECASE_ID_VRUCW_MOTOR_VEHICLES.poiType ->{ + TYPE_USECASE_ID_VRUCW_MOTOR_VEHICLES.poiTypeStr + } + //碰撞预警 + TYPE_USECASE_ID_VRUCW_NOT_MOTOR_VEHICLES.poiType ->{ + TYPE_USECASE_ID_VRUCW_NOT_MOTOR_VEHICLES.poiTypeStr + } + //碰撞预警 + TYPE_USECASE_ID_VRUCW_PERSON.poiType ->{ + TYPE_USECASE_ID_VRUCW_PERSON.poiTypeStr + } + //未知障碍物 + TYPE_ERROR_WEAKNESS.poiType ->{ + TYPE_ERROR_WEAKNESS.poiTypeStr + } + //学校 + TYPE_USECASE_ID_ROAD_PEDESTRIAN_SCHOOL.poiType ->{ + TYPE_USECASE_ID_ROAD_PEDESTRIAN_SCHOOL.poiTypeStr + } + //禁止停车 + TYPE_USECASE_ID_ROAD_NO_PARKING.poiType ->{ + TYPE_USECASE_ID_ROAD_NO_PARKING.poiTypeStr + } + //超速行驶 + TYPE_USECASE_ID_SLW.poiType ->{ + TYPE_USECASE_ID_SLW.poiTypeStr + } + //拥堵 + TYPE_USECASE_ID_TJW.poiType ->{ + TYPE_USECASE_ID_TJW.poiTypeStr + } + //车辆故障 + TYPE_USECASE_ID_BREAKDOWN_WARNING.poiType ->{ + TYPE_USECASE_ID_BREAKDOWN_WARNING.poiTypeStr + } + //道路积水 + FOURS_PONDING.poiType ->{ + FOURS_PONDING.poiTypeStr + } + //异常停车 + TYPE_USECASE_ID_ROAD_PARKING.poiType ->{ + TYPE_USECASE_ID_ROAD_PARKING.poiTypeStr + } + //逆行车辆 + TYPE_USECASE_ID_ROAD_VEHICLE_RETROGRADE.poiType ->{ + TYPE_USECASE_ID_ROAD_VEHICLE_RETROGRADE.poiTypeStr + } + //急转弯 + TYPE_ID_SHAPR_TURNS.poiType ->{ + TYPE_ID_SHAPR_TURNS.poiTypeStr + } + //桥梁 + TYPE_ID_BRIDGE.poiType ->{ + TYPE_ID_BRIDGE.poiTypeStr + } + //行人 + TYPE_ID_PEDESTRIAN.poiType ->{ + TYPE_ID_PEDESTRIAN.poiTypeStr + } + //路滑 + TYPE_ID_SLIPPERY_ROAD.poiType ->{ + TYPE_ID_SLIPPERY_ROAD.poiTypeStr + } + //隧道 + TYPE_ID_TUNNEL.poiType ->{ + TYPE_ID_TUNNEL.poiTypeStr + } + //渡轮 + TYPE_ID_FERRY.poiType ->{ + TYPE_ID_FERRY.poiTypeStr + } + //路面不平 + TYPE_ID_UNEVEN_ROAD.poiType ->{ + TYPE_ID_UNEVEN_ROAD.poiTypeStr + } + //非机动车 + TYPE_ID_NON_MOTOR_VEHICLE.poiType ->{ + TYPE_ID_NON_MOTOR_VEHICLE.poiTypeStr + } + //障碍 + TYPE_ID_OBSTACLE.poiType ->{ + TYPE_ID_OBSTACLE.poiTypeStr + } + //施工 + TYPE_FOURS_ROAD_WORK.poiType ->{ + TYPE_FOURS_ROAD_WORK.poiTypeStr + } + //车队 + TYPE_VEHICLE_QUEUE.poiType ->{ + TYPE_VEHICLE_QUEUE.poiTypeStr + } + //道路不通 + TYPE_NO_PASSING.poiType ->{ + TYPE_NO_PASSING.poiTypeStr + } + //禁止掉头 + TYPE_NO_TURNING_AROUND.poiType ->{ + TYPE_NO_TURNING_AROUND.poiTypeStr + } + //禁止停车 + TYPE_USECASE_ID_ROAD_NO_PARKING.poiType ->{ + TYPE_USECASE_ID_ROAD_NO_PARKING.poiTypeStr + } + //禁止鸣笛 + TYPE_USECASE_ID_ROAD_NO_TOOTING.poiType ->{ + TYPE_USECASE_ID_ROAD_NO_TOOTING.poiTypeStr + } + //超速 + TYPE_USECASE_ID_ROAD_SPEED_LIMIT.poiType ->{ + TYPE_USECASE_ID_ROAD_SPEED_LIMIT.poiTypeStr + } + //公交提醒 + TYPE_USECASE_ID_BUS_WARNING.poiType ->{ + TYPE_USECASE_ID_BUS_WARNING.poiTypeStr + } + //右侧变窄/车道数减少 + TYPE_USECASE_ID_NARROW_RIGHT.poiType ->{ + TYPE_USECASE_ID_NARROW_RIGHT.poiTypeStr + } + //加油站 + TYPE_USECASE_ID_GAS_STATION.poiType ->{ + TYPE_USECASE_ID_GAS_STATION.poiTypeStr + } + //学校 + TYPE_USECASE_ID_ROAD_PEDESTRIAN_SCHOOL.poiType ->{ + TYPE_USECASE_ID_ROAD_PEDESTRIAN_SCHOOL.poiTypeStr + } + //交通事故 + TYPE_USECASE_ID_ACCIDENT.poiType ->{ + TYPE_USECASE_ID_ACCIDENT.poiTypeStr + } + //紧急制动预警 + TYPE_USECASE_ID_EBW.poiType ->{ + TYPE_USECASE_ID_EBW.poiTypeStr + } + //前向碰撞预警 + TYPE_USECASE_ID_FCW.poiType ->{ + TYPE_USECASE_ID_FCW.poiTypeStr + } + //交叉路口碰撞预警 + TYPE_USECASE_ID_ICW.poiType ->{ + TYPE_USECASE_ID_ICW.poiTypeStr + } + //车辆失控预警 + TYPE_USECASE_ID_CLW.poiType ->{ + TYPE_USECASE_ID_CLW.poiTypeStr + } + //逆向超车预警 + TYPE_USECASE_ID_DNPW.poiType ->{ + TYPE_USECASE_ID_DNPW.poiTypeStr + } + //异常车辆提醒 + TYPE_USECASE_ID_AVW.poiType ->{ + TYPE_USECASE_ID_AVW.poiTypeStr + } + //盲区预警 + TYPE_USECASE_ID_BSW.poiType ->{ + TYPE_USECASE_ID_BSW.poiTypeStr + } + //变道预警 + TYPE_USECASE_ID_LCW.poiType ->{ + TYPE_USECASE_ID_LCW.poiTypeStr + } + //紧急车辆提醒 + TYPE_USECASE_ID_EVW.poiType ->{ + TYPE_USECASE_ID_EVW.poiTypeStr + } + //左转辅助 + TYPE_USECASE_ID_LTA.poiType ->{ + TYPE_USECASE_ID_LTA.poiTypeStr + } + else ->{ + "事件通知" + } + } + } + @JvmStatic fun getUpdateIconRes(poiType: String?): Int { return when (poiType) { 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) diff --git a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/mogo/AppIdentityModeUtils.kt b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/mogo/AppIdentityModeUtils.kt index d143e6dfa3..7e94907e1e 100644 --- a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/mogo/AppIdentityModeUtils.kt +++ b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/mogo/AppIdentityModeUtils.kt @@ -2,10 +2,19 @@ package com.mogo.eagle.core.utilcode.mogo fun AppIdentityModeUtils.getMisChannelCode(appIdentityMode: String): Int { return when { - isTaxi(appIdentityMode) && isPassenger(appIdentityMode) -> 1 - isTaxi(appIdentityMode) && isDriver(appIdentityMode) -> 2 - isBus(appIdentityMode) && isPassenger(appIdentityMode) -> 3 - isBus(appIdentityMode) && isDriver(appIdentityMode) -> 4 + isTaxi(appIdentityMode) && isPassenger(appIdentityMode) -> 1 // 出租乘客端 + isTaxi(appIdentityMode) && isDriver(appIdentityMode) -> 2 // 出租司机端 + + isBus(appIdentityMode) && isPassenger(appIdentityMode) -> 3 // 公交乘客端 + isBus(appIdentityMode) && isDriver(appIdentityMode) -> 4 // 公交司机端 + + isCharter(appIdentityMode) && isPassenger(appIdentityMode) -> 8 // 包车乘客端 + isCharter(appIdentityMode) && isDriver(appIdentityMode) -> 9 // 包车司机端 + + isShuttle(appIdentityMode) && isPassenger(appIdentityMode) -> 10 // 接驳乘客端 + isShuttle(appIdentityMode) && isDriver(appIdentityMode) -> 11 // 接驳司机端 + + isSweeper(appIdentityMode) && isDriver(appIdentityMode) -> 12 // 清扫车司机端 else -> 0 } } 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 0c459e56a6..ff336195ee 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 @@ -79,6 +79,7 @@ public class AutopilotAbility250 { } } else { SystemStatusInfo.SystemState systemState = statusInfo.getSysState(); + // 目前已知可以下发启动自驾命令的状态: SystemState.SYS_RUNNING、SystemState.PILOT_READY、SystemState.AUTO_PILOT_STARTING、SystemState.AUTO_PILOT_RUNNING if (systemState != SystemStatusInfo.SystemState.SYS_RUNNING && systemState != SystemStatusInfo.SystemState.PILOT_READY) { isAutopilotAbility = false; if (systemState == SystemStatusInfo.SystemState.SYS_STARTING) { @@ -88,11 +89,13 @@ public class AutopilotAbility250 { } else if (systemState == SystemStatusInfo.SystemState.SYS_FAULT) { unableAutopilotReason = "系统异常"; } else if (systemState == SystemStatusInfo.SystemState.AUTO_PILOT_STARTING) { - //如果第一次下发了启动自动驾驶,没起来或者存在干预 此时systemState是AUTO_PILOT_STARTING 需要二次下发启动自驾命令 所以需要排除此状态 + //TODO 如果第一次下发了启动自动驾驶,没起来或者存在干预 此时systemState是AUTO_PILOT_STARTING 需要二次下发启动自驾命令 所以需要排除此状态 isAutopilotAbility = true; //unableAutopilotReason = "正在开始自动驾驶"; } else if (systemState == SystemStatusInfo.SystemState.AUTO_PILOT_RUNNING) { - unableAutopilotReason = "自动驾驶运行中"; + //TODO 车辆进站属于未退自驾状态,此状态不进行限制,否则无法再次发下启动自驾命令 + isAutopilotAbility = true; +// unableAutopilotReason = "自动驾驶运行中"; } else if (systemState == SystemStatusInfo.SystemState.REMOTE_PILOT_STARTING) { unableAutopilotReason = "平行驾驶启动中"; } else if (systemState == SystemStatusInfo.SystemState.REMOTE_PILOT_RUNNING) { diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java b/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java index 28e073fa61..6719b666c2 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java @@ -200,9 +200,8 @@ public class AMapViewWrapper implements IMogoMapView, @Override public void onRoadIdInfo(@androidx.annotation.Nullable String roadId) { - if (roadId != null && !TextUtils.isEmpty(roadId)) { - // CallerLogger.INSTANCE.d(M_MAP + TAG, "onRoadIdInfo::" + roadId); + // CallerLogger.INSTANCE.d(M_MAP + TAG, "onRoadIdInfo::" + roadId); CallerMapRoadListenerManager.INSTANCE.invokeListenersOnRoadIdGet(roadId); } else { //CallerLogger.INSTANCE.d(M_MAP + TAG, "onRoadIdInfo::null"); @@ -1105,4 +1104,5 @@ public class AMapViewWrapper implements IMogoMapView, mMapView.getMapAutoViewHelper().cancelCacheHDData(); } } + }