diff --git a/OCH/charter/driver/src/driverm1/java/com/magic/mogo/och/charter/manager/CharterTrajectoryManager.kt b/OCH/charter/driver/src/driverm1/java/com/magic/mogo/och/charter/manager/CharterTrajectoryManager.kt
index 0d13cced28..125fa0cf16 100644
--- a/OCH/charter/driver/src/driverm1/java/com/magic/mogo/och/charter/manager/CharterTrajectoryManager.kt
+++ b/OCH/charter/driver/src/driverm1/java/com/magic/mogo/och/charter/manager/CharterTrajectoryManager.kt
@@ -87,7 +87,17 @@ object CharterTrajectoryManager {
// 5. 轨迹管理_轨迹下载超时
d(SceneConstant.M_CHARTER_D + TAG, "onAutopilotGuardian() 轨迹下载超时")
// ToastUtils.showShort("轨迹下载超时");
- } else if ("ISSM_FUNC_AUTO_PILOT_READY" == guardianInfo.getCode()) {
+ } else if ("EMAP_ATTITUDE_INIT_FAILED" == guardianInfo.getCode()) {
+ CallerMsgBoxManager.saveMsgBox(
+ MsgBoxBean(
+ MsgBoxType.OPERATION,
+ OperationMsg(
+ System.currentTimeMillis(), "请尽快操作车辆至适当位置掉头!", -1
+ )
+ )
+ )
+ SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(ActivityUtils.getTopActivity(), R.raw.startautopilot)
+ } else if ("EMAP_ATTITUDE_INIT_FAILED" == guardianInfo.getCode()) {
// 收到ssm的自动驾驶变为ready,再次下发轨迹下载.解决:域控重启,或者102域控启动太早,107节点初始化未完成导致的轨迹未进行下载。
d(SceneConstant.M_CHARTER_D + TAG, "onAutopilotGuardian() ssm ready,再次发起下载")
syncTrajectoryInfo(get().getBusOrderResult()?.lineId!!,
diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/model/CharterPassengerModel.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/model/CharterPassengerModel.kt
index ab2d27edf2..4af2a9cfb8 100644
--- a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/model/CharterPassengerModel.kt
+++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/model/CharterPassengerModel.kt
@@ -53,6 +53,7 @@ import io.reactivex.Observable
import io.reactivex.disposables.Disposable
import io.reactivex.schedulers.Schedulers
import mogo.telematics.pad.MessagePad
+import mogo_msg.MogoReportMsg
import java.util.*
import java.util.concurrent.ConcurrentHashMap
import java.util.concurrent.TimeUnit
@@ -197,6 +198,14 @@ object CharterPassengerModel {
d(M_BUS_P + TAG, "底盘给到站信息")
arriveDest()
}
+ override fun onAutopilotGuardian(guardianInfo: MogoReportMsg.MogoReportMessage?) {
+ super.onAutopilotGuardian(guardianInfo)
+ guardianInfo?.let {
+ if (it.code=="IMAP_TRA_LOADED") {
+ ToastCharterUtils.showToastShort("请等待车辆完成掉头后再出发吧~")
+ }
+ }
+ }
}
/**
diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/itinerary/ItineraryView.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/itinerary/ItineraryView.kt
index 26238e72e9..e362613f11 100644
--- a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/itinerary/ItineraryView.kt
+++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/itinerary/ItineraryView.kt
@@ -13,6 +13,9 @@ import kotlinx.android.synthetic.main.m1_itinerary_info.view.tv_distance_surplus
import kotlinx.android.synthetic.main.m1_itinerary_info.view.tv_distance_unit
import kotlinx.android.synthetic.main.m1_itinerary_info.view.tv_speed
+/**
+ * 速度、剩余时间、剩余距离和到达时间
+ */
class ItineraryView : ConstraintLayout, ItineraryViewModel.ItineraryViewCallback {
private val TAG = "ItineraryView"
diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/orderinfo/OrderInfoView.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/orderinfo/OrderInfoView.kt
index 78b4af73ff..a9816bf408 100644
--- a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/orderinfo/OrderInfoView.kt
+++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/orderinfo/OrderInfoView.kt
@@ -19,6 +19,9 @@ import kotlinx.android.synthetic.main.m1_devices_fragment.view.actv_order_times
import kotlinx.android.synthetic.main.m1_devices_fragment.view.cl_order_info
import kotlinx.android.synthetic.main.m1_devices_fragment.view.cl_order_info_endorder_comfit
+/**
+ * 剩余时间和结束订单入口
+ */
class OrderInfoView : ConstraintLayout, OrderInfoViewModel.ItineraryViewCallback {
private val TAG = "OrderInfoView"
diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/selectline/SelectLineView.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/selectline/SelectLineView.kt
index d9fa7178c1..5620c12797 100644
--- a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/selectline/SelectLineView.kt
+++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/selectline/SelectLineView.kt
@@ -41,6 +41,9 @@ import kotlinx.android.synthetic.main.m1_order_loading.view.iv_loading_wait_ent
import me.jessyan.autosize.utils.AutoSizeUtils
import org.greenrobot.eventbus.EventBus
+/**
+ * 选择线路
+ */
class SelectLineView : ConstraintLayout, SelectLineViewModel.SelectLineViewCallback {
private val TAG = "OrderInfoView"
diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/softcontrol/SoftControlView.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/softcontrol/SoftControlView.kt
index c071ba0680..46acd5e9fe 100644
--- a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/softcontrol/SoftControlView.kt
+++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/softcontrol/SoftControlView.kt
@@ -72,6 +72,9 @@ import kotlinx.android.synthetic.main.m1_soft_fragment.view.tv_temperature_title
import me.jessyan.autosize.utils.AutoSizeUtils
import java.util.concurrent.TimeUnit
+/**
+ * 空调、暖风机、声音控制
+ */
class SoftControlView : ConstraintLayout, SoftControlViewModel.SoftControlCallback {
private val TAG = "OrderInfoView"
diff --git a/OCH/charter/passenger/src/main/res/layout/m1_main_fragment.xml b/OCH/charter/passenger/src/main/res/layout/m1_main_fragment.xml
index 6cbce0dc1e..386152cd5d 100644
--- a/OCH/charter/passenger/src/main/res/layout/m1_main_fragment.xml
+++ b/OCH/charter/passenger/src/main/res/layout/m1_main_fragment.xml
@@ -92,12 +92,14 @@
app:layout_constraintEnd_toEndOf="@+id/viewBusPM1MsgBoxButton"
app:layout_constraintTop_toBottomOf="@+id/viewBusPM1MsgBoxButton" />
+
+
+
+
+
-
+
+
+
+
{
- SweeperCloudTaskUtils.mockSendCloudTaskInfo(SweeperCloudTask.MessageType.CloudPushTask);
+ SweeperCloudTaskUtils.mockSendCloudTaskInfo(AiCloudTask.MessageType.CloudPushTask);
UiThreadHandler.postDelayed(() -> {
debugEndSubTask();
}, 5000);
diff --git a/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/fragment/SweeperFragment.kt b/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/fragment/SweeperFragment.kt
index f8873a2c85..f71727341b 100644
--- a/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/fragment/SweeperFragment.kt
+++ b/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/fragment/SweeperFragment.kt
@@ -35,7 +35,7 @@ import com.mogo.och.sweepercloud.util.SweeperCloudTaskUtils.createSweeperTaskRes
import com.mogo.och.sweepercloud.util.SweeperCloudTaskUtils.createSweeperTaskSuspendDialog
import com.mogo.och.sweepercloud.util.SweeperCloudTaskUtils.printMessage
import com.mogo.och.sweepercloud.view.SweeperCurrentTaskInfoView
-import com.zhjt.mogo.adas.data.sweeper.SweeperCloudTask
+import com.zhjt.mogo.adas.data.AiCloudTask
import com.zhjt.mogo.adas.data.sweeper.bootable.SweeperBootable
import com.zhjt.mogo.adas.data.sweeper.common.SweeperCommon
import com.zhjt.mogo.adas.data.sweeper.common.SweeperCommon.TaskStatus
@@ -205,7 +205,7 @@ class SweeperFragment : BaseSweeperTabFragment
}
@Override
- public void onSweeperCloudTask(@NonNull SweeperCloudTask.MessageType messageType, SweeperTask.TaskInfo taskInfo) {
+ public void onSweeperCloudTask(@NonNull AiCloudTask.MessageType messageType, SweeperTask.TaskInfo taskInfo) {
ThreadUtils.runOnUiThread(() -> mView.onSweeperCloudTask(messageType, taskInfo));
}
@@ -210,7 +210,7 @@ public class SweeperPresenter extends Presenter
}
@Override
- public void onSweeperCloudTaskSuspendResume(@NonNull SweeperCloudTask.MessageType messageType, @NonNull String taskId,
+ public void onSweeperCloudTaskSuspendResume(@NonNull AiCloudTask.MessageType messageType, @NonNull String taskId,
@NonNull String subTaskId, SweeperCommon.Code code) {
}
diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/presenter/TaxiPresenter.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/presenter/TaxiPresenter.java
index 112190771e..960428b09d 100644
--- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/presenter/TaxiPresenter.java
+++ b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/presenter/TaxiPresenter.java
@@ -48,8 +48,6 @@ public class TaxiPresenter extends Presenter implements ITaxiADASS
private static final String TAG = TaxiPresenter.class.getSimpleName();
- private int preAutopilotStatus = 0;
-
public TaxiPresenter(TaxiFragment view) {
super(view);
TaxiModel.getInstance().init(AbsMogoApplication.getApp());
@@ -192,30 +190,24 @@ public class TaxiPresenter extends Presenter implements ITaxiADASS
public void onAutopilotEnable() {
runOnUIThread(() -> mView.updateAutopilotStatus(
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE));
- preAutopilotStatus = IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE;
}
@Override
public void onAutopilotDisable() {
runOnUIThread(() -> mView.updateAutopilotStatus(
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE));
- preAutopilotStatus = IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE;
}
@Override
public void onAutopilotRunning() {
- if (preAutopilotStatus != IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING){
- runOnUIThread(() -> mView.updateAutopilotStatus(
+ runOnUIThread(() -> mView.updateAutopilotStatus(
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING));
- }
- preAutopilotStatus = IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING;
}
@Override
public void onManMachineCoDriving() {
runOnUIThread(() -> mView.onManMachineCoDriving(IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING));
- preAutopilotStatus = IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING;
}
@Override
diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/BaseTaxiTabFragment.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/BaseTaxiTabFragment.java
index d5cb965405..6953426b58 100644
--- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/BaseTaxiTabFragment.java
+++ b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/BaseTaxiTabFragment.java
@@ -224,8 +224,11 @@ public abstract class BaseTaxiTabFragment
onAutopilotStatusChanged(IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING));
- tvOperationStatus.setOnClickListener(view -> {
- onChangeOperationStatus();
+ tvOperationStatus.setOnClickListener(new OnPreventFastClickListener() {
+ @Override
+ public void onClickImpl(View v) {
+ onChangeOperationStatus();
+ }
});
mCloseNaviIcon.setOnClickListener(v -> {
showAmapNaviToStationFragment(false);
@@ -333,21 +336,13 @@ public abstract class BaseTaxiTabFragment {
if (isStarting && IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING != status) {
// 1. 主动开启自动驾驶中,不为2(为0、1)则继续loading
return;
}
- if (isStarting && IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING == status
- && mPrevAPStatus != status) {
+ if (isStarting && IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING == status) {
// 2. 主动开启自动驾驶中,为2则停止loading,并isStarting = false
startAutopilotDone(true);
return;
@@ -355,7 +350,6 @@ public abstract class BaseTaxiTabFragment> : MvpFragment> : MvpFragment> : MvpFragment> : MvpFragment> : MvpFragment implements ITaxiADASS
private static final String TAG = TaxiPresenter.class.getSimpleName();
- private int preAutopilotStatus = 0;
-
public TaxiPresenter(TaxiFragment view) {
super(view);
TaxiTaskModel.INSTANCE.init();
@@ -103,29 +101,23 @@ public class TaxiPresenter extends Presenter implements ITaxiADASS
public void onAutopilotEnable() {
runOnUIThread(() -> mView.updateAutopilotStatus(
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE));
- preAutopilotStatus = IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE;
}
@Override
public void onAutopilotDisable() {
runOnUIThread(() -> mView.updateAutopilotStatus(
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE));
- preAutopilotStatus = IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE;
}
@Override
public void onAutopilotRunning() {
- if (preAutopilotStatus != IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING) {
- runOnUIThread(() -> mView.updateAutopilotStatus(
- IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING));
- }
- preAutopilotStatus = IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING;
+ runOnUIThread(() -> mView.updateAutopilotStatus(
+ IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING));
}
@Override
public void onParallelDrivingStatus() {
runOnUIThread(() -> mView.onParallelDrivingStatus(IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING));
- preAutopilotStatus = IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING;
}
@Override
diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/adapter/MoGoAdasListenerImpl.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/adapter/MoGoAdasListenerImpl.kt
index c16aab2ac0..a0c626ad1a 100644
--- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/adapter/MoGoAdasListenerImpl.kt
+++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/adapter/MoGoAdasListenerImpl.kt
@@ -1,5 +1,6 @@
package com.mogo.eagle.core.function.datacenter.autopilot.adapter
+import android.util.Log
import bag_manager.BagManagerOuterClass
import chassis.ChassisStatesOuterClass
import chassis.VehicleStateOuterClass
@@ -163,6 +164,9 @@ class MoGoAdasListenerImpl : OnAdasListener {
vehicleState: VehicleStateOuterClass.VehicleState?
) {
if (vehicleState != null) {
+ Log.i(
+ "xfk",
+ "底盘 onVehicleState 刹车=${vehicleState.brake}")
//转向灯数据
CallerChassisLamplightListenerManager.invokeAutopilotLightSwitchData(vehicleState.light)
//刹车灯数据
@@ -252,6 +256,9 @@ class MoGoAdasListenerImpl : OnAdasListener {
CallerChassisThrottleStateListenerManager.invokeAutopilotThrottle(it.throttleResponsePosition)
}
chassisStates.brakeSystemStates?.let {
+ Log.i(
+ "xfk",
+ "底盘 onVehicleState 刹车=${it.brakePedalResponsePosition}")
//刹车
CallerChassisBrakeStateListenerManager.invokeAutopilotBrake(it.brakePedalResponsePosition)
}
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt
index edd8e6e8e5..0949698094 100644
--- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt
+++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt
@@ -50,6 +50,7 @@ import com.mogo.eagle.core.data.obu.ObuStatusInfo
import com.mogo.eagle.core.function.api.autopilot.*
import com.mogo.eagle.core.function.api.datacenter.obu.IMoGoObuConnectListener
import com.mogo.eagle.core.function.api.datacenter.obu.IMoGoObuInfoListener
+import com.mogo.eagle.core.function.api.setting.ISopSettingListener
import com.mogo.eagle.core.function.api.devatools.IMoGoDevaToolsFuncConfigListener
import com.mogo.eagle.core.function.api.devatools.IMoGoDevaToolsListener
import com.mogo.eagle.core.function.call.autopilot.*
@@ -61,6 +62,7 @@ import com.mogo.eagle.core.function.call.obu.CallerObuApiManager
import com.mogo.eagle.core.function.call.obu.CallerObuConnectListenerManager
import com.mogo.eagle.core.function.call.obu.CallerObuInfoListenerManager
import com.mogo.eagle.core.function.call.setting.CallerMoGoUiSettingManager
+import com.mogo.eagle.core.function.call.setting.CallerSopSettingManager
import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager
import com.mogo.eagle.core.function.hmi.R
import com.mogo.eagle.core.function.hmi.ui.logcatch.ILogViewListener
@@ -121,7 +123,8 @@ internal class DebugSettingView @JvmOverloads constructor(
IMoGoChassisBrakeStateListener,
IMoGoChassisThrottleStateListener,
IMoGoSweeperFutianCleanSystemListener,
- IMoGoObuInfoListener {
+ IMoGoObuInfoListener,
+ ISopSettingListener {
private val TAG = "DebugSettingView"
@@ -230,6 +233,8 @@ internal class DebugSettingView @JvmOverloads constructor(
CallerDevaToolsListenerManager.addListener(TAG, this)
//添加 底盘灯光数据 监听
CallerChassisLamplightListenerManager.addListener(TAG, this)
+ //雨天、美化、点云设置同步
+ CallerSopSettingManager.addListener(TAG,this)
//添加 业务配置监听
CallerDevaToolsFuncConfigListenerManager.registerDevaToolsFuncConfigListener(
@@ -277,6 +282,8 @@ internal class DebugSettingView @JvmOverloads constructor(
CallerChassisLamplightListenerManager.removeListener(TAG)
// 移除 obu获取信息 监听
CallerObuInfoListenerManager.removeListener(TAG)
+ //雨天、美化、点云设置同步
+ CallerSopSettingManager.removeListener(TAG)
// 移除 业务配置监听
CallerDevaToolsFuncConfigListenerManager.unRegisterDevaToolsFuncConfigListener(
@@ -697,11 +704,14 @@ internal class DebugSettingView @JvmOverloads constructor(
// 演示模式,上一次勾选的数据
tbIsDemoMode.isChecked = FunctionBuildConfig.isDemoMode
-
// 演示模式
- tbIsDemoMode.setOnCheckedChangeListener { _, _ ->
+ tbIsDemoMode.setOnCheckedChangeListener { compoundButton, isChecked ->
+ if(!compoundButton.isPressed){
+ return@setOnCheckedChangeListener
+ }
FunctionBuildConfig.isDemoMode = !FunctionBuildConfig.isDemoMode
CallerAutoPilotControlManager.setDemoMode(FunctionBuildConfig.isDemoMode)
+ CallerSopSettingManager.invokeDemoModeListener(isChecked)
if (!FunctionBuildConfig.isDemoMode) {
//关闭美化模式时,通知工控机
CallerAutoPilotControlManager.setIPCDemoMode(FunctionBuildConfig.isDemoMode)
@@ -734,9 +744,13 @@ internal class DebugSettingView @JvmOverloads constructor(
// 雨天模式,上一次勾选的数据
tbIsRainMode.isChecked = FunctionBuildConfig.isRainMode
//雨天模式
- tbIsRainMode.setOnCheckedChangeListener { _, isChecked ->
+ tbIsRainMode.setOnCheckedChangeListener { compoundButton, isChecked ->
+ if(!compoundButton.isPressed){
+ return@setOnCheckedChangeListener
+ }
CallerAutoPilotControlManager.setRainMode(isChecked)
FunctionBuildConfig.isRainMode = isChecked
+ CallerSopSettingManager.invokeRainModeListener(isChecked)
}
//雨天模式按钮只在司机屏生效,乘客屏不显示
if (AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode)) {
@@ -854,10 +868,14 @@ internal class DebugSettingView @JvmOverloads constructor(
//初始化点云数据渲染情况
tbDrawPointCloudData.isChecked = FunctionBuildConfig.isDrawPointCloudData
//是否渲染点云数据
- tbDrawPointCloudData.setOnCheckedChangeListener { _, isChecked ->
+ tbDrawPointCloudData.setOnCheckedChangeListener { compoundButton, isChecked ->
+ if(!compoundButton.isPressed){
+ return@setOnCheckedChangeListener
+ }
CallerAutoPilotControlManager.setIsDrawPointCloud(isChecked)
FunctionBuildConfig.isDrawPointCloudData = isChecked
CallerMapUIServiceManager.getMapUIController()?.setIsDrawPointCloud(isChecked)
+ CallerSopSettingManager.invokePointCloudListener(isChecked)
}
//设置点云大小
@@ -2230,4 +2248,26 @@ internal class DebugSettingView @JvmOverloads constructor(
}
}
}
+
+ /**
+ * 美化模式
+ */
+ override fun onDemoModeClickEvent(status: Boolean) {
+ tbIsDemoMode.isChecked = status
+ }
+
+ /**
+ * 雨天模式
+ */
+ override fun onRainModeClickEvent(status: Boolean) {
+ tbIsRainMode.isChecked = status
+ }
+
+ /**
+ * 点云模式
+ */
+ override fun onPointCloudClickEvent(status: Boolean) {
+ tbDrawPointCloudData.isChecked = status
+ }
+
}
\ 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/setting/SOPSettingView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/SOPSettingView.kt
index 66602b194a..e530ef6e2c 100644
--- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/SOPSettingView.kt
+++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/SOPSettingView.kt
@@ -18,6 +18,7 @@ import com.mogo.eagle.core.function.api.devatools.mofang.*
import com.mogo.eagle.core.function.api.hmi.view.IViewControlListener
import com.mogo.eagle.core.function.api.hmi.view.IViewControlListener.Companion.FUNC_MODE_DEMO
import com.mogo.eagle.core.function.api.hmi.view.IViewControlListener.Companion.FUNC_MODE_RAIN
+import com.mogo.eagle.core.function.api.setting.ISopSettingListener
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotGetParamResponseDispatcher
import com.mogo.eagle.core.function.call.devatools.*
@@ -26,6 +27,7 @@ import com.mogo.eagle.core.function.hmi.R
import com.mogo.eagle.core.function.call.hmi.CallerHmiViewControlListenerManager
import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager
import com.mogo.eagle.core.function.call.obu.CallerObuApiManager
+import com.mogo.eagle.core.function.call.setting.CallerSopSettingManager
import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager
import com.mogo.eagle.core.function.hmi.ui.utils.HmiActionLog.Companion.hmiAction
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
@@ -45,7 +47,7 @@ internal class SOPSettingView @JvmOverloads constructor(
defStyleAttr: Int = 0
) : ConstraintLayout(context, attrs, defStyleAttr), IMoGoDevaToolsFuncConfigListener,
IViewControlListener, IMoGoMoFangProvider.OnMoFangStatusListener,
- IMoGoGetParamResponseListener {
+ IMoGoGetParamResponseListener, ISopSettingListener {
companion object {
const val TAG = "SOPSettingView"
@@ -361,7 +363,10 @@ internal class SOPSettingView @JvmOverloads constructor(
//初始化点云数据渲染情况
scDrawPointCloudData.isChecked = FunctionBuildConfig.isDrawPointCloudData
//是否渲染点云数据
- scDrawPointCloudData.setOnCheckedChangeListener { _, isChecked ->
+ scDrawPointCloudData.setOnCheckedChangeListener { compoundButton, isChecked ->
+ if(!compoundButton.isPressed){
+ return@setOnCheckedChangeListener
+ }
//打开点云效果时,如果自车光圈是关闭状态,则自动打开自车光圈(点云是跟随光圈的 默认没有光圈就不显示点云的)
if(isChecked && !FunctionBuildConfig.isDisplayAnimEnable){
scCarAperture.isChecked = true
@@ -371,6 +376,7 @@ internal class SOPSettingView @JvmOverloads constructor(
CallerAutoPilotControlManager.setIsDrawPointCloud(isChecked)
FunctionBuildConfig.isDrawPointCloudData = isChecked
CallerMapUIServiceManager.getMapUIController()?.setIsDrawPointCloud(isChecked)
+ CallerSopSettingManager.invokePointCloudListener(isChecked)
hmiAction("SOP 是否渲染点云数据, ",isChecked)
Log.i(TAG,"SOP 是否渲染点云数据, $isChecked")
}
@@ -403,7 +409,7 @@ internal class SOPSettingView @JvmOverloads constructor(
// 演示模式,上一次勾选的数据
scDemoMode.isChecked = FunctionBuildConfig.isDemoMode
- scDemoMode.setOnCheckedChangeListener { compoundButton, _ ->
+ scDemoMode.setOnCheckedChangeListener { compoundButton, isChecked ->
if(!compoundButton.isPressed){
return@setOnCheckedChangeListener
}
@@ -412,6 +418,7 @@ internal class SOPSettingView @JvmOverloads constructor(
FunctionBuildConfig.isDemoMode = !FunctionBuildConfig.isDemoMode
CallerAutoPilotControlManager.setDemoMode(FunctionBuildConfig.isDemoMode)
CallerHmiViewControlListenerManager.invokeFuncMode(FUNC_MODE_DEMO, FunctionBuildConfig.isDemoMode)
+ CallerSopSettingManager.invokeDemoModeListener(isChecked)
if (!FunctionBuildConfig.isDemoMode) {
//关闭美化模式时,通知工控机
CallerAutoPilotControlManager.setIPCDemoMode(FunctionBuildConfig.isDemoMode)
@@ -433,6 +440,7 @@ internal class SOPSettingView @JvmOverloads constructor(
FunctionBuildConfig.isRainMode = isChecked
CallerAutoPilotControlManager.setRainMode(isChecked)
CallerHmiViewControlListenerManager.invokeFuncMode(FUNC_MODE_RAIN, isChecked)
+ CallerSopSettingManager.invokeRainModeListener(isChecked)
}
//雨天模式按钮只在司机屏生效,乘客屏不显示
if (AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode)) {
@@ -647,6 +655,8 @@ internal class SOPSettingView @JvmOverloads constructor(
CallerAutopilotGetParamResponseDispatcher.addListener(TAG, this)
//查询融合模式
CallerAutoPilotControlManager.sendGetParamReq(AdasConstants.MapSystemParamType.FUSION_MODE)
+ //雨天、美化、点云设置同步
+ CallerSopSettingManager.addListener(TAG,this)
}
override fun updateFuncMode(tag: String, boolean: Boolean) {
@@ -666,6 +676,8 @@ internal class SOPSettingView @JvmOverloads constructor(
CallerHmiViewControlListenerManager.removeListener(TAG)
CallerAutopilotGetParamResponseDispatcher.removeListener(TAG)
CallerDevaToolsManager.mofang()?.unRegisterMoFangStatusListener(this)
+ //雨天、美化、点云设置同步
+ CallerSopSettingManager.removeListener(TAG)
}
@@ -730,6 +742,27 @@ internal class SOPSettingView @JvmOverloads constructor(
override fun onMoFangStatusError(msg: String) {}
+ /**
+ * 美化模式
+ */
+ override fun onDemoModeClickEvent(status: Boolean) {
+ scDemoMode.isChecked = status
+ }
+
+ /**
+ * 雨天模式
+ */
+ override fun onRainModeClickEvent(status: Boolean) {
+ scRainMode.isChecked = status
+ }
+
+ /**
+ * 点云模式
+ */
+ override fun onPointCloudClickEvent(status: Boolean) {
+ scDrawPointCloudData.isChecked = status
+ }
+
/**
* 工控机配置参数获取
*/
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/ParallelDriveView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/ParallelDriveView.kt
index 0d5c9d93b4..79b85ef6d7 100644
--- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/ParallelDriveView.kt
+++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/ParallelDriveView.kt
@@ -1,16 +1,18 @@
package com.mogo.eagle.core.function.hmi.ui.widget
+import android.animation.ObjectAnimator
+import android.animation.ValueAnimator
import android.annotation.SuppressLint
import android.content.Context
import android.graphics.Color
import android.util.AttributeSet
import android.view.LayoutInflater
+import android.view.animation.LinearInterpolator
import android.widget.ImageView
import android.widget.TextView
import androidx.constraintlayout.widget.ConstraintLayout
import com.mogo.cloud.passport.MoGoAiCloudClientConfig
import com.mogo.commons.voice.AIAssist
-import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotActionsListener
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
import com.mogo.eagle.core.function.api.autopilot.IMoGoParallelDrivingActionsListener
import com.mogo.eagle.core.function.api.autopilot.IMoGoParallelDrivingStatusListener
@@ -22,7 +24,6 @@ import com.mogo.eagle.core.function.hmi.R
import com.mogo.eagle.core.utilcode.util.ThreadUtils
import com.mogo.eagle.core.utilcode.util.ToastUtils
import com.zhjt.mogo.adas.data.bean.UnableLaunchReason
-import com.zhjt.mogo.adas.data.bean.UnableLaunchReason.SourceType
import mogo.yycp.paralleldriving.protocol.ParallelDrivingRequest.ParallelRequest
import mogo.yycp.paralleldriving.protocol.ParallelTaskProcessNoticeOuterClass
@@ -50,6 +51,7 @@ class ParallelDriveView @JvmOverloads constructor(
//1:ready, 2:自动驾驶中, 7:平行驾驶中
@Volatile
private var autopilotState: Int = 1
+
@Volatile
private var isAutoDriving: Boolean = false
@@ -60,6 +62,7 @@ class ParallelDriveView @JvmOverloads constructor(
private lateinit var statusIcon: ImageView
private lateinit var statusTitle: TextView
private var listener: ClickEventListener? = null
+ private var animator: ObjectAnimator? = null
init {
LayoutInflater.from(context).inflate(R.layout.view_parallel_drive, this, true)
@@ -115,11 +118,13 @@ class ParallelDriveView @JvmOverloads constructor(
}, ThreadUtils.MODE.QUEUE)
}
}
+
2 -> {
if (this.autopilotState != state) {
isAutoDriving = true
}
}
+
else -> {
if (this.autopilotState != state) {
isAutoDriving = false
@@ -161,30 +166,37 @@ class ParallelDriveView @JvmOverloads constructor(
state = SYNCHRONIZING
updateUI(SYNCHRONIZING)
}
+
"EXCEPTION_EXIT_SYNC" -> {// 同步异常结束
state = ONE_EXCEPTION
updateUI(ONE_EXCEPTION)
}
+
"TASK_REJECTED" -> {// 任务已被拒绝
state = FAILURE
updateUI(FAILURE)
AIAssist.getInstance(context).speakTTSVoice("请求已被拒绝")
}
+
"PARALLEL_EXCEPTION_MANUAL_DRIVING" -> {// 异常请人工驾驶
state = TWO_EXCEPTION
updateUI(TWO_EXCEPTION)
}
+
"EXCEPTION_EXIT_PARALLEL_DRIVING" -> {// 平行驾驶异常结束
state = ONE_EXCEPTION
updateUI(ONE_EXCEPTION)
}
+
"EXIT_SYNC" -> {// 同步结束
checkAvailableAndUpdateUI()
}
+
"UNABLE_TAKEOVER" -> {// 无法接管
state = ONE_EXCEPTION
updateUI(ONE_EXCEPTION)
}
+
"VEHICLE_IN_TROUBLE_PARALLEL_REQUESTED" -> {// 车辆遇困请求平行驾驶
state = AD_REQUESTING
updateUI(AD_REQUESTING)
@@ -198,6 +210,7 @@ class ParallelDriveView @JvmOverloads constructor(
private fun updateUI(state: Int) {
when (state) {
0 -> {
+ stopRotateAnimation()
rootLayout.isEnabled = true
rootLayout.alpha = 1f
statusIcon.background =
@@ -215,6 +228,7 @@ class ParallelDriveView @JvmOverloads constructor(
resources.getDrawable(R.drawable.icon_para_requesting, null)
statusTitle.setTextColor(Color.parseColor("#FFFFFF"))
statusIcon.alpha = 1f
+ startRotateAnimation()
statusTitle.text = context.getString(R.string.parallel_drive_requesting)
rootLayout.background = resources.getDrawable(R.drawable.bg_auto_pilot, null)
}
@@ -226,11 +240,13 @@ class ParallelDriveView @JvmOverloads constructor(
resources.getDrawable(R.drawable.icon_para_requesting, null)
statusTitle.setTextColor(Color.parseColor("#FFFFFF"))
statusIcon.alpha = 1f
+ startRotateAnimation()
statusTitle.text = context.getString(R.string.parallel_drive_requesting)
rootLayout.background = resources.getDrawable(R.drawable.bg_auto_pilot, null)
}
SYNCHRONIZING -> {
+ stopRotateAnimation()
rootLayout.isEnabled = false
rootLayout.alpha = 1f
statusIcon.background =
@@ -242,6 +258,7 @@ class ParallelDriveView @JvmOverloads constructor(
}
PARALLEL_DRIVING -> {
+ stopRotateAnimation()
rootLayout.isEnabled = false
rootLayout.alpha = 1f
statusIcon.background =
@@ -254,6 +271,7 @@ class ParallelDriveView @JvmOverloads constructor(
}
FAILURE -> {
+ stopRotateAnimation()
rootLayout.isEnabled = false
rootLayout.alpha = 1f
rootLayout.postDelayed({
@@ -268,6 +286,7 @@ class ParallelDriveView @JvmOverloads constructor(
}
ONE_EXCEPTION -> {
+ stopRotateAnimation()
rootLayout.isEnabled = false
rootLayout.alpha = 1f
rootLayout.postDelayed({
@@ -282,6 +301,7 @@ class ParallelDriveView @JvmOverloads constructor(
}
TWO_EXCEPTION -> {
+ stopRotateAnimation()
rootLayout.isEnabled = false
rootLayout.alpha = 1f
rootLayout.postDelayed({
@@ -296,6 +316,7 @@ class ParallelDriveView @JvmOverloads constructor(
}
UNAVAILABLE -> {
+ stopRotateAnimation()
rootLayout.isEnabled = false
rootLayout.alpha = 0.4f
statusIcon.background =
@@ -351,6 +372,27 @@ class ParallelDriveView @JvmOverloads constructor(
}
}
+ @SuppressLint("Recycle")
+ private fun startRotateAnimation() {
+ if (animator == null) {
+ animator = ObjectAnimator.ofFloat(statusIcon, "rotation", 0f, 360f).apply {
+ duration = 1500
+ repeatMode = ValueAnimator.RESTART
+ repeatCount = ValueAnimator.INFINITE
+ interpolator = LinearInterpolator()
+ }
+ }
+ animator?.start()
+ }
+
+ private fun stopRotateAnimation() {
+ animator?.let {
+ if (it.isRunning) {
+ it.cancel()
+ }
+ }
+ }
+
override fun onDetachedFromWindow() {
super.onDetachedFromWindow()
CallerAutoPilotStatusListenerManager.removeListener(TAG)
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SystemVersionView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SystemVersionView.kt
index e2f04774a2..9a83acc88a 100644
--- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SystemVersionView.kt
+++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SystemVersionView.kt
@@ -2,6 +2,7 @@ package com.mogo.eagle.core.function.hmi.ui.widget
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
@@ -377,9 +378,13 @@ class SystemVersionView @JvmOverloads constructor(
* HQ、M1 MAP350开始弃用,其他车型MAP360开始弃用
*/
override fun onAutopilotStatusRespByQuery(status: SystemStatusInfo.StatusInfo) {
+ Log.i(TAG,"hdMapVer="+status.hdMapVer)
+ //hdMapVer返回示例:/home/mogo/autopilot/share/hadmap_engine/data/hadmap_data/db.sqlite|bj|2.2.7|对bus路线上的junction进行修改,对原609场景修改为6091、6092、6201、 6202四种细分场景,并对通往园区路口改为619
if(status.hdMapVer!= null && status.hdMapVer.isNotEmpty()){
//对地图版本进行截取
- AppConfigInfo.adHdMapVersion = status.hdMapVer.substringAfter("/hadmap_data/").substringBefore(".sqlite")
+ val city = status.hdMapVer.substringAfter(".sqlite|").substringBefore("|")
+ val version =status.hdMapVer.substringAfter("$city|").substringBefore("|")
+ AppConfigInfo.adHdMapVersion = "${city}_${version}"
updateAdHdMapVersion()
}
@@ -392,9 +397,13 @@ class SystemVersionView @JvmOverloads constructor(
* @param statusInf 数据
*/
override fun onSystemStatus(statusInf: SsmInfo.SsmStatusInf) {
+ Log.i(TAG,"hdMapVer="+statusInf.hdMapVer)
+ //hdMapVer返回示例:/home/mogo/autopilot/share/hadmap_engine/data/hadmap_data/db.sqlite|bj|2.2.7|对bus路线上的junction进行修改,对原609场景修改为6091、6092、6201、 6202四种细分场景,并对通往园区路口改为619
if(statusInf.hdMapVer!= null && statusInf.hdMapVer.isNotEmpty()){
//对地图版本进行截取
- AppConfigInfo.adHdMapVersion = statusInf.hdMapVer.substringAfter("/hadmap_data/").substringBefore(".sqlite")
+ val city = statusInf.hdMapVer.substringAfter(".sqlite|").substringBefore("|")
+ val version =statusInf.hdMapVer.substringAfter("$city|").substringBefore("|")
+ AppConfigInfo.adHdMapVersion = "${city}_${version}"
updateAdHdMapVersion()
}
}
diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/routeoverlay/MogoRouteOverlayManager.java b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/routeoverlay/MogoRouteOverlayManager.java
index 32ff8ae1a0..9f022ffb9e 100644
--- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/routeoverlay/MogoRouteOverlayManager.java
+++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/routeoverlay/MogoRouteOverlayManager.java
@@ -1,5 +1,7 @@
package com.mogo.eagle.core.function.business.routeoverlay;
+import android.util.Log;
+
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
@@ -61,6 +63,7 @@ public class MogoRouteOverlayManager implements
@Override
public void onAutopilotTrajectory(@NonNull List items) {
+ Log.d(TAG, "-- onAutopilotTrajectory --: " + (items != null ? items.size() : "0"));
synchronized (queue) {
queue.clear();
queue.offer(items);
@@ -72,15 +75,18 @@ public class MogoRouteOverlayManager implements
if (gnssInfo == null) {
return;
}
+ Log.d(TAG, "-- onChassisLocationGCJ02 -- 1 ---" + ":auto-mode:" + autopilotMode.get() + ", isArriveAtStation: " + isArriveAtStation.get());
if (isArriveAtStation.get() && autopilotMode.get() != 2) {
RouteOverlayDrawer.getInstance().clearMogoRouteOverlay();
return;
}
+ Log.d(TAG, "-- onChassisLocationGCJ02 -- 2 ---" + "auto-mode:" + autopilotMode.get() + ", isDemoMode:" + FunctionBuildConfig.isDemoMode + ", force:" + FunctionBuildConfig.isForceDrawAutopilotTrajectoryByDebugSettingView);
boolean force = FunctionBuildConfig.isForceDrawAutopilotTrajectoryByDebugSettingView || FunctionBuildConfig.isDemoMode && FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData;
if (!force && autopilotMode.get() != 2) {
RouteOverlayDrawer.getInstance().clearMogoRouteOverlay();
return;
}
+ Log.d(TAG, "-- onChassisLocationGCJ02 -- 3 ---");
synchronized (queue) {
if (!queue.isEmpty()) {
List items = queue.pollLast();
@@ -96,6 +102,7 @@ public class MogoRouteOverlayManager implements
if (state == 2) {
isArriveAtStation.set(false);
}
+ Log.d(TAG, "-- onAutopilotStatusResponse ---: state:" + state);
this.autopilotMode.set(state);
}
@@ -105,12 +112,15 @@ public class MogoRouteOverlayManager implements
@Override
public void onAutopilotArriveAtStation(MessagePad.ArrivalNotification arrivalNotification) {
+ Log.d(TAG, "-- onAutopilotArriveAtStation --- 1 ---");
if (arrivalNotification == null) {
return;
}
+ Log.d(TAG, "-- onAutopilotArriveAtStation --- 2 ---");
if(!HdMapBuildConfig.isMapLoaded){
return;
}
+ Log.d(TAG, "-- onAutopilotArriveAtStation --- 3 ---");
if (!isArriveAtStation.get()) {
isArriveAtStation.set(true);
}
diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/deva/chain/ChainConstant.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/deva/chain/ChainConstant.kt
index f243da70ef..771ad6c73b 100644
--- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/deva/chain/ChainConstant.kt
+++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/deva/chain/ChainConstant.kt
@@ -35,6 +35,7 @@ class ChainConstant {
const val CHAIN_TYPE_WEAK_NETWORK = 400
const val CHAIN_TYPE_OCH = 500
+ //注意,如果新增/改动文件名称,需要与服务端同步信息,预警需要
const val CHAIN_LINK_LOG_INIT = "-eagleInitStatus"
const val CHAIN_LINK_LOG_ADAS_GNSS = "-adasGnssInfo"
const val CHAIN_LINK_LOG_ADAS_AUTO = "-adasAutoPilot"
diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/setting/ISopSettingListener.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/setting/ISopSettingListener.kt
new file mode 100644
index 0000000000..7b5a5f0b25
--- /dev/null
+++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/setting/ISopSettingListener.kt
@@ -0,0 +1,23 @@
+package com.mogo.eagle.core.function.api.setting
+
+/**
+ * 运营面板、调试面板设置事件监听回调
+ */
+interface ISopSettingListener {
+
+ /**
+ * 美化模式
+ */
+ fun onDemoModeClickEvent(status: Boolean){}
+
+ /**
+ * 雨天模式
+ */
+ fun onRainModeClickEvent(status: Boolean){}
+
+ /**
+ * 点云
+ */
+ fun onPointCloudClickEvent(status: Boolean){}
+
+}
\ No newline at end of file
diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerAutopilotActionsListenerManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerAutopilotActionsListenerManager.kt
index eaca9a41c3..a5ee26bf19 100644
--- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerAutopilotActionsListenerManager.kt
+++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerAutopilotActionsListenerManager.kt
@@ -1,5 +1,6 @@
package com.mogo.eagle.core.function.call.autopilot
+import android.util.Log
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotActionsListener
import com.mogo.eagle.core.function.call.base.CallerBase
import com.zhjt.mogo.adas.data.bean.UnableLaunchReason
@@ -61,6 +62,9 @@ object CallerAutopilotActionsListenerManager : CallerBase?
) {
+ Log.i(
+ "xfk",
+ "CallerAutopilotActionsListenerManager invokeAutopilotAbility=${CallerAutopilotActionsListenerManager.isAutopilotAbility} ${(if (CallerAutopilotActionsListenerManager.unableAutopilotReasons == null) null else CallerAutopilotActionsListenerManager.unableAutopilotReasons.toString())}")
if (isConnected) {
var isEquals: Boolean = true
if (unableAutopilotReasons != null && this.unableAutopilotReasons != null) {
@@ -91,6 +95,9 @@ object CallerAutopilotActionsListenerManager : CallerBase() {
+
+ /**
+ * 触发演示模式事件监听
+ */
+ fun invokeDemoModeListener(status: Boolean){
+ M_LISTENERS.forEach {
+ val listener = it.value
+ listener.onDemoModeClickEvent(status)
+ }
+ }
+
+ /**
+ * 触发雨天模式事件监听
+ */
+ fun invokeRainModeListener(status: Boolean){
+ M_LISTENERS.forEach {
+ val listener = it.value
+ listener.onRainModeClickEvent(status)
+ }
+ }
+
+ /**
+ * 触发点云事件监听
+ */
+ fun invokePointCloudListener(status: Boolean){
+ M_LISTENERS.forEach{
+ val listener = it.value
+ listener.onPointCloudClickEvent(status)
+ }
+ }
+
+}
\ No newline at end of file