From 6af8c12967744e52842a995df34f153f07975673 Mon Sep 17 00:00:00 2001 From: lixiaopeng Date: Sat, 25 Feb 2023 20:11:05 +0800 Subject: [PATCH 01/10] =?UTF-8?q?[dev=5Farch=5Fopt=5F3.0]=20=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../binding/BindingCarNetWorkManager.kt | 4 ++-- .../eagle/core/function/hmi/ui/widget/LimitingVelocityView.kt | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/binding/BindingCarNetWorkManager.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/binding/BindingCarNetWorkManager.kt index 9daa99f962..ba157a1abd 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/binding/BindingCarNetWorkManager.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/binding/BindingCarNetWorkManager.kt @@ -56,8 +56,6 @@ class BindingCarNetWorkManager private constructor() { widevineIDWithMd5: String?, screenType: Int ) { -// String macAddress1 = "48:b0:2d:4d:33:40"; -// String sn = "X2020220417KA94QIN"; val request = BindingCarRequest( macAddress, widevineIDWithMd5, @@ -152,12 +150,14 @@ class BindingCarNetWorkManager private constructor() { } private fun updateCarVrIconRes(brandId: String?) { + d(SceneConstant.M_BINDING + TAG, "CarModelChange : ${DebugConfig.isCarModelChange()}") if(!DebugConfig.isCarModelChange()){ return } if (brandId == null || brandId.isEmpty()) { return } + d(SceneConstant.M_BINDING + TAG, "getDefaultId() : ${getDefaultId()} ---- brandId = $brandId") if (getDefaultId() == brandId) { return } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/LimitingVelocityView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/LimitingVelocityView.kt index de83239e19..a631acac8e 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/LimitingVelocityView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/LimitingVelocityView.kt @@ -42,10 +42,10 @@ class LimitingVelocityView constructor( if (limitingVelocity > 0) { visibility = View.VISIBLE tvLimitingVelocity.text = "$limitingVelocity" - tvLimitingSource.text = DataSourceType.getName(sourceType) + tvLimitingSource?.text = DataSourceType.getName(sourceType) } else { visibility = View.GONE - tvLimitingSource.text = "" + tvLimitingSource?.text = "" } } } From cb53eebb3d3628a8a9774977a88ef6d115f282bd Mon Sep 17 00:00:00 2001 From: xinfengkun Date: Mon, 27 Feb 2023 11:36:04 +0800 Subject: [PATCH 02/10] =?UTF-8?q?[=E5=B7=A5=E6=8E=A7=E6=9C=BA=E7=9B=91?= =?UTF-8?q?=E6=8E=A7]=20=E6=B3=A8=E9=87=8A=E6=8E=89=E5=8F=B8=E6=9C=BA?= =?UTF-8?q?=E7=AB=AF=E6=9C=8D=E5=8A=A1=E5=92=8C=E4=B9=98=E5=AE=A2=E7=AB=AF?= =?UTF-8?q?=E8=BF=9E=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app_ipc_monitoring/build.gradle | 2 +- .../java/com/zhidao/adas/client/ui/MainActivity.java | 11 ++++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/app_ipc_monitoring/build.gradle b/app_ipc_monitoring/build.gradle index ec986aca15..10b72a52ca 100644 --- a/app_ipc_monitoring/build.gradle +++ b/app_ipc_monitoring/build.gradle @@ -93,6 +93,6 @@ dependencies { // implementation project(':core:mogo-core-utils') implementation 'org.greenrobot:eventbus:3.2.0' implementation 'com.android.support:multidex:1.0.3' - implementation 'com.mogo.cloud:telematic:1.3.59' +// implementation 'com.mogo.cloud:telematic:1.3.59'//注释掉司机端 乘客端 implementation 'com.jcraft:jsch:0.1.55' } diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/MainActivity.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/MainActivity.java index 08ae38336b..5a13b4a000 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/MainActivity.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/MainActivity.java @@ -1,7 +1,5 @@ package com.zhidao.adas.client.ui; -import static com.mogo.telematic.MogoProtocolMsg.NORMAL_DATA; - import android.content.Context; import android.content.DialogInterface; import android.content.Intent; @@ -1084,6 +1082,7 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas if (BuildConfig.IS_CLIENT) { /*—————————————作为乘客端———————————*/ options = new AdasOptions.Builder().setClient(true).build(); + /*乘客端启动 注释掉 NSDNettyManager.getInstance().searchAndConnectServer(this, "1234", new NettyClientListener() { @Override @@ -1103,7 +1102,7 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas getHandler().sendEmptyMessage(WHAT_DRIVER_IP); onUpdateConnectStateView(); } - }); + });*/ } else { /*—————————————作为司机端———————————*/ int mode = Constants.getIpcConnectionMode(this); @@ -1126,6 +1125,7 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas break; } + /*司机端启动 注释掉 NSDNettyManager.getInstance().startNSDNettyServerWithSN(this, new NettyServerListener() { @Override public void onMessageResponseServer(MogoProtocolMsg msg, Channel channel) { @@ -1152,10 +1152,11 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas public void onChannelDisConnect(Channel channel) { Log.i(TAG, "onChannelDisConnect channel=" + channel.id()); } - }, "1234567"); + }, "1234567");*/ } AdasManager.getInstance().create(options, this); AdasManager.getInstance().setOnAdasListener(this); + /*两端数据转发 注释掉 AdasManager.getInstance().setOnMultiDeviceListener(new OnMultiDeviceListener() { @Override public void onForwardingDriverIPCMessage(byte[] bytes) { @@ -1173,7 +1174,7 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas .sendMogoProtocolMsgToServer(new MogoProtocolMsg(NORMAL_DATA, bytes.length, bytes), null); Log.i(TAG, "乘客屏发送数据=" + ByteUtil.byteArrToHex(bytes)); } - }); + });*/ } From 72dc6f27f197dce8a9c9e553c56d5dfca94ac71d Mon Sep 17 00:00:00 2001 From: xinfengkun Date: Mon, 27 Feb 2023 11:41:44 +0800 Subject: [PATCH 03/10] =?UTF-8?q?[=E5=B7=A5=E6=8E=A7=E6=9C=BA=E7=9B=91?= =?UTF-8?q?=E6=8E=A7]=20=E6=B3=A8=E9=87=8A=E6=8E=89=E5=8F=B8=E6=9C=BA?= =?UTF-8?q?=E7=AB=AF=E6=9C=8D=E5=8A=A1=E5=92=8C=E4=B9=98=E5=AE=A2=E7=AB=AF?= =?UTF-8?q?=E8=BF=9E=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/zhidao/adas/client/ui/MainActivity.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/MainActivity.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/MainActivity.java index 5a13b4a000..d48fec82ef 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/MainActivity.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/MainActivity.java @@ -1588,7 +1588,7 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas break; case WHAT_DRIVER_IP: ipcIp.setVisibility(View.VISIBLE); - ipcIp.setText("司机IP:" + NSDNettyManager.getInstance().getConnServerIp()); +// ipcIp.setText("司机IP:" + NSDNettyManager.getInstance().getConnServerIp()); break; case WHAT_IPC_CONNECT_STATE: if (floatWindow != null) { From 9777008d469f0826e3377549d7781e523951862a Mon Sep 17 00:00:00 2001 From: lixiaopeng Date: Mon, 27 Feb 2023 15:19:45 +0800 Subject: [PATCH 04/10] =?UTF-8?q?[dev=5Farch=5Fopt=5F3.0]=20=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E5=BF=85=E8=A6=81=E7=9A=84=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../function/biz/v2x/obu/V2xObuEventManager.kt | 4 ++++ .../datacenter/obu/MogoObuDcCombineManager.kt | 9 +++++++++ .../datacenter/obu/MogoPrivateObuNewManager.kt | 15 --------------- .../core/function/hmi/ui/MoGoHmiProvider.kt | 16 ++++++++++++++++ 4 files changed, 29 insertions(+), 15 deletions(-) diff --git a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/obu/V2xObuEventManager.kt b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/obu/V2xObuEventManager.kt index a1153493fe..130cf0ef7a 100644 --- a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/obu/V2xObuEventManager.kt +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/obu/V2xObuEventManager.kt @@ -5,9 +5,12 @@ import com.mogo.eagle.core.data.enums.DataSourceType import com.mogo.eagle.core.data.msgbox.MsgBoxBean import com.mogo.eagle.core.data.msgbox.MsgBoxType import com.mogo.eagle.core.data.msgbox.V2XMsg +import com.mogo.eagle.core.data.obu.MogoObuConst import com.mogo.eagle.core.function.api.obu.IMoGoObuSaveMessageListener import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager import com.mogo.eagle.core.function.call.obu.CallerObuSaveMessageListenerManager +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant /** * 处理obu分发出来,在消息盒子展示的消息 @@ -48,6 +51,7 @@ object V2xObuEventManager : IMoGoObuSaveMessageListener { obuDataMap[type] = System.currentTimeMillis() } + CallerLogger.d("${SceneConstant.M_OBU}${TAG}", "onMoGoObuSaveMessage type = $type ---content = $content ---tts = $tts ") CallerMsgBoxManager.saveMsgBox( MsgBoxBean( MsgBoxType.V2X, diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoObuDcCombineManager.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoObuDcCombineManager.kt index c752f5b45f..7f9651f0da 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoObuDcCombineManager.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoObuDcCombineManager.kt @@ -242,6 +242,9 @@ class MogoObuDcCombineManager private constructor() : IMoGoObuWarningRsiListener when (status) { // 添加 MogoObuConstants.STATUS.ADD -> { + if (alertContent.isEmpty() || ttsContent.isEmpty()) { + return + } saveObuToDcData(appId, alertContent, ttsContent) showWarning(appId, alertContent, ttsContent, direction) } @@ -502,6 +505,9 @@ class MogoObuDcCombineManager private constructor() : IMoGoObuWarningRsiListener "${M_OBU}${TAG}", "MogoObuDcCombineManager changeTrafficLightStatus 闯红灯 --------> ttsContent = $ttsContent ---alertContent = $alertContent " ) + if (alertContent.isEmpty() || ttsContent.isEmpty()) { + return + } saveObuToDcData(EventTypeEnumNew.TYPE_USECASE_ID_IVP_RED.poiType, alertContent, ttsContent) showWarning(EventTypeEnumNew.TYPE_USECASE_ID_IVP_RED.poiType, alertContent, ttsContent, WarningDirectionEnum.ALERT_WARNING_NON) } @@ -539,6 +545,9 @@ class MogoObuDcCombineManager private constructor() : IMoGoObuWarningRsiListener ) val maxSpeed = currentLight.suggestMaxSpeed * 3.6 if (maxSpeed > 0) { + if (alertContent.isEmpty() || ttsContent.isEmpty()) { + return + } saveObuToDcData(EventTypeEnumNew.TYPE_USECASE_ID_IVP_GREEN.poiType, alertContent, ttsContent) showWarning(EventTypeEnumNew.TYPE_USECASE_ID_IVP_GREEN.poiType, alertContent, ttsContent, WarningDirectionEnum.ALERT_WARNING_NON) } diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoPrivateObuNewManager.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoPrivateObuNewManager.kt index 0c64d6a0b1..a4b0d19ddb 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoPrivateObuNewManager.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoPrivateObuNewManager.kt @@ -1037,8 +1037,6 @@ class MogoPrivateObuNewManager private constructor() : OnUpgradeListener { ) } - private val ttsMap = mutableMapOf() - /** * 消息盒子对应消息的语音播报 */ @@ -1048,19 +1046,6 @@ class MogoPrivateObuNewManager private constructor() : OnUpgradeListener { tts: String, direction: WarningDirectionEnum ) { - //30秒内同一个事件只出现一次 TODO 临时添加,后面宏宇统一在数据中心处理 - if (ttsMap.containsKey(type)) { - var oldTime = ttsMap[type] - var timeDiff = (System.currentTimeMillis() - oldTime!!) / 1000 - if (timeDiff < 30) { - return - } - ttsMap.remove(type) - ttsMap[type] = System.currentTimeMillis() - } else { - ttsMap[type] = System.currentTimeMillis() - } - CallerHmiManager.warningV2X( type, content, diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiProvider.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiProvider.kt index 406fdd97ee..735db45a88 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiProvider.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiProvider.kt @@ -39,6 +39,7 @@ import com.mogo.eagle.core.function.hmi.ui.widget.StatusBarView import com.mogo.eagle.core.utilcode.kotlin.safeCancel import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_HMI import com.mogo.eagle.core.utilcode.util.ThreadUtils import com.zhjt.service_biz.BizConfig @@ -87,6 +88,8 @@ class MoGoHmiProvider : IMoGoHmiProvider { ) } + private val ttsMap = mutableMapOf() + /** * 不展示顶部弹窗,其它保留 */ @@ -99,6 +102,19 @@ class MoGoHmiProvider : IMoGoHmiProvider { direction: WarningDirectionEnum, expireTime: Long ) { + //30秒内同一个事件只出现一次 TODO 临时添加,后面宏宇统一在数据中心处理 + if (ttsMap.containsKey(v2xType)) { + var oldTime = ttsMap[v2xType] + var timeDiff = (System.currentTimeMillis() - oldTime!!) / 1000 + if (timeDiff < 30) { + return + } + ttsMap.remove(v2xType) + ttsMap[v2xType] = System.currentTimeMillis() + } else { + ttsMap[v2xType] = System.currentTimeMillis() + } + CallerLogger.d("${SceneConstant.M_OBU}${TAG}", "warningV2X v2xType = $v2xType ---alertContent = $alertContent ---ttsContent = $ttsContent ") val playTTS = !AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode) context?.let { val warningContent = alertContent ?: EventTypeEnumNew.getWarningContent(v2xType) From 604b7e963204af82bb34359dc268d87667584507 Mon Sep 17 00:00:00 2001 From: xuxinchao Date: Mon, 27 Feb 2023 16:52:20 +0800 Subject: [PATCH 05/10] =?UTF-8?q?[dev=5Farch=5Fopt=5F3.0]=E6=B6=88?= =?UTF-8?q?=E6=81=AF=E7=9B=92=E5=AD=90=E8=BF=90=E8=90=A5=E6=B6=88=E6=81=AF?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=9D=A0=E8=BE=B9=E5=81=9C=E8=BD=A6=E5=92=8C?= =?UTF-8?q?=E8=BF=98=E8=BD=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../adapter/DriverMsgBoxBubbleAdapter.kt | 51 +++++++++++++- .../msgbox/adapter/DriverMsgBoxListAdapter.kt | 51 +++++++++++++- .../icon_msg_box_operation_return.png | Bin 0 -> 15347 bytes .../icon_msg_box_operation_stop.png | Bin 0 -> 16391 bytes .../layout/item_msg_box_operation_return.xml | 64 ++++++++++++++++++ .../layout/item_msg_box_operation_stop.xml | 54 +++++++++++++++ .../item_msg_bubble_operation_return.xml | 64 ++++++++++++++++++ .../layout/item_msg_bubble_operation_stop.xml | 52 ++++++++++++++ 8 files changed, 334 insertions(+), 2 deletions(-) create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_msg_box_operation_return.png create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_msg_box_operation_stop.png create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_msg_box_operation_return.xml create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_msg_box_operation_stop.xml create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_msg_bubble_operation_return.xml create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_msg_bubble_operation_stop.xml diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/DriverMsgBoxBubbleAdapter.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/DriverMsgBoxBubbleAdapter.kt index 8592c0bcb3..948d93eaec 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/DriverMsgBoxBubbleAdapter.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/DriverMsgBoxBubbleAdapter.kt @@ -33,6 +33,8 @@ class DriverMsgBoxBubbleAdapter(private val activity: Activity) : RecyclerView.A private var data: ArrayList ?= null private val operation: Int = 1 + private val operationReturn: Int = 10 + private val operationStop: Int = 11 private val notice: Int = 2 private val v2x: Int = 3 private val report: Int = 4 @@ -55,6 +57,16 @@ class DriverMsgBoxBubbleAdapter(private val activity: Activity) : RecyclerView.A val view = LayoutInflater.from(parent.context).inflate(R.layout.item_msg_bubble_operation,parent,false) return BubbleOperationHolder(view) } + operationReturn -> { + val view = LayoutInflater.from(parent.context) + .inflate(R.layout.item_msg_bubble_operation_return, parent, false) + return BubbleOperationReturnHolder(view) + } + operationStop -> { + val view = LayoutInflater.from(parent.context) + .inflate(R.layout.item_msg_bubble_operation_stop, parent, false) + return BubbleOperationStopHolder(view) + } report -> { val view = LayoutInflater.from(parent.context).inflate(R.layout.item_msg_bubble_report,parent,false) return BubbleReportHolder(view) @@ -87,6 +99,23 @@ class DriverMsgBoxBubbleAdapter(private val activity: Activity) : RecyclerView.A } } } + //运营平台还车通知 + is BubbleOperationReturnHolder -> { + data?.let { + val operationReturnMsg = it[position].bean as OperationMsg + holder.tvOperationReturnContent.text = operationReturnMsg.content + holder.tvOperationReturnTime.text = + TimeUtils.millis2String(operationReturnMsg.timestamp, getHourMinFormat()) + } + } + //运营平台靠边停车 + is BubbleOperationStopHolder -> { + data?.let { + val operationStopMsg = it[position].bean as OperationMsg + holder.tvOperationStopTime.text = + TimeUtils.millis2String(operationStopMsg.timestamp, getHourMinFormat()) + } + } is BubbleReportHolder -> { data?.let { val msgBoxBean = it[position] @@ -187,7 +216,16 @@ class DriverMsgBoxBubbleAdapter(private val activity: Activity) : RecyclerView.A override fun getItemViewType(position: Int): Int { return if(data!![position].type == MsgBoxType.OPERATION){ - operation + if((data!![position].bean as OperationMsg).type == 0){ + //运营平台还车通知 + operationReturn + }else if((data!![position].bean as OperationMsg).type == 1){ + //运营平台靠边停车 + operationStop + }else{ + //普通运营平台 + operation + } }else if(data!![position].type == MsgBoxType.REPORT){ report }else if(data!![position].type == MsgBoxType.NOTICE){ @@ -214,6 +252,17 @@ class DriverMsgBoxBubbleAdapter(private val activity: Activity) : RecyclerView.A var clBubbleOperationLayout: RoundCanClickConstraintLayout = itemView.findViewById(R.id.clBubbleOperationLayout) } + //运营平台还车通知 + class BubbleOperationReturnHolder(itemView: View): RecyclerView.ViewHolder(itemView){ + var tvOperationReturnTime: TextView = itemView.findViewById(R.id.tvOperationReturnTime) + var tvOperationReturnContent: TextView = itemView.findViewById(R.id.tvOperationReturnContent) + } + + //运营平台靠边停车通知 + class BubbleOperationStopHolder(itemView: View): RecyclerView.ViewHolder(itemView){ + var tvOperationStopTime: TextView = itemView.findViewById(R.id.tvOperationStopTime) + } + //Notice class BubbleNoticeHolder(itemView: View): RecyclerView.ViewHolder(itemView){ var ivNoticeImage: ImageView = itemView.findViewById(R.id.ivNoticeImage) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/DriverMsgBoxListAdapter.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/DriverMsgBoxListAdapter.kt index 95ea8caef9..b020fd0ee7 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/DriverMsgBoxListAdapter.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/DriverMsgBoxListAdapter.kt @@ -35,6 +35,8 @@ class DriverMsgBoxListAdapter(private val activity: Activity) : private var reportBean: MsgBoxBean ?= null private val operation: Int = 1 + private val operationReturn: Int = 10 + private val operationStop: Int = 11 private val notice: Int = 2 private val v2x: Int = 3 private val report: Int = 5 @@ -72,6 +74,16 @@ class DriverMsgBoxListAdapter(private val activity: Activity) : .inflate(R.layout.item_msg_box_operation, parent, false) return MsgBoxOperation(view) } + operationReturn -> { + val view = LayoutInflater.from(parent.context) + .inflate(R.layout.item_msg_box_operation_return, parent, false) + return MsgBoxOperationReturn(view) + } + operationStop -> { + val view = LayoutInflater.from(parent.context) + .inflate(R.layout.item_msg_box_operation_stop, parent, false) + return MsgBoxOperationStop(view) + } notice -> { val view = LayoutInflater.from(parent.context) .inflate(R.layout.item_msg_box_notice, parent, false) @@ -244,6 +256,23 @@ class DriverMsgBoxListAdapter(private val activity: Activity) : } } } + //运营平台还车通知 + is MsgBoxOperationReturn -> { + data?.let { + val operationReturnMsg = it[position].bean as OperationMsg + holder.tvOperationReturnContent.text = operationReturnMsg.content + holder.tvOperationReturnTime.text = + TimeUtils.millis2String(operationReturnMsg.timestamp, getHourMinFormat()) + } + } + //运营平台靠边停车 + is MsgBoxOperationStop -> { + data?.let { + val operationStopMsg = it[position].bean as OperationMsg + holder.tvOperationStopTime.text = + TimeUtils.millis2String(operationStopMsg.timestamp, getHourMinFormat()) + } + } is MsgBoxNotice -> { data?.let { val noticeFrCloudMsg = it[position].bean as NoticeFrCloudMsg @@ -314,7 +343,16 @@ class DriverMsgBoxListAdapter(private val activity: Activity) : override fun getItemViewType(position: Int): Int { return if (data!![position].type == MsgBoxType.OPERATION) { - operation + if((data!![position].bean as OperationMsg).type == 0){ + //运营平台还车通知 + operationReturn + }else if((data!![position].bean as OperationMsg).type == 1){ + //运营平台靠边停车 + operationStop + }else{ + //普通运营平台 + operation + } } else if (data!![position].type == MsgBoxType.NOTICE) { notice } else if (data!![position].type == MsgBoxType.V2X && data!![position].sourceType == DataSourceType.SUMMARY) { @@ -365,6 +403,17 @@ class DriverMsgBoxListAdapter(private val activity: Activity) : var tvOperationContentOpen: TextView = itemView.findViewById(R.id.tvOperationContentOpen) } + //运营平台还车通知 + class MsgBoxOperationReturn(itemView: View) : RecyclerView.ViewHolder(itemView){ + var tvOperationReturnTime: TextView = itemView.findViewById(R.id.tvOperationReturnTime) + var tvOperationReturnContent: TextView = itemView.findViewById(R.id.tvOperationReturnContent) + } + + //运营平台靠边停车通知 + class MsgBoxOperationStop(itemView: View) : RecyclerView.ViewHolder(itemView){ + var tvOperationStopTime: TextView = itemView.findViewById(R.id.tvOperationStopTime) + } + //Notice class MsgBoxNotice(itemView: View) : RecyclerView.ViewHolder(itemView) { var ivNoticeImage: ImageView = itemView.findViewById(R.id.ivNoticeImage) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_msg_box_operation_return.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_msg_box_operation_return.png new file mode 100644 index 0000000000000000000000000000000000000000..d1363d1a969248b3f1b78f11041797e4a84827bd GIT binary patch literal 15347 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ΠAcg(qw#n7k0|3ahS1Oq{? z4Kf9IFBHUp4}JKL{1Z>8Ri|9h@9syzx2fR5-9G?xK|CLtnUZl1dkX6nz0+2=3L71w^aCHVArmmCyIQfEOFxZr|3LW?=bu}eJ?QxD{3ERN? zf`GD`&>fLrWI{|OW&u8n?p5d_jv@X5AMppydIzABU+xy;7~?yy0!jHhEYS3oJImeKymNHdE6-3Rq>!v(aMIc3swnhYaNA^BY#l<8<*6JJORjp zRTsLA$%fZcz0vCa{Eih0*+e2$IOt+ztmC|fh@*+@yPh};YG!sLy|p8YrTjZjayYgH z{NP=$$D8Nd+pl-iyII_0gYVQ2$f+>vNjz)enNS^66(pS?!){S0Yh-+0XIunZwnKbb zki>Ut6}xj{Yz3U-J1RNl1KZNkr+UmfCaZ`eeA(7fK|ILDvBiba?;cSL@0bWQaGX0{ zD_J`Ri{W>y7-x=&kC?(k#bnO3r(Pv5Te#%^XTSQS_T=E-^Z9NYeB<-miv)d65aWmu zXD|Dy8j#vV|)8)Latll+wk8quGU>jC@Y%o8R zK3i?SS%J77nFNk&Z>sV_9q{K_ON>%xdy5c+O|D!RN13)V@F20UNqs8QWP#56X zm$Buv;uXA#Wmi5~NJIgz*zgS=o4nh!%2>m?)61wXhMq^_v59(xv+^$@{&{p+Y%M2q z4kP`b~2XWSbHfWfYjw3;K<5c zbJ^4t8k}iR+~Ny8XvlM9vB6N(Dr~_Bq-0ST8Fpo0`scZh&rCLP9Qf*SBLP1;6qV!e z@fAK|jNAfOahRic3a>r!IYym(jKp6b8AmWf5SnrQR_Bw~&(AnxkA2Jx01sn+dRw{S zj&_j};|-Pv!B%43GIbRI?rpCVGRQj~9nvx$=>}PZQwi8lw~rz$^X_6}-t-d?$3Zl^ z=Ut2uzHy%AK5{GG-N(}NCsUb{P37;4hPqfju7#~|s{wEN4}tfw47=UoSElpRAA4c@ zvjRT0B-gvVeBZ!U|&8f^F}FUWOZgQEp} z$+4wim;@e43?inn+Uex@wf3BHbg@r-z66Z%mD}JSZTL5LUzdO4W@sJ?7<_>VMET`#a+C#*rma)gMP~|>~NS=njvF&w!EAmjWuViY^qa2EF9yJ z_atppWeG3PiCH3X8ON0IUx%0Lq zh{7DMaWcJN4qi$Oa?OO^iE0iVi)z7;)KIVrK55|S%?pl><{JlymVEYtA@`7-ZPHe< z+M5so1ni?JwWBXidD(}f= zpF{n07tdB-Te|VQOM~aL$&Wj(bZ%lf&@W?WP!ZQc0~CxyArRJ>CSC&jV~;45no|z2 zxKQ`CIl?YroCyKNqMb2TThaa49~g=Cg9+g}*Kn9B8>+XYflK?oQE6>Q{LoL8^*9WSNh;KK4qoTU;ZK9ZD81t@zg z3pQ>ncP9t3RSx}TP}d7o*DwT*4cA^op|b#vhN6cKZxMf(a}ELuU-@Jcj7u+Mnr+$Y>6vWAq1HTaWfW6C@kdKYW zcym+`10J^Gv#Ts*xZ|oF#=ZW2uA0U$Rwp-1b2XJ_u0QE}+aYiNNIUW)UuuWG^P_G3 z6Q2=HmaZ-U2#O;Zhep+%7}b!S;wJQHcv$-kLC>l1Ih#Ceqn@D6&MR5j=em zfG(C|0k~D!6ldyW&;f-&U`_tluQ$ zGts5bTrPX8_LKfcci3R7M#&~FU+@`Nu-P?Q>MTx-730Lh z#z`cF@m@!9fSVDS4qW-Mtl4R+$@)rM+o@x|ZvXbEH=dQvty?ugYuB|+r<~Rw*A7br zzMEwNcfUBsH@c)Cy`fYnOf%5C5cTGtqiDW`HEyar;3%3 z(G?F){>OJJ%;M;;uhQ`vyXLT?+7a*mv$p>;{k@z6*AnkTwOeu}?$F4^DQcn7NV#DYS z7U0>1b`Bjo6qtaDQ>)GrSJcq(z?Xg$)EHkx1nqU;NsD3rq(JR-Sro0hQ6+GrQPDqP z-DEX)zo(qij(E>swzWq-4ylyV`q3O0QN2hP1{FVP8e6rr<$PwWYla~YLQ%)U#o)oW?6W4h z>gjq9tO&w#0pC?s8@o2LRAc;X=k(O1jo09>|3iDK`1xaEt_jb#;0wSPr`?f3eG` z3ld6#8wSoW8_OJ;gdy*g#aVbDdCY{*FI0tAAd2WiHf|)gK-7UMFf(taRt`R*9r^A* zZTmlqmmvx3mh7{@4ip`PWfRM~aKeF1@PnC-=|P*@;b(rZecR8yr5*mCKiKyFu772@ z>7?&;fJs)ec;aLudfphs@TY&Zk-bSe3Ut;Q^1dqo^H9~gD8R`2l===+Jfi2bQ*8 zbWMBYPrSCRd+e6D_@u9k!?8kZzR?|Oa(tkPrq@j}$cQ4bVz7KuiRSB$EQ=zV z;t`jeea4emxxv!%CwZf{Uf4+cY8J|2L_nCMk8_9BLXgl9@CeUi#6cR0kqcXQBX=eg z6pRAXz;RR2?NmekIA$&VfiL>0cKF*r+@>236hI&Ya~8mlW#sMx-g?YlH&Zj>Z+h7VMZ2eTaP^>?C!O8Of=a(3JQ`~c>jcO`Bo9o15d#GQyq7T*l2rn?T4*R$)%tXGE)#K2w z;V-2_j?C$z)1HI#M8TCVq%yFUS;O0KSb>>Os<J@WW=$UFY5 ztvu=oRXlHH-!)R^%;&CdZry=^z1HkbiF8@UzIf_FsOA%w^*KSK5&6g3Vcwyyc>Ske zZb!ZKy?ST9(R@6K)_?os+s3DUPrLQ+KI=<}#_}f)poD~dEK}fJd7!pxiHux3UuAbjs<8YC{D>ycY%S9%bO_Rsbs>*yri^2!I3k6zhai)z z3!v^6{IITGJ@OadrRF|bf^2R$jbI!L&Eu}DCgOzhy9Ggpzii%6H0;U|bMC>q;hG6t z!|_YaU;kuUr){b`bw{uHSE3g-*mE+Natu+-XaweGdFBNi)r5 z<_i=PeO=hibEQz|z*uv{Lj@B6sE#h<@tru&BOCLOLvao|9{G+*lcU#ctI>WO^EDs( zJ;!7aeDc5PY2UjT8et?}Q^ud^AXlCFu#MI=dSeZ$+Uk8ih73&uM!48ic+o%YBwl~f zht7Bm@1hT4SI(*tCNn;WhZr&#Vc@2Lg%9Ty2%J*+l7=mDEHTkRUuupkA4OIs8|1qU z8OGJfntKyN7Z;({4n%Vnzp(yvh@cCfvoaAzBT{jsM9X)S(2%14bWpBuzx-?MwhKNV zJd%IvXEvD19 z|C3JcVG@?Z?tHLj6L3-kj*PKHyPK(UH4#0v?|kBLeo&=`Rogk=uw+0P@c1t15WRSwUi(YkJ0G z&v%#aMr}}XxY0D5Mpv_AA4zFlw@G1KF*QHu;7Kmqz{6kLXU>BVv#!7h+ak@}1#Edl zBd>YqEjP(EuP<=uHSZC6I}=MNd@VA2qlub$kBl|3)bJ87Q9m3J|F~wXM+6-YDk4NL zBK^ac{tA-rVEwmm;RuJe44c{zNQezC@eo`E8u)OAk8lJO4Dx75?2%D8<~msTQCrQ- z!iB-88MYe%vFn)lj#2okYRk6t*#W=#vtynXL>X~7ewjy+EO!2W{go1ZHGlP%yo0$y zb+N2D@E`-shbTwVD-8)bV9`ty+;rA%Ug$VitxS;^WR?q6GhDGw40}Fot2nRhvK|>~;l| ztQya%niqzNPmp&5L9e_Se8Eh2tWoXwj~VyFStk^ThJiJSjO~aZ5SUa8?YoUtvLnf0 zaD-X|aZitV(cYfoh2v;236i_>V6B9|?snnwGT+wJGqo(CLnZS5* z!!qvB!iSH1>^PA5pPjDQAdtb!ue;eZ5y#7<~m7`yV?U<@y6 ze{MmuDE?vts>u;(>g(G~3ZBN!{jI3PS2La1h|3A(e&i?e&p;x9%tNwB%lo)s!*1o_ z`YQ?r)V%ZNn>vODLt`qfNjGT&?DHU@#!=^zX~r2qd@P|Y8p)_VA7KXv_?2yI#IcRv zT0j&$UTMc30H%2dv*B)V<1~jliKSy-x>ABkeD@)Vp^5LN4oYwwlks1Q4&P_*$0S(!K83C+q`2}x9MlGCi=g0!+1eiV08NEBZG4s zc0?@YOjcS~0)x{54}=@dqmp5R34!^b5!npHG}U{`rZxL)eAzk1!gPDt5&c+hd~)N< zjh5MH5S9;O#YFpHiUqO*zT;#otGU2$|FZrILku;X8u(hL)cHezg^je-cAw@aVS%)Q zsN8zh@KQ!4>_&QNYv8WGvD6w^WEP>Y z-t^?BVr!53UxCoK^(a0YMCA{KVuu+XTdBNf6vbdG^$nqYK?gKz_*wgVSv zM)C#$s9Oxt?5-7mVaU2;S@;K+t&NKB5BlMc*1rzz{rKlEbE z7RD`~Ki3uLxu8uBe|lv+0*c8@-chsMg-m*KuaKkG*hMYDTR*}F(3gd@p%?YlkH2{9 zHr@wZ9Ax3fzO^jp2D8@(qka-F>;_B^Bt%%+o)fyl55ibsUXVM#^nWrrNgNa})--_T zWg{f#D^UIJ?HyROF)O+{Mve3ZP<);vhA3mK`RPus7mo~*{ic(@vu(()IXgwkR=3^K zuKoDOoHC|-YT`$7mVi`-Y9u9jpg_Z%>#Ef*^>PJ^B`}5eY&;nc8za-stHpd04PLYP8E1U$ zn$MhZry8-ICX7i0S3!hik&gO|tyS?zaEB0x!8omH?$Fo>1|~-R{4;s_P{(h(@cee+ zOaEm%@afNLYae;As*?T<7{#V0g{yfxKyP;Tf8tZz(D0R+a>pjFUm&is^fVcQx~nC3 ziV=SNG={Lq3Nl&$u=ePm`NcNbutB&|>OTs;{+f2(Ip_GU#T^(Q*eEB*DFL#AY1!kq zMvCQHMJ`c4bb*Iq7}!_?o(n_!@F(lp%y;mb$r)$Nu0FMWS;{92P#I^VkoBMR6D}M_ zK!jZTSmVeDokk5&7}!~*+Hz&Hu5h`VS0tF}SpE9ecKt{Hr|%f|LG~2cfkVx@uv*OK zztfP#2=Uq=C-?b(QYnJ#JH_bG*G#Uc z*{|DtXl_!WpH{r`egCy>zv{|(G%J2CQe$L7VL1f#scIG$i;YF+TDrz{(-c#1P`_M> zViDiHmW>kLI6Xi=kq|NP6_;}WlL*FqILXRXQkq`+y6PkW;1T+GWH=a90nnTQm3hvN zM{(0!KDA(WgV!!LnTB$#qv0dnS~Z!AU`5BZpZH|^$Je~F-F3~C;Wrx_vC5&FsF`Nd zSm(o@V3=c~j4mxA`k(u)AOG_<=O^wN;=2Bi&yH{U%NTo_Nj@C)x(j8M$Z=SJj0LC| z>_Q*%sK3@$q>bYp)?>V-m5+EQ)5-ZqUe5P2RUa$YZTw`r^H#fb(?o11cpzd2#BzM) z#5%&{Of(s&SApvoQwc+%S!1h%rcy{3MGZqvv3Okj#*@tM12(MLXRn}KmHq8syR4o6 z>Yr{W{POGD#*?0!K#cIDBO4pQC7CQ3_=?A=5h>LBga3D7`^vBWySCxjB5e35h5Na19uzG?+S5qX)UCAMv`fdGzj`pNJf zwQPrc?AGhmh%Z`K&LP)7M#-12LI?>Dx#_VdAO;}MtaB+@aUsDnt=(vf!5uu+!OY$1 zyOcd^9X!VC(Y>O(*=uBZwA*iO|M-U2w`>3S_vKg3bsP$yH#cH%F22~%Wq=W8kGEn& zOIka&-q3D3_p@!swO6@uE4mVCE^&L79cy{@QF%uUQ78M&npFitMyU2A7%^(imMP`% z)VgLkVjXtT=Gi$ydT_IN$S8%CR?PkNRF`#tWzHklDB0L~1%b|rs0iECS2E-N*P5cR z=Bq#yin(5oX?8Vnx#>KzX*_yA+GVTX3)5@itX=m0_qR*Wd{djG$E={e1Bcs{A!?D+%oZ@=n_cEKMgFF$Q$K-wbkBR60k2f68a0Q{}&J4S{s=Q5EH8!^4yyFon z`?^S&xqA6moP=4$^lXoLk`fuC&lD5^I<4JwHI!y^)E$hRNBrcD+uMcz@vVAYR_@i@ zdMB-S#y5RlpHZX_&#ZM2pFd~MeZ^*8$!bp#F=3=>HUNnWkoi{~u!=jBTJ)Mk0mHGJ zR}JGv3myj*=tWM|SpV+axU%WPc&(xIhw<+p)3%D{ryyjw5#`i-$!HdjHD^-k5M+pK zp7@XiQ(SSi4pRHU7S7~n(OFq&R3W|HjjY_6O7`Q~1Sz}a!VBB>OTN_hJM0kshT#5w zbYJ=3-`j4}_i@3j(cwFk89$>7DYwH#R(fn@TJa4<>#gP1rHVRF8ie2>X0bRrRme zQto>0b{bm;v0+|6nSqZQeyt`A1SzjZTO^rph77RhZvudkzq7Or-eUARMRigd&d`l{ z$N0%)`ur_duYR<6n2Bj&h~R^RfUx53Bp}u#<2mKT7JFh=(5^xSi)IMS!F2MHBd9eE zq*?<$u4akGa<2ZgqEQ??ija|z-;GN^)BI*EXI_{6uDf(Hb~Cj%*trbekyX>U3Aww= zA3BF53^w>?PxS1t%aw(;H7MjpU|e}=cKtL*cELH=6|QCi7~$J|>j{Uh{zYkPCbosK zc6~cbz&k8Vr@mq&h~n2AS5kn7peoZybg^LzcoL~9K$7e6)oBjdRg&OI-h~LqcIQNu zFBEQqvho`=WLo=m85xbv=JwZZ$!T)Et~w0uqj)i+_Z_R-8I@m`HCvvhnyl>cDQrTI zoP)5|75{SnU<(i3IDb{LbHz=BKSzV9#`L!*=jnaa(olMfWAi84b&{MFsf3Pza2zA% zA^62akTW9CSVySEAUugn<%C%WnNeORUWy{fWQJ{Iuf2(4qTq~iqw7srHI|v9*+U9{&gph3uDJNfw6Z0h7-JbV7&WZtj~M2(tpHLI0l-!-cVQsRZ7b8+ zZ=qQpyEGUBy%xP)(_Q#-pqi`jq+RmT)r^9*W9*(tCh!qXD2$OUqhk_pd&z?*i{Tg9 zk^urMUz+r_*SN!o7csN7YNi%6k>+u5XEXb8Ejf4i!rfaHfrA5M5$^5p=L(d;2A=xy zu_%|0oE0>=a`>*cEncyYW=8!JFL~7u`E)XU@9|f)8-slDT36a<;_;V~NtVDEs6D(#|!@a2WUiY)P=dEkLQ{7M-^X84U5Q!kmDB2&!k z?xaV&f$|$F&DBuktZl2cJ;TA8jYhqvu%8fx9DR>f7<~|X#lJA?D&%8%lnss}zr<$% z#R_19p&=tY?hOkOg49 zD}Ed#b@D}0I3VUKLE&>QF=j3@XnkZ2nJk7!8ybnsjnv#9&nZXGa4~Y7Qz&$Xe<*lG zAMp@FuY)~xSYL#GG5+EUyq(CAJS)FU%Xr6Pf$(~gnX5GO`R|_awcD@hj+PdCZ154E zYL_VG_eY`fZUT%qRVtiRn=Q<%kl?Zdwu^mPhW`k(%ETOcr_#Btce3!IqsWZ#KX9gh zwEBm8BqYZj&7irK>C_vVYveqtv7xv=G&xUZ5#pS$>#6wu2qupsPC+Yx7o( zY=L8q3;?|CGaj2-he>#|jlRjXZl%37z`H;1vBCEDu-WV6<3@jT0WU6=B%|P>evwp9 zOhMQr?Rs$%pTPy6WpxLzku~`Ih_J(F&<({6AF|K_&hj6xn-L~8;&AMJleL5voknqu zOhP$|dC}Ocfi+%+CK(!F`*aZT*}TUYyF8EMcm2p`u;}^O4GL;BdDF31wJQg!T~~M8 z;75O=-Kf9l_Bx8qKVMaNg&zk!f+1N)C3!Rzt7w*8EAT!tiP)#SCl>hflMc;QczA~j zco)9p+i~FwT4rL`vXZqJqLh2@oUl)C#G(&hY^jU<0mi8O!Kbr`$-J3&`nRv~T8P3M z?&zbYQC0%Maj+M@hdF8g^n}BA|IRu1igmo(&00ZBu6X+7ToL=P!Q(Ssrga2`lz^kL z6$aAMhk4<Zm__4ismdqFNsw)_w9QjPJ% zwM+aqOnid88wf_(2(632`7Y!&`0w!xk2L(J9<1>tkD?6d$=Ua&xuEW`!5AI>xpux> zomoX-_LWWWPOw}@K@stI%d0>;>1A6FXQN0Ae_cMZXIZ~x zVKIE!tngg;fw%iMfYTts2M4Gan%xBLk~bBeEb6v0$&cWKLrlIfq|+n5Sc5}5=RcA{ zn0_LLh(FRoXXNU1y7J=Vu5Md{=bq0a5BF?*`FFR&W;@yia(%E9lGA}88bMgmkc?Nf zU52p()k4Wc%p;j41HKG8K267ai8`knq@tGp!V^I>FJfAJ`j|ndv?+WK4t;S(+|hV0 zh|EonhM3YuC{tiloU$?qKD0KF%!`rEjV=Ps>3^~^eZz^@%-(|J-i~{H2SfOnziC&m zv^B4AwFsPm^QfZ6j64$aqE4Am*@EvJJ*nZb)bD`8r~Mc|_74}j&Y5>mhoc!68@+9Y z1`hF8ZbCcmWC72cuH-^mej^qN6WEHwsdbKwQEw3ABN)10;QH`6d2FE{sd~aIf9-9o z_h!Jf*W;_-Iem-1@%k%~W?qzHA+YFEUEPDuNlS^|cDr1`grRVxuLe3WoOlrG9`NB* z@LloY4}xl9tTWJ&Jj!Z!6(`M1?#Qiz!H@4j_HD?WrrjuOFb#-=nM`oww?oS1Cn>J&RODj#47F zRtA9&TXx{sMR=K{_pu&$p(uahOlHOGWO@M-t8 zx$xen20I{qb9wzi^A{?Pzjs2Fh-X4ou(`(GfqRiBH$W%;$&L?W5HMW4Tx$wls5l#w z{KGo$1YX~Sk2XXYd&Xy+<_bKv%k~igO<)AZd28)?6ic_w@B;yMz%OHhOC}kIY*#1q z>5p!?ru{Ye`#SD(gK>Ds$J%Y{C+!DR%r7}Eom?0tMsAUF7K5vne<&DkAWdM2P3dA? zd-&XbfEcG880)k*9!?F`Zfx3y?xFqt+^U)LBVQM3`pPZWt^P@5b>GkTtHHQE?7X&B zA)TT^{$JPB!9`PD?CfY1dK4&)(noKSR_=b`(b25ha}nh53OqX7pa@%J!AUfd)jM9+ ziDxoxaYKV%`|`Ii=R4jJ+{?0oIPyz8u`b1dharH-1-$*54Vj4a$G#?$m7hHEy4BxV z_IF?Q;px60moQ&HxgBuJtbJ55KP!@na&oTXv5KSsQ*aU*h=i3ib!_^O)ce4P#jv*7 zh-&Q5xV%sXdBp_n$Pdf9kVgInTs0x>@Y(T0jKniEZ|Q*h`ENjw@=&3k3JB0 zZgAd@*We;)uK0_K2N7CSilTVo6ltZ=O!qeBT4v zToK>*H(7v}$I+kq>h`0KJ^e-c8KL)aclr*sky24};^G~O>wPwmqE=yDoNf<6U@&Eb zU9Ay>tmEBigrO_E_rUCUD6h?srMwz2;ENw{tb0>KWNi1J7l7$fkIs6#!6P|AW`nEv zRA|dJJMY&Us&ut54OuRT@BikjC$0SCY`*#~eaakv)WV5`I}+_hv@7H?&}-fDMd3nH z99bBHy(=?ZC<9mVU>y3;8I(R_9R-f+4mJaKScO+R$0v88CdZ%r*uiBRt=vTRjEpmu z%GsEdv)20qO&{OTHook>d=UfQdm8uqP1c?q9Cg9!S@SjRX-f4X=c%M=Qxt%DWbu$! z!%BuKK&EHg8&XBnOk<)sQM@W>z;zB_FEoC-uj1+cF#|A)(?o+D{%*4eJn>-XgS7^j zh|?RLu+i_V>ubwT_}MeQe_u5h-w^?;eKf9pV%uN8%lICB=jY|Pr~)k)U~uo``_}fZ zd&#p2RkR=t`vtqKF(C`}Ba` z_p7YJzIQbC@YN@+eezv*-Sr;H^nclDxC+_0g<@N)Q#F-hYgabLE!o_S4xS|NY%aL< zQFnB=sj$ZW3ZIyYI}%84bPzL`Cha!;M{{r9a`^0>yZhZC+wH^CgVJE~;ikCk#Fdw> z&S$UJ?`S^0-<4JDO4`M$21mFHcc{tWi)vO?qxhwaCc1g}_Pf_iy?U_+yv3%Gp)MYH zD^|n|D7q~9)Yv<9A^z^V$@;e*d(|Cx`=hNU*+-{+_AdIK;^jtr>=#$hKIZf{ZdsYm zPuKne6-EE@4xq9+Twt9_-W!?vDtI9AN)y0ErEMl7@FtUhCqUU$bBuG);U9cZ*g|SB zzyi-*A0GlCgFnV?`dOlPOxMki-g5QqRS#x!38zPu!9A$crN_7D>KCS6LxXEg5_yNx04HTjuc|3MRk}86RwOKY$-y$rmrb(_jJ=1?c!`k6@<3?A&q@8Z zeggHk_VkNjSbnp|L#n}*{3To3G5XE?m+LQNAepXxX3KXAgKC;i3byz_SX{oG)D@Xim( z23I+_iN11N`|eqr@^fIP=~p=QU(rW_`_0pv04kbG6B)~QU)`dE9IL_%Yh*Bl53G~V zz_wGn&*?Gz`x{rrl`n@pXxE}H&rMTxyeCY}CkI9*rs^R@V-LOO>(GB*A@RJ#fD zAtm~jYVf#n{O{J6oPEZVX7iO3)e`+T^*S^wp=0$q_WJ1PQsdR=af4}K-R;3WzgnV; z^~k+gKU8?J{#yD)8>Txy|4_e6$8}j=f6F#_Ig#4a_=`St=400E+CR2l z*~-S*Y<1IoI^C$-bBFr8P2W_%RTsjxHr=^x?W}!cb;Gw^!T)hkJpWwg{||Bw^kTX# R4NL$4002ovPDHLkV1jbBZ}R{E literal 0 HcmV?d00001 diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_msg_box_operation_stop.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_msg_box_operation_stop.png new file mode 100644 index 0000000000000000000000000000000000000000..1ba1c633ec0af4d0ede746def2f5dce659572f6f GIT binary patch literal 16391 zcmV+iK={9jP)Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91c%TCS1ONa40RR91cmMzZ00`n$?f?KkaY;l$RCod1y$Q5sS9#yL?|tu8 zX{gdrnkdZzDMAQ=FtH6LBEm_m#F$}WgfT|gP8?(7q`R{^Y17zkWIIk+D~_Gz<+X^t zFisd^7Q_oDalnRVo?@^X?8dZYBqSkKX{stDsw7pt;okoL{@?fQbMC8>(1=9#t8@0= z-|+vYz0W;&tV#Qypnc=z?SzfhcHzdnT{vm&!uh;ips;q#=acPiKHuIZZCjhQ?V@d) zPui-+`z3dvO(y##yT7%$j`sD*tX(&ov}>nJ?Yh&xuiZSkT9V)4O>ur_wfWU;dEYhd zZ*Hu&?^khNq~cwo{xqVP=uczSYu@Mx&hz3yg^{gz11-`qhcRh~CiC`HiGFrEZy#-2 zwteg=A3AVn>3*m5-w_4A^M~36O7=^Ybrp4fnRlkD;sQ|%MN!3y+En^o;?8r)EjXf6 z@B}D~;37RN7!W6u$(LpSqf3*e51;loF8$NV?_RT3mY%FVu{>WEl z)jn?_X^KlMP8#T>Rp} zwBTm?fMto4m;J-^!LuL2!G2HPyj>^ocdl$b_HCzq7tkE;N7Jc<#)WMQCFEUGO9bZE$Uob-~ZE5Wdk60_{2zCkwO z+Q*rQlXicbOy4%0%>K<8pKP~S_6a^cp#`4*bX&RWw)Q&Z;ElRpJ>NNWo}xBAnVBRP zR#~iK^xRqT2y_XAPDpOn_q+$8Jh#fChNeaVhJT|{$>&n)*oci%Y z*PHSLou04)?|s?QD`&Hff2+&!*%dnpqYb+#=A0v$Lk`E6$}W}qhZUiAp@B*|3e{Em z0DkUXjd~H&fx~ zU^95}JK|Bod(wtPSJHcOkjcVD5ThNuNgtifi>4Q@9H<>CT|?W@2oqp+>xwm=@;HMdgPLznUeBS#7LwX!vzCQrfLJi(aI6nPFGT9w zdg*q4%8m7pgln1*9zdUm4Lh)jUlF_Jj;npLt+XFK`!j8K@g9%~eVew#W;#ILCQ4c1Q*g%3oq+GfS(6}a=@2O71)g=7D4vmFI zv%ebqk_$}&rE3ApL0Qxf2Mk~yIMd1GuE~7oC`*V2x7~|gg()Jty|Do=X z&jY%4VTSDmj^V|`gcDAv88MHuq)DXcwLvyxmfU#3ls!D?^lmsYrDzh^DOY-BZ$V%3 zK_6oVR+kHBGQh-TN!Z4sz8;t7^Xc?opYvz4Uu3

SNUt+hf}HyuAG#J;uCW!RVcw zjB&y3NQ{$;W%Dvwnr^0BAoUj#o4T;7Fp%83y-0k>L}L32K~Rhb){oT0jt$uIwG?f} z02z}B1Ex*j^jIbrQIFI*_VYiT)7no=uJLo|H2CPd>7$1j5bk_QdsUlFKA_9;cE^SD z4nSRwNmvwQ;K6h{ElaS8X%NOFFldqRkb#6=U@}0)NDNF5nL)qtic{hlQ`26=)VEok zI{gUtE$WjEg&!DYl$h2>rXGqk3}5ZF#>mq&m`q-CQ)_>G`wyIUtVxg2X~@Q-1l;qo z_H**{w^Up`?X$}|6Kq65SH_0GFd8zZ4T><-7WIP`kbxCvY%F3*(q>iI7?eZCj3k2= z`pnT!w2@5gOeBFTn>@FTi72+CP5|&@3OzNlhaatY%+QF|`SbRLt&{CPc=|Q__Z08Z z^n-;*fwK3d?f+8DzhZ|Kh(pPEDz1L>QgLFhWYYGqvjYR?y1tTO>PWwMg;NRZ$r{-h z`!>e4>5ducus$?Ru@Tgv*o!)gKH4NoiJ6@+QXfLzNO-7e#nI!R%&(Kp7oB@eyUn&9 z#pzLBqS?6=*D>i-&W2BNIkF>qT$+ncPk_i8A@u=|xI(UYL1!j<%2;kbxlk~FvhTSk z9v`xg{5-b!uu=BDWa(A&$;KZj$f+GH1UXwR5)g^lOp7FyFs=}#|M`@ZP)oXLsS?T0 ziIWs#pNmW{CHw%Jv3qp`BgVD327c%r@#>TM=m5D8i|lk$4AN-N1r!U^RUr_<$)ZVS zGWldXZhpmiA8!Xic_i%-?_lnhXOoS0@|cU`jzbytqC^7y8nH?l$O05o;d(W}Bs-khWLj0PP-l z8s>H8Ux3N#sJM)0^B1yYl*BDe^p5E8`RL%XiD0cTyw-$0O0qJx(iQ zdXOTpaApY7$*#vMGNOhI`o8uv$Z;eXe(5Ks^do_2XB+8vU%0f|fz(T!0k4!Zt`Ii% zqRb|{$jJyMX(j6(LIjgIAz^>BG?a#>-DQVSRS@|D)%+ z=ath|*Ti$3T!g|L2|1a#>!3z9C~B=0^>6E4fi z$A0k2zGeYXB2r3TM;VIer$~|?{2%lKN9y3wx=)AecN_R)h{Ora?o&)BdiuWcTQ@v+ z%O%BrsQtq#@Sc~nf2x~y(trkWnSU+Z!bRwb9 zAp$7$@?82ZN*1={!k_fjzU2a3@EtycSSa{5_!l;{r=EUao4(a1AL8jD6__{cc|TXi zx8QE4P$)3b0U*a#G6eb_$caHe_+dZdPkmgiJmvT>{q(QHhr2~T z#`+ysjwJmzZg_5cNH2nX%L4NmDjE1cBE;c57>xi1hhp!0hyRTa97!G_0E-Dq`tzGDSKG7(564!CIP>o~5#<0vBY&d1ME zH8Qgi-`tVJruaKfV%WC@{lU5(k58K)Z2z*0KFHu(7Wj}pAg9D^CGgCJdt9|sm5?+7 z4Y@_0q@nS=&U)c&$qxQyLQ=m&E7=_rVKcxS@2JF-4P=W)o$4}cpUlFKuw_|$1@J%{ z`xXnM?;b%*-#+1J=yC4)8cEtdm<+ysML1(j{qQL)luyP?dGb~Ck_AilfA*$lx90@@ z1D_wXz9CH8)gQArIJduOUK7v%ELU~R3S(toK>Ty-w3wPsXoUG^CGw$9y0!WD-grs-u~a)^_kacF8wY~!A4)H6 zhh`&V3WhZoGaN`>?f`pM;_6GLR%l?RKw%3n_-F&3Et8E7Nv*_|8jch#5+lLR44wWw z*ZvvFBK8AY-ES!9j}Ccd|GR&sA3jEGp;vwwqi{-JbNsW9I(HxOzy8vXKn5T<u-tIA0_&2=D+e%dd7YpE-u2-@E#VPwpoKdX zfbDeoNWx~^!(@z`c0$E|;LVY77kvb89A}x2*b4W^zV!HsRH8&v@q5vb7t_bNuoPz1 zz)kx>@H~bgcO?C#>HNy4{#Efbu&__bvg`CHnLWY>x#htuqa9Dwz2Yt&g{} z>H(vhXAr97%3^*7ogG`c;9sEja@I)wQtc~EHKgMDVZ*0%= z)bkq$h-|Xi69(O_5*Bub1rYSjHcQ{Q(nr3=cE}Wfr7s&{J_gpca1<}3kn7G65agi+ zKwwFZzwj}2ET3a_gZ}}6&F~pB+QqYtpC7=7(P0Ii&n7=}JdVLw&b7-&@3Ls}h z3VFts;UpT4GL*jFg^IgidK!F<9Xc{PDh+`leq#4v3zDrPT9>`Tz37%TlKKI*cJ-R&n5`!hj1G#vR#SIdxoGIdU6;`fWk#SHKzdCJhFKdV?%+kv2p0ClBs^7 zzz6l47{b+ehy>9+2~ivdxC&^8JTFlcs!3AGiy+X^K{7>hz#8;kbVMuJh2lOZ`gx;J z$d0Ko!O=u-gt+e*(8QxirqN3VAN1=yeGG2{-OY#S=yyDgZ7=;C=cabHM7oS+h2b4r zx+6^I1^LuLG5$ozW(-c%JdT2osA1HAS`f4LT8X*-rM6rHdab6{h0%ftKr~{979CuT zy{ZaPvUXX*>6oQ;BGy`|B|?E&UGV7Bf1K23=YuA)82&eW!Jc^@=4tF!augC;hUv?6 zjY}2<46CK99$QQ@_E!_aWAT8+hrJ8dFcKPVD(iD9--s90@}FUE*w8Um;9v>b=jfHi z41jrzQ%dwy0mKYk&2*2pan$BTMfDY2YhB(ip>sw{q46ZRO1K z+vM2e^k(MPHd#5UO}Fan$156pzO_x0-d0w`-=g^z^~maCrG84k3{A)KN}I18YO}ld zwfjE*k#_e7-`h6s+!gBq-|$7I%eV5+z5IelTYle}a?Uf_(g~-eP;~2e?)K%dl80>V7)(|{y(gNROpZ|5YVvA*FKve2bJSz2jJJ5FxfuXt5E_OchZyWaZC z?Y=+%l#A#apT)sbGu+tMefm=WG5ok5*kNzwDQ7I`aOHA*(fM3Cjg=(dEkMtR zJXafvZi*SuX8Jv`_R}S08!?%De`({a9X126Q{0J&u~$qdBLH~v&?lzklN8TITYAd5 zNljTjC?2})RtKK>HN#lw=_opnsXT@r_lnoIQ-As0D(*!Ik_NDd@Ys>s>P0KQfn$$2 zsW@o;G#bcldi2rl)PM3TZRyOX#bb4fS)BDw6OCbq)_he3p8NVPJeuq+?>Kdk!Ay_` zcTLHBm%qrM@BE^~44JrG*F&f8q(u|;w68vcr@7Hw;Q7^USwUVFq`1m2Uh7kO{GcN{ zC1WlI9k5Rhm?XG3*>gj)yz{&Si*Do2TiSeGUwW4ezT^HvFFM4++IqpIZO702S_qke zMz)b6FU3bPs+SD>Y932!RhQ!f-)tLu?`&(kzus1FzOKy<-fLM3?`Hu^%k9*k{NMes z;KiE$*x7`won0=?6w~^?Ju-=K*j?6DVd3t4vpeORvqv6tmv*_xEn-FLecFIGTc5s& zp618keShA*TYRo3>5xa9vI$rMIP1%(P;2F2U@#jFVT*%SW8cxr+|ns$1|!ewx83C8 zveHnonkHbPOHYlhuLZK>AOE6eYTiQh^R{;D_3gl?KiD=798huYYa0jeZ}a=r>zH|b zf7>{8(BqB!HNH>$wS(&Qg#oQBf9Mh;*_O6#Z%_ZN|In6BdP-1aW9#`Bx203hYU_90 z;v8^;RK;}s>AVXlEEeqgo;$Q_PmVx@v3$Zwvb7}MhHtPi2~0gSdBaFf|3*zz8Sr8w zADXxh%8VC}CGCNeW!`N5{UZN1EEjlVWBMXLPKbbLJr?II97Nj95{hl?MHw5@B+OJ% z5H$VrX=m#3ZSh0;tGjM=GB6y->ZMmmF06FDLyq3wj=J=3i3uQ>D$e}}+I6pgd0W%x ziqMZ!c3>tD9fxfst?X4o={aWK+~4+n@cr$S*Zxcp(3H*N|MnGa?|a_XW?5XiYPGYO z8%Hj#slZ2F@Qe_FsNyW0cv73`YJoh-S643gnX=ibjG~aE_{G<(W`0@4>y$dntgqF^o_1mVKaE8vwg&I4kht?jxg3M?7wW(dZq zV;4l{x$3ch^KvbDEf5n!=>EU>Y+Ji4eu4^Jnq$e{v?Q<-XxzZnn11sd_`RR{csOsT z!q)b`_4jlKtgm6EKg3ji8al+{QZ75Icj{LSD}eNQWydL<*{BN6^k%_lGmAu)dEYcvM|zwTrvi=IcRXy%2|3Hk9jwQyTaY?0+ z)h}rbk2$g!^H@XV?%#E5TfOB5EcLd0{7LQDOP<>wM{QVc;Op4`qOb1JuMax`38C?p zlTHc!BB^&II?1fWqkx|E{HL%a>Jr`gmZ>Y~(9h;e{*e5XAJZ1*X`olZu!vur=sAKH z-rxugXX1#tjhY_wgovG~$;zez1AOq7861RywGn#pDCn|yF24H8>o@<$Cn9+4IVr83aQPK| z!Ew`wf8>WoKRyoKQ3ZwphU}cgV=}@+oQ&myPvn`L7Lc)ZD!O?{cNvBNR)vz+HZBBm z$}goG+?aV;2wS0KCjJBnO6g7vO%93SRVaaVapzzE6K59LJuM zIB&;3=lObmd)&gp8~bgs6hC;E3hXg~1#!zMr^e8Xgq1C`y;vBD;6~Bn;nCDudC9{T zd5qH5W($3hUEpPY20xqv6yY$2MM2xJ@c`4G`JrH7OL%TqEUJ3+LZztlv$FGC^F4vF zw%S&2-|d|R1Csv5%Y*7EuwN@yzx}emk4Ol4%g@_=di-2zj+>V+V8?)yLX-`gGU zd&ht$jJ3Vr(B1l)Z!Eo_g}HKKJO&fOTz-pWouPK71kF6U<2}x)*Otv1?j=SO&ZSQ}7e_K1ifB&EchGf?CTzJdL zr+A9`$|-skPXjL^AT1YuBUC$*IJ_vNLw+LrAVe#k4LO0(V<8|b^$X@#zj>+`IP@P_ zWHBj1tqQ^VpED+*0%TV^(D1S=y#k74JR9AvEvC)|C?(SdW| zx@+4>Kcx6E&9-x4%Li!S>kapN^&DIp>6(?%U)NKj6&1J)FCBM+R^76u>*1G#SeP{A zE0^(&$YJgUkwVxAIg~t67aOefwQ{yz`<|=M=Bd~YguFr!wi%Grl!ZYtuuMcovWNpX z)-MS6U}R0UoNGZCu;aAp3R6l)I!_ImGzDk2VS&r2?P{5$LJXyC z+~URCs02*x;zh8cg-3&I8A8*wq}Q?a%ySh49?+s+-F0(J^9=R= zuYI-M@P?P`Rj)JJDX;j6w&OMbq{Iin)aUKEQ-9)ri$w93ANb?lPT`R)nitDx?uDVb z`d*Qe1xrUhbG;=#5nf1WSNQ{=2Wlgd^ z;H&udxC&-{;g7B$UT`BF^CSXR{9y-&AgVDIo^v6bW1o3xThZ&*Cc{cO-|U4(J9Jm> zVCEU;%E>3kQ1XUPUB)3MK{GTnEjL&4%`-yCLmpzG+##K=A`g#->63VpHcdz_zJ^N`vq@b0-#17e- zAXei9DF^A%#lDoB3>>5tFD5b9m>VbaFk+c3cFK_*F8w=S!rQOmem(ZvFU3RbE-flj6B>(6AMUfe^)>^PhDhbb(p?jtfQ0dsb6`@ISHOgUcJAq-+8;VqgCGt(mCO|-{Vhg7)^6}-k`U= z0ybI9EFL?%`?gsoW&0caESj-?%A+4P#Dvx}Q1t9&^TfaVgKg>9ZHD3G1>I+QE`0ah zdOLK@x%WvXSM<1USmbqhoV7vK79ldAr9k&{mQ#vk##HEFQJnqqRknHun zdo=RIL_cj33`pIQ1{E8*cm8!A`~@H-(gn|QypS8Tz0#(uQ(4Go<^ft9(PGu((PRM*&Q_wI#v#SoJJO&b+q$tzpefCul`c|+$(>$UGr1_u-*CJ{xEpx zrEJ+b?pe?2elsv~_Qb!ockxDR>G%_xUj<7jaFC+~eEMNu#Bp+hM&UK0g!U)=MLUkD zU+K^Gv)B&644-jrXkJBjVzhG%gv?kr+%qMH#;eDq6+H)zos>E<#@mG4_2D~mz|z&~ z-~P;Jjc%SWCtVj(mz=MDxqanlUfVwXf@ilczUm*eyFdI#cE|aUXa-}N?Iz8^W26L~ zO)Uz&oY-{~*Gw;3{KY^2XYH=fecm4)xc~M$+O@y)`|XZDdM`*L{a6^sTqIxh;zhwa z9G!@Twps-yeB0-#(#e)DnOZlnqiIBP&@u49fgiR88b#+X3_#a0S=zrWjQxD-A5!3W zq#1J*5FK4A@I*?nQp^ruI}#Y>tlw#o$kx-(NpJ~)sbh8b&9;d(+F&*2$2|R6l2ZZ= zrXu9EeodG5KfmhLZT;Xu>+Jv9jqNXg;Z5yX^6B^&{b0xE<2SqC^Nw~%m&ci8XZIhp zjz7_H@K9UVCp*^f*T;2MS8e@iKlZA&^QwQO@x1N(_=nn|ec!NCEn&ivJYAbrvVO3WNU-2O8AT<_2*~Kd9%76AL zWO*r4i-j7&aNF3g=fM;GU%G7Rq}2dpDCb{t?Lh#Fk`6O3HQy16#T>s0zy$^Xq9dBO zLwN`7=Wg)SNa8vJDIR@cyrLxqDAA;U=X?KSo9W{><6V!$Er0ONQGsXembbsP-THw) zwVv}w0ySgohASFGuIBBwkA9-=zcpPU`2Fj*G2%Xs8)afikY z6qTUiAfp0D#{hbFY(jxsJQ)?S3X5o{u!EU!4$9CM9RcL@r^19n?>t!9c}@_hMD5^P zzmB4zYsF*1BJ|oRFcUchwMdS;_?hjFk9@cn7Yr7~iOv%<8Eer)hFN57 zbzG9`;KomhK%yc*}4Dxmt+>Z=<7{E zaJ>6O15Zaiwnw4TN5ysiFaBz~`(uCF_UqlGEyCY%+2w8JRPFN3yBAOe!47u8Y%EMU zHnBIpd5<6K`9?(~mz%8NEkuc!?wd}ACKM18kmRd|RdA2I!&6w}dOFKS)pYmMuiK-? z;HCmwhTSrN$K@fF)zzxtZ7d2O#)5DC5+!$I-!xu6?d%{XWBrbsQ$n4ypuY6ggU4fC zTxytP;>DQi4TFn+?|p6GfB8@CzU!}RN1bt2+wl*6Sl^b|k;w-Ouml3%MNw}f@S?>P z3pwT~Z{vCily{O|bVWPiZ~uT;1eN^62wnUN)v3M~L!-!Ax89YEm1wK3Ye8?>c}94_(%zP9ycmbEkJ`WIRSMYgSyz)0k%9@Zr4uMLkNW`Y{gUa@CFr0>0f^w z$g#gaY<;u4^Au$1L_UXvp6-Tqtmy`ehEu*N!(Rws(IKkOGe=>A4!aUP)w@3@zv9Ow zjv$9J{O&zA-ywat{o?yJe zB^r6_Pyh}w6Fi3S(eSKT>Y+o+enF;qiA8)sAnRC5Cuzo#z<5DO#BJ15;4Hf)=wA)t zQWtOy)ql(1TgE9V^cpZ_u6}D3*hz*l({tdjdxg5FX~^-2Z6$Q|+%=r&5eHL(vFOUE z$P~r~gBGuLK|_U8_UKxUUb5!FkFluMiO2mIFX$Tvd3ed!jHw@A8E2!0E+m~MeqR_` zs?%@Pb76Xa`Ct7Q(sIaW3%{%2L9ERMuZO||Iam|@N|Ktd1nNKAy|JO;nvReIcQrz) zfH$uyM97t|mZ7MdowLJpaJ)qIl;*Zu;JPKObJ6dn<%92{?Wx44}5~K=|MRGy-05zggF?WFZUuln))abNA(wFY8YDnFF2#^$#uUxF2W`0Ysn*ZF|T;_DMUKr%0Yd zh!^tL_3e2-2bL@t##hhSbM+L?41*%1gOlcbi}1jWH+fBn#kMYdwRL@*mIcW>Yt?vPm_~?x z=v0rxba7$;pIpOG$<2(MM|11AqrA0 zY=j8rm>>A^UnCeEwi8tS-Cy`K7t#wvvc5S}Z(Zpl$+&tAtq!hH5(+vE*>PjBT3ysRB_&N+UIaP^Mc+rH0!Mvt+#dqG%FV8%=wV&#Q2-e6fi z?)bRU6gDrHt{=)gOHp(h9hLC55}3pHDJKr5YGiBHli+7B{;Rw67I3uA;pc;QU)OFE zhQ6f?GgwY;3J-L=3nzjW31Fj=h;@1em@?HK)_Eu-1yaY#~;4C-TCp4`O9Lw?rSXd)rcF&aU(Bd8oqe00b|r< zc92OrOkbJAy+ZUMQ5)fZvtA-87o;do_zgzi(E=JM8Z*pN$_9kLi3d8-6 zm?Qh0hhxA^r$2M?uG#N+!n_9byI$CSTTnmOFUy@7yA@$OCvRd`rGTA?V6fxjl8h`e zI-wWxPJ)7};*=8<*9#;IJX6nNsp7Mnv@WxR`)42S*$SCQ^XlCe(8I8r66cDPNZt`n&-$)VUZO`T|Lb+=$>POF3>=aA543{xj) zWBWzt3u&03u3%WkOcbL*1B;V;4WZFW&zE}5{hG7%@f#6*ExTU41%QnHFlB!km=~K1 zUNtV{aiyL7@wm9~`(rSZou6u--*wsKy4iewp@UXLg}YE}uwle09AK(e4igxT^BV$A zjJa`Q*BL^m3JwA^>yuIN>1oKt$TBW0^3cJ`u{!fv3?-jx!O)}%iGSEA9S^_~%`)`K z)KHJNI;2#|b`Kqy>}xR=hW!$+UwIf?I0w=#8OXLn&%lC3Rga)({gPY`;JC)rM{kh4 zL)QtEdOIu+0(fWVhFTg75RAm?VbvI0^K3Z9p+@02YL~eXvNrDFqifmJ^PEKM7~k1) zM_WhT34;xu^)ZUF+Om4n=*5TbM2`B-ht1YOu6&1@-(II--CvM+LgiV5V;-`6RCCX|T=rJY(m^2M2zPaATqAjheSfG2e{kE=`4% z_kk5w;&Kr5QZ`U}%9u-$gAlD3Sz{+7l^ACf{gTDa7i1?740J>TgM%V3B&je*y?0*P zz+>CVc@;uX1CE3Q>l#Bx20eA&(e_^xUx_4OU7d=Kuf9P-Cgr5suLh<;7p-E3R{AiQ z!_&WBOlR9WmHbC7km&bFD1`>d|9)~!TSI-^@O7b`_K~J|3<_$^bKq*o!nSSK`$OV+)kPvQg&FU3O14( z^B%Z`zzSdKoj@Qosbp};CBc;-V^w0s^V~kBBCh5fAN%Sb)1_pdX!ajfwYXZLtcebM zp!qQypEQP4zIj|kP4ER(w;VuoOFmZu`^;Pn7If9i_Qan{0Kbu-m@a5X&WFq7O()ae zxoB708%7q-xOP}Or&>Xb>47d;4XQTunCd)@D`*~f z;Z-wc`2^A9EMf_Dx-`eKV?M?xwE8L{B*yd+`=~F6%|u|3BR=FS&ccIc^YB4kn3q0G z7F=ztlAXW(88_dj*H4e!90IC$AXg>wnGEkpCj>_rl=(_7bJ5Y4 z9++j{$?@E3I)(l474aHb)ffx<#+8h*!5I6msrADrxE6z!^o4j~A|syJIR3mMC;Ykakz% zIHZ<^sxeMSOZ^^L=$9QEM_qr_JRa%837c7H+X7#llrz5oL?7&nXjecP^zl2A9ZC^@ z2k83YRd`@q!U|gqupjtc-+bJHQ4Ni8VbOyh=wR5F6c_AQo_WTR@0<&fKDEcB#j%{2 z-15B1XNCVfIM`fNszgO!P8Q1MdFkW2o42aHcfgzFu|^_HC(5oUZFK42=i;z;80l^B z&(51JJvdA;ptfKOyu>=PpM(DrOc$_=k0blzIE@GJCO)LJwLDq6 z{G!{}KLP2%+Jo+36cx-|ce8I$uNyAXY-)FONCriSMjw)u+|Vh9-IJ)Uf!_o?Zh(cQ8dzK=Rz6bhF^y}fMob@M2V@l ze$hiGx!}I*p%fRbZ&_f3&iGvWqD;M|l1SfI@i=e=1P_wWJvg}r-SbSE0+o8-LB+HFYqgu?ZeM}{V)A%q#sTT?T4cw*_*y+`fK{=#hW5bg_O?YSd6tk z?dZUBGDQr!MR@j&3uA?X0zU%xu4(P*e53dbgJq$fL zIl1|}m)@-p(En(t;d}&7R{=OF2qbTCILub^Do7)sPhbQ|QmoFdq*cK1)r32?7sQYw zO@WITprGcMkw|5~+k<8;OD^iC2WfCYKkS6ZQj+B1ep*I6Y({=OL0m25J+uSipXaUJ ztzZ9m;YD|}|2O9kt9w|N=t7o*^K<62AJ+@rA1WFNq*ZYlA7qb{xCQ}`-j#MHw6;2-t|n}LaB6vLy8In>dN zzlbey0YS$;<=B^a$kzpJ z%Tc7&96$_xCRSwmr=CCSK%iMZ$LfL?EY8+RTf;ba0*`Of2Qy?JOh5fJR_J4Ev%Nrw zVlc*c$E~sZkuO~~-N%Q(8}v8p1eOHT4{2;n=F?YSd|Uez`j50d;sRsvDIaS0Zk@Cr zR5JhCe(B^u6d18Z%$W>UE&pK9TtJGz5Sik|xaQ!w{3s%va_E?+x%I(RW9-7FZ1D7r ziZVRXmvk7l&L(}P){zW|8XI?k9{RR9#>i9=s_EP`wvp^q%Z zK_n9cEigl`F3YABfO_lrgs*5vV$1)9KJR!(>K>Mi_3d9Q1pB(l4=f-TEn?}ung~q- z`v34Ilck@!?Csi~wP zxTWtoNzY`{hg20Rd=TsZH(1*l8%48My)UX9o@FQ_L01ZVH@A#^qB78v8{8zwDGq2a{FF| zdadImq5Q?f<48m$I`}*Ei;`Cy#BgrA=1giPC*=(Xi%{_NF%|M4m=w!;HPk5jw-S?ySTm+`H7=jSR+ zRDw4rU@-6C`?MD-cMqAVqAc!cz+nygt`|h;o0BbKPkNULxv+q*n(GwvNY#S>-4=xp zU8Fo@szEIt7ao!XHQuckFn;tIxAE@Wow;fej% z5UX9EF>DBJ`YztjeK>FVq54Q$M*m3FAD-R~dMY(vo&HPxcXU6iLN5{ZIN5<#*$mf) z#3Wsb&0P@ra_WZ5Y!xn2EW`lNV5DcmiLa#BqOpD52P`yvT#&(!L89~OVS4^Y|OY!cEU!dCuC}+FLdJUR!h)vH)4YfzGIk<6I2|86~>Q zl>QNTE;_qty!*h`-@?K`M$Ko7hyAXfIw3#`k)-g^_p3lm@6{J!e&ymbX1{r)?+#(- z@oY~>feDC3ed8rdKejQS{enIW|Mb2qE7=wGC}|WSbTgq{2E3wWPv@pVzdKKT-@Rt& zDfdA7h6RU#7e?4BU(7N)7D*Icgh@N3E5qBjOt${33wGWApdW1ob+g-;OGLqJDiRkx(5@uuetqg-AXLEn1XJXX{1fES8JLU|{tf%-$XJ z!{^woV4^E-9OL5ReE)-;#YJ2nM%QPFeq*|2e%{5qXK#2Si;FY4j2S-h?S_lmi}f=O zKQFf~i^Nha@~4xMinCSBP8ZF^H=(pFY0e;*p(fTqCvNOSv11lR4qQ>t$y8xK9c?Q^hGcvzuhgP{&t&vaC_HZ+|JjJuw12IEPt&M`qX|CWD@hCd&Nct|n`H9Jb(`8s+PWxlNS^tckmws?^%{7O8KQ|Dc zxbu^;z?BX*%hxV!FVGL>^Et4W>McM0SM-r!*TsTWL?*+|W9E7sseoo?HMGW_msOYObqe7*T61JQmmw($JP=-Cl``sy><#k2M4i}as5e7|<} z<+@io(N$2<*>zEt*n!@uy|}S^fn21EfDHP6nj@|<;&Ec?zlPJgntxHR+J8*aALU2J z#=k=a=99U7M-_OS$obV*Pp^O1)z6;Im-x>b^uL(vP_KY4&~xmqvHdm`UVD06;PIje z?D=lh`#N26uhWMLubWPmuRVIY{%242T{_Oo=J9uIfj0+Ia|(a$d){*P^7_FYZGCzB z`gDE!bhfl@Hrv>)UqRod?YXKt@7J5^2ec6Ox9R%+m0A1d#?dF=!vAqlIRCTs|3By2 VRortXp)mje002ovPDHLkV1lwzbz}el literal 0 HcmV?d00001 diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_msg_box_operation_return.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_msg_box_operation_return.xml new file mode 100644 index 0000000000..dd210d1341 --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_msg_box_operation_return.xml @@ -0,0 +1,64 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_msg_box_operation_stop.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_msg_box_operation_stop.xml new file mode 100644 index 0000000000..bae20dc545 --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_msg_box_operation_stop.xml @@ -0,0 +1,54 @@ + + + + + + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_msg_bubble_operation_return.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_msg_bubble_operation_return.xml new file mode 100644 index 0000000000..224dc865f1 --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_msg_bubble_operation_return.xml @@ -0,0 +1,64 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_msg_bubble_operation_stop.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_msg_bubble_operation_stop.xml new file mode 100644 index 0000000000..e6b647840f --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_msg_bubble_operation_stop.xml @@ -0,0 +1,52 @@ + + + + + + + + + + \ No newline at end of file From c6f0ecc04a739b2478df6918e2a158b80c5d61b3 Mon Sep 17 00:00:00 2001 From: xuxinchao Date: Mon, 27 Feb 2023 17:27:52 +0800 Subject: [PATCH 06/10] =?UTF-8?q?[dev=5Farch=5Fopt=5F3.0]=E5=BD=95?= =?UTF-8?q?=E5=8C=85=E7=AE=A1=E7=90=86=E9=83=A8=E5=88=86=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E5=90=88=E5=B9=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DevaToolsProvider.kt | 4 ++++ .../badcase/BadCaseManager.kt | 16 ++++++++++++++++ .../core/function/hmi/ui/setting/ToolsView.kt | 3 ++- .../function/api/devatools/IDevaToolsProvider.kt | 5 +++++ .../call/devatools/CallerDevaToolsManager.kt | 7 +++++++ 5 files changed, 34 insertions(+), 1 deletion(-) diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/DevaToolsProvider.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/DevaToolsProvider.kt index c3dfb3780d..dfdec5e541 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/DevaToolsProvider.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/DevaToolsProvider.kt @@ -158,6 +158,10 @@ class DevaToolsProvider : IDevaToolsProvider { BadCaseManager.showBadCaseConfigWindow(ctx) } + override fun showBadCaseManagerView(context: Context) { + BadCaseManager.showBadCaseManagerWindow(context) + } + override fun downLoadPackage(downloadKey: String, downloadUrl: String) { upgradeManager.downLoadPackage(mContext!!, downloadKey, downloadUrl) } diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/BadCaseManager.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/BadCaseManager.kt index 62501383b7..54de5f1730 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/BadCaseManager.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/BadCaseManager.kt @@ -101,6 +101,22 @@ internal object BadCaseManager : LifecycleEventObserver, IMoGoAutopilotRecordLis } } + /** + * 展示BadCase录包管理页面 + */ + fun showBadCaseManagerWindow(context: Context){ + val badCaseManagerView = BadCaseManagerView(context) + badCaseManagerView.setOnClickListener(object: BadCaseManagerView.ClickListener{ + override fun onClose() { + hideFloat?.invoke() + hideFloat = null + } + }) + context.enqueuePop(badCaseManagerView,AutoSizeUtils.dp2px(context,960f), WindowManager.LayoutParams.MATCH_PARENT, key = "BadCaseManagerView").also { + hideFloat = it + } + } + /** * 主动采集BadCase */ diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/ToolsView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/ToolsView.kt index a81a76c890..a765f0434a 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/ToolsView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/ToolsView.kt @@ -55,7 +55,8 @@ class ToolsView private constructor() { } override fun showBadCaseManagerView() { - ToastUtils.showShort("代码合并中") + dismissToolsFloatView() + CallerDevaToolsManager.showBadCaseManagerView(it) } }) } diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/devatools/IDevaToolsProvider.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/devatools/IDevaToolsProvider.kt index 5f7cca0772..0de776cdd9 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/devatools/IDevaToolsProvider.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/devatools/IDevaToolsProvider.kt @@ -105,6 +105,11 @@ interface IDevaToolsProvider : IProvider { */ fun showFeedbackWindow(ctx: Context) + /** + * 展示录包管理页面 + */ + fun showBadCaseManagerView(context: Context) + /** * 下载指定包 */ diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/devatools/CallerDevaToolsManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/devatools/CallerDevaToolsManager.kt index 6c9cab0897..91f1d0e9e8 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/devatools/CallerDevaToolsManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/devatools/CallerDevaToolsManager.kt @@ -141,6 +141,13 @@ object CallerDevaToolsManager { devaToolsProviderApi?.showFeedbackWindow(ctx) } + /** + * 展示录包管理页面 + */ + fun showBadCaseManagerView(context: Context){ + devaToolsProviderApi?.showBadCaseManagerView(context) + } + /** * 下载指定包 */ From ec1a00b0b6fd80882796481a937153026a5e0eb1 Mon Sep 17 00:00:00 2001 From: xinfengkun Date: Mon, 27 Feb 2023 17:40:22 +0800 Subject: [PATCH 07/10] =?UTF-8?q?[m1][mogo-adas]=20=E4=B8=8D=E8=83=BD?= =?UTF-8?q?=E5=90=AF=E5=8A=A8=E8=87=AA=E5=8A=A8=E9=A9=BE=E9=A9=B6=E6=A1=A3?= =?UTF-8?q?=E4=BD=8D=E5=8F=82=E6=95=B0=E4=BF=AE=E6=94=B9=E6=88=90BuildConf?= =?UTF-8?q?ig=E5=8F=AF=E9=85=8D=E7=BD=AE=E6=A8=A1=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/README.md | 12 + app/productFlavors/fMultiDisplayOchBus.gradle | 3 + .../fMultiDisplayOchTaxi.gradle | 3 + app/productFlavors/fOchBus.gradle | 3 + app/productFlavors/fOchBusPassenger.gradle | 3 + app/productFlavors/fOchBusPassengerM1.gradle | 3 + app/productFlavors/fOchBusPassengerM2.gradle | 3 + app/productFlavors/fOchShuttle.gradle | 3 + .../fOchShuttlePassenger.gradle | 3 + app/productFlavors/fOchSweeper.gradle | 3 + app/productFlavors/fOchTaxi.gradle | 3 + app/productFlavors/fOchTaxiPassenger.gradle | 3 + app/productFlavors/fPadLenovo.gradle | 3 + .../mogo/launcher/startup/ConfigStartUp.kt | 2 + app_ipc_monitoring/build.gradle | 6 + .../main/java/com/zhidao/adas/client/App.java | 5 + .../zhidao/adas/client/DataDistribution.java | 454 +++++++++--------- .../adas/client/bean/ArrivalNotification.java | 23 - .../adas/client/bean/AutopilotState.java | 24 - .../adas/client/bean/BagManagerCmd.java | 24 - .../zhidao/adas/client/bean/BasicInfoReq.java | 23 - .../adas/client/bean/CarConfigResp.java | 23 - .../adas/client/bean/ChassisStates.java | 24 - .../adas/client/bean/FSMFunctionStates.java | 24 - .../adas/client/bean/GlobalPathResp.java | 23 - .../com/zhidao/adas/client/bean/GnssInfo.java | 24 - .../adas/client/bean/MogoReportMessage.java | 25 - .../com/zhidao/adas/client/bean/ObuMap.java | 3 +- .../com/zhidao/adas/client/bean/ObuRsi.java | 3 +- .../com/zhidao/adas/client/bean/ObuRsm.java | 3 +- .../com/zhidao/adas/client/bean/ObuSpat.java | 3 +- .../adas/client/bean/ObuWarningData.java | 24 - .../client/bean/PerceptionTrafficLight.java | 3 +- .../client/bean/PlanningDecisionState.java | 23 - .../adas/client/bean/PlanningObjects.java | 23 - .../bean/PredictionObstacleTrajectory.java | 24 - .../zhidao/adas/client/bean/ReceiveData.java | 25 + .../adas/client/bean/RecordDataConfig.java | 22 - .../zhidao/adas/client/bean/RecordPanel.java | 24 - .../client/bean/RoboSweeperTaskIndex.java | 24 - .../zhidao/adas/client/bean/StatusInfo.java | 24 - .../adas/client/bean/TrackedObjects.java | 21 - .../zhidao/adas/client/bean/Trajectory.java | 21 - .../zhidao/adas/client/bean/VehicleState.java | 22 - .../com/zhidao/adas/client/bean/Warn.java | 21 - .../zhidao/adas/client/ui/MainActivity.java | 81 ++-- .../adas/client/ui/VersionFragment.java | 94 +++- .../src/main/res/values/colors.xml | 4 +- .../autopilot/MoGoAutopilotControlProvider.kt | 6 +- .../core/data/config/FunctionBuildConfig.kt | 7 + .../zhidao/support/adas/high/AdasOptions.java | 17 +- .../ability/AutopilotAbility230.java | 44 +- .../ability/AutopilotAbility250.java | 40 +- .../ability/AutopilotAbilityManager.java | 81 +--- 54 files changed, 470 insertions(+), 969 deletions(-) delete mode 100644 app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/ArrivalNotification.java delete mode 100644 app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/AutopilotState.java delete mode 100644 app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/BagManagerCmd.java delete mode 100644 app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/BasicInfoReq.java delete mode 100644 app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/CarConfigResp.java delete mode 100644 app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/ChassisStates.java delete mode 100644 app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/FSMFunctionStates.java delete mode 100644 app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/GlobalPathResp.java delete mode 100644 app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/GnssInfo.java delete mode 100644 app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/MogoReportMessage.java delete mode 100644 app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/ObuWarningData.java delete mode 100644 app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/PlanningDecisionState.java delete mode 100644 app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/PlanningObjects.java delete mode 100644 app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/PredictionObstacleTrajectory.java create mode 100644 app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/ReceiveData.java delete mode 100644 app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/RecordDataConfig.java delete mode 100644 app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/RecordPanel.java delete mode 100644 app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/RoboSweeperTaskIndex.java delete mode 100644 app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/StatusInfo.java delete mode 100644 app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/TrackedObjects.java delete mode 100644 app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/Trajectory.java delete mode 100644 app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/VehicleState.java delete mode 100644 app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/Warn.java diff --git a/app/README.md b/app/README.md index a74139426c..71338949e3 100644 --- a/app/README.md +++ b/app/README.md @@ -38,3 +38,15 @@ 3. demo: 演示环境(大部分时候都是测试环境) ## 区分 flavor 功能引入 + + + +## 不能启动自动驾驶的档位 +| 车型 | 配置所在文件 | 档位 | 配置 | +|:-|:-|:-|:-| +| 东风、红旗 | fOchTaxi.gradle、fOchTaxiPassenger.gradle | P、R | buildConfigField 'java.util.Set', 'UNABLE_LAUNCH_AUTOPILOT_GEAR', 'new java.util.HashSet(){{add(chassis.Chassis.GearPosition.GEAR_P);add(chassis.Chassis.GearPosition.GEAR_R);}}' | +| 金旅小巴 | fOchBus.gradle、fOchBusPassenger.gradle、fOchShuttle.gradle、fOchShuttlePassenger.gradle | N、R | buildConfigField 'java.util.Set', 'UNABLE_LAUNCH_AUTOPILOT_GEAR', 'new java.util.HashSet(){{add(chassis.Chassis.GearPosition.GEAR_N);add(chassis.Chassis.GearPosition.GEAR_R);}}' | +| M1 | fOchBusPassengerM1.gradle | 不限制档位 | buildConfigField 'java.util.Set', 'UNABLE_LAUNCH_AUTOPILOT_GEAR', 'null' | +| M2 | fOchBusPassengerM2.gradle | N、P、R | buildConfigField 'java.util.Set', 'UNABLE_LAUNCH_AUTOPILOT_GEAR', 'new java.util.HashSet(){{add(chassis.Chassis.GearPosition.GEAR_N);add(chassis.Chassis.GearPosition.GEAR_P);add(chassis.Chassis.GearPosition.GEAR_R);}}' | +| 清扫车 | fOchSweeper.gradle | N | buildConfigField 'java.util.Set', 'UNABLE_LAUNCH_AUTOPILOT_GEAR', 'new java.util.HashSet(){{add(chassis.Chassis.GearPosition.GEAR_N);}}' | +| 开沃 | 暂无 | 不限制档位 | buildConfigField 'java.util.Set', 'UNABLE_LAUNCH_AUTOPILOT_GEAR', 'null' | diff --git a/app/productFlavors/fMultiDisplayOchBus.gradle b/app/productFlavors/fMultiDisplayOchBus.gradle index 13e4c0f623..6705e54bc7 100644 --- a/app/productFlavors/fMultiDisplayOchBus.gradle +++ b/app/productFlavors/fMultiDisplayOchBus.gradle @@ -45,6 +45,9 @@ project.android.productFlavors { // 构建 是否支持多屏异显异交互 buildConfigField 'boolean', 'IS_MULTI_DISPLAY', 'true' + + //不能启动自驾的档位 + buildConfigField 'java.util.Set', 'UNABLE_LAUNCH_AUTOPILOT_GEAR', 'null' } } \ No newline at end of file diff --git a/app/productFlavors/fMultiDisplayOchTaxi.gradle b/app/productFlavors/fMultiDisplayOchTaxi.gradle index e129159f91..2e9691dca8 100644 --- a/app/productFlavors/fMultiDisplayOchTaxi.gradle +++ b/app/productFlavors/fMultiDisplayOchTaxi.gradle @@ -48,6 +48,9 @@ project.android.productFlavors { // 构建 是否支持多屏异显异交互 buildConfigField 'boolean', 'IS_MULTI_DISPLAY', 'true' + + //不能启动自驾的档位 + buildConfigField 'java.util.Set', 'UNABLE_LAUNCH_AUTOPILOT_GEAR', 'null' } } \ No newline at end of file diff --git a/app/productFlavors/fOchBus.gradle b/app/productFlavors/fOchBus.gradle index 143630b32a..f96331027e 100644 --- a/app/productFlavors/fOchBus.gradle +++ b/app/productFlavors/fOchBus.gradle @@ -48,5 +48,8 @@ project.android.productFlavors { // 构建 是否支持多屏异显异交互 buildConfigField 'boolean', 'IS_MULTI_DISPLAY', 'false' + + //Bus不能启动自驾的档位 + buildConfigField 'java.util.Set', 'UNABLE_LAUNCH_AUTOPILOT_GEAR_BUS', 'new java.util.HashSet(){{add(chassis.Chassis.GearPosition.GEAR_N);add(chassis.Chassis.GearPosition.GEAR_R);}}' } } \ No newline at end of file diff --git a/app/productFlavors/fOchBusPassenger.gradle b/app/productFlavors/fOchBusPassenger.gradle index 4828eb2d69..962f544f6e 100644 --- a/app/productFlavors/fOchBusPassenger.gradle +++ b/app/productFlavors/fOchBusPassenger.gradle @@ -44,5 +44,8 @@ project.android.productFlavors { // 构建 是否支持多屏异显异交互 buildConfigField 'boolean', 'IS_MULTI_DISPLAY', 'false' + + //Bus不能启动自驾的档位 + buildConfigField 'java.util.Set', 'UNABLE_LAUNCH_AUTOPILOT_GEAR_BUS', 'new java.util.HashSet(){{add(chassis.Chassis.GearPosition.GEAR_N);add(chassis.Chassis.GearPosition.GEAR_R);}}' } } \ No newline at end of file diff --git a/app/productFlavors/fOchBusPassengerM1.gradle b/app/productFlavors/fOchBusPassengerM1.gradle index 207c5b2b13..401cc27191 100644 --- a/app/productFlavors/fOchBusPassengerM1.gradle +++ b/app/productFlavors/fOchBusPassengerM1.gradle @@ -48,5 +48,8 @@ project.android.productFlavors { // 构建 是否支持多屏异显异交互 buildConfigField 'boolean', 'IS_MULTI_DISPLAY', 'false' + + //M1不能启动自驾的档位 + buildConfigField 'java.util.Set', 'UNABLE_LAUNCH_AUTOPILOT_GEAR', 'null' } } \ No newline at end of file diff --git a/app/productFlavors/fOchBusPassengerM2.gradle b/app/productFlavors/fOchBusPassengerM2.gradle index b4361568b3..d99a8b239c 100644 --- a/app/productFlavors/fOchBusPassengerM2.gradle +++ b/app/productFlavors/fOchBusPassengerM2.gradle @@ -45,5 +45,8 @@ project.android.productFlavors { // 构建 是否支持多屏异显异交互 buildConfigField 'boolean', 'IS_MULTI_DISPLAY', 'false' + + //M2不能启动自驾的档位 + buildConfigField 'java.util.Set', 'UNABLE_LAUNCH_AUTOPILOT_GEAR', 'new java.util.HashSet(){{add(chassis.Chassis.GearPosition.GEAR_N);add(chassis.Chassis.GearPosition.GEAR_P);add(chassis.Chassis.GearPosition.GEAR_R);}}' } } \ No newline at end of file diff --git a/app/productFlavors/fOchShuttle.gradle b/app/productFlavors/fOchShuttle.gradle index fe33f7e370..c359ba42a1 100644 --- a/app/productFlavors/fOchShuttle.gradle +++ b/app/productFlavors/fOchShuttle.gradle @@ -46,5 +46,8 @@ project.android.productFlavors { // 构建 是否支持多屏异显异交互 buildConfigField 'boolean', 'IS_MULTI_DISPLAY', 'false' + + //Bus不能启动自驾的档位 + buildConfigField 'java.util.Set', 'UNABLE_LAUNCH_AUTOPILOT_GEAR_BUS', 'new java.util.HashSet(){{add(chassis.Chassis.GearPosition.GEAR_N);add(chassis.Chassis.GearPosition.GEAR_R);}}' } } \ No newline at end of file diff --git a/app/productFlavors/fOchShuttlePassenger.gradle b/app/productFlavors/fOchShuttlePassenger.gradle index 53397c6211..3b8169805f 100644 --- a/app/productFlavors/fOchShuttlePassenger.gradle +++ b/app/productFlavors/fOchShuttlePassenger.gradle @@ -41,5 +41,8 @@ project.android.productFlavors { // 构建 是否支持多屏异显异交互 buildConfigField 'boolean', 'IS_MULTI_DISPLAY', 'false' + + //Bus不能启动自驾的档位 + buildConfigField 'java.util.Set', 'UNABLE_LAUNCH_AUTOPILOT_GEAR_BUS', 'new java.util.HashSet(){{add(chassis.Chassis.GearPosition.GEAR_N);add(chassis.Chassis.GearPosition.GEAR_R);}}' } } \ No newline at end of file diff --git a/app/productFlavors/fOchSweeper.gradle b/app/productFlavors/fOchSweeper.gradle index a4ca130d10..730ae5e818 100644 --- a/app/productFlavors/fOchSweeper.gradle +++ b/app/productFlavors/fOchSweeper.gradle @@ -49,5 +49,8 @@ project.android.productFlavors { // 构建 是否支持多屏异显异交互 buildConfigField 'boolean', 'IS_MULTI_DISPLAY', 'false' + + //清扫车不能启动自驾的档位 + buildConfigField 'java.util.Set', 'UNABLE_LAUNCH_AUTOPILOT_GEAR', 'new java.util.HashSet(){{add(chassis.Chassis.GearPosition.GEAR_N);}}' } } \ No newline at end of file diff --git a/app/productFlavors/fOchTaxi.gradle b/app/productFlavors/fOchTaxi.gradle index 5cc815d2dd..424280b7f3 100644 --- a/app/productFlavors/fOchTaxi.gradle +++ b/app/productFlavors/fOchTaxi.gradle @@ -49,6 +49,9 @@ project.android.productFlavors { // 构建 是否支持多屏异显异交互 buildConfigField 'boolean', 'IS_MULTI_DISPLAY', 'false' + + //Taxi不能启动自驾的档位 + buildConfigField 'java.util.Set', 'UNABLE_LAUNCH_AUTOPILOT_GEAR', 'new java.util.HashSet(){{add(chassis.Chassis.GearPosition.GEAR_P);add(chassis.Chassis.GearPosition.GEAR_R);}}' } } \ No newline at end of file diff --git a/app/productFlavors/fOchTaxiPassenger.gradle b/app/productFlavors/fOchTaxiPassenger.gradle index f659f9c8be..a762c8f8c8 100644 --- a/app/productFlavors/fOchTaxiPassenger.gradle +++ b/app/productFlavors/fOchTaxiPassenger.gradle @@ -48,6 +48,9 @@ project.android.productFlavors { // 构建 是否支持多屏异显异交互 buildConfigField 'boolean', 'IS_MULTI_DISPLAY', 'true' + + //Taxi不能启动自驾的档位 + buildConfigField 'java.util.Set', 'UNABLE_LAUNCH_AUTOPILOT_GEAR', 'new java.util.HashSet(){{add(chassis.Chassis.GearPosition.GEAR_P);add(chassis.Chassis.GearPosition.GEAR_R);}}' } } \ No newline at end of file diff --git a/app/productFlavors/fPadLenovo.gradle b/app/productFlavors/fPadLenovo.gradle index b41beb967b..f9cbdfbc63 100644 --- a/app/productFlavors/fPadLenovo.gradle +++ b/app/productFlavors/fPadLenovo.gradle @@ -45,5 +45,8 @@ project.android.productFlavors { // 构建 是否支持多屏异显异交互 buildConfigField 'boolean', 'IS_MULTI_DISPLAY', 'false' + + //不能启动自驾的档位 + buildConfigField 'java.util.Set', 'UNABLE_LAUNCH_AUTOPILOT_GEAR', 'null' } } \ No newline at end of file diff --git a/app/src/main/java/com/mogo/launcher/startup/ConfigStartUp.kt b/app/src/main/java/com/mogo/launcher/startup/ConfigStartUp.kt index 7b7e2516e4..d952367b9b 100644 --- a/app/src/main/java/com/mogo/launcher/startup/ConfigStartUp.kt +++ b/app/src/main/java/com/mogo/launcher/startup/ConfigStartUp.kt @@ -39,6 +39,8 @@ object ConfigStartUp { FunctionBuildConfig.appIdentityMode = BuildConfig.APP_IDENTITY_MODE // 各个module需要的url FunctionBuildConfig.urlJson = GsonUtils.fromJson(BuildConfig.URLs, UrlConfig::class.java) + //不能启动自动驾驶的档位 + FunctionBuildConfig.unableLaunchAutopilotGear = BuildConfig.UNABLE_LAUNCH_AUTOPILOT_GEAR // // 这里影响当前Activity的身份信息,多进程先保持与原来一样,主进程为司机端,:passenger 进程为乘客端 TODO 暂时不启用,仅做洱海交付,独立乘客屏+宣传视频 // if (ProcessUtils.getCurrentProcessName().contains(":passenger")) { diff --git a/app_ipc_monitoring/build.gradle b/app_ipc_monitoring/build.gradle index 10b72a52ca..338e981ac3 100644 --- a/app_ipc_monitoring/build.gradle +++ b/app_ipc_monitoring/build.gradle @@ -64,6 +64,12 @@ android { driver { dimension "multi_device" buildConfigField 'boolean', 'IS_CLIENT', 'false' + buildConfigField 'java.util.Set', 'UNABLE_LAUNCH_AUTOPILOT_GEAR_TAXI', 'new java.util.HashSet(){{add(chassis.Chassis.GearPosition.GEAR_P);add(chassis.Chassis.GearPosition.GEAR_R);}}' + buildConfigField 'java.util.Set', 'UNABLE_LAUNCH_AUTOPILOT_GEAR_BUS', 'new java.util.HashSet(){{add(chassis.Chassis.GearPosition.GEAR_N);add(chassis.Chassis.GearPosition.GEAR_R);}}' + buildConfigField 'java.util.Set', 'UNABLE_LAUNCH_AUTOPILOT_GEAR_M1', 'null' + buildConfigField 'java.util.Set', 'UNABLE_LAUNCH_AUTOPILOT_GEAR_M2', 'new java.util.HashSet(){{add(chassis.Chassis.GearPosition.GEAR_N);add(chassis.Chassis.GearPosition.GEAR_P);add(chassis.Chassis.GearPosition.GEAR_R);}}' + buildConfigField 'java.util.Set', 'UNABLE_LAUNCH_AUTOPILOT_GEAR_SWEEPER', 'new java.util.HashSet(){{add(chassis.Chassis.GearPosition.GEAR_N);}}' + buildConfigField 'java.util.Set', 'UNABLE_LAUNCH_AUTOPILOT_GEAR_VAN', 'null' } } diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/App.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/App.java index e89e78ab58..f0bd8f52ca 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/App.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/App.java @@ -4,8 +4,13 @@ import android.app.Application; import com.zhidao.adas.client.utils.CrashHandler; +import chassis.Chassis; + public class App extends Application { public static App INSTANCE; + + public Chassis.GearPosition gear; + @Override public void onCreate() { super.onCreate(); diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/DataDistribution.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/DataDistribution.java index fd80d8d570..851fe8b076 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/DataDistribution.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/DataDistribution.java @@ -2,36 +2,15 @@ package com.zhidao.adas.client; import android.util.Pair; -import com.zhidao.adas.client.bean.ArrivalNotification; -import com.zhidao.adas.client.bean.AutopilotState; -import com.zhidao.adas.client.bean.BagManagerCmd; import com.zhidao.adas.client.bean.BaseInfo; -import com.zhidao.adas.client.bean.BasicInfoReq; -import com.zhidao.adas.client.bean.CarConfigResp; -import com.zhidao.adas.client.bean.ChassisStates; import com.zhidao.adas.client.bean.DataShow; import com.zhidao.adas.client.bean.ErrorData; -import com.zhidao.adas.client.bean.FSMFunctionStates; -import com.zhidao.adas.client.bean.GlobalPathResp; -import com.zhidao.adas.client.bean.GnssInfo; -import com.zhidao.adas.client.bean.MogoReportMessage; import com.zhidao.adas.client.bean.ObuMap; import com.zhidao.adas.client.bean.ObuRsi; import com.zhidao.adas.client.bean.ObuRsm; import com.zhidao.adas.client.bean.ObuSpat; import com.zhidao.adas.client.bean.OriginalPointCloudData; import com.zhidao.adas.client.bean.PerceptionTrafficLight; -import com.zhidao.adas.client.bean.PlanningDecisionState; -import com.zhidao.adas.client.bean.PlanningObjects; -import com.zhidao.adas.client.bean.PredictionObstacleTrajectory; -import com.zhidao.adas.client.bean.RecordDataConfig; -import com.zhidao.adas.client.bean.RecordPanel; -import com.zhidao.adas.client.bean.RoboSweeperTaskIndex; -import com.zhidao.adas.client.bean.StatusInfo; -import com.zhidao.adas.client.bean.TrackedObjects; -import com.zhidao.adas.client.bean.Trajectory; -import com.zhidao.adas.client.bean.VehicleState; -import com.zhidao.adas.client.bean.Warn; import com.zhidao.adas.client.log.LogSave; import com.zhidao.adas.client.utils.Constants; import com.zhidao.support.adas.high.common.ThreadPoolManager; @@ -44,6 +23,8 @@ import java.util.Locale; import java.util.concurrent.Future; import java.util.concurrent.LinkedBlockingQueue; +import mogo.telematics.pad.MessagePad; + /** * 数据分发 */ @@ -193,8 +174,8 @@ public class DataDistribution { } public String cutDown(String str) { - if (isCutDown && str.length() > 650) { - str = str.substring(0, 650) + "\n(已缩短。如需查看完整数据,请勾选日志缩短复选框)"; + if (isCutDown && str.length() > 850) { + str = str.substring(0, 850) + "\n(已缩短。如需查看完整数据,请勾选日志缩短复选框)"; } return str; } @@ -202,219 +183,222 @@ public class DataDistribution { private String onTransmit(String time, BaseInfo data) { String temp = data.toString(); String str = cutDown(temp); - if (data instanceof Trajectory) { - listTrajectory.add(0, new DataShow(listTrajectorySize++, time + str)); - if (listTrajectory.size() > LIST_SIZE) { - listTrajectory.remove(listTrajectory.size() - 1); + if (data.header == null) { + if (data instanceof ErrorData) { + listErrorData.add(0, new DataShow(listErrorDataSize++, time + str)); + if (listErrorData.size() > 100) { + listErrorData.remove(listErrorData.size() - 1); + } + if (listener != null && Constants.TITLE.RECEIVE_ERROR.equals(listener.first)) { + listener.second.onRefresh(); + } + } else if (data instanceof OriginalPointCloudData) { + listOriginalPointCloud.add(0, new DataShow(listOriginalPointCloudSize++, time + str)); + if (listOriginalPointCloud.size() > LIST_SIZE) { + listOriginalPointCloud.remove(listOriginalPointCloud.size() - 1); + } + if (listener != null && Constants.TITLE.RECEIVE_POINT_CLOUD_ORIGINAL.equals(listener.first)) { + listener.second.onRefresh(); + } } - if (listener != null && Constants.TITLE.RECEIVE_TRAJECTORY.equals(listener.first)) { - listener.second.onRefresh(); - } - } else if (data instanceof TrackedObjects) { - listTrackedObjects.add(0, new DataShow(listTrackedObjectsSize++, time + str)); - if (listTrackedObjects.size() > LIST_SIZE) { - listTrackedObjects.remove(listTrackedObjects.size() - 1); - } - if (listener != null && Constants.TITLE.RECEIVE_TRACKED_OBJECTS.equals(listener.first)) { - listener.second.onRefresh(); - } - } else if (data instanceof OriginalPointCloudData) { - listOriginalPointCloud.add(0, new DataShow(listOriginalPointCloudSize++, time + str)); - if (listOriginalPointCloud.size() > LIST_SIZE) { - listOriginalPointCloud.remove(listOriginalPointCloud.size() - 1); - } - if (listener != null && Constants.TITLE.RECEIVE_POINT_CLOUD_ORIGINAL.equals(listener.first)) { - listener.second.onRefresh(); - } - } else if (data instanceof PlanningObjects) { - listPlanningObjects.add(0, new DataShow(listPlanningObjectsSize++, time + str)); - if (listPlanningObjects.size() > LIST_SIZE) { - listPlanningObjects.remove(listPlanningObjects.size() - 1); - } - if (listener != null && Constants.TITLE.RECEIVE_PLANNING_OBJECTS.equals(listener.first)) { - listener.second.onRefresh(); - } - } else if (data instanceof PlanningDecisionState) { - listPlanningDecisionState.add(0, new DataShow(listPlanningDecisionStateSize++, time + str)); - if (listPlanningDecisionState.size() > LIST_SIZE) { - listPlanningDecisionState.remove(listPlanningDecisionState.size() - 1); - } - if (listener != null && Constants.TITLE.RECEIVE_PLANNING_DECISION_STATE.equals(listener.first)) { - listener.second.onRefresh(); - } - } else if (data instanceof ObuSpat) { - listObuSpat.add(0, new DataShow(listObuSpatSize++, time + str)); - if (listObuSpat.size() > LIST_SIZE) { - listObuSpat.remove(listObuSpat.size() - 1); - } - if (listener != null && Constants.TITLE.RECEIVE_OBU_SPAT.equals(listener.first)) { - listener.second.onRefresh(); - } - } else if (data instanceof ObuRsi) { - listObuRsi.add(0, new DataShow(listObuRsiSize++, time + str)); - if (listObuRsi.size() > LIST_SIZE) { - listObuRsi.remove(listObuRsi.size() - 1); - } - if (listener != null && Constants.TITLE.RECEIVE_OBU_RSI.equals(listener.first)) { - listener.second.onRefresh(); - } - } else if (data instanceof ObuRsm) { - listObuRsm.add(0, new DataShow(listObuRsmSize++, time + str)); - if (listObuRsm.size() > LIST_SIZE) { - listObuRsm.remove(listObuRsm.size() - 1); - } - if (listener != null && Constants.TITLE.RECEIVE_OBU_RSM.equals(listener.first)) { - listener.second.onRefresh(); - } - } else if (data instanceof ObuMap) { - listObuMap.add(0, new DataShow(listObuMapSize++, time + str)); - if (listObuMap.size() > LIST_SIZE) { - listObuMap.remove(listObuMap.size() - 1); - } - if (listener != null && Constants.TITLE.RECEIVE_OBU_MAP.equals(listener.first)) { - listener.second.onRefresh(); - } - } else if (data instanceof GnssInfo) { - listGnssInfo.add(0, new DataShow(listGnssInfoSize++, time + str)); - if (listGnssInfo.size() > LIST_SIZE) { - listGnssInfo.remove(listGnssInfo.size() - 1); - } - if (listener != null && Constants.TITLE.RECEIVE_GNSS_INFO.equals(listener.first)) { - listener.second.onRefresh(); - } - } else if (data instanceof VehicleState) { - listVehicleState.add(0, new DataShow(listVehicleStateSize++, time + str)); - if (listVehicleState.size() > LIST_SIZE) { - listVehicleState.remove(listVehicleState.size() - 1); - } - if (listener != null && Constants.TITLE.RECEIVE_VEHICLE_STATE.equals(listener.first)) { - listener.second.onRefresh(); - } - } else if (data instanceof ChassisStates) { - listChassisStates.add(0, new DataShow(listChassisStatesSize++, time + str)); - if (listChassisStates.size() > LIST_SIZE) { - listChassisStates.remove(listChassisStates.size() - 1); - } - if (listener != null && Constants.TITLE.RECEIVE_CHASSIS_STATES.equals(listener.first)) { - listener.second.onRefresh(); - } - } else if (data instanceof AutopilotState) { - listAutopilotState.add(0, new DataShow(listAutopilotStateSize++, time + str)); - if (listAutopilotState.size() > LIST_SIZE) { - listAutopilotState.remove(listAutopilotState.size() - 1); - } - if (listener != null && Constants.TITLE.RECEIVE_AUTOPILOT_STATE.equals(listener.first)) { - listener.second.onRefresh(); - } - } else if (data instanceof MogoReportMessage) { - listMogoReportMessage.add(0, new DataShow(listMogoReportMessageSize++, time + str)); - if (listMogoReportMessage.size() > LIST_SIZE) { - listMogoReportMessage.remove(listMogoReportMessage.size() - 1); - } - if (listener != null && Constants.TITLE.RECEIVE_REPORT_MESSAGE.equals(listener.first)) { - listener.second.onRefresh(); - } - } else if (data instanceof PerceptionTrafficLight) { - listPerceptionTrafficLight.add(0, new DataShow(listPerceptionTrafficLightSize++, time + str)); - if (listPerceptionTrafficLight.size() > LIST_SIZE) { - listPerceptionTrafficLight.remove(listPerceptionTrafficLight.size() - 1); - } - if (listener != null && Constants.TITLE.RECEIVE_PERCEPTION_TRAFFIC_LIGHT.equals(listener.first)) { - listener.second.onPerceptionTrafficLight((PerceptionTrafficLight) data); - } - } else if (data instanceof PredictionObstacleTrajectory) { - listPredictionObstacleTrajectory.add(0, new DataShow(listPredictionObstacleTrajectorySize++, time + str)); - if (listPredictionObstacleTrajectory.size() > LIST_SIZE) { - listPredictionObstacleTrajectory.remove(listPredictionObstacleTrajectory.size() - 1); - } - if (listener != null && Constants.TITLE.RECEIVE_PREDICTION_OBSTACLE_TRAJECTORY.equals(listener.first)) { - listener.second.onRefresh(); - } - } else if (data instanceof BasicInfoReq) { - - } else if (data instanceof CarConfigResp) { - if (listener != null && Constants.TITLE.TITLE_CAR_CONFIG_RESP.equals(listener.first)) { - listener.second.onRefresh(); - } - } else if (data instanceof RecordPanel) { - listRecordPanel.add(0, new DataShow(listRecordPanelSize++, time + str)); - if (listRecordPanel.size() > LIST_SIZE) { - listRecordPanel.remove(listRecordPanel.size() - 1); - } - if (listener != null && Constants.TITLE.RECEIVE_RECORD_RESULT.equals(listener.first)) { - listener.second.onRefresh(); - } - } else if (data instanceof BagManagerCmd) { - listBagManagerCmd.add(0, new DataShow(listBagManagerCmdSize++, time + str)); - if (listBagManagerCmd.size() > LIST_SIZE) { - listBagManagerCmd.remove(listBagManagerCmd.size() - 1); - } - if (listener != null && Constants.TITLE.RECEIVE_BAG_MANAGER_CMD.equals(listener.first)) { - listener.second.onRefresh(); - } - } else if (data instanceof GlobalPathResp) { - listGlobalPathResp.add(0, new DataShow(listGlobalPathRespSize++, time + str)); - if (listGlobalPathResp.size() > LIST_SIZE) { - listGlobalPathResp.remove(listGlobalPathResp.size() - 1); - } - if (listener != null && Constants.TITLE.RECEIVE_GLOBAL_PATH_RESP.equals(listener.first)) { - listener.second.onRefresh(); - } - } else if (data instanceof Warn) { - listWarn.add(0, new DataShow(listWarnSize++, time + str)); - if (listWarn.size() > LIST_SIZE) { - listWarn.remove(listWarn.size() - 1); - } - if (listener != null && Constants.TITLE.RECEIVE_WARN.equals(listener.first)) { - listener.second.onRefresh(); - } - } else if (data instanceof ArrivalNotification) { - listArrivalNotification.add(0, new DataShow(listArrivalNotificationSize++, time + str)); - if (listArrivalNotification.size() > LIST_SIZE) { - listArrivalNotification.remove(listArrivalNotification.size() - 1); - } - if (listener != null && Constants.TITLE.RECEIVE_ARRIVAL_NOTIFICATION.equals(listener.first)) { - listener.second.onRefresh(); - } - } else if (data instanceof StatusInfo) { - listStatusInfo.add(0, new DataShow(listStatusInfoSize++, time + str)); - if (listStatusInfo.size() > LIST_SIZE) { - listStatusInfo.remove(listStatusInfo.size() - 1); - } - if (listener != null && Constants.TITLE.RECEIVE_STATUS_QUERY_RESP.equals(listener.first)) { - listener.second.onRefresh(); - } - } else if (data instanceof RecordDataConfig) { - listRecordDataConfig.add(0, new DataShow(listRecordDataConfigSize++, time + str)); - if (listRecordDataConfig.size() > LIST_SIZE) { - listRecordDataConfig.remove(listRecordDataConfig.size() - 1); - } - if (listener != null && Constants.TITLE.RECEIVE_RECORD_DATA_CONFIG_RESP.equals(listener.first)) { - listener.second.onRefresh(); - } - } else if (data instanceof RoboSweeperTaskIndex) { - listRoboSweeperTaskIndex.add(0, new DataShow(listRoboSweeperTaskIndexSize++, time + str)); - if (listRoboSweeperTaskIndex.size() > LIST_SIZE) { - listRoboSweeperTaskIndex.remove(listRoboSweeperTaskIndex.size() - 1); - } - if (listener != null && Constants.TITLE.RECEIVE_SWEEPER_TASK_INDEX_DATA.equals(listener.first)) { - listener.second.onRefresh(); - } - } else if (data instanceof FSMFunctionStates) { - listFSMFunctionStates.add(0, new DataShow(listFSMFunctionStatesSize++, time + str)); - if (listFSMFunctionStates.size() > LIST_SIZE) { - listFSMFunctionStates.remove(listFSMFunctionStates.size() - 1); - } - if (listener != null && Constants.TITLE.RECEIVE_FUNCTION_STATES.equals(listener.first)) { - listener.second.onRefresh(); - } - } else if (data instanceof ErrorData) { - listErrorData.add(0, new DataShow(listErrorDataSize++, time + str)); - if (listErrorData.size() > 100) { - listErrorData.remove(listErrorData.size() - 1); - } - if (listener != null && Constants.TITLE.RECEIVE_ERROR.equals(listener.first)) { - listener.second.onRefresh(); + } else { + MessagePad.MessageType messageType = data.header.getMsgType(); + if (messageType == MessagePad.MessageType.MsgTypeTrajectory) { + listTrajectory.add(0, new DataShow(listTrajectorySize++, time + str)); + if (listTrajectory.size() > LIST_SIZE) { + listTrajectory.remove(listTrajectory.size() - 1); + } + if (listener != null && Constants.TITLE.RECEIVE_TRAJECTORY.equals(listener.first)) { + listener.second.onRefresh(); + } + } else if (messageType == MessagePad.MessageType.MsgTypeTrackedObjects) { + listTrackedObjects.add(0, new DataShow(listTrackedObjectsSize++, time + str)); + if (listTrackedObjects.size() > LIST_SIZE) { + listTrackedObjects.remove(listTrackedObjects.size() - 1); + } + if (listener != null && Constants.TITLE.RECEIVE_TRACKED_OBJECTS.equals(listener.first)) { + listener.second.onRefresh(); + } + } else if (messageType == MessagePad.MessageType.MsgTypePlanningObjects) { + listPlanningObjects.add(0, new DataShow(listPlanningObjectsSize++, time + str)); + if (listPlanningObjects.size() > LIST_SIZE) { + listPlanningObjects.remove(listPlanningObjects.size() - 1); + } + if (listener != null && Constants.TITLE.RECEIVE_PLANNING_OBJECTS.equals(listener.first)) { + listener.second.onRefresh(); + } + } else if (messageType == MessagePad.MessageType.MsgTypePlanningDecisionState) { + listPlanningDecisionState.add(0, new DataShow(listPlanningDecisionStateSize++, time + str)); + if (listPlanningDecisionState.size() > LIST_SIZE) { + listPlanningDecisionState.remove(listPlanningDecisionState.size() - 1); + } + if (listener != null && Constants.TITLE.RECEIVE_PLANNING_DECISION_STATE.equals(listener.first)) { + listener.second.onRefresh(); + } + } else if (messageType == MessagePad.MessageType.MsgTypeGnssInfo) { + listGnssInfo.add(0, new DataShow(listGnssInfoSize++, time + str)); + if (listGnssInfo.size() > LIST_SIZE) { + listGnssInfo.remove(listGnssInfo.size() - 1); + } + if (listener != null && Constants.TITLE.RECEIVE_GNSS_INFO.equals(listener.first)) { + listener.second.onRefresh(); + } + } else if (messageType == MessagePad.MessageType.MsgTypeVehicleState) { + listVehicleState.add(0, new DataShow(listVehicleStateSize++, time + str)); + if (listVehicleState.size() > LIST_SIZE) { + listVehicleState.remove(listVehicleState.size() - 1); + } + if (listener != null && Constants.TITLE.RECEIVE_VEHICLE_STATE.equals(listener.first)) { + listener.second.onRefresh(); + } + } else if (messageType == MessagePad.MessageType.MsgTypeChassisStates) { + listChassisStates.add(0, new DataShow(listChassisStatesSize++, time + str)); + if (listChassisStates.size() > LIST_SIZE) { + listChassisStates.remove(listChassisStates.size() - 1); + } + if (listener != null && Constants.TITLE.RECEIVE_CHASSIS_STATES.equals(listener.first)) { + listener.second.onRefresh(); + } + } else if (messageType == MessagePad.MessageType.MsgTypeAutopilotState) { + listAutopilotState.add(0, new DataShow(listAutopilotStateSize++, time + str)); + if (listAutopilotState.size() > LIST_SIZE) { + listAutopilotState.remove(listAutopilotState.size() - 1); + } + if (listener != null && Constants.TITLE.RECEIVE_AUTOPILOT_STATE.equals(listener.first)) { + listener.second.onRefresh(); + } + } else if (messageType == MessagePad.MessageType.MsgTypeReportMessage) { + listMogoReportMessage.add(0, new DataShow(listMogoReportMessageSize++, time + str)); + if (listMogoReportMessage.size() > LIST_SIZE) { + listMogoReportMessage.remove(listMogoReportMessage.size() - 1); + } + if (listener != null && Constants.TITLE.RECEIVE_REPORT_MESSAGE.equals(listener.first)) { + listener.second.onRefresh(); + } + } else if (messageType == MessagePad.MessageType.MsgTypePredictionObstacleTrajectory) { + listPredictionObstacleTrajectory.add(0, new DataShow(listPredictionObstacleTrajectorySize++, time + str)); + if (listPredictionObstacleTrajectory.size() > LIST_SIZE) { + listPredictionObstacleTrajectory.remove(listPredictionObstacleTrajectory.size() - 1); + } + if (listener != null && Constants.TITLE.RECEIVE_PREDICTION_OBSTACLE_TRAJECTORY.equals(listener.first)) { + listener.second.onRefresh(); + } + } else if (messageType == MessagePad.MessageType.MsgTypeCarConfigResp) { + if (listener != null && Constants.TITLE.TITLE_CAR_CONFIG_RESP.equals(listener.first)) { + listener.second.onRefresh(); + } + } else if (messageType == MessagePad.MessageType.MsgTypeRecordResult) { + listRecordPanel.add(0, new DataShow(listRecordPanelSize++, time + str)); + if (listRecordPanel.size() > LIST_SIZE) { + listRecordPanel.remove(listRecordPanel.size() - 1); + } + if (listener != null && Constants.TITLE.RECEIVE_RECORD_RESULT.equals(listener.first)) { + listener.second.onRefresh(); + } + } else if (messageType == MessagePad.MessageType.MsgTypeBagManagerCmd) { + listBagManagerCmd.add(0, new DataShow(listBagManagerCmdSize++, time + str)); + if (listBagManagerCmd.size() > LIST_SIZE) { + listBagManagerCmd.remove(listBagManagerCmd.size() - 1); + } + if (listener != null && Constants.TITLE.RECEIVE_BAG_MANAGER_CMD.equals(listener.first)) { + listener.second.onRefresh(); + } + } else if (messageType == MessagePad.MessageType.MsgTypeGlobalPathResp) { + listGlobalPathResp.add(0, new DataShow(listGlobalPathRespSize++, time + str)); + if (listGlobalPathResp.size() > LIST_SIZE) { + listGlobalPathResp.remove(listGlobalPathResp.size() - 1); + } + if (listener != null && Constants.TITLE.RECEIVE_GLOBAL_PATH_RESP.equals(listener.first)) { + listener.second.onRefresh(); + } + } else if (messageType == MessagePad.MessageType.MsgTypeWarn) { + listWarn.add(0, new DataShow(listWarnSize++, time + str)); + if (listWarn.size() > LIST_SIZE) { + listWarn.remove(listWarn.size() - 1); + } + if (listener != null && Constants.TITLE.RECEIVE_WARN.equals(listener.first)) { + listener.second.onRefresh(); + } + } else if (messageType == MessagePad.MessageType.MsgTypeArrivalNotification) { + listArrivalNotification.add(0, new DataShow(listArrivalNotificationSize++, time + str)); + if (listArrivalNotification.size() > LIST_SIZE) { + listArrivalNotification.remove(listArrivalNotification.size() - 1); + } + if (listener != null && Constants.TITLE.RECEIVE_ARRIVAL_NOTIFICATION.equals(listener.first)) { + listener.second.onRefresh(); + } + } else if (messageType == MessagePad.MessageType.MsgTypeStatusQueryResp) { + listStatusInfo.add(0, new DataShow(listStatusInfoSize++, time + str)); + if (listStatusInfo.size() > LIST_SIZE) { + listStatusInfo.remove(listStatusInfo.size() - 1); + } + if (listener != null && Constants.TITLE.RECEIVE_STATUS_QUERY_RESP.equals(listener.first)) { + listener.second.onRefresh(); + } + } else if (messageType == MessagePad.MessageType.MsgTypeRecordDataConfigResp) { + listRecordDataConfig.add(0, new DataShow(listRecordDataConfigSize++, time + str)); + if (listRecordDataConfig.size() > LIST_SIZE) { + listRecordDataConfig.remove(listRecordDataConfig.size() - 1); + } + if (listener != null && Constants.TITLE.RECEIVE_RECORD_DATA_CONFIG_RESP.equals(listener.first)) { + listener.second.onRefresh(); + } + } else if (messageType == MessagePad.MessageType.MsgTypeSweeperTaskIndexData) { + listRoboSweeperTaskIndex.add(0, new DataShow(listRoboSweeperTaskIndexSize++, time + str)); + if (listRoboSweeperTaskIndex.size() > LIST_SIZE) { + listRoboSweeperTaskIndex.remove(listRoboSweeperTaskIndex.size() - 1); + } + if (listener != null && Constants.TITLE.RECEIVE_SWEEPER_TASK_INDEX_DATA.equals(listener.first)) { + listener.second.onRefresh(); + } + } else if (messageType == MessagePad.MessageType.MsgTypeFunctionStates) { + listFSMFunctionStates.add(0, new DataShow(listFSMFunctionStatesSize++, time + str)); + if (listFSMFunctionStates.size() > LIST_SIZE) { + listFSMFunctionStates.remove(listFSMFunctionStates.size() - 1); + } + if (listener != null && Constants.TITLE.RECEIVE_FUNCTION_STATES.equals(listener.first)) { + listener.second.onRefresh(); + } + } else if (data instanceof PerceptionTrafficLight) { + listPerceptionTrafficLight.add(0, new DataShow(listPerceptionTrafficLightSize++, time + str)); + if (listPerceptionTrafficLight.size() > LIST_SIZE) { + listPerceptionTrafficLight.remove(listPerceptionTrafficLight.size() - 1); + } + if (listener != null && Constants.TITLE.RECEIVE_PERCEPTION_TRAFFIC_LIGHT.equals(listener.first)) { + listener.second.onPerceptionTrafficLight((PerceptionTrafficLight) data); + } + } else if (data instanceof ObuSpat) { + listObuSpat.add(0, new DataShow(listObuSpatSize++, time + str)); + if (listObuSpat.size() > LIST_SIZE) { + listObuSpat.remove(listObuSpat.size() - 1); + } + if (listener != null && Constants.TITLE.RECEIVE_OBU_SPAT.equals(listener.first)) { + listener.second.onRefresh(); + } + } else if (data instanceof ObuRsi) { + listObuRsi.add(0, new DataShow(listObuRsiSize++, time + str)); + if (listObuRsi.size() > LIST_SIZE) { + listObuRsi.remove(listObuRsi.size() - 1); + } + if (listener != null && Constants.TITLE.RECEIVE_OBU_RSI.equals(listener.first)) { + listener.second.onRefresh(); + } + } else if (data instanceof ObuRsm) { + listObuRsm.add(0, new DataShow(listObuRsmSize++, time + str)); + if (listObuRsm.size() > LIST_SIZE) { + listObuRsm.remove(listObuRsm.size() - 1); + } + if (listener != null && Constants.TITLE.RECEIVE_OBU_RSM.equals(listener.first)) { + listener.second.onRefresh(); + } + } else if (data instanceof ObuMap) { + listObuMap.add(0, new DataShow(listObuMapSize++, time + str)); + if (listObuMap.size() > LIST_SIZE) { + listObuMap.remove(listObuMap.size() - 1); + } + if (listener != null && Constants.TITLE.RECEIVE_OBU_MAP.equals(listener.first)) { + listener.second.onRefresh(); + } } } return temp; diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/ArrivalNotification.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/ArrivalNotification.java deleted file mode 100644 index 9c5904dc23..0000000000 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/ArrivalNotification.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.zhidao.adas.client.bean; - -import com.google.protobuf.TextFormat; - -import java.text.SimpleDateFormat; - -import mogo.telematics.pad.MessagePad; - -public class ArrivalNotification extends BaseInfo { - public final MessagePad.ArrivalNotification bean; - - public ArrivalNotification(MessagePad.Header header, MessagePad.ArrivalNotification bean, SimpleDateFormat sdf) { - super("接收", bean.getSerializedSize(), header, sdf); - this.bean = bean; - } - - - @Override - public String toString() { - return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean); - } - -} diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/AutopilotState.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/AutopilotState.java deleted file mode 100644 index e3a2c31b98..0000000000 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/AutopilotState.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.zhidao.adas.client.bean; - -import com.google.protobuf.TextFormat; - -import java.text.SimpleDateFormat; - -import mogo.telematics.pad.MessagePad; - -public class AutopilotState extends BaseInfo { - public final MessagePad.AutopilotState bean; - - public AutopilotState(MessagePad.Header header, MessagePad.AutopilotState bean, SimpleDateFormat sdf) { - super("接收", bean.getSerializedSize(), header, sdf); - this.bean = bean; - } - - - - @Override - public String toString() { - return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean); - } - -} diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/BagManagerCmd.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/BagManagerCmd.java deleted file mode 100644 index db1dd0f4ab..0000000000 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/BagManagerCmd.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.zhidao.adas.client.bean; - -import com.google.protobuf.TextFormat; - -import java.text.SimpleDateFormat; - -import bag_manager.BagManagerOuterClass; -import mogo.telematics.pad.MessagePad; - -public class BagManagerCmd extends BaseInfo { - public final BagManagerOuterClass.BagManager bean; - - public BagManagerCmd(MessagePad.Header header, BagManagerOuterClass.BagManager bean, SimpleDateFormat sdf) { - super("接收", bean.getSerializedSize(), header, sdf); - this.bean = bean; - } - - - @Override - public String toString() { - return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean); - } - -} diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/BasicInfoReq.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/BasicInfoReq.java deleted file mode 100644 index bce516eee2..0000000000 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/BasicInfoReq.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.zhidao.adas.client.bean; - -import com.google.protobuf.TextFormat; - -import java.text.SimpleDateFormat; - -import mogo.telematics.pad.MessagePad; - -public class BasicInfoReq extends BaseInfo { - public final MessagePad.BasicInfoReq bean; - - public BasicInfoReq(MessagePad.Header header, MessagePad.BasicInfoReq bean, SimpleDateFormat sdf) { - super("接收", bean.getSerializedSize(), header, sdf); - this.bean = bean; - } - - - - @Override - public String toString() { - return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean); - } -} diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/CarConfigResp.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/CarConfigResp.java deleted file mode 100644 index c8b3b390f3..0000000000 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/CarConfigResp.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.zhidao.adas.client.bean; - -import com.google.protobuf.TextFormat; - -import java.text.SimpleDateFormat; - -import mogo.telematics.pad.MessagePad; - -public class CarConfigResp extends BaseInfo { - public final MessagePad.CarConfigResp bean; - - public CarConfigResp(MessagePad.Header header, MessagePad.CarConfigResp bean, SimpleDateFormat sdf) { - super("接收", bean.getSerializedSize(), header, sdf); - this.bean = bean; - } - - - - @Override - public String toString() { - return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean); - } -} diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/ChassisStates.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/ChassisStates.java deleted file mode 100644 index f18d4564a5..0000000000 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/ChassisStates.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.zhidao.adas.client.bean; - -import com.google.protobuf.TextFormat; - -import java.text.SimpleDateFormat; - -import chassis.ChassisStatesOuterClass; -import mogo.telematics.pad.MessagePad; - -public class ChassisStates extends BaseInfo { - public final ChassisStatesOuterClass.ChassisStates bean; - - public ChassisStates(MessagePad.Header header, ChassisStatesOuterClass.ChassisStates bean, SimpleDateFormat sdf) { - super("接收", bean.getSerializedSize(), header, sdf); - this.bean = bean; - } - - - @Override - public String toString() { - return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean); - } - -} diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/FSMFunctionStates.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/FSMFunctionStates.java deleted file mode 100644 index 1d672127ae..0000000000 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/FSMFunctionStates.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.zhidao.adas.client.bean; - -import com.google.protobuf.TextFormat; - -import java.text.SimpleDateFormat; - -import function_state_management.FunctionStates; -import mogo.telematics.pad.MessagePad; - -public class FSMFunctionStates extends BaseInfo { - public final FunctionStates.FSMFunctionStates bean; - - public FSMFunctionStates(MessagePad.Header header, FunctionStates.FSMFunctionStates bean, SimpleDateFormat sdf) { - super("接收", bean.getSerializedSize(), header, sdf); - this.bean = bean; - } - - - @Override - public String toString() { - return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean); - } - -} diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/GlobalPathResp.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/GlobalPathResp.java deleted file mode 100644 index bd5be112a6..0000000000 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/GlobalPathResp.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.zhidao.adas.client.bean; - -import com.google.protobuf.TextFormat; - -import java.text.SimpleDateFormat; - -import mogo.telematics.pad.MessagePad; - -public class GlobalPathResp extends BaseInfo { - public final MessagePad.GlobalPathResp bean; - - public GlobalPathResp(MessagePad.Header header, MessagePad.GlobalPathResp bean, SimpleDateFormat sdf) { - super("接收", bean.getSerializedSize(), header, sdf); - this.bean = bean; - } - - - @Override - public String toString() { - return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean); - } - -} diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/GnssInfo.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/GnssInfo.java deleted file mode 100644 index 1ebd36a34f..0000000000 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/GnssInfo.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.zhidao.adas.client.bean; - -import com.google.protobuf.TextFormat; - -import java.text.SimpleDateFormat; - -import mogo.telematics.pad.MessagePad; - -public class GnssInfo extends BaseInfo { - public final MessagePad.GnssInfo bean; - - public GnssInfo(MessagePad.Header header, MessagePad.GnssInfo bean, SimpleDateFormat sdf) { - super("接收", bean.getSerializedSize(), header, sdf); - this.bean = bean; - } - - - - @Override - public String toString() { - return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean); - } - -} diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/MogoReportMessage.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/MogoReportMessage.java deleted file mode 100644 index ec25240c06..0000000000 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/MogoReportMessage.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.zhidao.adas.client.bean; - -import com.google.protobuf.TextFormat; - -import java.text.SimpleDateFormat; - -import mogo.telematics.pad.MessagePad; -import mogo_msg.MogoReportMsg; - -public class MogoReportMessage extends BaseInfo { - public final MogoReportMsg.MogoReportMessage bean; - - public MogoReportMessage(MessagePad.Header header, MogoReportMsg.MogoReportMessage bean, SimpleDateFormat sdf) { - super("接收", bean.getSerializedSize(), header, sdf); - this.bean = bean; - } - - - - @Override - public String toString() { - return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean); - } - -} diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/ObuMap.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/ObuMap.java index 88c93caf6e..51a2c8c4ed 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/ObuMap.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/ObuMap.java @@ -2,6 +2,7 @@ package com.zhidao.adas.client.bean; import com.google.protobuf.TextFormat; import com.mogo.support.obu.ObuScene; +import com.zhidao.support.adas.high.common.ByteUtil; import java.text.SimpleDateFormat; @@ -18,7 +19,7 @@ public class ObuMap extends BaseInfo { @Override public String toString() { - return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean); + return super.toString() + "Payload原始数据:" + ByteUtil.byteArrToHex(bean.toByteArray()) + '\n' + TextFormat.printer().escapingNonAscii(false).printToString(bean); } } diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/ObuRsi.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/ObuRsi.java index d433245ebe..8cd054f956 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/ObuRsi.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/ObuRsi.java @@ -2,6 +2,7 @@ package com.zhidao.adas.client.bean; import com.google.protobuf.TextFormat; import com.mogo.support.obu.ObuScene; +import com.zhidao.support.adas.high.common.ByteUtil; import java.text.SimpleDateFormat; @@ -18,7 +19,7 @@ public class ObuRsi extends BaseInfo { @Override public String toString() { - return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean); + return super.toString() + "Payload原始数据:" + ByteUtil.byteArrToHex(bean.toByteArray()) + '\n' + TextFormat.printer().escapingNonAscii(false).printToString(bean); } } diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/ObuRsm.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/ObuRsm.java index 6045845ae4..badbf1745b 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/ObuRsm.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/ObuRsm.java @@ -2,6 +2,7 @@ package com.zhidao.adas.client.bean; import com.google.protobuf.TextFormat; import com.mogo.support.obu.ObuScene; +import com.zhidao.support.adas.high.common.ByteUtil; import java.text.SimpleDateFormat; @@ -18,7 +19,7 @@ public class ObuRsm extends BaseInfo { @Override public String toString() { - return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean); + return super.toString() + "Payload原始数据:" + ByteUtil.byteArrToHex(bean.toByteArray()) + '\n' + TextFormat.printer().escapingNonAscii(false).printToString(bean); } } diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/ObuSpat.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/ObuSpat.java index bb4707903e..3ba064f0e6 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/ObuSpat.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/ObuSpat.java @@ -2,6 +2,7 @@ package com.zhidao.adas.client.bean; import com.google.protobuf.TextFormat; import com.mogo.support.obu.ObuScene; +import com.zhidao.support.adas.high.common.ByteUtil; import java.text.SimpleDateFormat; @@ -18,7 +19,7 @@ public class ObuSpat extends BaseInfo { @Override public String toString() { - return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean); + return super.toString() + "Payload原始数据:" + ByteUtil.byteArrToHex(bean.toByteArray()) + '\n' + TextFormat.printer().escapingNonAscii(false).printToString(bean); } } diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/ObuWarningData.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/ObuWarningData.java deleted file mode 100644 index 7ea1bca9af..0000000000 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/ObuWarningData.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.zhidao.adas.client.bean; - -import com.google.protobuf.TextFormat; - -import java.text.SimpleDateFormat; - -import mogo.telematics.pad.MessagePad; -import mogo.v2x.ObuWarningEvent; - -public class ObuWarningData extends BaseInfo { - public final ObuWarningEvent.ObuWarningData bean; - - public ObuWarningData(MessagePad.Header header, ObuWarningEvent.ObuWarningData bean, SimpleDateFormat sdf) { - super("接收", bean.getSerializedSize(), header, sdf); - this.bean = bean; - } - - - @Override - public String toString() { - return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean); - } - -} diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/PerceptionTrafficLight.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/PerceptionTrafficLight.java index 585a18d0a6..246de432ce 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/PerceptionTrafficLight.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/PerceptionTrafficLight.java @@ -1,6 +1,7 @@ package com.zhidao.adas.client.bean; import com.google.protobuf.TextFormat; +import com.zhidao.support.adas.high.common.ByteUtil; import java.text.SimpleDateFormat; @@ -18,7 +19,7 @@ public class PerceptionTrafficLight extends BaseInfo { @Override public String toString() { - return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean); + return super.toString() + "Payload原始数据:" + ByteUtil.byteArrToHex(bean.toByteArray()) + '\n' + TextFormat.printer().escapingNonAscii(false).printToString(bean); } } diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/PlanningDecisionState.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/PlanningDecisionState.java deleted file mode 100644 index c443774c36..0000000000 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/PlanningDecisionState.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.zhidao.adas.client.bean; - -import com.google.protobuf.TextFormat; - -import java.text.SimpleDateFormat; - -import mogo.telematics.pad.MessagePad; - -public class PlanningDecisionState extends BaseInfo { - public final MessagePad.PlanningActionMsg bean; - - public PlanningDecisionState(MessagePad.Header header, MessagePad.PlanningActionMsg bean, SimpleDateFormat sdf) { - super("接收", bean.getSerializedSize(), header, sdf); - this.bean = bean; - } - - - @Override - public String toString() { - return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean); - } - -} diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/PlanningObjects.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/PlanningObjects.java deleted file mode 100644 index 68c1947de2..0000000000 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/PlanningObjects.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.zhidao.adas.client.bean; - -import com.google.protobuf.TextFormat; - -import java.text.SimpleDateFormat; - -import mogo.telematics.pad.MessagePad; - -public class PlanningObjects extends BaseInfo { - public final MessagePad.PlanningObjects bean; - - public PlanningObjects(MessagePad.Header header, MessagePad.PlanningObjects bean, SimpleDateFormat sdf) { - super("接收", bean.getSerializedSize(), header, sdf); - this.bean = bean; - } - - - @Override - public String toString() { - return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean); - } - -} diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/PredictionObstacleTrajectory.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/PredictionObstacleTrajectory.java deleted file mode 100644 index b6b070e110..0000000000 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/PredictionObstacleTrajectory.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.zhidao.adas.client.bean; - -import com.google.protobuf.TextFormat; - -import java.text.SimpleDateFormat; - -import mogo.telematics.pad.MessagePad; -import prediction.Prediction; - -public class PredictionObstacleTrajectory extends BaseInfo { - public final Prediction.mPredictionObjects bean; - - public PredictionObstacleTrajectory(MessagePad.Header header, Prediction.mPredictionObjects bean, SimpleDateFormat sdf) { - super("接收", bean.getSerializedSize(), header, sdf); - this.bean = bean; - } - - - @Override - public String toString() { - return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean); - } - -} diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/ReceiveData.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/ReceiveData.java new file mode 100644 index 0000000000..0d8be2857d --- /dev/null +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/ReceiveData.java @@ -0,0 +1,25 @@ +package com.zhidao.adas.client.bean; + +import com.google.protobuf.GeneratedMessageV3; +import com.google.protobuf.TextFormat; +import com.zhidao.support.adas.high.common.ByteUtil; + +import java.text.SimpleDateFormat; + +import mogo.telematics.pad.MessagePad; + +public class ReceiveData extends BaseInfo { + public final GeneratedMessageV3 bean; + + public ReceiveData(MessagePad.Header header, GeneratedMessageV3 bean, SimpleDateFormat sdf) { + super("接收", bean.getSerializedSize(), header, sdf); + this.bean = bean; + } + + + @Override + public String toString() { + return super.toString() + "Payload原始数据:" + ByteUtil.byteArrToHex(bean.toByteArray()) + '\n' + TextFormat.printer().escapingNonAscii(false).printToString(bean); + } + +} diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/RecordDataConfig.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/RecordDataConfig.java deleted file mode 100644 index 1dd5785507..0000000000 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/RecordDataConfig.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.zhidao.adas.client.bean; - -import com.google.protobuf.TextFormat; - -import java.text.SimpleDateFormat; - -import mogo.telematics.pad.MessagePad; - -public class RecordDataConfig extends BaseInfo { - public final MessagePad.RecordDataConfig bean; - - public RecordDataConfig(MessagePad.Header header, MessagePad.RecordDataConfig bean, SimpleDateFormat sdf) { - super("接收", bean.getSerializedSize(), header, sdf); - this.bean = bean; - } - - - @Override - public String toString() { - return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean); - } -} diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/RecordPanel.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/RecordPanel.java deleted file mode 100644 index a5d8cd7964..0000000000 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/RecordPanel.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.zhidao.adas.client.bean; - -import com.google.protobuf.TextFormat; - -import java.text.SimpleDateFormat; - -import mogo.telematics.pad.MessagePad; -import record_cache.RecordPanelOuterClass; - -public class RecordPanel extends BaseInfo { - public final RecordPanelOuterClass.RecordPanel bean; - - public RecordPanel(MessagePad.Header header, RecordPanelOuterClass.RecordPanel bean, SimpleDateFormat sdf) { - super("接收", bean.getSerializedSize(), header, sdf); - this.bean = bean; - } - - - - @Override - public String toString() { - return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean); - } -} diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/RoboSweeperTaskIndex.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/RoboSweeperTaskIndex.java deleted file mode 100644 index 86eaedbb6c..0000000000 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/RoboSweeperTaskIndex.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.zhidao.adas.client.bean; - -import com.google.protobuf.TextFormat; - -import java.text.SimpleDateFormat; - -import mogo.telematics.pad.MessagePad; -import planning.RoboSweeperTaskIndexOuterClass; - -public class RoboSweeperTaskIndex extends BaseInfo { - public final RoboSweeperTaskIndexOuterClass.RoboSweeperTaskIndex bean; - - public RoboSweeperTaskIndex(MessagePad.Header header, RoboSweeperTaskIndexOuterClass.RoboSweeperTaskIndex bean, SimpleDateFormat sdf) { - super("接收", bean.getSerializedSize(), header, sdf); - this.bean = bean; - } - - - @Override - public String toString() { - return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean); - } - -} diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/StatusInfo.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/StatusInfo.java deleted file mode 100644 index 72a96e6b7a..0000000000 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/StatusInfo.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.zhidao.adas.client.bean; - -import com.google.protobuf.TextFormat; - -import java.text.SimpleDateFormat; - -import mogo.telematics.pad.MessagePad; -import system_master.SystemStatusInfo; - -public class StatusInfo extends BaseInfo { - public final SystemStatusInfo.StatusInfo bean; - - public StatusInfo(MessagePad.Header header, SystemStatusInfo.StatusInfo bean, SimpleDateFormat sdf) { - super("接收", bean.getSerializedSize(), header, sdf); - this.bean = bean; - } - - - @Override - public String toString() { - return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean); - } - -} diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/TrackedObjects.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/TrackedObjects.java deleted file mode 100644 index 6f49037779..0000000000 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/TrackedObjects.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.zhidao.adas.client.bean; - -import com.google.protobuf.TextFormat; - -import java.text.SimpleDateFormat; - -import mogo.telematics.pad.MessagePad; - -public class TrackedObjects extends BaseInfo { - private MessagePad.TrackedObjects bean; - - public TrackedObjects(MessagePad.Header header, MessagePad.TrackedObjects bean, SimpleDateFormat sdf) { - super("接收", bean.getSerializedSize(), header, sdf); - this.bean = bean; - } - - @Override - public String toString() { - return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean); - } -} diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/Trajectory.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/Trajectory.java deleted file mode 100644 index 764d7fa44e..0000000000 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/Trajectory.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.zhidao.adas.client.bean; - -import com.google.protobuf.TextFormat; - -import java.text.SimpleDateFormat; - -import mogo.telematics.pad.MessagePad; - -public class Trajectory extends BaseInfo { - public final MessagePad.Trajectory bean; - - public Trajectory(MessagePad.Header header, MessagePad.Trajectory bean, SimpleDateFormat sdf) { - super("接收", bean.getSerializedSize(), header, sdf); - this.bean = bean; - } - @Override - public String toString() { - return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean); - } - -} diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/VehicleState.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/VehicleState.java deleted file mode 100644 index aabab1571e..0000000000 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/VehicleState.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.zhidao.adas.client.bean; - -import com.google.protobuf.TextFormat; - -import java.text.SimpleDateFormat; - -import chassis.VehicleStateOuterClass; -import mogo.telematics.pad.MessagePad; - -public class VehicleState extends BaseInfo { - public final VehicleStateOuterClass.VehicleState bean; - - public VehicleState(MessagePad.Header header, VehicleStateOuterClass.VehicleState bean, SimpleDateFormat sdf) { - super("接收", bean.getSerializedSize(), header, sdf); - this.bean = bean; - } - - @Override - public String toString() { - return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean); - } -} diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/Warn.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/Warn.java deleted file mode 100644 index 5bb43ebaaa..0000000000 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/Warn.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.zhidao.adas.client.bean; - -import com.google.protobuf.TextFormat; - -import java.text.SimpleDateFormat; - -import mogo.telematics.pad.MessagePad; - -public class Warn extends BaseInfo { - public final MessagePad.Warn bean; - - public Warn(MessagePad.Header header, MessagePad.Warn bean, SimpleDateFormat sdf) { - super("接收", bean.getSerializedSize(), header, sdf); - this.bean = bean; - } - - @Override - public String toString() { - return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean); - } -} diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/MainActivity.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/MainActivity.java index d48fec82ef..45b6b6c46d 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/MainActivity.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/MainActivity.java @@ -43,11 +43,7 @@ import androidx.recyclerview.widget.SimpleItemAnimator; import com.google.protobuf.TextFormat; import com.mogo.support.obu.ObuScene; -import com.mogo.telematic.MogoProtocolMsg; -import com.mogo.telematic.NSDNettyManager; -import com.mogo.telematic.client.listener.NettyClientListener; -import com.mogo.telematic.client.status.ConnectState; -import com.mogo.telematic.server.netty.NettyServerListener; +import com.zhidao.adas.client.App; import com.zhidao.adas.client.BuildConfig; import com.zhidao.adas.client.DataDistribution; import com.zhidao.adas.client.R; @@ -55,36 +51,16 @@ import com.zhidao.adas.client.adapter.InfoTitleAdapter; import com.zhidao.adas.client.base.BaseActivity; import com.zhidao.adas.client.base.BaseAdapter; import com.zhidao.adas.client.base.BaseFragment; -import com.zhidao.adas.client.bean.ArrivalNotification; -import com.zhidao.adas.client.bean.AutopilotState; -import com.zhidao.adas.client.bean.BagManagerCmd; -import com.zhidao.adas.client.bean.BasicInfoReq; -import com.zhidao.adas.client.bean.CarConfigResp; -import com.zhidao.adas.client.bean.ChassisStates; import com.zhidao.adas.client.bean.ErrorData; -import com.zhidao.adas.client.bean.FSMFunctionStates; -import com.zhidao.adas.client.bean.GlobalPathResp; -import com.zhidao.adas.client.bean.GnssInfo; import com.zhidao.adas.client.bean.IPCConnectState; -import com.zhidao.adas.client.bean.MogoReportMessage; import com.zhidao.adas.client.bean.ObuMap; import com.zhidao.adas.client.bean.ObuRsi; import com.zhidao.adas.client.bean.ObuRsm; import com.zhidao.adas.client.bean.ObuSpat; import com.zhidao.adas.client.bean.OriginalPointCloudData; import com.zhidao.adas.client.bean.PerceptionTrafficLight; -import com.zhidao.adas.client.bean.PlanningDecisionState; -import com.zhidao.adas.client.bean.PlanningObjects; -import com.zhidao.adas.client.bean.PredictionObstacleTrajectory; -import com.zhidao.adas.client.bean.RecordDataConfig; -import com.zhidao.adas.client.bean.RecordPanel; -import com.zhidao.adas.client.bean.RoboSweeperTaskIndex; +import com.zhidao.adas.client.bean.ReceiveData; import com.zhidao.adas.client.bean.SpecialVehicleBean; -import com.zhidao.adas.client.bean.StatusInfo; -import com.zhidao.adas.client.bean.TrackedObjects; -import com.zhidao.adas.client.bean.Trajectory; -import com.zhidao.adas.client.bean.VehicleState; -import com.zhidao.adas.client.bean.Warn; import com.zhidao.adas.client.log.ConnectStatusSave; import com.zhidao.adas.client.log.LogSave; import com.zhidao.adas.client.other.permission.BackgrounderPermission; @@ -97,14 +73,12 @@ import com.zhidao.support.adas.high.AdasManager; import com.zhidao.support.adas.high.AdasOptions; import com.zhidao.support.adas.high.OnAdasConnectStatusListener; import com.zhidao.support.adas.high.OnAdasListener; -import com.zhidao.support.adas.high.OnMultiDeviceListener; -import com.zhjt.mogo.adas.data.bean.AutopilotStatistics; import com.zhidao.support.adas.high.bean.VersionCompatibility; -import com.zhidao.support.adas.high.common.ByteUtil; import com.zhidao.support.adas.high.common.Constants.IPC_CONNECTION_STATUS; import com.zhidao.support.adas.high.common.CupidLogUtils; import com.zhidao.support.adas.high.common.ProtocolStatus; import com.zhidao.support.adas.high.common.ReceiveTimeoutManager; +import com.zhjt.mogo.adas.data.bean.AutopilotStatistics; import java.net.Inet4Address; import java.net.InetAddress; @@ -123,7 +97,6 @@ import bag_manager.BagManagerOuterClass; import chassis.ChassisStatesOuterClass; import chassis.VehicleStateOuterClass; import function_state_management.FunctionStates; -import io.netty.channel.Channel; import mogo.telematics.pad.MessagePad; import mogo_msg.MogoReportMsg; import perception.TrafficLightOuterClass; @@ -878,44 +851,46 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas @Override public void onTrajectory(MessagePad.Header header, MessagePad.Trajectory trajectory) { - Trajectory base = new Trajectory(header, trajectory, sdf); + ReceiveData base = new ReceiveData(header, trajectory, sdf); DataDistribution.getInstance().addData(base); } @Override public void onTrackedObjects(MessagePad.Header header, MessagePad.TrackedObjects trackedObjects) { - TrackedObjects base = new TrackedObjects(header, trackedObjects, sdf); + ReceiveData base = new ReceiveData(header, trackedObjects, sdf); DataDistribution.getInstance().addData(base); } @Override public void onGnssInfo(MessagePad.Header header, MessagePad.GnssInfo gnssInfo) { - GnssInfo base = new GnssInfo(header, gnssInfo, sdf); + ReceiveData base = new ReceiveData(header, gnssInfo, sdf); DataDistribution.getInstance().addData(base); } @Override public void onVehicleState(MessagePad.Header header, VehicleStateOuterClass.VehicleState vehicleState) { - VehicleState base = new VehicleState(header, vehicleState, sdf); + App.INSTANCE.gear = vehicleState.getGear(); + ReceiveData base = new ReceiveData(header, vehicleState, sdf); DataDistribution.getInstance().addData(base); } @Override public void onChassisStates(MessagePad.Header header, ChassisStatesOuterClass.ChassisStates chassisStates) { - ChassisStates base = new ChassisStates(header, chassisStates, sdf); + App.INSTANCE.gear = chassisStates.getGearSystemStates().getGearPosition(); + ReceiveData base = new ReceiveData(header, chassisStates, sdf); DataDistribution.getInstance().addData(base); } @Override public void onAutopilotState(MessagePad.Header header, MessagePad.AutopilotState autopilotState) { - AutopilotState base = new AutopilotState(header, autopilotState, sdf); + ReceiveData base = new ReceiveData(header, autopilotState, sdf); DataDistribution.getInstance().addData(base); } @Override public void onReportMessage(MessagePad.Header header, MogoReportMsg.MogoReportMessage mogoReportMessage) { - MogoReportMessage base = new MogoReportMessage(header, mogoReportMessage, sdf); + ReceiveData base = new ReceiveData(header, mogoReportMessage, sdf); DataDistribution.getInstance().addData(base); } @@ -927,7 +902,7 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas @Override public void onPredictionObstacleTrajectory(MessagePad.Header header, Prediction.mPredictionObjects predictionObjects) { - PredictionObstacleTrajectory base = new PredictionObstacleTrajectory(header, predictionObjects, sdf); + ReceiveData base = new ReceiveData(header, predictionObjects, sdf); DataDistribution.getInstance().addData(base); } @@ -966,32 +941,32 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas @Override public void onPlanningObjects(MessagePad.Header header, MessagePad.PlanningObjects planningObjects) { - PlanningObjects base = new PlanningObjects(header, planningObjects, sdf); + ReceiveData base = new ReceiveData(header, planningObjects, sdf); DataDistribution.getInstance().addData(base); } @Override public void onBasicInfoReq(MessagePad.Header header, MessagePad.BasicInfoReq basicInfoReq) { - BasicInfoReq info = new BasicInfoReq(header, basicInfoReq, sdf); - DataDistribution.getInstance().addData(info); + ReceiveData base = new ReceiveData(header, basicInfoReq, sdf); + DataDistribution.getInstance().addData(base); AdasManager.getInstance().sendBasicInfoResp("", 0, com.zhidao.support.adas.high.common.Constants.TERMINAL_ROLE.DEBUG); runOnUiThread(new Runnable() { @Override public void run() { - showToastCenter("收到车机基础信息请求:" + info.toString()); + showToastCenter("收到车机基础信息请求:" + base.toString()); } }); } @Override public void onCarConfigResp(MessagePad.Header header, MessagePad.CarConfigResp carConfigResp) { - CarConfigResp base = new CarConfigResp(header, carConfigResp, sdf); + ReceiveData base = new ReceiveData(header, carConfigResp, sdf); DataDistribution.getInstance().addData(base); } @Override public void onRecordResult(MessagePad.Header header, RecordPanelOuterClass.RecordPanel recordPanel) { - RecordPanel base = new RecordPanel(header, recordPanel, sdf); + ReceiveData base = new ReceiveData(header, recordPanel, sdf); DataDistribution.getInstance().addData(base); recordKey = recordPanel.getKey(); recordFileName = recordPanel.getFilename(); @@ -999,37 +974,37 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas @Override public void onGlobalPathResp(MessagePad.Header header, MessagePad.GlobalPathResp globalPathResp) { - GlobalPathResp base = new GlobalPathResp(header, globalPathResp, sdf); + ReceiveData base = new ReceiveData(header, globalPathResp, sdf); DataDistribution.getInstance().addData(base); } @Override public void onWarn(MessagePad.Header header, MessagePad.Warn warn) { - Warn base = new Warn(header, warn, sdf); + ReceiveData base = new ReceiveData(header, warn, sdf); DataDistribution.getInstance().addData(base); } @Override public void onArrivalNotification(MessagePad.Header header, MessagePad.ArrivalNotification arrivalNotification) { - ArrivalNotification base = new ArrivalNotification(header, arrivalNotification, sdf); + ReceiveData base = new ReceiveData(header, arrivalNotification, sdf); DataDistribution.getInstance().addData(base); } @Override public void onStatusQueryResp(MessagePad.Header header, SystemStatusInfo.StatusInfo statusInfo) { - StatusInfo base = new StatusInfo(header, statusInfo, sdf); + ReceiveData base = new ReceiveData(header, statusInfo, sdf); DataDistribution.getInstance().addData(base); } @Override public void onRecordDataConfigResp(MessagePad.Header header, MessagePad.RecordDataConfig config) { - RecordDataConfig base = new RecordDataConfig(header, config, sdf); + ReceiveData base = new ReceiveData(header, config, sdf); DataDistribution.getInstance().addData(base); } @Override public void onPlanningActionMsg(MessagePad.Header header, MessagePad.PlanningActionMsg planningActionMsg) { - PlanningDecisionState base = new PlanningDecisionState(header, planningActionMsg, sdf); + ReceiveData base = new ReceiveData(header, planningActionMsg, sdf); DataDistribution.getInstance().addData(base); } @@ -1060,19 +1035,19 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas @Override public void onFunctionStates(MessagePad.Header header, FunctionStates.FSMFunctionStates functionStates) { - FSMFunctionStates base = new FSMFunctionStates(header, functionStates, sdf); + ReceiveData base = new ReceiveData(header, functionStates, sdf); DataDistribution.getInstance().addData(base); } @Override public void onSweeperTaskIndexData(MessagePad.Header header, RoboSweeperTaskIndexOuterClass.RoboSweeperTaskIndex roboSweeperTaskIndex) { - RoboSweeperTaskIndex base = new RoboSweeperTaskIndex(header, roboSweeperTaskIndex, sdf); + ReceiveData base = new ReceiveData(header, roboSweeperTaskIndex, sdf); DataDistribution.getInstance().addData(base); } @Override public void onBagManagerCmd(MessagePad.Header header, BagManagerOuterClass.BagManager bagManager) { - BagManagerCmd base = new BagManagerCmd(header, bagManager, sdf); + ReceiveData base = new ReceiveData(header, bagManager, sdf); DataDistribution.getInstance().addData(base); } diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/VersionFragment.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/VersionFragment.java index 7b4abdaad1..733e70d9ae 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/VersionFragment.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/VersionFragment.java @@ -23,6 +23,7 @@ import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.SimpleItemAnimator; +import com.zhidao.adas.client.App; import com.zhidao.adas.client.BuildConfig; import com.zhidao.adas.client.R; import com.zhidao.adas.client.adapter.ConfigAdapter; @@ -36,6 +37,7 @@ import com.zhidao.support.adas.high.bean.VersionCompatibility; import com.zhidao.support.adas.high.common.Constants; import com.zhidao.support.adas.high.common.CupidLogUtils; import com.zhidao.support.adas.high.common.MessageType; +import com.zhidao.support.adas.high.common.autopilot.ability.AutopilotAbilityManager; import java.text.SimpleDateFormat; import java.util.ArrayList; @@ -45,6 +47,7 @@ import java.util.List; import java.util.Locale; import java.util.Set; +import chassis.Chassis; import mogo.telematics.pad.MessagePad; /** @@ -65,7 +68,7 @@ public class VersionFragment extends BaseFragment { private ConfigAdapter adapter; private InterfaceAdapter unregisteredAdapter; private InterfaceAdapter registeredAdapter; - + private Set[] unableGears; private int role = Constants.TERMINAL_ROLE.DEBUG;//角色 默认调试屏 @@ -216,9 +219,48 @@ public class VersionFragment extends BaseFragment { list.add(new Config("ADAS LIB版本:", AdasManager.getInstance().getAdasVersion())); list.add(new Config("APP构建时间:", BuildConfig.BUILD_TIME)); list.add(getAutopilotAbilityConfig("")); + list.add(gear()); adapter.setData(list); } + private Config gear() { + StringBuilder builder = new StringBuilder(); + Chassis.GearPosition gear = App.INSTANCE.gear; + if (gear != null) { + if (unableGears == null) { + unableGears = new Set[6]; + unableGears[0] = BuildConfig.UNABLE_LAUNCH_AUTOPILOT_GEAR_BUS; + unableGears[1] = BuildConfig.UNABLE_LAUNCH_AUTOPILOT_GEAR_M1; + unableGears[2] = BuildConfig.UNABLE_LAUNCH_AUTOPILOT_GEAR_M2; + unableGears[3] = BuildConfig.UNABLE_LAUNCH_AUTOPILOT_GEAR_SWEEPER; + unableGears[4] = BuildConfig.UNABLE_LAUNCH_AUTOPILOT_GEAR_TAXI; + unableGears[5] = BuildConfig.UNABLE_LAUNCH_AUTOPILOT_GEAR_VAN; + } + for (int j = 0; j < unableGears.length; j++) { + String type = ""; + if (j == 0) { + type = "BUS"; + } else if (j == 1) { + type = "M1"; + } else if (j == 2) { + type = "M2"; + } else if (j == 3) { + type = "SWEEPER"; + } else if (j == 4) { + type = "TAXI"; + } else if (j == 5) { + type = "VAN"; + } + AutopilotAbilityManager.getInstance().setUnableLaunchAutopilotGear(unableGears[j]); + boolean b = AutopilotAbilityManager.getInstance().isLaunchAutopilot(gear); + builder.append("车型:").append(type); + builder.append(" 当前档位:").append(gear.name()); + builder.append(" 是否可以启动自驾:").append(b).append('\n'); + } + } + return new Config("档位影响:", builder.toString()); + } + private Config getAutopilotAbilityConfig(String value) { return new Config("能否启动自动驾驶:", value); } @@ -226,32 +268,34 @@ public class VersionFragment extends BaseFragment { public void autopilotAbility(boolean isAutopilotAbility, String unableAutopilotReason) { List list = adapter.getData(); if (list != null) { - Config temp = getAutopilotAbilityConfig(isAutopilotAbility + ",原因:" + unableAutopilotReason); - int index = list.indexOf(temp); - if (index < 0) { - list.add(temp); - if (getActivity() != null) - getActivity().runOnUiThread(new Runnable() { - @Override - public void run() { - adapter.notifyItemInserted(list.size() - 1); - } - }); - } else { - Config config = list.get(index); - config.cover(temp); - config.color = RandomColor.randomColor(); - if (getActivity() != null) - getActivity().runOnUiThread(new Runnable() { - @Override - public void run() { - adapter.notifyItemChanged(index); - } - }); - } + updateRefreshConfig(list, getAutopilotAbilityConfig(isAutopilotAbility + ",原因:" + unableAutopilotReason)); + updateRefreshConfig(list, gear()); } + } - + private void updateRefreshConfig(List list, Config temp) { + int index = list.indexOf(temp); + if (index < 0) { + list.add(temp); + if (getActivity() != null) + getActivity().runOnUiThread(new Runnable() { + @Override + public void run() { + adapter.notifyItemInserted(list.size() - 1); + } + }); + } else { + Config config = list.get(index); + config.cover(temp); + config.color = RandomColor.randomColor(); + if (getActivity() != null) + getActivity().runOnUiThread(new Runnable() { + @Override + public void run() { + adapter.notifyItemChanged(index); + } + }); + } } @Override diff --git a/app_ipc_monitoring/src/main/res/values/colors.xml b/app_ipc_monitoring/src/main/res/values/colors.xml index fc88f479a4..cee6d1bede 100644 --- a/app_ipc_monitoring/src/main/res/values/colors.xml +++ b/app_ipc_monitoring/src/main/res/values/colors.xml @@ -19,7 +19,7 @@ #1E90FF #FFC0CB #FF8F00 - #FFE500 - #B9ED3E + #FF33FF + #669900 #2EEDEB diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/MoGoAutopilotControlProvider.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/MoGoAutopilotControlProvider.kt index e68500d7c7..2cd3d2f345 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/MoGoAutopilotControlProvider.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/MoGoAutopilotControlProvider.kt @@ -105,7 +105,7 @@ class MoGoAutopilotControlProvider : .setIpcConnectionMode(AdasOptions.IPC_CONNECTION_MODE.FIXATION) .setIpcFixationIP(AdasManager.getInstance().getIPCFixationIPList(mContext)) .setClient(false) - .setIdentityMode(FunctionBuildConfig.appIdentityMode) + .setUnableLaunchAutopilotGear(FunctionBuildConfig.unableLaunchAutopilotGear) // .setSubscribeInterfaceOptions(subscribeInterfaceOptions)// .build() @@ -196,7 +196,7 @@ class MoGoAutopilotControlProvider : val options = AdasOptions .Builder() .setClient(true) - .setIdentityMode(FunctionBuildConfig.appIdentityMode) + .setUnableLaunchAutopilotGear(FunctionBuildConfig.unableLaunchAutopilotGear) .build() AdasManager.getInstance() .create(options, MoGoAdasMsgConnectStatusListenerImpl()) @@ -224,7 +224,7 @@ class MoGoAutopilotControlProvider : .setIpcConnectionMode(AdasOptions.IPC_CONNECTION_MODE.FIXATION) .setIpcFixationIP(AdasManager.getInstance().getIPCFixationIPList(mContext)) .setClient(false)// 乘客端直连工控机改为false - .setIdentityMode(FunctionBuildConfig.appIdentityMode) + .setUnableLaunchAutopilotGear(FunctionBuildConfig.unableLaunchAutopilotGear) .build() AdasManager.getInstance().create(options, MoGoAdasMsgConnectStatusListenerImpl()) //////////////////////////////////注意先后顺序,AdasManager.getInstance().create后才可以设置监听///////////////////////////////////////////// diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/FunctionBuildConfig.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/FunctionBuildConfig.kt index 9e6508a3d3..4b1caa167e 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/FunctionBuildConfig.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/FunctionBuildConfig.kt @@ -1,5 +1,6 @@ package com.mogo.eagle.core.data.config +import chassis.Chassis import com.mogo.eagle.core.data.deva.net.UrlConfig import com.mogo.eagle.core.utilcode.util.GsonUtils @@ -213,4 +214,10 @@ object FunctionBuildConfig { @JvmField var urlJson: UrlConfig = GsonUtils.fromJson("{\"och_url\":\"https://tech.zhidaohulian.com\"}", UrlConfig::class.java) + /** + * 最外层设置的Url + */ + @Volatile + @JvmField + var unableLaunchAutopilotGear: Set? = null } \ No newline at end of file diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasOptions.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasOptions.java index 3c38a18599..dcdc047c72 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasOptions.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasOptions.java @@ -4,6 +4,9 @@ import com.zhidao.support.adas.high.common.autopilot.ability.AutopilotAbilityMan import com.zhidao.support.adas.high.subscribe.SubscribeInterfaceOptions; import java.util.HashSet; +import java.util.Set; + +import chassis.Chassis; /** * Date:2019/5/31。 @@ -126,13 +129,13 @@ public class AdasOptions { } /** - * 身份/车型 + * 不能启动自驾的档位 * - * @param identityMode 车型 + * @param unableLaunchAutopilotGear 档位 * @return */ - public Builder setIdentityMode(String identityMode) { - options.setIdentityMode(identityMode); + public Builder setUnableLaunchAutopilotGear(Set unableLaunchAutopilotGear) { + options.setUnableLaunchAutopilotGear(unableLaunchAutopilotGear); return this; } @@ -153,7 +156,7 @@ public class AdasOptions { options.ipcAssignIP = null; options.ipcFixationIP = null; options.subscribeInterfaceOptions = null; - options.setIdentityMode(""); + options.setUnableLaunchAutopilotGear(null); return options; } @@ -197,7 +200,7 @@ public class AdasOptions { this.subscribeInterfaceOptions = subscribeInterfaceOptions; } - public void setIdentityMode(String identityMode) { - AutopilotAbilityManager.getInstance().setIdentityMode(identityMode); + public void setUnableLaunchAutopilotGear(Set unableLaunchAutopilotGear) { + AutopilotAbilityManager.getInstance().setUnableLaunchAutopilotGear(unableLaunchAutopilotGear); } } diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbility230.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbility230.java index 9c6ce3ea4c..d6e4188abc 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbility230.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbility230.java @@ -1,10 +1,7 @@ package com.zhidao.support.adas.high.common.autopilot.ability; -import com.zhidao.support.adas.high.OnAdasListener; - import java.util.Timer; import java.util.TimerTask; -import java.util.regex.Pattern; import chassis.Chassis; import chassis.ChassisStatesOuterClass; @@ -31,10 +28,6 @@ public class AutopilotAbility230 { } private void onCallback() { - //金旅、开沃小巴乘客端 不能启动自动驾驶 - if (AutopilotAbilityManager.getInstance().isBusPassenger()) { - return; - } boolean isAutopilotAbility = true;//是否能启动自动驾驶 String unableAutopilotReason = null;//不能启动自动驾驶原因 //检测底盘相关 @@ -47,36 +40,14 @@ public class AutopilotAbility230 { } } if (isAutopilotAbility) { - /** - * 档位状态判断 目前判断的车型包括 东风Taxi 红旗Taxi 金旅Bus 金旅M1 金旅M1 福田清扫车 开沃 - * TODO 如果 identityMode 未赋值以及目前已知其他车型判断逻辑跟东风Taxi和红旗 走 - */ - //开沃任何档位都能启动自驾 - if (!AutopilotAbilityManager.getInstance().isBusDriverVan()) { - if (chassisStates.hasGearSystemStates()) { - Chassis.GearPosition gear = chassisStates.getGearSystemStates().getGearPosition(); - //金旅Bus和清扫车 档位不正常 - if (AutopilotAbilityManager.getInstance().isBusDriver()) { - if (gear == Chassis.GearPosition.GEAR_N || gear == Chassis.GearPosition.GEAR_R) { - isAutopilotAbility = false; - unableAutopilotReason = "档位不正常"; - } - } else if (AutopilotAbilityManager.getInstance().isSweeperDriverFutian()) { - if (gear == Chassis.GearPosition.GEAR_N) { - isAutopilotAbility = false; - unableAutopilotReason = "档位不正常"; - } - } else { - //东风Taxi和红旗 司机端和乘客端 档位不正常 - if (gear == Chassis.GearPosition.GEAR_P || gear == Chassis.GearPosition.GEAR_R) { - isAutopilotAbility = false; - unableAutopilotReason = "档位不正常"; - } - } + if (chassisStates.hasGearSystemStates()) { + Chassis.GearPosition gear = chassisStates.getGearSystemStates().getGearPosition(); + if (!AutopilotAbilityManager.getInstance().isLaunchAutopilot(gear)) { + isAutopilotAbility = false; + unableAutopilotReason = "档位不正常"; } } } - //TODO 关于手刹:不同车型的实现不同所以目前没法使用此字段 // if (isAutopilotAbility) { // //电子驻车制动系统 @@ -88,9 +59,7 @@ public class AutopilotAbility230 { // } // } } - if (AutopilotAbilityManager.getInstance().getListener() != null) { - AutopilotAbilityManager.getInstance().getListener().onAutopilotAbility(isAutopilotAbility, unableAutopilotReason); - } + AutopilotAbilityManager.getInstance().onAutopilotAbility(isAutopilotAbility, unableAutopilotReason); } public synchronized void start() { @@ -114,5 +83,4 @@ public class AutopilotAbility230 { } - } diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbility250.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbility250.java index 01bf359101..0c459e56a6 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbility250.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbility250.java @@ -45,10 +45,6 @@ public class AutopilotAbility250 { } private void onCallback(SystemStatusInfo.StatusInfo statusInfo) { - //金旅、开沃小巴乘客端 不能启动自动驾驶 - if (AutopilotAbilityManager.getInstance().isBusPassenger()) { - return; - } boolean isAutopilotAbility = true;//是否能启动自动驾驶 String unableAutopilotReason = null;//不能启动自动驾驶原因 //检测节点状态相关 @@ -122,36 +118,14 @@ public class AutopilotAbility250 { } } if (isAutopilotAbility) { - /** - * 档位状态判断 目前判断的车型包括 东风Taxi 红旗Taxi 金旅Bus 金旅M1 金旅M1 福田清扫车 开沃 - * TODO 如果 identityMode 未赋值以及目前已知其他车型判断逻辑跟东风Taxi和红旗 走 - */ - //开沃任何档位都能启动自驾 - if (!AutopilotAbilityManager.getInstance().isBusDriverVan()) { - if (chassisStates.hasGearSystemStates()) { - Chassis.GearPosition gear = chassisStates.getGearSystemStates().getGearPosition(); - //金旅Bus和清扫车 档位不正常 - if (AutopilotAbilityManager.getInstance().isBusDriver()) { - if (gear == Chassis.GearPosition.GEAR_N || gear == Chassis.GearPosition.GEAR_R) { - isAutopilotAbility = false; - unableAutopilotReason = "档位不正常"; - } - } else if (AutopilotAbilityManager.getInstance().isSweeperDriverFutian()) { - if (gear == Chassis.GearPosition.GEAR_N) { - isAutopilotAbility = false; - unableAutopilotReason = "档位不正常"; - } - } else { - //东风Taxi和红旗 司机端和乘客端 档位不正常 - if (gear == Chassis.GearPosition.GEAR_P || gear == Chassis.GearPosition.GEAR_R) { - isAutopilotAbility = false; - unableAutopilotReason = "档位不正常"; - } - } + if (chassisStates.hasGearSystemStates()) { + Chassis.GearPosition gear = chassisStates.getGearSystemStates().getGearPosition(); + if (!AutopilotAbilityManager.getInstance().isLaunchAutopilot(gear)) { + isAutopilotAbility = false; + unableAutopilotReason = "档位不正常"; } } } - //TODO 关于手刹:不同车型的实现不同所以目前没法使用此字段 // if (isAutopilotAbility) { // //电子驻车制动系统 @@ -163,9 +137,7 @@ public class AutopilotAbility250 { // } // } } - if (AutopilotAbilityManager.getInstance().getListener() != null) { - AutopilotAbilityManager.getInstance().getListener().onAutopilotAbility(isAutopilotAbility, unableAutopilotReason); - } + AutopilotAbilityManager.getInstance().onAutopilotAbility(isAutopilotAbility, unableAutopilotReason); } public synchronized void start() { diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbilityManager.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbilityManager.java index 1e80fe6805..429e08162f 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbilityManager.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbilityManager.java @@ -10,11 +10,13 @@ import com.zhidao.support.adas.high.OnAdasListener; import com.zhidao.support.adas.high.common.Constants; import com.zhidao.support.adas.high.common.CupidLogUtils; +import java.util.Set; import java.util.Timer; import java.util.TimerTask; import java.util.regex.Matcher; import java.util.regex.Pattern; +import chassis.Chassis; import chassis.ChassisStatesOuterClass; import mogo.telematics.pad.MessagePad; import system_master.SystemStatusInfo; @@ -38,37 +40,14 @@ public class AutopilotAbilityManager { private AutopilotAbility250 autopilotAbility250; private Timer startTimer; /** - * 身份/车型 + * 不能启动自动驾驶的档位 */ - private String identityMode; + private Set unableLaunchAutopilotGear; public interface OnAutopilotAbilityListener { void onStatusQuery();//查询是被调用 } - /** - * 身份规则定义根据app/productFlavors/README.md - * * taxi司机屏 Taxi_Driver_Base (东风、红旗司机端) - * * taxi乘客屏 Taxi_Passenger_Base (东风、红旗乘客端) - * * bus司机屏 Bus_Driver_Base (金旅小巴司机端) - * * Bus_Driver_Van (开沃小巴司机端) - * * bus乘客屏 Bus_Passenger_Base (金旅、开沃小巴乘客端) - * * Bus_Passenger_M1 (M1小巴乘客端) - * * Bus_Passenger_M2 (M2小巴乘客端) - * * 清扫车 Sweeper_Driver_FT (福田清扫车司机端) - *

- * 此定义不区分角色,只区分业务线和车型 - */ - private interface IDENTITY_MODE { - String TAXI_DRIVER_BASE = "Taxi_Driver_Base";//(东风、红旗司机端) - String TAXI_PASSENGER_BASE = "Taxi_Passenger_Base";//(东风、红旗乘客端) - String BUS_DRIVER_BASE = "Bus_Driver_Base";//(金旅小巴司机端) - String BUS_DRIVER_VAN = "Bus_Driver_Van";//(开沃小巴司机端) - String BUS_PASSENGER_BASE = "Bus_Passenger_Base";//(金旅、开沃小巴乘客端) - String BUS_PASSENGER_M1 = "Bus_Passenger_M1";//(M1小巴乘客端) - String BUS_PASSENGER_M2 = "Bus_Passenger_M2";//(M2小巴乘客端) - String SWEEPER_DRIVER_FT = "Sweeper_Driver_FT";//(福田清扫车司机端) - } private AutopilotAbilityManager() { } @@ -84,8 +63,22 @@ public class AutopilotAbilityManager { return INSTANCE; } - public void setIdentityMode(String identityMode) { - this.identityMode = identityMode; + public void setUnableLaunchAutopilotGear(Set unableLaunchAutopilotGear) { + this.unableLaunchAutopilotGear = unableLaunchAutopilotGear; + } + + /** + * 获取当前档位是否能启动自动驾驶 如果不传递默认可以启动 + * 不能启动自驾档位规则:app/README.md/不能启动自动驾驶的档位 + * + * @param currentGear 当前档位 + * @return 是否能启动自驾 + */ + public boolean isLaunchAutopilot(Chassis.GearPosition currentGear) { + if (unableLaunchAutopilotGear != null && !unableLaunchAutopilotGear.isEmpty()) { + return !unableLaunchAutopilotGear.contains(currentGear); + } + return true; } public void setCarConfig(MessagePad.CarConfigResp carConfig) { @@ -105,8 +98,10 @@ public class AutopilotAbilityManager { this.listener = listener; } - public OnAdasListener getListener() { - return listener; + public void onAutopilotAbility(boolean isAutopilotAbility, String unableAutopilotReason) { + if (listener != null) { + listener.onAutopilotAbility(isAutopilotAbility, unableAutopilotReason); + } } public void setHandler(Handler handler) { @@ -243,32 +238,4 @@ public class AutopilotAbilityManager { } return version; } - - /** - * 金旅、开沃小巴乘客端 - */ - public boolean isBusPassenger() { - return IDENTITY_MODE.BUS_PASSENGER_BASE.equalsIgnoreCase(identityMode); - } - - /** - * 开沃小巴司机端 - */ - public boolean isBusDriverVan() { - return IDENTITY_MODE.BUS_DRIVER_VAN.equalsIgnoreCase(identityMode); - } - - /** - * 金旅小巴司机端 - */ - public boolean isBusDriver() { - return IDENTITY_MODE.BUS_DRIVER_BASE.equalsIgnoreCase(identityMode); - } - - /** - * 福田清扫车司机端 - */ - public boolean isSweeperDriverFutian() { - return IDENTITY_MODE.SWEEPER_DRIVER_FT.equalsIgnoreCase(identityMode); - } } From 19f9f1d1ef2a871ea4ecfcfab328129e87b79bf9 Mon Sep 17 00:00:00 2001 From: zhongchao Date: Mon, 27 Feb 2023 19:06:03 +0800 Subject: [PATCH 08/10] [2.13.0-arch-opt] change the color of jiangshiche and opt tracker --- .../business/identify/CircleQueue.java | 12 ++-- .../business/identify/TrackManager.java | 19 ++++-- .../function/business/identify/TrackObj.java | 58 +++++-------------- .../identify/TrackerSourceColorHelper.kt | 2 +- .../business/identify/WarningHelper.kt | 6 ++ .../src/main/java/com/mogo/map/IMogoMap.java | 5 ++ .../mogo/map/marker/IMogoMarkerManager.java | 5 ++ .../main/java/com/mogo/map/AMapWrapper.java | 12 +++- .../java/com/mogo/map/MogoMarkerManager.java | 9 +++ 9 files changed, 68 insertions(+), 60 deletions(-) diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/identify/CircleQueue.java b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/identify/CircleQueue.java index 5f7b50180e..a4faef0d56 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/identify/CircleQueue.java +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/identify/CircleQueue.java @@ -24,18 +24,10 @@ public class CircleQueue { objQueue.add(obj); } - public void deleteObj(ObjQueue obj) { - objQueue.remove(obj); - } - public List getLastThreeFrame() { return objQueue.subList(objQueue.size() - 3, objQueue.size()); } - public List getLastFiveFrame() { - return objQueue.subList(objQueue.size() - 5, objQueue.size()); - } - public List getPreFrame() { return objQueue.subList(0, objQueue.size()); } @@ -44,6 +36,10 @@ public class CircleQueue { return objQueue.lastElement(); } + public void clear(){ + objQueue.clear(); + } + @Override public String toString() { return "CircleQueue{" + diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/identify/TrackManager.java b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/identify/TrackManager.java index 907f04ce8d..b4d2daa6c6 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/identify/TrackManager.java +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/identify/TrackManager.java @@ -2,6 +2,7 @@ package com.mogo.eagle.core.function.business.identify; import android.annotation.SuppressLint; import android.os.Build; +import android.util.Log; import androidx.annotation.RequiresApi; @@ -50,7 +51,7 @@ public class TrackManager { * 记录每次实际绘制的交通元素UUID */ @SuppressLint("NewApi") - private final HashMap trafficDataUuid = new HashMap<>(); + private final ConcurrentHashMap trafficDataUuid = new ConcurrentHashMap<>(); /** * 过滤后的数据集合 @@ -101,7 +102,7 @@ public class TrackManager { trackObj = cacheTrack; MessagePad.TrackedObject cache = cacheTrack.getCache(); if (cache != null) { - //相对静止物体并且非obu数据,则不改变,为感知融合同位置物体,使用缓存数据做覆盖 + //相对静止物体 感知融合同位置物体,使用缓存数据做覆盖 if (cacheTrack.relativeStatic()) { if (data.getColor() != null && !data.getColor().isEmpty()) { cache = cache.toBuilder().setColor(data.getColor()).build(); @@ -112,10 +113,10 @@ public class TrackManager { uuid = findSameValue; trackObj.updateObj(data); } else { - trackObj = new TrackObj(data); + trackObj = new TrackObj(data,s2CellId,s2LatLng); } } else { - trackObj = new TrackObj(data); + trackObj = new TrackObj(data,s2CellId,s2LatLng); } } mFilterTrafficData.put(uuid, trackObj.getCache()); @@ -150,17 +151,23 @@ public class TrackManager { } public synchronized void removeKey(String key) { - mMarkersCaches.remove(key); cellIdCaches.remove(key); + mMarkersCaches.remove(key); + WarningHelper.INSTANCE.remove(key); MogoMarkerManager.getInstance(AbsMogoApplication.getApp()) .removeMarker(key); } @SuppressLint("NewApi") public void clearAll() { + MogoMarkerManager.getInstance(AbsMogoApplication.getApp()).clearAllMarker(); + cellIdCaches.clear(); trafficDataUuid.clear(); WarningHelper.INSTANCE.clear(); - mMarkersCaches.forEach((uuid, trackObj) -> removeKey(uuid)); + mMarkersCaches.forEach((uuid, trackObj) -> { + trackObj.clear(); + }); + mMarkersCaches.clear(); } } diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/identify/TrackObj.java b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/identify/TrackObj.java index 0a1d3829b7..55ef457a88 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/identify/TrackObj.java +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/identify/TrackObj.java @@ -5,8 +5,6 @@ import static com.mogo.eagle.core.function.business.identify.TrackManager.LIMIT_ import android.annotation.SuppressLint; import com.mogo.eagle.core.data.enums.TrafficTypeEnum; -import com.mogo.eagle.core.data.map.CenterLine; -import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager; import com.mogo.eagle.core.utilcode.geometry.S2CellId; import com.mogo.eagle.core.utilcode.geometry.S2LatLng; import com.mogo.eagle.core.utilcode.util.CoordinateUtils; @@ -22,26 +20,18 @@ public class TrackObj { private final CircleQueue circleQueue = new CircleQueue(6); private S2CellId s2CellId; //s2 id权重 private S2LatLng s2LatLng; //s2 经纬度 - private double recentlyTime; //用于缓存帧数判断,暂定缓存1秒数据,中间如果有物体未出现,1秒后删除 - private double roadAngle; //道路航向 private int[] typeArray = new int[3]; private int typeWeight; //类型权重 private double lat; private double lon; private double speedAverage; - public TrackObj(MessagePad.TrackedObject data) { + public TrackObj(MessagePad.TrackedObject data, S2CellId cellId, S2LatLng latLng) { circleQueue.addQueue(new ObjQueue(data.getHeading(), data.getSpeed(), data.getLatitude(), data.getLongitude(), data.getType())); - recentlyTime = data.getSatelliteTime(); lat = data.getLatitude(); lon = data.getLongitude(); - s2LatLng = S2LatLng.fromDegrees(data.getLatitude(), data.getLongitude()); - s2CellId = S2CellId.fromLatLng(s2LatLng).parent(22); //需要验证22前后 - CenterLine centerLine = CallerMapUIServiceManager.INSTANCE.getMapUIController().getCenterLineInfo(lon, lat, -1); - if (centerLine != null && centerLine.getAngle() != 0) { - roadAngle = centerLine.getAngle(); - } - + s2LatLng = latLng; + s2CellId = cellId; //需要验证22前后 } private MessagePad.TrackedObject cacheData; @@ -50,14 +40,12 @@ public class TrackObj { public void updateObj(MessagePad.TrackedObject data) { cacheData = data; correct(); - recentlyTime = data.getSatelliteTime(); circleQueue.addQueue(new ObjQueue(cacheData.getHeading(), cacheData.getSpeed(), data.getLatitude(), data.getLongitude(), data.getType())); } private void correct() { calAverageSpeedAndType(); calLoc(); -// calHeading(); } @SuppressLint("NewApi") @@ -80,8 +68,10 @@ public class TrackObj { } speedAverage = cal / objQueueList.size(); } - typeArray = Arrays.stream(typeArray).sorted().toArray(); - typeWeight = typeArray[typeArray.length / 2] == 0 ? cacheData.getType() : typeArray[typeArray.length / 2]; + if(typeArray.length > 0){ + typeArray = Arrays.stream(typeArray).sorted().toArray(); + typeWeight = typeArray[typeArray.length / 2] == 0 ? cacheData.getType() : typeArray[typeArray.length / 2]; + } // 重新给静止物体赋值速度 if (relativeStatic()) { @@ -105,26 +95,6 @@ public class TrackObj { } } - private void calHeading() { - //更正数据,速度小于LIMIT_SPEED使用上一帧数据 -// if (relativeStatic()) { -// if (roadAngle != 0.0) { -// CenterLine centerLine = CallerHDMapManager.INSTANCE.getCenterLineInfo(lon, lat, -1); -// if (centerLine != null && centerLine.getAngle() != 0) { -// cacheData = cacheData.toBuilder().setHeading(centerLine.getAngle()).build(); -// } else { -// cacheData = cacheData.toBuilder().setHeading(circleQueue.getLastFrame().getHeading()).build(); -// } -// } else { -// cacheData = cacheData.toBuilder().setHeading(circleQueue.getLastFrame().getHeading()).build(); -// } -// } - } - - public double getRecentlyTime() { - return recentlyTime; - } - public long getCellIdPos() { return s2CellId.pos(); } @@ -167,12 +137,6 @@ public class TrackObj { } } - public boolean isFourWheelType() { - return typeWeight != TrafficTypeEnum.TYPE_TRAFFIC_ID_PEOPLE.getType() - && typeWeight != TrafficTypeEnum.TYPE_TRAFFIC_ID_BICYCLE.getType() - && typeWeight != TrafficTypeEnum.TYPE_TRAFFIC_ID_MOTO.getType(); - } - private double[] getCenterPoint(List objQueueList) { int total = objQueueList.size(); double X = 0, Y = 0, Z = 0; @@ -202,12 +166,18 @@ public class TrackObj { return d; } + public void clear(){ + circleQueue.clear(); + s2CellId = null; + s2LatLng = null; + typeArray = null; + } + @Override public String toString() { return "TrackObj{" + "circleQueue=" + circleQueue + ", s2CellId=" + s2CellId + - ", recentlyTime=" + recentlyTime + ", cacheData=" + cacheData + '}'; } diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/identify/TrackerSourceColorHelper.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/identify/TrackerSourceColorHelper.kt index 489cce927c..d530f02c48 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/identify/TrackerSourceColorHelper.kt +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/identify/TrackerSourceColorHelper.kt @@ -64,7 +64,7 @@ object TrackerSourceColorHelper { //僵尸车 if(data.addAttribute == AdditionalAttribute.ATTR_ZOMBIE){ - color = "#8F9AADFF" + color = "#AE7887FF" } // pnc预警 diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/identify/WarningHelper.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/identify/WarningHelper.kt index 2d7a5c69a4..81f546cb3d 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/identify/WarningHelper.kt +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/identify/WarningHelper.kt @@ -139,6 +139,12 @@ object WarningHelper { } } + fun remove(key:String){ + pncWarningBeautyTrafficData.remove(key) + pncWarningOriginTrafficData.remove(key) + obuWarningTrafficData.remove(key) + } + fun clear() { pncWarningBeautyTrafficData.clear() pncWarningOriginTrafficData.clear() diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/IMogoMap.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/IMogoMap.java index 07ba7245d8..5fad00ad88 100644 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/IMogoMap.java +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/IMogoMap.java @@ -46,6 +46,11 @@ public interface IMogoMap { */ IMogoMarker addMarker(String tag, MogoMarkerOptions options); + /** + * 清除所有marker + */ + void clearAllMarkers(); + /** * 批量更新锚点位置 * diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/marker/IMogoMarkerManager.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/marker/IMogoMarkerManager.java index 8e7e2db59f..f4c23bb89b 100644 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/marker/IMogoMarkerManager.java +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/marker/IMogoMarkerManager.java @@ -38,6 +38,11 @@ public interface IMogoMarkerManager { */ List addMarkers(String tag, ArrayList options, boolean moveToCenter); + /** + * 清除所有marker + */ + void clearAllMarker(); + /** * 批量更新锚点位置 * diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/AMapWrapper.java b/libraries/mogo-map/src/main/java/com/mogo/map/AMapWrapper.java index d471356be8..a517eca07a 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/AMapWrapper.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/AMapWrapper.java @@ -3,10 +3,10 @@ package com.mogo.map; import android.annotation.SuppressLint; import android.content.Context; import android.graphics.Point; +import android.util.Log; import android.util.Pair; import com.mogo.eagle.core.data.config.FunctionBuildConfig; -import com.mogo.eagle.core.data.map.MogoLatLng; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.map.center.CenterLine; import com.mogo.map.marker.AMapInfoWindowAdapter; @@ -108,6 +108,13 @@ public class AMapWrapper implements IMogoMap { return mogoMarker; } + @Override + public void clearAllMarkers() { + if (sAMap != null) { + sAMap.clearAllMarkers(); + } + } + @SuppressLint("NewApi") @Override public void updateBatchMarkerPosition(HashMap optionsArrayList) { @@ -119,6 +126,9 @@ public class AMapWrapper implements IMogoMap { MarkerSimpleData markerOptions = ObjectUtils.fromTrafficData(trackedObject); if (markerOptions != null) { markerOptionsArrayList.add(markerOptions); + if(markerOptions.id == 65061){ + Log.i("emArrow","time :" + markerOptions.time + " , lat : " + markerOptions.lat + " , lon : " + markerOptions.lon); + } } }); long time = markerOptionsArrayList.get(0).getTime(); diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/MogoMarkerManager.java b/libraries/mogo-map/src/main/java/com/mogo/map/MogoMarkerManager.java index ceb1a65a6b..db9333517e 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/MogoMarkerManager.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/MogoMarkerManager.java @@ -71,6 +71,15 @@ public class MogoMarkerManager implements IMogoMarkerManager { } } + @Override + public void clearAllMarker() { + try{ + MogoMap.getInstance().getMogoMap().clearAllMarkers(); + }catch (Exception e){ + e.printStackTrace(); + } + } + @Override public void updateBatchMarkerPosition(HashMap optionsArrayList) { try { From bdffe3b56071e65527de5a6200934222fecf265d Mon Sep 17 00:00:00 2001 From: wangmingjun Date: Mon, 27 Feb 2023 20:41:17 +0800 Subject: [PATCH 09/10] =?UTF-8?q?[M2]=20=E4=B9=98=E5=AE=A2=E5=B1=8F?= =?UTF-8?q?=E8=BD=A8=E8=BF=B9=E6=8E=92=E6=9F=A5=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../och/bus/passenger/model/PM2DrivingModel.kt | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2DrivingModel.kt b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2DrivingModel.kt index 0af825eb00..33369c39d8 100644 --- a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2DrivingModel.kt +++ b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2DrivingModel.kt @@ -192,19 +192,19 @@ class PM2DrivingModel private constructor() { private val moGoAutopilotPlanningListener = object : IMoGoPlanningRottingListener{ override fun onAutopilotRotting(globalPathResp: MessagePad.GlobalPathResp?) { - val routePoints = globalPathResp?.wayPointsList - if (null != routePoints && routePoints.size > 0) { - updateRoutePoints(routePoints) -// startOrStopRouteAndWipe(true) + globalPathResp?.let { + d(SceneConstant.M_BUS_P + TAG, "och-rotting==wayPointsSize = " + it.wayPointsList.size) + updateRoutePoints(it.wayPointsList) } } } - fun updateRoutePoints(routePoints: List?) { + fun updateRoutePoints(routePoints: List?) { mRoutePoints.clear() val latLngModels = CoordinateCalculateRouteUtil .coordinateConverterWgsToGcjLocations(mContext, routePoints) + d(SceneConstant.M_BUS_P + TAG, "och-rotting==latLngModels = " + latLngModels.size) mRoutePoints.addAll(latLngModels) calculateTwoStationsRoute() } @@ -336,7 +336,7 @@ class PM2DrivingModel private constructor() { && station.isLeaving && i + 1 < stations.size) { mDrivingInfoCallback?.updateStationsInfo(stations as MutableList, i + 1, false) if (mNextStationIndex != i + 1) { - d(SceneConstant.M_BUS_P+TAG,"轨迹排查--开始行程") + d(SceneConstant.M_BUS_P+TAG,"och-rotting--start ") mTwoStationsRouts.clear() startRemainRouteInfo() } @@ -398,7 +398,7 @@ class PM2DrivingModel private constructor() { break } for (lastPoints in lastPointsMap.values) { - d(SceneConstant.M_BUS_P + TAG, "轨迹排查==lastPoints.size() = " + lastPoints.size) + d(SceneConstant.M_BUS_P + TAG, "och-rotting==lastPoints.size() = " + lastPoints.size) var lastSumLength = 0f lastSumLength = if (lastPoints.size == 1) { //只是最后一个点,计算当前位置和最后一个点的距离 if (mNextStationIndex <= mStations.size - 1 && mNextStationIndex >= 0) { @@ -417,7 +417,7 @@ class PM2DrivingModel private constructor() { CoordinateCalculateRouteUtil.calculateRouteSumLength(lastPoints) } val lastTime = lastSumLength / BusPassengerConst.BUS_AVERAGE_SPEED * 3.6 //秒 - d(SceneConstant.M_BUS_P + TAG, "轨迹排查==lastSumLength = $lastSumLength") + d(SceneConstant.M_BUS_P + TAG, "och-rotting==lastSumLength = $lastSumLength") mDrivingInfoCallback?.updateRemainMT( lastSumLength.toLong(), lastTime.toLong() @@ -447,7 +447,7 @@ class PM2DrivingModel private constructor() { stationNext.gcjLat ) - d(SceneConstant.M_BUS_P + TAG, "轨迹排查==currentRouteIndex = " + currentRouteIndex + d(SceneConstant.M_BUS_P + TAG, "och-rotting==currentRouteIndex = " + currentRouteIndex + ", nextRouteIndex = " + nextRouteIndex) if (currentRouteIndex < nextRouteIndex) { //如果找到的next在起点的轨迹前面,直接舍弃这个轨迹,不显示 From 10f561ba26dfd7146f1e81c0e7116439ca03a7d5 Mon Sep 17 00:00:00 2001 From: wangmingjun Date: Mon, 27 Feb 2023 21:00:41 +0800 Subject: [PATCH 10/10] =?UTF-8?q?[shuttle]=20=E4=B9=98=E5=AE=A2=E5=B1=8F?= =?UTF-8?q?=E6=96=B9=E5=90=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/productFlavors/fOchShuttlePassenger.gradle | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/app/productFlavors/fOchShuttlePassenger.gradle b/app/productFlavors/fOchShuttlePassenger.gradle index 3b8169805f..a578eb87cc 100644 --- a/app/productFlavors/fOchShuttlePassenger.gradle +++ b/app/productFlavors/fOchShuttlePassenger.gradle @@ -17,7 +17,11 @@ project.android.productFlavors { // 车机类型,主要用于区分自研车机还是别人家的车机,自研车机类型为0 buildConfigField 'int', 'CAR_MACHINE_TYPE', '2' //高德地图鉴权信息 - manifestPlaceholders = [AMAP_API_VALUE: rootProject.ext.android.fLauncherAmapApiValue, CHANNEL_VALUE: "fOchShuttlePassenger",ACTIVITY_ROOT:true] + manifestPlaceholders = [AMAP_API_VALUE: rootProject.ext.android.fLauncherAmapApiValue, + CHANNEL_VALUE: "fOchShuttlePassenger", + ACTIVITY_ROOT:true, + // Activity的朝向 + SCREEN_ORIENTATION: "landscape"] // 是否基于地图 buildConfigField 'boolean', 'IS_MAP_BASED', 'true' @@ -43,6 +47,6 @@ project.android.productFlavors { buildConfigField 'boolean', 'IS_MULTI_DISPLAY', 'false' //Bus不能启动自驾的档位 - buildConfigField 'java.util.Set', 'UNABLE_LAUNCH_AUTOPILOT_GEAR_BUS', 'new java.util.HashSet(){{add(chassis.Chassis.GearPosition.GEAR_N);add(chassis.Chassis.GearPosition.GEAR_R);}}' + buildConfigField 'java.util.Set', 'UNABLE_LAUNCH_AUTOPILOT_GEAR', 'new java.util.HashSet(){{add(chassis.Chassis.GearPosition.GEAR_N);add(chassis.Chassis.GearPosition.GEAR_R);}}' } } \ No newline at end of file