[自主算路验证] feat: 运营面板增加调试开关和相关调用接口;
This commit is contained in:
@@ -11,6 +11,8 @@ import android.view.animation.LinearInterpolator
|
||||
import androidx.fragment.app.FragmentTransaction
|
||||
import androidx.localbroadcastmanager.content.LocalBroadcastManager
|
||||
import com.mogo.commons.AbsMogoApplication
|
||||
import com.mogo.commons.module.status.MogoStatusManager
|
||||
import com.mogo.commons.module.status.StatusDescriptor
|
||||
import com.mogo.commons.mvp.IView
|
||||
import com.mogo.commons.mvp.MvpFragment
|
||||
import com.mogo.commons.mvp.Presenter
|
||||
@@ -26,6 +28,7 @@ import com.mogo.eagle.core.function.hmi.ui.widget.ParallelDriveView
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
|
||||
import com.mogo.eagle.core.utilcode.mogo.view.OnPreventFastClickListener
|
||||
import com.mogo.eagle.core.utilcode.util.ToastUtils
|
||||
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
|
||||
import com.mogo.map.listener.IMogoMapListener
|
||||
import com.mogo.map.uicontroller.VisualAngleMode
|
||||
@@ -197,9 +200,22 @@ abstract class BaseTaxiTabFragment<V : IView, P : Presenter<V>> : MvpFragment<V,
|
||||
|
||||
module_mogo_och_operation_status.setOnClickListener(object : OnPreventFastClickListener() {
|
||||
override fun onClickImpl(v: View?) {
|
||||
if (MogoStatusManager.getInstance().isTaxiUnmanedDriverLineRoutingVerifyMode) {
|
||||
ToastUtils.showLong("请先切换到Taxi无人化流程模式")
|
||||
return
|
||||
}
|
||||
onChangeOperationStatus()
|
||||
}
|
||||
})
|
||||
MogoStatusManager.getInstance()
|
||||
.registerStatusChangedListener(TAG, StatusDescriptor.TAXI_UNMANED_DRIVER_LINE_ROUTING_VERIFY_MODE
|
||||
) { descriptor, isTrue ->
|
||||
if (StatusDescriptor.TAXI_UNMANED_DRIVER_LINE_ROUTING_VERIFY_MODE == descriptor) {
|
||||
UiThreadHandler.post {
|
||||
module_mogo_och_operation_status.isEnabled = !isTrue
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
taxi_close_navi_icon.setOnClickListener {
|
||||
showAmapNaviToStationFragment(false)
|
||||
@@ -222,13 +238,13 @@ abstract class BaseTaxiTabFragment<V : IView, P : Presenter<V>> : MvpFragment<V,
|
||||
|
||||
val width = AutoSizeUtils.dp2px(AbsMogoApplication.getApp(), 420f)
|
||||
val height = AutoSizeUtils.dp2px(AbsMogoApplication.getApp(), 220f)
|
||||
startAutopilotAnimator = FrameAnimatorContainer(R.array.anim_flow, 20,anim_flow_iv,false,width,height)
|
||||
startAutopilotAnimator = FrameAnimatorContainer(R.array.anim_flow, 20,anim_flow_iv,false, width=width, height = height)
|
||||
startAutopilotAnimator?.setOnAnimStopListener(object : FrameAnimatorContainer.OnAnimationStoppedListener{
|
||||
override fun AnimationStopped() {
|
||||
d(SceneConstant.M_TAXI_P + TAG, "自动驾驶动画暂停")
|
||||
}
|
||||
})
|
||||
startManCOAnimator = FrameAnimatorContainer(R.array.nim_flow_man_co, 20,anim_flow_iv,false,width,height)
|
||||
startManCOAnimator = FrameAnimatorContainer(R.array.nim_flow_man_co, 20,anim_flow_iv,false, width=width, height=height)
|
||||
startManCOAnimator?.setOnAnimStopListener(object : FrameAnimatorContainer.OnAnimationStoppedListener{
|
||||
override fun AnimationStopped() {
|
||||
d(SceneConstant.M_TAXI_P + TAG, "平行驾驶动画暂停")
|
||||
|
||||
@@ -2,30 +2,32 @@ package com.mogo.eagle.core.function.hmi.ui
|
||||
|
||||
import android.content.Context
|
||||
import android.text.TextUtils
|
||||
import android.view.*
|
||||
import android.view.Gravity
|
||||
import android.view.ViewGroup
|
||||
import androidx.lifecycle.ProcessLifecycleOwner
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import com.alibaba.android.arouter.facade.annotation.Route
|
||||
import com.mogo.commons.module.status.MogoStatusManager
|
||||
import com.mogo.commons.voice.AIAssist
|
||||
import com.mogo.eagle.core.data.deva.bindingcar.IPCUpgradeStateInfo
|
||||
import com.mogo.eagle.core.data.biz.dispatch.DispatchAdasAutoPilotLocReceiverBean
|
||||
import com.mogo.eagle.core.data.biz.notice.NoticeNormalData
|
||||
import com.mogo.eagle.core.data.biz.notice.NoticeTrafficStylePushData
|
||||
import com.mogo.eagle.core.data.config.FunctionBuildConfig
|
||||
import com.mogo.eagle.core.data.config.HmiBuildConfig
|
||||
import com.mogo.eagle.core.data.constants.MogoServicePaths.PATH_FRAGMENT_HMI
|
||||
import com.mogo.eagle.core.data.deva.bindingcar.IPCUpgradeStateInfo
|
||||
import com.mogo.eagle.core.data.deva.bizconfig.FuncBizConfig.Companion.BIZ_RTS
|
||||
import com.mogo.eagle.core.data.deva.bizconfig.FuncBizConfig.Companion.V2I
|
||||
import com.mogo.eagle.core.data.biz.dispatch.DispatchAdasAutoPilotLocReceiverBean
|
||||
import com.mogo.eagle.core.data.enums.EventTypeEnumNew
|
||||
import com.mogo.eagle.core.data.enums.WarningDirectionEnum
|
||||
import com.mogo.eagle.core.data.map.Infrastructure
|
||||
import com.mogo.eagle.core.data.biz.notice.NoticeNormalData
|
||||
import com.mogo.eagle.core.data.biz.notice.NoticeTrafficStylePushData
|
||||
import com.mogo.eagle.core.data.config.HmiBuildConfig
|
||||
import com.mogo.eagle.core.function.api.hmi.warning.IMoGoHmiProvider
|
||||
import com.mogo.eagle.core.function.api.hmi.warning.IMoGoWarningStatusListener
|
||||
import com.mogo.eagle.core.function.call.hmi.*
|
||||
import com.mogo.eagle.core.function.call.hmi.CallerHmiViewControlListenerManager
|
||||
import com.mogo.eagle.core.function.call.v2x.CallerTrafficLightListenerManager
|
||||
import com.mogo.eagle.core.function.call.v2x.CallerTurnLightListenerManager
|
||||
import com.mogo.eagle.core.function.hmi.ui.camera.RoadVideoDialog
|
||||
import com.mogo.eagle.core.function.hmi.ui.lookaround.*
|
||||
import com.mogo.eagle.core.function.hmi.ui.lookaround.M1LookAroundView
|
||||
import com.mogo.eagle.core.function.hmi.ui.notice.DispatchDialogManager
|
||||
import com.mogo.eagle.core.function.hmi.ui.notice.NoticeCheckDialog
|
||||
import com.mogo.eagle.core.function.hmi.ui.notice.traffic.NoticeTrafficDialog
|
||||
@@ -38,15 +40,18 @@ import com.mogo.eagle.core.function.hmi.ui.tools.ToBindingCarDialog
|
||||
import com.mogo.eagle.core.function.hmi.ui.tools.UpgradeAppDialog
|
||||
import com.mogo.eagle.core.function.hmi.ui.utils.HmiActionLog
|
||||
import com.mogo.eagle.core.function.hmi.ui.widget.StatusBarView
|
||||
import com.mogo.eagle.core.utilcode.floating.*
|
||||
import com.mogo.eagle.core.utilcode.floating.MoGoPopWindow
|
||||
import com.mogo.eagle.core.utilcode.kotlin.safeCancel
|
||||
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_HMI
|
||||
import com.mogo.eagle.core.utilcode.util.*
|
||||
import com.mogo.eagle.core.utilcode.util.AppStateManager
|
||||
import com.mogo.eagle.core.utilcode.util.ThreadUtils
|
||||
import com.mogo.tts.base.IMogoTTSCallback
|
||||
import com.zhjt.service_biz.BizConfig
|
||||
import kotlinx.coroutines.*
|
||||
import kotlinx.coroutines.Job
|
||||
import kotlinx.coroutines.delay
|
||||
import kotlinx.coroutines.launch
|
||||
import java.util.concurrent.atomic.AtomicBoolean
|
||||
import java.util.concurrent.atomic.AtomicReference
|
||||
|
||||
@@ -352,4 +357,20 @@ class MoGoHmiProvider : IMoGoHmiProvider {
|
||||
CallerTurnLightListenerManager.invokeHideTurnLightView()
|
||||
}
|
||||
|
||||
override fun isTaxiUnmanedDriverPerformTask(): Boolean {
|
||||
return MogoStatusManager.getInstance().isTaxiUnmanedDriverPerformTask
|
||||
}
|
||||
|
||||
override fun isTaxiUnmanedDriverTakingOrders(): Boolean {
|
||||
return MogoStatusManager.getInstance().isTaxiUnmanedDriverTakingOrders
|
||||
}
|
||||
|
||||
override fun isTaxiUnmanedDriverLineRoutingVerifyMode(): Boolean {
|
||||
return MogoStatusManager.getInstance().isTaxiUnmanedDriverLineRoutingVerifyMode
|
||||
}
|
||||
|
||||
override fun setTaxiUnmanedDriverLineRoutingVerifyMode(isMode: Boolean) {
|
||||
MogoStatusManager.getInstance().setTaxiUnmanedDriverLineRoutingVerifyMode(TAG, isMode)
|
||||
}
|
||||
|
||||
}
|
||||
@@ -569,6 +569,41 @@ internal class SOPSettingView @JvmOverloads constructor(
|
||||
}
|
||||
}
|
||||
|
||||
// Taxi无人化司机端,自主算路验证模式
|
||||
scLineRoutingVerify?.also {
|
||||
if (AppIdentityModeUtils.isTaxiDriver(FunctionBuildConfig.appIdentityMode)) {
|
||||
it.isEnabled = true
|
||||
it.visibility = View.VISIBLE
|
||||
it.setOnCheckedChangeListener { buttonView, isChecked ->
|
||||
if(!buttonView.isPressed) return@setOnCheckedChangeListener
|
||||
if (isChecked) {
|
||||
if (CallerHmiManager.isTaxiUnmanedDriverPerformTask()) {
|
||||
ToastUtils.showLong("请先结束当前任务")
|
||||
buttonView.isChecked = !isChecked
|
||||
return@setOnCheckedChangeListener
|
||||
}
|
||||
if (CallerHmiManager.isTaxiUnmanedDriverTakingOrders()) {
|
||||
ToastUtils.showLong("请先结束接单状态")
|
||||
buttonView.isChecked = !isChecked
|
||||
return@setOnCheckedChangeListener
|
||||
}
|
||||
CallerHmiManager.setTaxiUnmanedDriverLineRoutingVerifyMode(true)
|
||||
} else {
|
||||
if (CallerHmiManager.isTaxiUnmanedDriverPerformTask()) {
|
||||
ToastUtils.showLong("请先结束当前任务")
|
||||
buttonView.isChecked = !isChecked
|
||||
return@setOnCheckedChangeListener
|
||||
}
|
||||
CallerHmiManager.setTaxiUnmanedDriverLineRoutingVerifyMode(false)
|
||||
}
|
||||
}
|
||||
it.isChecked = CallerHmiManager.isTaxiUnmanedDriverLineRoutingVerifyMode()
|
||||
} else {
|
||||
it.isEnabled = false
|
||||
it.visibility = View.GONE
|
||||
}
|
||||
}
|
||||
|
||||
//是否展示被动触发的录包弹窗(自动驾驶下出现问题触发的录包)
|
||||
scShowBagRecordWindow.isChecked = FunctionBuildConfig.isShowBagRecordWindow
|
||||
scShowBagRecordWindow.setOnCheckedChangeListener { _, isChecked ->
|
||||
|
||||
@@ -548,6 +548,19 @@
|
||||
app:layout_constraintRight_toRightOf="@id/otherGuideLine"
|
||||
app:layout_constraintTop_toBottomOf="@id/scIPCReport" />
|
||||
|
||||
<!--自主算路验证模式-->
|
||||
<androidx.appcompat.widget.SwitchCompat
|
||||
android:id="@+id/scLineRoutingVerify"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dp_25"
|
||||
android:scaleX="1.2"
|
||||
android:scaleY="1.2"
|
||||
android:text="自主算路验证模式"
|
||||
app:layout_constraintLeft_toLeftOf="@id/otherGuideLine"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/scShowBagRecordWindow" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvPullTimeTitle"
|
||||
android:layout_width="wrap_content"
|
||||
@@ -558,7 +571,7 @@
|
||||
android:textColor="@color/black"
|
||||
android:textSize="32dp"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/scShowBagRecordWindow" />
|
||||
app:layout_constraintTop_toBottomOf="@id/scLineRoutingVerify" />
|
||||
|
||||
<RadioGroup
|
||||
android:id="@+id/rgPullTime"
|
||||
|
||||
@@ -169,4 +169,25 @@ interface IMoGoHmiProvider :IProvider{
|
||||
* 隐藏转向灯
|
||||
*/
|
||||
fun hideTurnLightView()
|
||||
|
||||
/**
|
||||
* taxi无人化 是否在执行任务中(无人化模式和算路验证模式 都复用此变量)
|
||||
*/
|
||||
fun isTaxiUnmanedDriverPerformTask(): Boolean
|
||||
|
||||
/**
|
||||
* taxi无人化司机端 是否在接单中
|
||||
*/
|
||||
fun isTaxiUnmanedDriverTakingOrders(): Boolean
|
||||
|
||||
/**
|
||||
* taxi无人化司机端 是否自主算路验证模式
|
||||
*/
|
||||
fun isTaxiUnmanedDriverLineRoutingVerifyMode(): Boolean
|
||||
|
||||
/**
|
||||
* taxi无人化司机端 设置是否自主算路验证模式
|
||||
*/
|
||||
fun setTaxiUnmanedDriverLineRoutingVerifyMode(isMode: Boolean)
|
||||
|
||||
}
|
||||
@@ -3,14 +3,14 @@ package com.mogo.eagle.core.function.call.hmi
|
||||
import android.content.Context
|
||||
import android.view.ViewGroup
|
||||
import com.alibaba.android.arouter.launcher.ARouter
|
||||
import com.mogo.eagle.core.data.deva.bindingcar.IPCUpgradeStateInfo
|
||||
import com.mogo.eagle.core.data.constants.MogoServicePaths
|
||||
import com.mogo.eagle.core.data.biz.dispatch.DispatchAdasAutoPilotLocReceiverBean
|
||||
import com.mogo.eagle.core.data.enums.WarningDirectionEnum
|
||||
import com.mogo.eagle.core.data.map.Infrastructure
|
||||
import com.mogo.eagle.core.data.biz.notice.NoticeNormalData
|
||||
import com.mogo.eagle.core.data.biz.notice.NoticeTrafficStylePushData
|
||||
import com.mogo.eagle.core.data.constants.MogoServicePaths
|
||||
import com.mogo.eagle.core.data.deva.bindingcar.IPCUpgradeStateInfo
|
||||
import com.mogo.eagle.core.data.enums.WarningDirectionEnum
|
||||
import com.mogo.eagle.core.data.enums.WarningDirectionEnum.ALERT_WARNING_NON
|
||||
import com.mogo.eagle.core.data.map.Infrastructure
|
||||
import com.mogo.eagle.core.function.api.hmi.warning.IMoGoHmiProvider
|
||||
import com.mogo.eagle.core.function.api.hmi.warning.IMoGoWarningStatusListener
|
||||
|
||||
@@ -252,4 +252,32 @@ object CallerHmiManager {
|
||||
hmiProviderApi?.hideTurnLightView()
|
||||
}
|
||||
|
||||
/**
|
||||
* taxi无人化司机端 是否在执行任务中(无人化模式和算路验证模式 都复用此变量)
|
||||
*/
|
||||
fun isTaxiUnmanedDriverPerformTask() :Boolean {
|
||||
return hmiProviderApi?.isTaxiUnmanedDriverPerformTask() ?: false
|
||||
}
|
||||
|
||||
/**
|
||||
* taxi无人化司机端 是否在接单中
|
||||
*/
|
||||
fun isTaxiUnmanedDriverTakingOrders() :Boolean {
|
||||
return hmiProviderApi?.isTaxiUnmanedDriverTakingOrders() ?: false
|
||||
}
|
||||
|
||||
/**
|
||||
* taxi无人化司机端 是否自主算路验证模式
|
||||
*/
|
||||
fun isTaxiUnmanedDriverLineRoutingVerifyMode() :Boolean {
|
||||
return hmiProviderApi?.isTaxiUnmanedDriverLineRoutingVerifyMode() ?: false
|
||||
}
|
||||
|
||||
/**
|
||||
* taxi无人化司机端 设置是否自主算路验证模式
|
||||
*/
|
||||
fun setTaxiUnmanedDriverLineRoutingVerifyMode(isMode: Boolean) {
|
||||
hmiProviderApi?.setTaxiUnmanedDriverLineRoutingVerifyMode(isMode)
|
||||
}
|
||||
|
||||
}
|
||||
@@ -110,6 +110,36 @@ public interface IMogoStatusManager extends IProvider {
|
||||
*/
|
||||
void setSeekHelping( String tag, boolean seekHelping );
|
||||
|
||||
/**
|
||||
* taxi无人化司机端 是否在执行任务中(无人化模式和算路验证模式 都复用此变量)
|
||||
*
|
||||
* @param tag
|
||||
* @param isPerformingTask
|
||||
*/
|
||||
void setTaxiUnmanedDriverPerformTask( String tag, boolean isPerformingTask );
|
||||
|
||||
boolean isTaxiUnmanedDriverPerformTask();
|
||||
|
||||
/**
|
||||
* taxi无人化司机端 是否在接单中
|
||||
*
|
||||
* @param tag
|
||||
* @param isTakingOrders
|
||||
*/
|
||||
void setTaxiUnmanedDriverTakingOrders( String tag, boolean isTakingOrders );
|
||||
|
||||
boolean isTaxiUnmanedDriverTakingOrders();
|
||||
|
||||
/**
|
||||
* taxi无人化司机端 是否是在自主算路验证模式
|
||||
*
|
||||
* @param tag
|
||||
* @param isLineRoutingVerifyMode
|
||||
*/
|
||||
void setTaxiUnmanedDriverLineRoutingVerifyMode( String tag, boolean isLineRoutingVerifyMode );
|
||||
|
||||
boolean isTaxiUnmanedDriverLineRoutingVerifyMode();
|
||||
|
||||
/**
|
||||
* 注册监听
|
||||
*
|
||||
|
||||
@@ -117,6 +117,36 @@ public class MogoStatusManager implements IMogoStatusManager {
|
||||
doSetStatus(tag, StatusDescriptor.SEEK_HELPING, seekHelping);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setTaxiUnmanedDriverPerformTask(String tag, boolean isPerformingTask) {
|
||||
doSetStatus(tag, StatusDescriptor.TAXI_UNMANED_DRIVER_PERFORM_TASK, isPerformingTask);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isTaxiUnmanedDriverPerformTask() {
|
||||
return get_bool_val(StatusDescriptor.TAXI_UNMANED_DRIVER_PERFORM_TASK);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setTaxiUnmanedDriverTakingOrders(String tag, boolean isTakingOrders) {
|
||||
doSetStatus(tag, StatusDescriptor.TAXI_UNMANED_DRIVER_TAKING_ORDERS, isTakingOrders);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isTaxiUnmanedDriverTakingOrders() {
|
||||
return get_bool_val(StatusDescriptor.TAXI_UNMANED_DRIVER_TAKING_ORDERS);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setTaxiUnmanedDriverLineRoutingVerifyMode(String tag, boolean isLineRoutingVerifyMode) {
|
||||
doSetStatus(tag, StatusDescriptor.TAXI_UNMANED_DRIVER_LINE_ROUTING_VERIFY_MODE, isLineRoutingVerifyMode);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isTaxiUnmanedDriverLineRoutingVerifyMode() {
|
||||
return get_bool_val(StatusDescriptor.TAXI_UNMANED_DRIVER_LINE_ROUTING_VERIFY_MODE);
|
||||
}
|
||||
|
||||
private void doSetStatus(String tag, StatusDescriptor target, boolean value) {
|
||||
mStatus.put(target, value);
|
||||
invokeStatusChangedListener(target, value);
|
||||
|
||||
@@ -46,6 +46,21 @@ public enum StatusDescriptor {
|
||||
/**
|
||||
* 压屏状态
|
||||
*/
|
||||
SCREEN_COVER
|
||||
SCREEN_COVER,
|
||||
|
||||
/**
|
||||
* taxi无人化 是否执行任务
|
||||
*/
|
||||
TAXI_UNMANED_DRIVER_PERFORM_TASK,
|
||||
|
||||
/**
|
||||
* taxi无人化 是否接单
|
||||
*/
|
||||
TAXI_UNMANED_DRIVER_TAKING_ORDERS,
|
||||
|
||||
/**
|
||||
* taxi无人化 是否在自主算路验证模式
|
||||
*/
|
||||
TAXI_UNMANED_DRIVER_LINE_ROUTING_VERIFY_MODE
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user