diff --git a/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/callback/DrivingInfoCallback.kt b/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/callback/DrivingInfoCallback.kt index 1b9c77b224..61589fce33 100644 --- a/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/callback/DrivingInfoCallback.kt +++ b/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/callback/DrivingInfoCallback.kt @@ -15,4 +15,5 @@ interface DrivingInfoCallback { fun showNoTaskView(isTrue : Boolean) fun updateLineStations(stations: MutableList) fun updateStationsInfo(stations: MutableList, i: Int, isArrived: Boolean) + fun clearCustomPolyline() } \ No newline at end of file diff --git a/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2DrivingModel.kt b/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2DrivingModel.kt index 977392b271..7682f74217 100644 --- a/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2DrivingModel.kt +++ b/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2DrivingModel.kt @@ -421,6 +421,12 @@ class PM2DrivingModel private constructor() { updateLocalOrder() return } + + if (routesResult != null && routesResult!!.lineId != result.lineId){ + d(SceneConstant.M_BUS_P+TAG, "lineId change= clearCustomPolyline") + mDrivingInfoCallback?.clearCustomPolyline() + } + d(SceneConstant.M_BUS_P+TAG, "queryDriverSiteByCoordinate= update") routesResult = result diff --git a/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/presenter/PM2DrivingPresenter.kt b/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/presenter/PM2DrivingPresenter.kt index a6d4f0add9..78c7fb65b6 100644 --- a/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/presenter/PM2DrivingPresenter.kt +++ b/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/presenter/PM2DrivingPresenter.kt @@ -116,6 +116,12 @@ class PM2DrivingPresenter(view: PM2DrivingInfoFragment?) : } } + override fun clearCustomPolyline() { + ThreadUtils.runOnUiThread { + mView?.clearCustomPolyline() + } + } + override fun updateAutoStatus(isOpen: Boolean) { ThreadUtils.runOnUiThread { mView?.updateAutoStatus(isOpen) @@ -125,4 +131,6 @@ class PM2DrivingPresenter(view: PM2DrivingInfoFragment?) : override fun updateAutoStatus(status: Int) { } + + } \ No newline at end of file diff --git a/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/PM2DrivingInfoFragment.kt b/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/PM2DrivingInfoFragment.kt index 8d12623b3f..714a24c215 100644 --- a/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/PM2DrivingInfoFragment.kt +++ b/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/PM2DrivingInfoFragment.kt @@ -28,8 +28,6 @@ import kotlin.math.roundToInt class PM2DrivingInfoFragment : MvpFragment() { -// private var timeHandler: TimeHandler? = null - /** * 改变自动驾驶状态 * @@ -108,7 +106,6 @@ class PM2DrivingInfoFragment : } override fun onDestroy() { -// timeHandler?.removeCallbacksAndMessages(null) super.onDestroy() overMapView?.let{ it.onDestroy() @@ -142,9 +139,7 @@ class PM2DrivingInfoFragment : } private fun setLineInfoView(isShow: Boolean){ - if (isShow){ - - }else{ + if (!isShow){ updateNoOrderUI() } } @@ -155,11 +150,14 @@ class PM2DrivingInfoFragment : overMapView?.let { it.clearSiteMarkers() } + clearCustomPolyline() + } + + fun clearCustomPolyline(){ overMapView?.let { it.clearCustomPolyline() } } - private fun updateNoStationView(){ station_name_tv.setTextColor(resources.getColor(R.color.m2_next_tv_color)) station_name_tv.text = resources.getString(R.string.m2_p_empty_tv) @@ -207,13 +205,9 @@ class PM2DrivingInfoFragment : tv_distance.text = resources.getString(R.string.m2_p_empty_remain_km) tv_left_time.text = resources.getString(R.string.m2_p_empty_remain_minute) tv_next_station_title.text = resources.getString(R.string.m2_p_station_title_arrived_tv) - iv_animal_list.visibility = View.VISIBLE - val animationDrawable = iv_animal_list.drawable as AnimationDrawable - animationDrawable.start() haveLineAndArrivedStation() }else{ //前往目的地中 tv_next_station_title.text = resources.getString(R.string.shuttle_p_next_station_title) - iv_animal_list.visibility = View.GONE haveLineAndArriveingStation() } } @@ -250,6 +244,8 @@ class PM2DrivingInfoFragment : clg_distance_left_time.visibility = View.GONE // 到达站点 tv_arrived_notice.visibility = View.GONE + + iv_animal_list.visibility = View.GONE } // 有线路正在到站点 fun haveLineAndArriveingStation(){ @@ -257,17 +253,20 @@ class PM2DrivingInfoFragment : group_stationinfo.visibility = View.VISIBLE clg_distance_left_time.visibility = View.VISIBLE tv_arrived_notice.visibility = View.GONE + iv_animal_list.visibility = View.GONE } // 有线路到达站点 - fun haveLineAndArrivedStation(){ + private fun haveLineAndArrivedStation(){ group_not_select_line.visibility = View.GONE group_stationinfo.visibility = View.VISIBLE clg_distance_left_time.visibility = View.GONE tv_arrived_notice.visibility = View.VISIBLE + iv_animal_list.visibility = View.VISIBLE + val animationDrawable = iv_animal_list.drawable as AnimationDrawable + animationDrawable.start() } companion object { private val TAG = PM2DrivingInfoFragment::class.java.simpleName - const val LOOP_TIME_TEXT = 10 * 1000L } } \ No newline at end of file diff --git a/OCH/mogo-och-shuttle-passenger/src/m2/res/drawable-nodpi/m2_sky_bg.png b/OCH/mogo-och-shuttle-passenger/src/m2/res/drawable-nodpi/m2_sky_bg.png index 3cc04452cc..7b72c07390 100644 Binary files a/OCH/mogo-och-shuttle-passenger/src/m2/res/drawable-nodpi/m2_sky_bg.png and b/OCH/mogo-och-shuttle-passenger/src/m2/res/drawable-nodpi/m2_sky_bg.png differ diff --git a/OCH/mogo-och-shuttle-passenger/src/m2/res/layout/p_m2_driving_info_fragment.xml b/OCH/mogo-och-shuttle-passenger/src/m2/res/layout/p_m2_driving_info_fragment.xml index ae19ca5741..ea8a08546f 100644 --- a/OCH/mogo-och-shuttle-passenger/src/m2/res/layout/p_m2_driving_info_fragment.xml +++ b/OCH/mogo-och-shuttle-passenger/src/m2/res/layout/p_m2_driving_info_fragment.xml @@ -12,7 +12,7 @@ android:layout_height="match_parent" app:carDrawable="@drawable/m2_map_car_icon" app:endPointDrawable="@drawable/m2_map_end_icon" - app:isClearArrived="true" + app:isClearArrived="false" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintWidth_percent="0.6" app:mapStyleExtraPath="@string/m2_over_map_style_extra_path" @@ -24,6 +24,8 @@ app:unArrivedDrawable="@drawable/m2_amap_arriving_road" app:mapTilt="0" app:leftPadding="200" + app:topPadding="150" + app:bottomPadding="50" app:startPointDrawable="@drawable/m2_map_start_icon" /> - - - - - - - - - + diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/TakeOverView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/TakeOverView.kt index c9a866e862..179f964123 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/TakeOverView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/TakeOverView.kt @@ -2,9 +2,11 @@ package com.mogo.eagle.core.function.hmi.ui.vehicle import android.content.Context import android.util.AttributeSet +import android.util.Log import android.view.LayoutInflater import android.view.View import androidx.constraintlayout.widget.ConstraintLayout +import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.data.enums.EventTypeEnumNew import com.mogo.eagle.core.data.msgbox.MsgBoxBean @@ -31,6 +33,10 @@ class TakeOverView @JvmOverloads constructor( const val TAG = "TakeOverView" } + private var autopilotStatus: Int = 0 //自动驾驶状态 0代表不可自动驾驶,1代表可自动驾驶,2代表自动驾驶中,7:平行驾驶中 + private var isParallel: Boolean = false //是否是平行驾驶 + + init { LayoutInflater.from(context).inflate(R.layout.view_take_over, this, true) } @@ -42,6 +48,21 @@ class TakeOverView @JvmOverloads constructor( CallerAutoPilotStatusListenerManager.addListener(TAG, this) } + /** + * 自动驾驶状态信息 + * + * @param autoPilotStatusInfo 状态信息 + */ + override fun onAutopilotStatusResponse(autoPilotStatusInfo: AutopilotStatusInfo) { + autopilotStatus = autoPilotStatusInfo.state + if(autoPilotStatusInfo.state == 7){ + isParallel = true + }else if(autoPilotStatusInfo.state == 2){ + isParallel = false + } + Log.i(TAG,"自动驾驶状态${autopilotStatus}") + } + /** * 工控机监控节点上报 */ @@ -90,32 +111,37 @@ class TakeOverView @JvmOverloads constructor( //弱网 MogoReport.Code.Error.EMAP.EPARALLEL_AICLOUD_NETWORK_WEAK, MogoReport.Code.Error.EMAP.EPARALLEL_AICLOUD_CONNECTION_ERROR -> { - CallerHmiManager.warningV2X( - EventTypeEnumNew.NETWORK_WEAK_EVENT.poiType, - EventTypeEnumNew.NETWORK_WEAK_EVENT.content, - EventTypeEnumNew.NETWORK_WEAK_EVENT.tts, - object : IMoGoWarningStatusListener { - override fun onShow() { - takeOver = true - visibility = View.VISIBLE - //加入消息盒子 - saveMsgBox( - MsgBoxBean( - MsgBoxType.V2X, V2XMsg( - EventTypeEnumNew.NETWORK_WEAK_EVENT.poiType, - EventTypeEnumNew.NETWORK_WEAK_EVENT.content, - EventTypeEnumNew.NETWORK_WEAK_EVENT.tts + //如果是平行驾驶状态下,提示弱网接管 + Log.i(TAG,"弱网时自动驾驶状态:${autopilotStatus}") + if(autopilotStatus == 7 || isParallel){ + CallerHmiManager.warningV2X( + EventTypeEnumNew.NETWORK_WEAK_EVENT.poiType, + EventTypeEnumNew.NETWORK_WEAK_EVENT.content, + EventTypeEnumNew.NETWORK_WEAK_EVENT.tts, + object : IMoGoWarningStatusListener { + override fun onShow() { + takeOver = true + visibility = View.VISIBLE + //加入消息盒子 + Log.i(TAG,"弱网时加入消息盒子${EventTypeEnumNew.NETWORK_WEAK_EVENT.content}") + saveMsgBox( + MsgBoxBean( + MsgBoxType.V2X, V2XMsg( + EventTypeEnumNew.NETWORK_WEAK_EVENT.poiType, + EventTypeEnumNew.NETWORK_WEAK_EVENT.content, + EventTypeEnumNew.NETWORK_WEAK_EVENT.tts + ) ) ) - ) - } + } - override fun onDismiss() { - takeOver = false - visibility = View.GONE + override fun onDismiss() { + takeOver = false + visibility = View.GONE + } } - } - ) + ) + } } } } diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/autopilot/AutopilotStatusInfo.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/autopilot/AutopilotStatusInfo.kt index e336af0e30..3f9c1900e3 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/autopilot/AutopilotStatusInfo.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/autopilot/AutopilotStatusInfo.kt @@ -47,7 +47,7 @@ open class AutopilotStatusInfo : Serializable, Cloneable { var satelliteTime = 0.0 /** - * 自动驾驶状态 0是不可用 1是ready 2是自动驾驶start + * 自动驾驶状态 0是不可用 1是ready 2是自动驾驶start 7:平行驾驶中 */ var state = 0