From 947acf4b83585eafbeb7e29095fef0eabdf75a4b Mon Sep 17 00:00:00 2001 From: xuxinchao Date: Wed, 20 Sep 2023 15:46:00 +0800 Subject: [PATCH 01/13] =?UTF-8?q?[6.1.0]HdMap=E7=89=88=E6=9C=AC=E6=88=AA?= =?UTF-8?q?=E5=8F=96=E5=B1=95=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../function/hmi/ui/widget/SystemVersionView.kt | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) 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 4847403169..5b6894a352 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 @@ -375,9 +376,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() } @@ -390,9 +395,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() } } From 09480f51628e0622efe6f0415f11376406d24260 Mon Sep 17 00:00:00 2001 From: wangmingjun Date: Wed, 20 Sep 2023 15:52:19 +0800 Subject: [PATCH 02/13] =?UTF-8?q?[6.1.0]=20=E6=A0=B9=E6=8D=AE=E8=87=AA?= =?UTF-8?q?=E9=A9=BE=E7=8A=B6=E6=80=81=E5=8F=98=E5=8C=96=E6=89=8D=E8=BF=94?= =?UTF-8?q?=E5=9B=9E=E7=9A=84=E9=80=BB=E8=BE=91,=20=E5=8E=BB=E9=99=A4preAu?= =?UTF-8?q?topilotStatus?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mogo/och/taxi/presenter/TaxiPresenter.java | 10 +--------- .../mogo/och/taxi/ui/BaseTaxiTabFragment.java | 16 ++-------------- .../mogo/och/taxi/ui/base/BaseTaxiTabFragment.kt | 10 ++-------- .../com/mogo/och/taxi/ui/base/TaxiPresenter.java | 12 ++---------- 4 files changed, 7 insertions(+), 41 deletions(-) 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 8f34ee8a99..2052aee8c9 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 @@ -331,21 +331,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; @@ -353,7 +345,6 @@ public abstract class BaseTaxiTabFragment> : 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 From 8267f81cde4527259190bb727302b479fb3d07dd Mon Sep 17 00:00:00 2001 From: xuxinchao Date: Wed, 20 Sep 2023 18:00:46 +0800 Subject: [PATCH 03/13] =?UTF-8?q?[6.1.0]=E8=BF=90=E8=90=A5=E9=9D=A2?= =?UTF-8?q?=E6=9D=BF=E8=B0=83=E8=AF=95=E9=9D=A2=E6=9D=BF=E7=9A=84=E7=BE=8E?= =?UTF-8?q?=E5=8C=96=E3=80=81=E9=9B=A8=E5=A4=A9=E3=80=81=E7=82=B9=E4=BA=91?= =?UTF-8?q?=E4=BA=8B=E4=BB=B6=E7=8A=B6=E6=80=81=E5=90=8C=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hmi/ui/setting/DebugSettingView.kt | 62 ++++++++++++++----- .../function/hmi/ui/setting/SOPSettingView.kt | 39 +++++++++++- .../api/setting/ISopSettingListener.kt | 23 +++++++ .../call/setting/CallerSopSettingManager.kt | 41 ++++++++++++ 4 files changed, 145 insertions(+), 20 deletions(-) create mode 100644 core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/setting/ISopSettingListener.kt create mode 100644 core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/setting/CallerSopSettingManager.kt 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 ca1967a41d..fe2fd33d5c 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 @@ -51,6 +51,7 @@ import com.mogo.eagle.core.function.api.devatools.IMoGoDevaToolsFuncConfigListen import com.mogo.eagle.core.function.api.devatools.IMoGoDevaToolsListener 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.call.autopilot.* import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsFuncConfigListenerManager import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsListenerManager @@ -60,6 +61,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 @@ -118,7 +120,8 @@ internal class DebugSettingView @JvmOverloads constructor( IMoGoChassisBrakeStateListener, IMoGoChassisThrottleStateListener, IMoGoSweeperFutianCleanSystemListener, - IMoGoObuInfoListener { + IMoGoObuInfoListener, + ISopSettingListener { private val TAG = "DebugSettingView" @@ -227,6 +230,8 @@ internal class DebugSettingView @JvmOverloads constructor( CallerDevaToolsListenerManager.addListener(TAG, this) //添加 底盘灯光数据 监听 CallerChassisLamplightListenerManager.addListener(TAG, this) + //雨天、美化、点云设置同步 + CallerSopSettingManager.addListener(TAG,this) //添加 业务配置监听 CallerDevaToolsFuncConfigListenerManager.registerDevaToolsFuncConfigListener( @@ -274,6 +279,8 @@ internal class DebugSettingView @JvmOverloads constructor( CallerChassisLamplightListenerManager.removeListener(TAG) // 移除 obu获取信息 监听 CallerObuInfoListenerManager.removeListener(TAG) + //雨天、美化、点云设置同步 + CallerSopSettingManager.removeListener(TAG) // 移除 业务配置监听 CallerDevaToolsFuncConfigListenerManager.unRegisterDevaToolsFuncConfigListener( @@ -685,11 +692,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) @@ -720,9 +730,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)) { @@ -840,10 +854,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) } //设置点云大小 @@ -1721,18 +1739,6 @@ internal class DebugSettingView @JvmOverloads constructor( mTrajectoryInfoSize = 0 mRouteInfoSize = 0 - if (FunctionBuildConfig.isDemoMode) { - tbIsDemoMode?.text = "关闭美化模式" - } else { - tbIsDemoMode?.text = "开启美化模式" - } - - if(FunctionBuildConfig.isRainMode){ - tbIsRainMode?.text = "关闭雨天模式" - } else { - tbIsRainMode?.text = "开启雨天模式" - } - obuConnectStatusTv.text = Html.fromHtml( "OBU连接状态:${ if (AppConfigInfo.isConnectObu) { @@ -2181,4 +2187,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/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/setting/CallerSopSettingManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/setting/CallerSopSettingManager.kt new file mode 100644 index 0000000000..482ed60d85 --- /dev/null +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/setting/CallerSopSettingManager.kt @@ -0,0 +1,41 @@ +package com.mogo.eagle.core.function.call.setting + +import com.mogo.eagle.core.function.api.setting.ISopSettingListener +import com.mogo.eagle.core.function.call.base.CallerBase + +/** + * 运营面板、调试面板设置事件监听管理 + */ +object CallerSopSettingManager: 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 From 800c620928d66e768585fc4a3b69d77fd6aa95fb Mon Sep 17 00:00:00 2001 From: renwj Date: Wed, 20 Sep 2023 18:05:17 +0800 Subject: [PATCH 04/13] =?UTF-8?q?[6.1.0][=E5=BC=95=E5=AF=BC=E7=BA=BF]=20?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=B0=83=E8=AF=95=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../business/routeoverlay/MogoRouteOverlayManager.java | 10 ++++++++++ 1 file changed, 10 insertions(+) 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); } From 0654736b377967cff21361ecf7d5d3a81e58144c Mon Sep 17 00:00:00 2001 From: wangmingjun Date: Wed, 20 Sep 2023 18:16:32 +0800 Subject: [PATCH 05/13] =?UTF-8?q?[6.1.0]=20=E5=BC=80=E5=A7=8B/=E6=9A=82?= =?UTF-8?q?=E5=81=9C=E6=8E=A5=E5=8D=95=E6=8C=89=E9=92=AE=E9=A2=91=E7=B9=81?= =?UTF-8?q?=E7=82=B9=E5=87=BB=E9=99=90=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/mogo/och/taxi/ui/BaseTaxiTabFragment.java | 7 +++++-- .../java/com/mogo/och/taxi/ui/base/BaseTaxiTabFragment.kt | 7 ++++++- 2 files changed, 11 insertions(+), 3 deletions(-) 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 2052aee8c9..d9a22df940 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); diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/base/BaseTaxiTabFragment.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/base/BaseTaxiTabFragment.kt index 318844a452..e32bf41034 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/base/BaseTaxiTabFragment.kt +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/base/BaseTaxiTabFragment.kt @@ -195,7 +195,12 @@ abstract class BaseTaxiTabFragment> : MvpFragment Date: Wed, 20 Sep 2023 18:48:13 +0800 Subject: [PATCH 06/13] =?UTF-8?q?[6.1.0][Opt]=E6=96=B0=E5=A2=9E=E5=B9=B3?= =?UTF-8?q?=E8=A1=8C=E9=A9=BE=E9=A9=B6=E8=AF=B7=E6=B1=82=E4=B8=AD=E5=8A=A8?= =?UTF-8?q?=E7=94=BB=E6=95=88=E6=9E=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hmi/ui/widget/ParallelDriveView.kt | 47 +++++++++++++++++- .../main/res/layout/view_parallel_drive.xml | 12 +++++ .../drawable-xhdpi/icon_para_syn.png | Bin 2140 -> 0 bytes .../drawable-xhdpi/icon_para_syn_inner.png | Bin 0 -> 574 bytes .../drawable-xhdpi/icon_para_syn_outer.png | Bin 0 -> 1852 bytes 5 files changed, 57 insertions(+), 2 deletions(-) delete mode 100644 core/mogo-core-res/src/main/function-hmi-res/drawable-xhdpi/icon_para_syn.png create mode 100644 core/mogo-core-res/src/main/function-hmi-res/drawable-xhdpi/icon_para_syn_inner.png create mode 100644 core/mogo-core-res/src/main/function-hmi-res/drawable-xhdpi/icon_para_syn_outer.png 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 79b85ef6d7..f8168e2b70 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 @@ -60,9 +60,11 @@ class ParallelDriveView @JvmOverloads constructor( private lateinit var rootLayout: ConstraintLayout private lateinit var statusIcon: ImageView + private lateinit var statusIconOuter: ImageView private lateinit var statusTitle: TextView private var listener: ClickEventListener? = null private var animator: ObjectAnimator? = null + private var syncAnimator: ObjectAnimator? = null init { LayoutInflater.from(context).inflate(R.layout.view_parallel_drive, this, true) @@ -79,6 +81,7 @@ class ParallelDriveView @JvmOverloads constructor( private fun initView() { rootLayout = findViewById(R.id.parDriveLayout) statusIcon = findViewById(R.id.ivStatusIcon) + statusIconOuter = findViewById(R.id.ivStatusProgress) statusTitle = findViewById(R.id.tvAutopilotContent) rootLayout.setOnClickListener { when (state) { @@ -211,6 +214,8 @@ class ParallelDriveView @JvmOverloads constructor( when (state) { 0 -> { stopRotateAnimation() + stopSyncAnimation() + statusIconOuter.visibility = GONE rootLayout.isEnabled = true rootLayout.alpha = 1f statusIcon.background = @@ -222,7 +227,9 @@ class ParallelDriveView @JvmOverloads constructor( } APP_REQUESTING -> { + stopSyncAnimation() rootLayout.isEnabled = true + statusIconOuter.visibility = GONE rootLayout.alpha = 1f statusIcon.background = resources.getDrawable(R.drawable.icon_para_requesting, null) @@ -234,7 +241,9 @@ class ParallelDriveView @JvmOverloads constructor( } AD_REQUESTING -> { + stopSyncAnimation() rootLayout.isEnabled = false + statusIconOuter.visibility = GONE rootLayout.alpha = 1f statusIcon.background = resources.getDrawable(R.drawable.icon_para_requesting, null) @@ -250,15 +259,19 @@ class ParallelDriveView @JvmOverloads constructor( rootLayout.isEnabled = false rootLayout.alpha = 1f statusIcon.background = - resources.getDrawable(R.drawable.icon_para_syn, null) + resources.getDrawable(R.drawable.icon_para_syn_inner, null) statusTitle.setTextColor(Color.parseColor("#FFFFFF")) statusIcon.alpha = 1f + statusIconOuter.visibility = VISIBLE + startSyncAnimation() statusTitle.text = context.getString(R.string.parallel_drive_synchronizing) rootLayout.background = resources.getDrawable(R.drawable.bg_auto_pilot, null) } PARALLEL_DRIVING -> { stopRotateAnimation() + stopSyncAnimation() + statusIconOuter.visibility = GONE rootLayout.isEnabled = false rootLayout.alpha = 1f statusIcon.background = @@ -272,6 +285,8 @@ class ParallelDriveView @JvmOverloads constructor( FAILURE -> { stopRotateAnimation() + stopSyncAnimation() + statusIconOuter.visibility = GONE rootLayout.isEnabled = false rootLayout.alpha = 1f rootLayout.postDelayed({ @@ -287,6 +302,8 @@ class ParallelDriveView @JvmOverloads constructor( ONE_EXCEPTION -> { stopRotateAnimation() + stopSyncAnimation() + statusIconOuter.visibility = GONE rootLayout.isEnabled = false rootLayout.alpha = 1f rootLayout.postDelayed({ @@ -302,6 +319,8 @@ class ParallelDriveView @JvmOverloads constructor( TWO_EXCEPTION -> { stopRotateAnimation() + stopSyncAnimation() + statusIconOuter.visibility = GONE rootLayout.isEnabled = false rootLayout.alpha = 1f rootLayout.postDelayed({ @@ -317,7 +336,9 @@ class ParallelDriveView @JvmOverloads constructor( UNAVAILABLE -> { stopRotateAnimation() - rootLayout.isEnabled = false + stopSyncAnimation() + statusIconOuter.visibility = GONE + rootLayout.isEnabled = true rootLayout.alpha = 0.4f statusIcon.background = resources.getDrawable(R.drawable.icon_autopilot_status, null) @@ -391,6 +412,28 @@ class ParallelDriveView @JvmOverloads constructor( it.cancel() } } + statusIcon.rotation = 0f + } + + @SuppressLint("Recycle") + private fun startSyncAnimation() { + if (syncAnimator == null) { + syncAnimator = ObjectAnimator.ofFloat(statusIconOuter, "rotation", 0f, 360f).apply { + duration = 1500 + repeatMode = ValueAnimator.RESTART + repeatCount = ValueAnimator.INFINITE + interpolator = LinearInterpolator() + } + } + syncAnimator?.start() + } + + private fun stopSyncAnimation() { + syncAnimator?.let { + if (it.isRunning) { + it.cancel() + } + } } override fun onDetachedFromWindow() { diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_parallel_drive.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_parallel_drive.xml index e6e9048bba..ac8a28b33e 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_parallel_drive.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_parallel_drive.xml @@ -16,6 +16,18 @@ app:layout_constraintTop_toTopOf="parent" android:layout_marginStart="72dp" android:layout_marginTop="56dp" + tools:background="@drawable/icon_para_syn_inner" + /> + + Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91HJ}3k1ONa40RR91H2?qr0OxrR@Bjb@#z{m$RA>e5np>=0RTYMN3YCk3 zLKUfzf>;tnT17<#NeYU@5Qze*KFB4IKKMXNFeHXPv@ya9Q4uvfkeF}}O@mDvDH1fn zARv$$6cb8mAOTCQu7 z?izb~EbpM-6W|YEH3a{Qp0-Sz6l9LY>lNTq@F5T)>X3;p>zd`}^ESq>0Cz#ojP@;k zlY)!{mVzZ9S(z$$+usAte$8hI1}?`t!A<>Ut}jv$`Zi8}1C9pG88*N&_yqhq_0GOa z%y;f1Ad}H%Bcw9^Mf(2~V(ZX7Nl&C8b0F5P1y_MMi!KA(N&BC{AHh>#J;7{8PY~=$ z&Q0W0@CEQC;6~DBGj%IzzY%-yqPxnJqzJ%`U=?szD+$DzbrQG{Wtqm*T}WW}-tX6Z<@M zSK{0EbT5&V1C(9BUF}!E47%jb0WqW&o4{oldmt>9dYNO->r z#LU!fifM^J#+Gr0X7Fs72+cZkiK zN+sp;3-gj>S@zU_fWfA_>-kpO-dE~w48H_QVlKZ%rf^C}kba%~oPme-JDH6{$2Ba9J*A!Ft#8 z6~J?96MAHVe`CE5WWp2c=>}!GQlU<{>@1mIf_rOY6ekL4|1dR+!MwV~@k;EKI)0+# zOFt{{(e<)gSsnl9L6ke9b|Tf4&BOOqYRp8Oq`ZN;8^G@;BSTvy*tnI#=Rg8%+Opod zv`07lJ%X?6=r@p=mo$p*e(|Nad8AI?DA`k!`~yi;xz zxg@vQne5%#%{%4aOhb{Okb=yYiRQ<^n?-YXlSt~a)0H~q*XVaM&vq331}nsx)Q3%EMSae%#5~z z%2&1g=y)m({`F|3qV|Wdo^H&HKaBq02Xlc^86PiJ4r8|@V{@L(+P}bBe71g|EXbTq zzmiOR#n$eSx`B=hfemT&%CeH@kxEU*3v)@PB$9YLvAbg^Ye1*6E-$JL+CCD&zjxBB z!4H7%O$eCTltWNml|#y}vTmtXX22&Xe+`UMj>Wl4t!-10RAQY_u1K-W-lc=TZZrq~ zklFHM{ix(g9J`9%25kh&BuK16=bR$=*;M-ZNfK2WYkfDQZ>BslAvTxZ`QR9k*g_)D zAy}QlRj>s93WeKR23>$rPwJ5gvAvA*--0KA8Eea0r!Mal{VG|(zkbZfEU1-b5Suez z9NE7|;n~SGrZPK;)w-&F0x4$1wd=17=@{*w>dPUf-tU56m!CUe&eCKh+Bhv&&l5;d z=`ReAqV52hjSTST%4>1pjO{nUpEv)Dz`?+nN+MoSUO!9q~YexZ$FD{xnS3tb6g%&22_wPtF(8`j3(p`|>Z076J7E&=tw!R;9T zJ9;RBPknt8c$>&%hM0c!c@I7(y_a?+#bAkfZv6(k%m>iM${GG?i7nKr3-sx#+#<{xs$fdfGT%*;ny-&U5~ z^I!vb8Zuos0{V27fk~CtA?V9K7knBV4a{KRdt|U?Vh8Y&x~0a8gA&0`NB##vhIYf2 S7sw6(0000k44ofy`glX(f`xTHpSruq6Z zXaU(A42G$TlC0TW!-bOAGh4N~~LlK%rx*$Ph=$B+!x zx6^FBjs%Fb3bP({;@(=yD7Mbw&WSfi?y2rzifx>__eKQAv}?C|TJ05@{(rQdz&%}H z*^KX8?B|*f`{t#|J+JY+=Y6?iMgu1%(vfJ~)^>m0YqOcp1>P=H{nEUzsy29O&AP{T z{y+I6Hg{|8Z$DkBtxmCzlJ=J?9hUcSJ8n{@TNU17_3ru1-5psMAL!*8I`S=1;F>n| zaPQZ}+fUaVo!6y);173|%TK}6ib_v5i2vnSV)fMTZ&0^ep@z?kzcUw9iyS+gF^8Y| z$-cg?KYTB8YRQG(TUl^$@#eD|pS}5YZ_TXrr3Wf|D`R{U8ac1jE#Ja<{gqLFUvPNdxvfsm_HAn`7VELjx~ReDx*%01W`U_mn%T5Bi5-avXNNm@t-!oHowyPAL;12*g_;^eqljx5r^dTN9SC3aESc<^W)>^ zXN^Dqon>G9?i$P61wWk5&-eY=U2`KmA@_*?i)C&a&psM33S*)O9j1DIwtHfX5%zwd Oxbt-Nb6Mw<&;$ShBju6+ literal 0 HcmV?d00001 diff --git a/core/mogo-core-res/src/main/function-hmi-res/drawable-xhdpi/icon_para_syn_outer.png b/core/mogo-core-res/src/main/function-hmi-res/drawable-xhdpi/icon_para_syn_outer.png new file mode 100644 index 0000000000000000000000000000000000000000..b90122c3b123a51380a8ed0b9cb224d176436f5a GIT binary patch literal 1852 zcmV-C2gCS@P)Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91HJ}3k1ONa40RR91H2?qr0OxrR@Bjb?rb$FWRA>e5np=ogRTRga)Cwz! z?h~nH_R#%8Qd(elD!PX~R2D@KJxF2nk`GE`FA|j%J_Lc3g%K4>H?TnIVips20c{Kg z&9t;K@seduzu%d&PJ51@-^@4jImZbX{Aca6FKey;Ui<8`zjLN#P!px2qvHt7T?)Q3NoYcIvLyx4hKO*9b`hMb>(vTdNbo+2d_cSj5aI{lY)!{rhYaU;nD^X~ASR=hjUW}{ z*V6w9h_#`6Bt0SpnITx40j7X(7CH@VJMD|Xhu~YVf?&3yy9o9q=O!{1TmUWvZX~sA zM%^2<&%)j=bY1C|6alyqybavdQUc-3Itk1M3vep2h6EqO7~n=T5sU_@?bPR|v`xoH z-HoI!DV!aJk@vv)AdJVoq2qS&7*5PgQv{z*-lM=J9^_K}9raW3>9VdVEf|?Y%h6y8 z9e;>k)SID2;0&Nq5rn*np9Ie{rfJU?>}7&)m*S)x2cd&hOzdjv9>%x#=^i2}2Piv$ zyV`TW47%j50bxij)`9ylxD>rlh0xB%fs^M1hyNhBgu2IxBjV?>Q&LhkijToc;7rvb zbS;L~(AF;ku~r;OY$OOm5tq-hx#d8DR1k{g6@x-szY$!I5efIJK+H_d0uqdvLc862 z8Yv`QuR$oC4F_89neCP;2pK7Ux1hW=eBK#TiU%M)l)6GBWzcD-^0jT=UmiXy6Ns(H z`E(HR#pJs~`#2~>Qr!`~XwJC1p~ zGg5RMOQXLYLs;F{yY%TdNyuD<)0B*{2C=N1{ZgdzPB5X=_!QT^l&@5BGUpOR znM@EVGDM%O9EaBhc}3b`Vs5Z9Quy~xk?+;-0^T$^QGW59`& zF9B7`D4e_0(w|2`Mjf$sDQBd(cXrXiuN&pT4>DW6tglLz;n-F57pO%bO@hQS6uTe6 z`{l#ePm;*enCp3vevxuzLToO*Tfqnru?2~^4ub#vASCc#8SrwALAPPlCv{~)Y@2ZY z67Ze58LO4GqAuTTyF+5A@BRZeJaE;0tdGP-@c}kY>2&lSnhH(>X~tXvI@thT!T8tcrU*Xubv5ub5tA8&^sCP|@wwM?Y0c%wph9rs zbL$acio;0|484xFkHF{koY7uW@Zr}K{|n$^;5{35gG~5cL!1AQRb+_kJ)~Pwj=-tQ z;U3_jG8~j08^Ct3GQs*5b!F4u3N??T9|Lib1-BBjNAsd!|$0ysV;mX^!Gc^!y; zp`&kHOHg=%SPCI0rpMASsjv(=cbm(AC;4F@0#++=ZJ?2bC`Wr*AN}0`eEzgS#w;}~ zy(Sf&^33@>^M~BYU Date: Wed, 20 Sep 2023 18:47:53 +0800 Subject: [PATCH 07/13] =?UTF-8?q?[6.1.0][=E9=AD=94=E6=96=B9]=20=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3=E7=BA=BF=E4=B8=8ANPE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config.gradle b/config.gradle index 89c3b63f63..a1248e8a96 100644 --- a/config.gradle +++ b/config.gradle @@ -214,7 +214,7 @@ ext { weak_network : "com.mogo.weak:network:1.0.1", btrace : "com.bytedance.btrace:rhea-core:2.0.0", - mofang_runtime : "com.mogo.eagle.core.mofang:runtime:2.0.6", + mofang_runtime : "com.mogo.eagle.core.mofang:runtime:2.0.7", log_runtime : "com.mogo.eagle.core.log.record:runtime:1.0.15", // 安全证书 From f96294996e4c896d72129485fa00b70241d20f0e Mon Sep 17 00:00:00 2001 From: yangyakun Date: Wed, 20 Sep 2023 19:14:08 +0800 Subject: [PATCH 08/13] =?UTF-8?q?[6.1.0]=20[taxi=5Fp=5Fu]=20[=E4=B9=98?= =?UTF-8?q?=E5=AE=A2=E5=B1=8F=E8=AE=A2=E5=8D=95=E6=B5=81=E8=BD=AC]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../orderlogmanager/OchChainLogManager.kt | 22 ++++++++++--------- ...PassengerOrdersInServiceQueryRespBean.java | 14 ++++++++++++ .../taxi/passenger/model/AutopilotManager.kt | 2 ++ .../passenger/model/TaxiPassengerModel.kt | 3 +++ 4 files changed, 31 insertions(+), 10 deletions(-) diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/orderlogmanager/OchChainLogManager.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/orderlogmanager/OchChainLogManager.kt index 659b546924..a4417e2b64 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/orderlogmanager/OchChainLogManager.kt +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/orderlogmanager/OchChainLogManager.kt @@ -27,18 +27,20 @@ object OchChainLogManager { nodeAliasCode = ChainConstant.CHAIN_CODE_OCH_COMMON_DISTANCE, paramIndexes = [0,1] ) - fun writeChainLog(Info: String, changeInfo: String) { + fun writeChainLog(Info: String, changeInfo: String,upload:Boolean = true) { d(SceneConstant.M_OCHCOMMON + TAG, Info) d(SceneConstant.M_OCHCOMMON + TAG, changeInfo) - val plateNum = AppConfigInfo.plateNumber - val params = HashMap() - params["sn"] = MoGoAiCloudClientConfig.getInstance().sn - params["env"] = DebugConfig.getNetMode() - params["plate_number"] = if (TextUtils.isEmpty(plateNum)) "" else plateNum - params["time"] = DateTimeUtils.getTimeText(DateTimeUtils.yyyy_MM_dd_HH_mm_ss) - params["info"] = Info - params["changeInfo"] = changeInfo - MogoAnalyticUtils.track(EVENT_KEY_INFE_WITH_CHANGE, params) + if(upload) { + val plateNum = AppConfigInfo.plateNumber + val params = HashMap() + params["sn"] = MoGoAiCloudClientConfig.getInstance().sn + params["env"] = DebugConfig.getNetMode() + params["plate_number"] = if (TextUtils.isEmpty(plateNum)) "" else plateNum + params["time"] = DateTimeUtils.getTimeText(DateTimeUtils.yyyy_MM_dd_HH_mm_ss) + params["info"] = Info + params["changeInfo"] = changeInfo + MogoAnalyticUtils.track(EVENT_KEY_INFE_WITH_CHANGE, params) + } } } \ No newline at end of file diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/bean/TaxiPassengerOrdersInServiceQueryRespBean.java b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/bean/TaxiPassengerOrdersInServiceQueryRespBean.java index a0f9b9d8f1..8f8f890425 100644 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/bean/TaxiPassengerOrdersInServiceQueryRespBean.java +++ b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/bean/TaxiPassengerOrdersInServiceQueryRespBean.java @@ -69,6 +69,20 @@ public class TaxiPassengerOrdersInServiceQueryRespBean extends BaseData { public int hashCode() { return Objects.hash(orderNo, orderStatus, bookingUserPhone, passengerSize, orderStartSite, orderEndSite, planningLines); } + + @Override + public String toString() { + return "OrderBean{" + + "orderNo='" + orderNo + '\'' + + ", 订单状态=" + orderStatus + + ", 用户手机号='" + bookingUserPhone + '\'' + + ", 乘客人数=" + passengerSize + + ", 站点-起点=" + orderStartSite + + ", 站点-终点=" + orderEndSite + + ", 预加载的line=" + planningLines + + ", 送驾的lineId=" + orderLine + + '}'; + } } } diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/model/AutopilotManager.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/model/AutopilotManager.kt index f2b02d14b4..42a9fae2b4 100644 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/model/AutopilotManager.kt +++ b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/model/AutopilotManager.kt @@ -12,6 +12,7 @@ import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant import com.mogo.eagle.core.utilcode.util.ToastUtils import com.mogo.och.common.module.biz.network.OchCommonServiceCallback import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager +import com.mogo.och.common.module.manager.orderlogmanager.OchChainLogManager import com.mogo.och.common.module.voice.VoiceNotice import com.mogo.och.taxi.passenger.bean.TaxiPassengerBaseRespBean import com.mogo.och.taxi.passenger.constant.TaxiPassengerConst @@ -199,6 +200,7 @@ object AutopilotManager : IMoGoAutopilotStatusListener { private fun startAutoPilotServiceByPassenger() { if (TaxiPassengerModel.currentOCHOrder == null) return //val currentLocation = CallerChassisLocationGCJ02ListenerManager.getChassisLocationGCJ02() + OchChainLogManager.writeChainLog(TaxiPassengerModel.currentOCHOrder.toString(),"action:启动自驾状态流转") TaxiPassengerServiceManager.startAutoPilotServiceByPassenger( TaxiPassengerModel.currentOCHOrder!!.orderNo, TaxiPassengerModel.currentLineId, diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.kt index 4ee5711666..7bd7c8b84a 100644 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.kt +++ b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.kt @@ -26,6 +26,7 @@ import com.mogo.och.common.module.manager.distancemamager.IDistanceListener import com.mogo.och.common.module.manager.distancemamager.TrajectoryAndDistanceManager import com.mogo.och.common.module.manager.loopmanager.BizLoopManager import com.mogo.och.common.module.manager.loopmanager.LoopInfo +import com.mogo.och.common.module.manager.orderlogmanager.OchChainLogManager import com.mogo.och.common.module.utils.RxUtils import com.mogo.och.common.module.voice.VoiceNotice import com.mogo.och.taxi.passenger.bean.TaxiPassengerBaseRespBean @@ -365,6 +366,7 @@ object TaxiPassengerModel { fun checkPhoneAndUpdateStatus(phoneTail: String) { if (currentOCHOrder == null) return + OchChainLogManager.writeChainLog(currentOCHOrder.toString(),"action:手机号开始验证") TaxiPassengerServiceManager.checkPhoneAndUpdateOrderStatus( currentOCHOrder!!.orderNo, phoneTail, @@ -396,6 +398,7 @@ object TaxiPassengerModel { orderStatusChangeInner() if (mOrderStatusCallbackMap.isNotEmpty()) { d(M_TAXI_P + TAG, "最新的状态-->${curOrderStatus}") + OchChainLogManager.writeChainLog(currentOCHOrder.toString(),"最新的状态-->${curOrderStatus}") for (callback in mOrderStatusCallbackMap.values) { callback.onCurrentOrderStatusChanged(currentOCHOrder) } From a36a731d93fe312fea31accb5b2958d68864ab5a Mon Sep 17 00:00:00 2001 From: zhongchao Date: Wed, 20 Sep 2023 18:30:48 +0800 Subject: [PATCH 09/13] [3.4.0-map-sdk] add note of chain log --- .../java/com/mogo/eagle/core/data/deva/chain/ChainConstant.kt | 1 + 1 file changed, 1 insertion(+) 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" From a9d59b3361ca69d3a6ca7da9d2f1e47920d2c2d8 Mon Sep 17 00:00:00 2001 From: chenfufeng Date: Wed, 20 Sep 2023 19:59:29 +0800 Subject: [PATCH 10/13] =?UTF-8?q?[6.1.0][Opt]=E6=96=B0=E5=A2=9E=E5=B9=B3?= =?UTF-8?q?=E8=A1=8C=E9=A9=BE=E9=A9=B6=E7=8A=B6=E6=80=81=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E7=9A=84=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/function/hmi/ui/widget/ParallelDriveView.kt | 10 ++++++++++ 1 file changed, 10 insertions(+) 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 f8168e2b70..03738ab157 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 @@ -6,6 +6,7 @@ import android.annotation.SuppressLint import android.content.Context import android.graphics.Color import android.util.AttributeSet +import android.util.Log import android.view.LayoutInflater import android.view.animation.LinearInterpolator import android.widget.ImageView @@ -87,16 +88,19 @@ class ParallelDriveView @JvmOverloads constructor( when (state) { 0 -> { state = APP_REQUESTING + Log.d(TAG, "Click-开始请求平行驾驶") updateUI(APP_REQUESTING) reqParaDrive() listener?.onReqClick() } APP_REQUESTING -> { cancelParaDrive() + Log.d(TAG, "Click-请求已取消") ToastUtils.showShort("请求已取消!") checkAvailableAndUpdateUI() } UNAVAILABLE -> { + Log.d(TAG, "Click-请P档驻车并松开油门刹车后请求") ToastUtils.showShort("请P档驻车并松开油门刹车后请求") } } @@ -116,6 +120,7 @@ class ParallelDriveView @JvmOverloads constructor( 7 -> { if (this.autopilotState != 7) { isAutoDriving = false + Log.d(TAG, "onAutopilotStatusResponse-7") ThreadUtils.runOnUiThread({ updateUI(PARALLEL_DRIVING) }, ThreadUtils.MODE.QUEUE) @@ -125,12 +130,14 @@ class ParallelDriveView @JvmOverloads constructor( 2 -> { if (this.autopilotState != state) { isAutoDriving = true + Log.d(TAG, "onAutopilotStatusResponse-2") } } else -> { if (this.autopilotState != state) { isAutoDriving = false + Log.d(TAG, "onAutopilotStatusResponse-else") if (this.autopilotState == 7) { ThreadUtils.runOnUiThread({ checkAvailableAndUpdateUI() @@ -149,11 +156,13 @@ class ParallelDriveView @JvmOverloads constructor( unableParallelDrivingReasons: ArrayList? ) { if (!isParallelDrivingAbility) { + Log.d(TAG, "onParallelDrivingAbility-UNAVAILABLE") ThreadUtils.runOnUiThread({ state = UNAVAILABLE updateUI(UNAVAILABLE) }, ThreadUtils.MODE.QUEUE) } else { + Log.d(TAG, "onParallelDrivingAbility-AVAILABLE") ThreadUtils.runOnUiThread({ state = 0 updateUI(0) @@ -164,6 +173,7 @@ class ParallelDriveView @JvmOverloads constructor( override fun onParallelDrivingResp(parallelTaskProcessNotice: ParallelTaskProcessNoticeOuterClass.ParallelTaskProcessNotice?) { parallelTaskProcessNotice?.let { ThreadUtils.runOnUiThread({ + Log.d(TAG, "onParallelDrivingResp-code:${it.code}") when (it.code) { "START_SYNC" -> {// 同步中 state = SYNCHRONIZING From 81cbbafc00aeb3d9df6332efb95637d32015deff Mon Sep 17 00:00:00 2001 From: wangmingjun Date: Thu, 21 Sep 2023 12:38:11 +0800 Subject: [PATCH 11/13] =?UTF-8?q?[6.1.0]=20=E6=9A=82=E5=81=9C=E6=8E=A5?= =?UTF-8?q?=E5=8D=95,=20=E8=AE=A2=E5=8D=95=E5=88=B0=E7=AB=99=E4=B8=8B,UI?= =?UTF-8?q?=E5=88=B7=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/mogo/och/taxi/ui/task/TaxiCurrentTaskFragment.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiCurrentTaskFragment.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiCurrentTaskFragment.kt index 0bae199794..507ddfb733 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiCurrentTaskFragment.kt +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiCurrentTaskFragment.kt @@ -371,7 +371,8 @@ class TaxiCurrentTaskFragment : BaseFragment(), when (taskType) { TaskTypeEnum.None.code -> { - if (order != null && currentStatus == TaskStatusEnum.CompleteTask.code) { + if (order != null && (currentStatus == TaskStatusEnum.CompleteTask.code + || currentStatus == TaskStatusEnum.None.code )) { updateOrderUI(order) } } From 80c9e5ffc1155e95ca0efc32ce08b34331cb9583 Mon Sep 17 00:00:00 2001 From: wangmingjun Date: Thu, 21 Sep 2023 12:38:40 +0800 Subject: [PATCH 12/13] =?UTF-8?q?[6.1.0]=20=E6=9A=82=E5=81=9C=E6=8E=A5?= =?UTF-8?q?=E5=8D=95,=20=E8=AE=A2=E5=8D=95=E5=88=B0=E7=AB=99=E4=B8=8B,UI?= =?UTF-8?q?=E5=88=B7=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/mogo/och/taxi/ui/task/TaxiCurrentTaskFragment.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiCurrentTaskFragment.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiCurrentTaskFragment.kt index 507ddfb733..c02256f181 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiCurrentTaskFragment.kt +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiCurrentTaskFragment.kt @@ -372,7 +372,7 @@ class TaxiCurrentTaskFragment : BaseFragment(), when (taskType) { TaskTypeEnum.None.code -> { if (order != null && (currentStatus == TaskStatusEnum.CompleteTask.code - || currentStatus == TaskStatusEnum.None.code )) { + || currentStatus == TaskStatusEnum.None.code )) { //暂停接单会清空任务 updateOrderUI(order) } } From bfaa738c928c9e957a6b3e598cd4249ad38071e3 Mon Sep 17 00:00:00 2001 From: wangmingjun Date: Thu, 21 Sep 2023 14:52:35 +0800 Subject: [PATCH 13/13] =?UTF-8?q?[6.1.0]=20=E8=AE=A2=E5=8D=95=E5=88=B0?= =?UTF-8?q?=E7=AB=99=E6=9C=AA=E7=BB=93=E6=9D=9F=E6=97=B6,=E6=9A=82?= =?UTF-8?q?=E5=81=9C=E6=8E=A5=E5=8D=95=E5=92=8C=E5=BC=80=E5=A7=8B=E6=8E=A5?= =?UTF-8?q?=E5=8D=95=E9=80=BB=E8=BE=91=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/mogo/och/taxi/ui/task/TaxiTaskModel.kt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiTaskModel.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiTaskModel.kt index c56d65498d..a2e1d7f630 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiTaskModel.kt +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiTaskModel.kt @@ -1051,6 +1051,10 @@ object TaxiTaskModel { currentStatus < TaskStatusEnum.CompleteTask.code -> return } } + if (currentStatus == TaskStatusEnum.None.code && order != null){ + //订单送驾到站, 但是还没点服务完成的情况, 此时endSite == null currentStatus == 0 + return + } } mDriveToNearestStationTask = data.data mTaxiCarServiceCallback?.onCarStartServiceSuccess(