From 9d7c5879ec46948add84c463ea47fca9c654d5a3 Mon Sep 17 00:00:00 2001 From: donghongyu Date: Thu, 8 Dec 2022 12:56:15 +0800 Subject: [PATCH 01/17] =?UTF-8?q?[2.12.6]=20[Change]=20[1=E3=80=81?= =?UTF-8?q?=E5=8D=87=E7=BA=A7=E9=AB=98=E7=B2=BE=E5=9C=B0=E5=9B=BE=E7=89=88?= =?UTF-8?q?=E6=9C=AC=EF=BC=8C=E4=BF=AE=E5=A4=8Dhttps://console.volcengine.?= =?UTF-8?q?com/apmplus/app/crash/detail/launch/efc7ff5e4aee5eb521344099a99?= =?UTF-8?q?2cd05=3Faid=3D302368&date=3D%7B%22granularity%22%3A%221d%22%2C%?= =?UTF-8?q?22duration%22%3A%22recently%22%2C%22range%22%3A%221w%22%7D&filt?= =?UTF-8?q?ers=3D%7B%22type%22%3A%22and%22%2C%22sub=5Fconditions%22%3A%5B%?= =?UTF-8?q?7B%22dimension%22%3A%22app=5Fversion%22%2C%22type%22%3A%22expre?= =?UTF-8?q?ssion%22%2C%22op%22%3A%22in%22%2C%22values%22%3A%5B%222.12.2.10?= =?UTF-8?q?02%22%2C%222.12.2.1001%22%2C%221.7.2.1007%22%2C%221.7.2.1002%22?= =?UTF-8?q?%5D%7D%2C%7B%22dimension%22%3A%22os%22%2C%22op%22%3A%22in%22%2C?= =?UTF-8?q?%22type%22%3A%22expression%22%2C%22values%22%3A%5B%22Android%22?= =?UTF-8?q?%5D%7D%5D%7D&org=5Fid=3D2100068151&os=3DAndroid&status=3D%5B%22?= =?UTF-8?q?pending%22%2C%22processing%22%2C%22solved%22%2C%22reopen%22%5D]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: donghongyu --- gradle.properties | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gradle.properties b/gradle.properties index d83654b400..0b041116c8 100644 --- a/gradle.properties +++ b/gradle.properties @@ -85,8 +85,8 @@ MOGO_LOCATION_VERSION=1.4.3.27 MOGO_TELEMATIC_VERSION=1.4.3.27 ######## MogoAiCloudSDK Version ######## # 自研地图 -MAP_SDK_VERSION=2.7.0.10 -MAP_SDK_OPERATION_VERSION=1.1.3.5 +MAP_SDK_VERSION=2.8.0.8 +MAP_SDK_OPERATION_VERSION=1.1.4.1 # websocket WEBSOCKET_VERSION=1.1.7 ## 产品库必备配置,产品库自动对versionCode和versionName版本进行升级 From 32e054da64826d8ec7aa33b5626c22cfbba2e40a Mon Sep 17 00:00:00 2001 From: lixiaopeng Date: Thu, 8 Dec 2022 14:23:56 +0800 Subject: [PATCH 02/17] =?UTF-8?q?[2.13.0=20=E4=BC=98=E5=8C=96=E7=BB=BF?= =?UTF-8?q?=E6=B3=A2=E9=80=9A=E8=A1=8C=E5=92=8C=E9=97=AF=E7=BA=A2=E7=81=AF?= =?UTF-8?q?=E9=A2=84=E8=AD=A6]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../obu/mogo/MogoPrivateObuNewManager.kt | 114 ++++++++++-------- 1 file changed, 62 insertions(+), 52 deletions(-) diff --git a/core/function-impl/mogo-core-function-obu-mogo/src/main/java/com/mogo/eagle/core/function/obu/mogo/MogoPrivateObuNewManager.kt b/core/function-impl/mogo-core-function-obu-mogo/src/main/java/com/mogo/eagle/core/function/obu/mogo/MogoPrivateObuNewManager.kt index 349c1798fe..730f9469b6 100644 --- a/core/function-impl/mogo-core-function-obu-mogo/src/main/java/com/mogo/eagle/core/function/obu/mogo/MogoPrivateObuNewManager.kt +++ b/core/function-impl/mogo-core-function-obu-mogo/src/main/java/com/mogo/eagle/core/function/obu/mogo/MogoPrivateObuNewManager.kt @@ -818,12 +818,16 @@ class MogoPrivateObuNewManager private constructor() { // 移除顶部弹窗 CallerHmiManager.disableWarningTrafficLight() CallerHmiManager.disableWarningV2X(appId.toString()) + isShowGreenWave = false + isShowRunRedLight = false } } } private var isRedLight = false private var isGreenLight = false + private var isShowGreenWave = false + private var isShowRunRedLight = false /** * 修改红绿灯 @@ -846,60 +850,66 @@ class MogoPrivateObuNewManager private constructor() { 0x0 -> {//不可用 V2I_RLVW_VIOLATION_TYPE_UNAVAILABLE 无效 } - 0x1 -> {//闯红灯 V2I_RLVW_VIOLATION_TYPE_RUNNING_RED_LIGHT TODO 需要约束一个红灯周期只显示一次 -// CallerHmiManager.disableWarningV2X(0x2.toString()) -// CallerLogger.d("$M_OBU${MogoObuConst.TAG_MOGO_NEW_OBU}","changeTrafficLightStatus 闯红灯 --------> ") -// ttsContent = EventTypeEnumTrafficLight.getWarningTts(appId.toString()) -// alertContent = EventTypeEnumTrafficLight.getWarningContent(appId.toString()) -// CallerHmiManager.warningV2X( -// appId.toString(), alertContent, ttsContent,// 只有第一次才tts,防止更新的时候不断的提醒 -// appId.toString(), null, true, 5000L) + 0x1 -> {//闯红灯 V2I_RLVW_VIOLATION_TYPE_RUNNING_RED_LIGHT 一个红灯周期只显示一次 + if (!isShowRunRedLight) { + isShowRunRedLight = true + CallerHmiManager.disableWarningV2X(0x2.toString()) + CallerLogger.d("$M_OBU${MogoObuConst.TAG_MOGO_NEW_OBU}","changeTrafficLightStatus 闯红灯 --------> ") + ttsContent = EventTypeEnumTrafficLight.getWarningTts(appId.toString()) + alertContent = EventTypeEnumTrafficLight.getWarningContent(appId.toString()) + CallerHmiManager.warningV2X( + appId.toString(), alertContent, ttsContent,// 只有第一次才tts,防止更新的时候不断的提醒 + appId.toString(), null, true, 5000L) + } } - 0x2 -> { //绿波通行引导 V2I_RLVW_VIOLATION_TYPE_NO_VIOLATION TODO 需要约束一个绿灯周期只显示一次 -// CallerHmiManager.disableWarningV2X(0x1.toString()) -// CallerLogger.d( -// "$M_OBU${MogoObuConst.TAG_MOGO_NEW_OBU}", -// "speed_min = ${currentLight.suggestMinSpeed} --speed_max = ${currentLight.suggestMaxSpeed}" -// ) -// val adviceSpeed = -// "${currentLight.suggestMinSpeed} - ${currentLight.suggestMaxSpeed}" -// val adviceSpeedTts = -// "${currentLight.suggestMinSpeed}到${currentLight.suggestMaxSpeed}" -// ttsContent = -// String.format( -// EventTypeEnumTrafficLight.getWarningTts(appId.toString()), -// adviceSpeedTts -// ) -// alertContent = -// String.format( -// EventTypeEnumTrafficLight.getWarningContent(appId.toString()), -// adviceSpeed -// ) -// -// val maxSpeed = currentLight.suggestMaxSpeed -// if (maxSpeed > 0) { -// CallerMsgBoxManager.saveMsgBox( -// MsgBoxBean( -// MsgBoxType.OBU, -// V2XMsg( -// EventTypeEnumNew.TYPE_USECASE_ID_IVP_GREEN.poiType, -// alertContent, -// ttsContent -// ) -// ) -// ) -// -// CallerHmiManager.warningV2X( -// EventTypeEnumNew.TYPE_USECASE_ID_IVP_GREEN.poiType, -// alertContent, -// ttsContent,// 只有第一次才tts,防止更新的时候不断的提醒 -// appId.toString(), -// null, -// true, -// 5000L -// ) -// } + 0x2 -> { //绿波通行引导 V2I_RLVW_VIOLATION_TYPE_NO_VIOLATION 一个绿灯周期只显示一次 100m的时候 + if (!isShowGreenWave) { + isShowGreenWave = true + CallerHmiManager.disableWarningV2X(0x1.toString()) + CallerLogger.d( + "$M_OBU${MogoObuConst.TAG_MOGO_NEW_OBU}", + "speed_min = ${currentLight.suggestMinSpeed} --speed_max = ${currentLight.suggestMaxSpeed}" + ) + val adviceSpeed = + "${currentLight.suggestMinSpeed} - ${currentLight.suggestMaxSpeed}" + val adviceSpeedTts = + "${currentLight.suggestMinSpeed}到${currentLight.suggestMaxSpeed}" + ttsContent = + String.format( + EventTypeEnumTrafficLight.getWarningTts(appId.toString()), + adviceSpeedTts + ) + alertContent = + String.format( + EventTypeEnumTrafficLight.getWarningContent(appId.toString()), + adviceSpeed + ) + + val maxSpeed = currentLight.suggestMaxSpeed + if (maxSpeed > 0) { + CallerMsgBoxManager.saveMsgBox( + MsgBoxBean( + MsgBoxType.OBU, + V2XMsg( + EventTypeEnumNew.TYPE_USECASE_ID_IVP_GREEN.poiType, + alertContent, + ttsContent + ) + ) + ) + + CallerHmiManager.warningV2X( + EventTypeEnumNew.TYPE_USECASE_ID_IVP_GREEN.poiType, + alertContent, + ttsContent,// 只有第一次才tts,防止更新的时候不断的提醒 + appId.toString(), + null, + true, + 5000L + ) + } + } } } From 3ce8d9e9fbe60c9164eb1e385aeca85089163065 Mon Sep 17 00:00:00 2001 From: wangmingjun Date: Thu, 8 Dec 2022 15:00:01 +0800 Subject: [PATCH 03/17] =?UTF-8?q?[2.13.0]bus=E5=8F=B8=E6=9C=BA=E7=AB=AF?= =?UTF-8?q?=E5=88=B0=E7=AB=99bug=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/mogo/och/bus/model/BusOrderModel.java | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/model/BusOrderModel.java b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/model/BusOrderModel.java index e46780606e..cd7b5ec790 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/model/BusOrderModel.java +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/model/BusOrderModel.java @@ -644,10 +644,15 @@ public class BusOrderModel { @Override public void onSuccess(BaseData o) { CallerLogger.INSTANCE.d(M_BUS + TAG, "行程日志-arriveSiteStation success"); - queryBusRoutes(); - - arriveStationSuccess(arrivedStationIndex, departureStopName, arriveStation); - + if (o != null && o.code == 0){ + queryBusRoutes(); + isArrivedStation = true; + isGoingToNextStation = false; + arriveStationSuccess(arrivedStationIndex, departureStopName, arriveStation); + }else { + isArrivedStation = false; + isGoingToNextStation = true; + } //5s轮询核销乘客 // startOrStopQueryPassengerWriteOff(true); } @@ -1012,13 +1017,10 @@ public class BusOrderModel { } if (isArrivedStation) return; - isArrivedStation = true; CallerLogger.INSTANCE.d(M_BUS + TAG, "行程日志-当前==backgroundCurrentStationIndex=" + backgroundCurrentStationIndex); - isGoingToNextStation = false; - arriveSiteStation(); } From c8fcfc9543e5fda56d166a737243152ebb4e2475 Mon Sep 17 00:00:00 2001 From: lixiaopeng Date: Thu, 8 Dec 2022 15:44:57 +0800 Subject: [PATCH 04/17] =?UTF-8?q?[2.13.0=20=E4=BF=AE=E6=94=B9=E9=99=90?= =?UTF-8?q?=E9=80=9F=E7=9A=84=E5=BC=80=E5=85=B3]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../function/hmi/ui/setting/DebugSettingView.kt | 2 +- .../core/function/hmi/ui/setting/SOPSettingView.kt | 6 ++++++ .../src/main/res/layout/view_debug_setting.xml | 4 ++-- .../src/main/res/layout/view_sop_setting.xml | 14 +++++++++++++- .../function/obu/mogo/MogoPrivateObuNewManager.kt | 1 + .../mogo/eagle/core/data/config/HmiBuildConfig.kt | 2 +- 6 files changed, 24 insertions(+), 5 deletions(-) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt index 2a0d1868dd..b36220de4e 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt @@ -1145,7 +1145,7 @@ class DebugSettingView @JvmOverloads constructor( * 限速数据,优先使用obu,默认打开 */ tbRoadLimitSpeed.setOnCheckedChangeListener { _, isChecked -> - HmiBuildConfig.isShowObuLimitSpeedView = !isChecked + HmiBuildConfig.isShowObuLimitSpeedView = isChecked } /** diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/SOPSettingView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/SOPSettingView.kt index b3f44f967d..c4c112f21d 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/SOPSettingView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/SOPSettingView.kt @@ -2,6 +2,7 @@ package com.mogo.eagle.core.function.hmi.ui.setting import android.content.Context import android.util.AttributeSet +import android.util.Log import android.view.LayoutInflater import android.view.View import androidx.constraintlayout.widget.ConstraintLayout @@ -94,6 +95,11 @@ class SOPSettingView @JvmOverloads constructor( } } + tbRoadLimitSpeedSop.setOnCheckedChangeListener { _, isChecked -> + //默认关闭 + HmiBuildConfig.isShowObuLimitSpeedView = isChecked + } + //红绿灯标识 tbTrafficLight.isChecked = HmiBuildConfig.isShowTrafficLightView tbTrafficLight.setOnCheckedChangeListener { _, isChecked -> diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_debug_setting.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_debug_setting.xml index 4ec2b8f47a..7a32567b16 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_debug_setting.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_debug_setting.xml @@ -1082,8 +1082,8 @@ android:layout_columnWeight="1" android:layout_margin="2dp" android:gravity="center" - android:textOff="关闭路侧限速" - android:textOn="获取路侧限速" + android:textOff="获取路侧限速提醒" + android:textOn="关闭路侧限速提醒" android:textSize="@dimen/dp_24" /> diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_sop_setting.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_sop_setting.xml index 5546db154c..906309f37f 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_sop_setting.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_sop_setting.xml @@ -167,12 +167,24 @@ app:layout_constraintTop_toBottomOf="@id/tbCloudWeaknessTrafficSop" /> + + Date: Thu, 8 Dec 2022 16:38:32 +0800 Subject: [PATCH 05/17] =?UTF-8?q?2.13.0=20=E6=B7=BB=E5=8A=A0save=E5=89=8D?= =?UTF-8?q?=E7=9A=84=E6=95=B0=E6=8D=AE=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../obu/mogo/MogoPrivateObuManager.kt | 32 +++++++++++++------ .../obu/mogo/MogoPrivateObuNewManager.kt | 8 ++--- 2 files changed, 26 insertions(+), 14 deletions(-) diff --git a/core/function-impl/mogo-core-function-obu-mogo/src/main/java/com/mogo/eagle/core/function/obu/mogo/MogoPrivateObuManager.kt b/core/function-impl/mogo-core-function-obu-mogo/src/main/java/com/mogo/eagle/core/function/obu/mogo/MogoPrivateObuManager.kt index 4c49f58d58..1be115a6a7 100644 --- a/core/function-impl/mogo-core-function-obu-mogo/src/main/java/com/mogo/eagle/core/function/obu/mogo/MogoPrivateObuManager.kt +++ b/core/function-impl/mogo-core-function-obu-mogo/src/main/java/com/mogo/eagle/core/function/obu/mogo/MogoPrivateObuManager.kt @@ -372,13 +372,9 @@ class MogoPrivateObuManager private constructor() { when (status) { // 添加 - ObuConstants.STATUS.ADD, - ObuConstants.STATUS.UPDATE// 更新 - -> { - //显示警告红边 TODO 需要确定是什么值 -// CallerHmiManager.showWarning(direction) - + ObuConstants.STATUS.ADD -> { //不显示弹框,其它保留 + CallerLogger.d("$M_OBU${MogoObuConst.TAG_MOGO_OBU}", "old onCvxRtiThreatIndInfo ------> appId = $appId --- alertContent = $alertContent --- ttsContent = $ttsContent ") CallerMsgBoxManager.saveMsgBox( MsgBoxBean( MsgBoxType.OBU, @@ -401,6 +397,12 @@ class MogoPrivateObuManager private constructor() { true, 5000L ) + } + + ObuConstants.STATUS.UPDATE -> { + //显示警告红边 TODO 需要确定是什么值 +// CallerHmiManager.showWarning(direction) + // 更新数据 TrafficDataConvertUtils.cvxRtiThreatIndInfo2TrafficData(info)?.let { CallerObuListenerManager.invokeTrackerWarningInfo(it) @@ -408,6 +410,7 @@ class MogoPrivateObuManager private constructor() { ?.updateITrafficThreatLevelInfo(it) } } + // 删除 ObuConstants.STATUS.DELETE -> { // 关闭警告红边 @@ -500,12 +503,11 @@ class MogoPrivateObuManager private constructor() { when (info.status) { // 添加 - ObuConstants.STATUS.ADD, - ObuConstants.STATUS.UPDATE// 更新 - -> { -// if (level == 2 || level == 3) { //不考虑level + ObuConstants.STATUS.ADD -> { + // if (level == 2 || level == 3) { //不考虑level //显示警告红边 CallerHmiManager.showWarning(direction) + CallerLogger.d("$M_OBU${MogoObuConst.TAG_MOGO_OBU}", "old onCvxPtcThreatIndInfo ------> v2xType = $v2xType --- alertContent = $alertContent --- ttsContent = $ttsContent ") CallerMsgBoxManager.saveMsgBox( MsgBoxBean( MsgBoxType.OBU, @@ -529,6 +531,7 @@ class MogoPrivateObuManager private constructor() { 5000L ) // } + // 更新数据 TrafficDataConvertUtils.cvxPtcThreatIndInfo2TrafficData(info)?.let { CallerObuListenerManager.invokeTrackerWarningInfo(it) @@ -536,6 +539,10 @@ class MogoPrivateObuManager private constructor() { ?.updateITrafficThreatLevelInfo(it) } } + + ObuConstants.STATUS.UPDATE -> { + } + // 删除 ObuConstants.STATUS.DELETE -> { // 关闭警告红边 @@ -721,6 +728,7 @@ class MogoPrivateObuManager private constructor() { 0x2 -> {//闯红灯 V2I_RLVW_VIOLATION_TYPE_RUNNING_RED_LIGHT ttsContent = EventTypeEnum.getWarningTts(appId.toString()) alertContent = EventTypeEnum.getWarningContent(appId.toString()) + CallerLogger.d("$M_OBU${MogoObuConst.TAG_MOGO_OBU}", "old changeTrafficLightStatus ------> appId.toString() = ${appId.toString()} --- alertContent = $alertContent --- ttsContent = $ttsContent ") CallerMsgBoxManager.saveMsgBox( MsgBoxBean( MsgBoxType.OBU, @@ -794,6 +802,7 @@ class MogoPrivateObuManager private constructor() { val maxSpeed = currentLight.glosa_suggested_speed_max.toInt() if (maxSpeed > 0) { + CallerLogger.d("$M_OBU${MogoObuConst.TAG_MOGO_OBU}", "old changeTrafficLightStatus ------> TYPE_USECASE_ID_IVP_GREEN --- alertContent = $alertContent --- ttsContent = $ttsContent ") CallerMsgBoxManager.saveMsgBox( MsgBoxBean( MsgBoxType.OBU, @@ -926,6 +935,9 @@ class MogoPrivateObuManager private constructor() { ) if (level == 2 || level == 3) { //不显示顶部弹框,其它保留 + CallerLogger.d("$M_OBU${MogoObuConst.TAG_MOGO_OBU}", + "old handleSdkObu appId2 = $appId --- level = $level ---ttsContent = $ttsContent --- alertContent = $alertContent --- direction = $direction" + ) CallerMsgBoxManager.saveMsgBox( MsgBoxBean( MsgBoxType.OBU, diff --git a/core/function-impl/mogo-core-function-obu-mogo/src/main/java/com/mogo/eagle/core/function/obu/mogo/MogoPrivateObuNewManager.kt b/core/function-impl/mogo-core-function-obu-mogo/src/main/java/com/mogo/eagle/core/function/obu/mogo/MogoPrivateObuNewManager.kt index e3d6d6d264..7fb5ea75ce 100644 --- a/core/function-impl/mogo-core-function-obu-mogo/src/main/java/com/mogo/eagle/core/function/obu/mogo/MogoPrivateObuNewManager.kt +++ b/core/function-impl/mogo-core-function-obu-mogo/src/main/java/com/mogo/eagle/core/function/obu/mogo/MogoPrivateObuNewManager.kt @@ -401,7 +401,7 @@ class MogoPrivateObuNewManager private constructor() { CallerLogger.d( "$M_OBU${MogoObuConst.TAG_MOGO_NEW_OBU}", - "ttsContent = $ttsContent --alertContent = $alertContent --appId = $appId ---direction = ${direction.direction} --distance = ${Math.round(data.warningMsg[0].distance)} ---eventRadius = ${Math.round(data.warningMsg[0].eventRadius)} --speedMaxLimit = ${data.warningMsg[0].speedMaxLimit.toInt()}" + "new onMogoObuRsiWarning ttsContent = $ttsContent --alertContent = $alertContent --appId = $appId ---direction = ${direction.direction} --distance = ${Math.round(data.warningMsg[0].distance)} ---eventRadius = ${Math.round(data.warningMsg[0].eventRadius)} --speedMaxLimit = ${data.warningMsg[0].speedMaxLimit.toInt()}" ) when (status) { MogoObuConstants.STATUS.ADD -> { // 添加 @@ -502,7 +502,7 @@ class MogoPrivateObuNewManager private constructor() { if (data.warningMsg != null && data.warningMsg.warningData != null && data.warningMsg.warningData.size > 0) { level = data.warningMsg.warningData[0].warningLevel //默认是1个 CallerLogger.d("$M_OBU${MogoObuConst.TAG_MOGO_NEW_OBU}", - "onMogoObuRsmWarning ---status---> ${data.status} ---data.warningMsg.warningData[0].status = ${data.warningMsg.warningData[0].status}" + "new onMogoObuRsmWarning ---status---> ${data.status} ---data.warningMsg.warningData[0].status = ${data.warningMsg.warningData[0].status} ---v2xType = $v2xType ---alertContent = $alertContent ---ttsContent = $ttsContent " ) when (data.warningMsg.warningData[0].status) { @@ -736,7 +736,7 @@ class MogoPrivateObuNewManager private constructor() { MogoObuConstants.STATUS.UPDATE -> { CallerLogger.d( "$M_OBU${MogoObuConst.TAG_MOGO_NEW_OBU}", - "appId2 = $appId --- level = $level ---ttsContent = $ttsContent --- alertContent = $alertContent --- direction = $direction" + "new handleSdkObu appId2 = $appId --- level = $level ---ttsContent = $ttsContent --- alertContent = $alertContent --- direction = $direction" ) if (level == 2 || level == 3) { //不显示弹框,其它保留 @@ -870,7 +870,7 @@ class MogoPrivateObuNewManager private constructor() { CallerHmiManager.disableWarningV2X(0x1.toString()) CallerLogger.d( "$M_OBU${MogoObuConst.TAG_MOGO_NEW_OBU}", - "speed_min = ${currentLight.suggestMinSpeed} --speed_max = ${currentLight.suggestMaxSpeed}" + "new changeTrafficLightStatus speed_min = ${currentLight.suggestMinSpeed} --speed_max = ${currentLight.suggestMaxSpeed} --TYPE_USECASE_ID_IVP_GREEN ---alertContent = $alertContent ---ttsContent = $ttsContent" ) val adviceSpeed = "${currentLight.suggestMinSpeed} - ${currentLight.suggestMaxSpeed}" From b215f61e2de603b9f5387b81b8df59901376437a Mon Sep 17 00:00:00 2001 From: wangmingjun Date: Thu, 8 Dec 2022 18:08:13 +0800 Subject: [PATCH 06/17] =?UTF-8?q?[2.13.0]bus=E5=8F=B8=E6=9C=BA=E7=AB=AF?= =?UTF-8?q?=E5=88=B0=E7=AB=99bug=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/mogo/och/bus/model/BusOrderModel.java | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/model/BusOrderModel.java b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/model/BusOrderModel.java index cd7b5ec790..1cd53cfb92 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/model/BusOrderModel.java +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/model/BusOrderModel.java @@ -649,9 +649,6 @@ public class BusOrderModel { isArrivedStation = true; isGoingToNextStation = false; arriveStationSuccess(arrivedStationIndex, departureStopName, arriveStation); - }else { - isArrivedStation = false; - isGoingToNextStation = true; } //5s轮询核销乘客 // startOrStopQueryPassengerWriteOff(true); @@ -659,12 +656,11 @@ public class BusOrderModel { @Override public void onFail(int code, String failMsg) { - isArrivedStation = false; - isGoingToNextStation = true; if (ToastUtilsOch.isCustomFastClick(5000)) { if (!NetworkUtils.isConnected(mContext)) { ToastUtils.showShort("网络异常,请稍后重试"); } else { + if (isArrivedStation) return; ToastUtils.showShort(failMsg); } } From 69f4e2e4f37d0ef277a9affc1b30f50210b92a21 Mon Sep 17 00:00:00 2001 From: lixiaopeng Date: Thu, 8 Dec 2022 18:15:35 +0800 Subject: [PATCH 07/17] =?UTF-8?q?[2.13.0]=20=E4=BC=98=E5=8C=96=E4=BA=8B?= =?UTF-8?q?=E4=BB=B6=E5=9B=BE=E6=A0=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../eagle/core/data/enums/V2iEventTypeEnum.kt | 32 +++++++++--------- .../icon_warning_gas_station.png | Bin 0 -> 15843 bytes .../icon_warning_road_hollow.png | Bin 0 -> 17934 bytes .../icon_warning_v2x_no_tooting.png | Bin 0 -> 19250 bytes 4 files changed, 16 insertions(+), 16 deletions(-) create mode 100755 core/mogo-core-res/src/main/function-hmi-res/drawable-xhdpi/icon_warning_gas_station.png create mode 100755 core/mogo-core-res/src/main/function-hmi-res/drawable-xhdpi/icon_warning_road_hollow.png create mode 100755 core/mogo-core-res/src/main/function-hmi-res/drawable-xhdpi/icon_warning_v2x_no_tooting.png diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/V2iEventTypeEnum.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/V2iEventTypeEnum.kt index a08eb1494d..d7cff6cad0 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/V2iEventTypeEnum.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/V2iEventTypeEnum.kt @@ -51,7 +51,7 @@ enum class V2iEventTypeEnum( TYPE_USECASE_ID_ROAD_VEHICLE_RETROGRADE( //车辆逆行 904.toString(), "逆行车辆", - poiTypeSrcVr = R.drawable.icon_warning_v2x_school, + poiTypeSrcVr = R.drawable.icon_default, content = "前方%s米逆行车辆,影响路段%s米", tts = "前方%s米逆行车辆,影响路段%s米" ), @@ -83,7 +83,7 @@ enum class V2iEventTypeEnum( TYPE_ID_BRIDGE( 8.toString(), "桥梁", - poiTypeSrcVr = R.drawable.icon_warning_v2x_tramcar, + poiTypeSrcVr = R.drawable.icon_warning_v2x_hump_bridge, content = "前方%s米桥梁", tts = "前方%s米桥梁" ), @@ -97,42 +97,42 @@ enum class V2iEventTypeEnum( TYPE_ID_SLIPPERY_ROAD( 17.toString(), "路滑", - poiTypeSrcVr = R.drawable.icon_warning_v2x_tramcar, + poiTypeSrcVr = R.drawable.v2x_icon_jiebing_vr, content = "前方%s米路滑", tts = "前方%s米路滑" ), TYPE_ID_TUNNEL( 21.toString(), "隧道", - poiTypeSrcVr = R.drawable.icon_warning_v2x_tramcar, + poiTypeSrcVr = R.drawable.icon_default, content = "前方%s米隧道", tts = "前方%s米隧道" ), TYPE_ID_FERRY( 22.toString(), "渡轮", - poiTypeSrcVr = R.drawable.icon_warning_v2x_tramcar, + poiTypeSrcVr = R.drawable.icon_default, content = "前方%s米渡轮", tts = "前方%s米渡轮" ), TYPE_ID_UNEVEN_ROAD( 24.toString(), "路面不平", - poiTypeSrcVr = R.drawable.icon_warning_v2x_tramcar, + poiTypeSrcVr = R.drawable.icon_warning_road_hollow, content = "前方%s米路面不平", tts = "前方%s米路面不平" ), TYPE_ID_NON_MOTOR_VEHICLE( 32.toString(), "非机动车", - poiTypeSrcVr = R.drawable.icon_warning_v2x_tramcar, + poiTypeSrcVr = R.drawable.icon_warning_v2x_motobike, content = "前方%s米有非机动车", tts = "前方%s米有非机动车" ), TYPE_ID_OBSTACLE( 36.toString(), "障碍", - poiTypeSrcVr = R.drawable.icon_warning_v2x_tramcar, + poiTypeSrcVr = R.drawable.icon_default, content = "前方%s米障碍", tts = "前方%s米障碍" ), @@ -146,21 +146,21 @@ enum class V2iEventTypeEnum( TYPE_VEHICLE_QUEUE( 47.toString(), "车队", - poiTypeSrcVr = R.drawable.icon_warning_v2x_road_construction, + poiTypeSrcVr = R.drawable.icon_default, content = "前方%s米车队", tts = "前方%s米车队" ), TYPE_NO_PASSING( 51.toString(), "不通", - poiTypeSrcVr = R.drawable.icon_warning_v2x_road_construction, + poiTypeSrcVr = R.drawable.v2x_icon_fenglu_vr, content = "前方%s米不通", tts = "前方%s米不通" ), TYPE_NO_TURNING_AROUND( 75.toString(), "禁止掉头", - poiTypeSrcVr = R.drawable.icon_warning_v2x_road_construction, + poiTypeSrcVr = R.drawable.icon_default, content = "前方%s米禁止掉头", tts = "前方%s米禁止掉头" ), @@ -174,7 +174,7 @@ enum class V2iEventTypeEnum( TYPE_USECASE_ID_ROAD_NO_TOOTING( 80.toString(), "禁止鸣笛", - poiTypeSrcVr = R.drawable.icon_warning_v2x_no_parking, + poiTypeSrcVr = R.drawable.icon_warning_v2x_no_tooting, content = "前方%s米禁止鸣笛", tts = "前方%s米禁止鸣笛" ), @@ -189,21 +189,21 @@ enum class V2iEventTypeEnum( TYPE_USECASE_ID_BUS_WARNING( 123.toString(), "公交提醒", - poiTypeSrcVr = R.drawable.icon_warning_v2x_no_parking, + poiTypeSrcVr = R.drawable.icon_warning_v2x_tramcar, content = "前方%s米公交提醒", tts = "前方%s米公交提醒" ), TYPE_USECASE_ID_NARROW_RIGHT( 163.toString(), "右侧变窄/车道数减少", - poiTypeSrcVr = R.drawable.icon_warning_v2x_no_parking, + poiTypeSrcVr = R.drawable.icon_default, content = "前方%s米右侧变窄/车道数减少", tts = "前方%s米右侧变窄/车道数减少" ), TYPE_USECASE_ID_GAS_STATION( 201.toString(), "加油站", - poiTypeSrcVr = R.drawable.icon_warning_v2x_no_parking, + poiTypeSrcVr = R.drawable.icon_warning_gas_station, content = "前方%s米加油站", tts = "前方%s米加油站" ), @@ -218,7 +218,7 @@ enum class V2iEventTypeEnum( TYPE_USECASE_ID_ACCIDENT( 244.toString(), "事故", - poiTypeSrcVr = R.drawable.icon_warning_v2x_school, + poiTypeSrcVr = R.drawable.v2x_icon_jiaotongshigu_vr, content = "前方%s米事故", tts = "前方%s米事故" ), diff --git a/core/mogo-core-res/src/main/function-hmi-res/drawable-xhdpi/icon_warning_gas_station.png b/core/mogo-core-res/src/main/function-hmi-res/drawable-xhdpi/icon_warning_gas_station.png new file mode 100755 index 0000000000000000000000000000000000000000..ca5494879d09cae12ec165e638143055449d9044 GIT binary patch literal 15843 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 Z{{v-KH~mK}pk@F7002ovPDHLkV1j{Bq(1-v literal 0 HcmV?d00001 From 1a1f80845628e5974267b187642cc236d9255d80 Mon Sep 17 00:00:00 2001 From: wangmingjun Date: Thu, 8 Dec 2022 18:36:11 +0800 Subject: [PATCH 08/17] =?UTF-8?q?[2.13.0]bus=E5=BC=80=E5=A7=8B=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E5=89=8D=E6=8F=90=E7=A4=BAremove?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/mogo/och/bus/model/BusOrderModel.java | 1 + 1 file changed, 1 insertion(+) diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/model/BusOrderModel.java b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/model/BusOrderModel.java index 1cd53cfb92..311c6b1972 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/model/BusOrderModel.java +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/model/BusOrderModel.java @@ -439,6 +439,7 @@ public class BusOrderModel { clearAutopilotControlParameters(); closeBeautificationMode(); clearStartAutopilotTag(); + removeTipRunnables(); return; } CallerLogger.INSTANCE.d(M_BUS + TAG, "获取到小巴路线数据: " + data); From 8363e4eb1163cfbf8a46771bd9645eb0cee7dc62 Mon Sep 17 00:00:00 2001 From: pangfan Date: Thu, 8 Dec 2022 18:38:05 +0800 Subject: [PATCH 09/17] =?UTF-8?q?[2.12.6]=E5=90=AF=E5=8A=A8=E8=87=AA?= =?UTF-8?q?=E9=A9=BE=E5=A4=B1=E8=B4=A5=E5=9F=8B=E7=82=B9=E4=BC=98=E5=8C=96?= =?UTF-8?q?=EF=BC=9A=E5=A2=9E=E5=8A=A0code?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/mogo/och/bus/constant/BusConst.kt | 1 + .../java/com/mogo/och/bus/model/BusOrderModel.java | 6 ++++-- .../com/mogo/och/bus/util/BusAnalyticsManager.java | 12 ++++++------ .../module/callback/OchAdasStartFailureCallback.kt | 2 +- .../common/module/manager/OCHAdasAbilityManager.java | 11 +++++++++-- .../java/com/mogo/och/taxi/constant/TaxiConst.kt | 1 + .../main/java/com/mogo/och/taxi/model/TaxiModel.java | 4 ++-- .../mogo/och/taxi/utils/TaxiAnalyticsManager.java | 9 +++++---- 8 files changed, 29 insertions(+), 17 deletions(-) diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/constant/BusConst.kt b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/constant/BusConst.kt index 686e08b4e4..e98439b8f1 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/constant/BusConst.kt +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/constant/BusConst.kt @@ -63,6 +63,7 @@ class BusConst { const val EVENT_PARAM_END_NAME = "end_name" const val EVENT_PARAM_LINE_ID = "line_id" const val EVENT_PARAM_START_RESULT = "start_autopilot" // true/false + const val EVENT_PARAM_START_FAILURE_CODE = "start_autopilot_failure_code" // 启动自驾失败code const val EVENT_PARAM_START_FAILURE_MSG = "start_autopilot_failure_msg" // 启动自驾失败原因 const val EVENT_PARAM_PLATE_NUM = "plate_number" // 车牌号 const val EVENT_PARAM_ENV_ONLINE = "env_online" // 是否线上环境:true/false diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/model/BusOrderModel.java b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/model/BusOrderModel.java index 311c6b1972..d8e6827166 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/model/BusOrderModel.java +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/model/BusOrderModel.java @@ -68,6 +68,8 @@ import com.mogo.och.common.module.utils.PinYinUtil; import com.mogo.och.common.module.utils.ToastUtilsOch; import com.mogo.och.common.module.voice.VoiceNotice; +import org.jetbrains.annotations.NotNull; + import java.io.IOException; import java.util.ArrayList; import java.util.List; @@ -369,8 +371,8 @@ public class BusOrderModel { private final OchAdasStartFailureCallback mAdasStartFailureListener = new OchAdasStartFailureCallback() { @Override - public void onStartAutopilotFailure(@NonNull String startFailedMessage) { - BusAnalyticsManager.getInstance().triggerStartAutopilotFailureEventByAdas(startFailedMessage); + public void onStartAutopilotFailure(@NotNull String startFailedCode, @NonNull String startFailedMessage) { + BusAnalyticsManager.getInstance().triggerStartAutopilotFailureEventByAdas(startFailedCode, startFailedMessage); if (mADASStatusCallback != null && !FunctionBuildConfig.isDemoMode){ CallerLogger.INSTANCE.e( M_BUS + TAG, "mAdasStartFailureListener = "+startFailedMessage ); mADASStatusCallback.onStartAdasFailure(); diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/util/BusAnalyticsManager.java b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/util/BusAnalyticsManager.java index 1b28355846..5cc16e22cb 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/util/BusAnalyticsManager.java +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/util/BusAnalyticsManager.java @@ -38,21 +38,21 @@ public class BusAnalyticsManager { private Runnable startAutopilotRunnable = () -> { // 15s内未开启,上报失败埋点 - triggerStartAutopilotFailureEvent("15s后app等待超时"); + triggerStartAutopilotFailureEvent("", "15s后app等待超时"); }; - public void triggerStartAutopilotFailureEventByAdas(String failMsg){ + public void triggerStartAutopilotFailureEventByAdas(String failCode, String failMsg){ removeWaitingCallback(); - triggerStartAutopilotFailureEvent(failMsg); + triggerStartAutopilotFailureEvent(failCode, failMsg); } - private void triggerStartAutopilotFailureEvent(String failMsg){ + private void triggerStartAutopilotFailureEvent(String failCode, String failMsg){ CallerLogger.INSTANCE.e( M_BUS + "triggerStartAutopilotFailureEvent", failMsg ); mStartAutopilotParams.put(BusConst.EVENT_PARAM_START_RESULT , CallerAutoPilotStatusListenerManager.INSTANCE.getAutoPilotStatusInfo().getState() == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING); - mStartAutopilotParams.put(BusConst.EVENT_PARAM_START_FAILURE_MSG, - failMsg); + mStartAutopilotParams.put(BusConst.EVENT_PARAM_START_FAILURE_CODE, failCode); + mStartAutopilotParams.put(BusConst.EVENT_PARAM_START_FAILURE_MSG, failMsg); AnalyticsManager.INSTANCE.track(mStartAutopilotKey, mStartAutopilotParams); } diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/callback/OchAdasStartFailureCallback.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/callback/OchAdasStartFailureCallback.kt index b66f82d19a..e723b6248d 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/callback/OchAdasStartFailureCallback.kt +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/callback/OchAdasStartFailureCallback.kt @@ -5,5 +5,5 @@ package com.mogo.och.common.module.callback * @date: 2022/11/9 */ interface OchAdasStartFailureCallback { - fun onStartAutopilotFailure(startFailedMessage : String) + fun onStartAutopilotFailure(startFailedCode : String, startFailedMessage : String) } \ No newline at end of file diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/OCHAdasAbilityManager.java b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/OCHAdasAbilityManager.java index 33d7fead37..fda4e3fa53 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/OCHAdasAbilityManager.java +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/OCHAdasAbilityManager.java @@ -28,6 +28,7 @@ public class OCHAdasAbilityManager implements IMoGoAutopilotActionsListener, IMo private boolean isAutopilotAbility = true; private String autopilotAbilityReason = ""; + private String startFailedCode = ""; private String startFailedMessage = ""; private OchAdasStartFailureCallback failureCallback = null; @@ -56,6 +57,10 @@ public class OCHAdasAbilityManager implements IMoGoAutopilotActionsListener, IMo return autopilotAbilityReason; } + public String getStartFailedCode() { + return startFailedCode; + } + public String getStartFailedMessage() { return startFailedMessage; } @@ -111,9 +116,11 @@ public class OCHAdasAbilityManager implements IMoGoAutopilotActionsListener, IMo if (statistics == null) return; Logger.d(TAG, "AutopilotStatistics= " + statistics.status); if (failureCallback != null && 1 == statistics.status){ + startFailedCode = statistics.failedMessage.getCode(); startFailedMessage = statistics.failedMessage.getMsg(); - failureCallback.onStartAutopilotFailure(startFailedMessage); - Logger.d(TAG, "statistics-startFailedMessage= " + startFailedMessage); + failureCallback.onStartAutopilotFailure(startFailedCode, startFailedMessage); + Logger.d(TAG, String.format("statistics-startFailedCode = s%; startFailedMessage = s%", + startFailedCode, startFailedMessage)); } } diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/constant/TaxiConst.kt b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/constant/TaxiConst.kt index 68f2379a42..21372d9fb7 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/constant/TaxiConst.kt +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/constant/TaxiConst.kt @@ -65,6 +65,7 @@ class TaxiConst { const val EVENT_PARAM_END_NAME = "end_name" const val EVENT_PARAM_ORDER_NUMBER = "order_num" const val EVENT_PARAM_START_RESULT = "start_autopilot" // true/false + const val EVENT_PARAM_START_FAILURE_CODE = "start_autopilot_failure_code" // 启动自驾失败code const val EVENT_PARAM_START_FAILURE_MSG = "start_autopilot_failure_msg" // 启动自驾失败原因 const val EVENT_PARAM_PLATE_NUM = "plate_number" // 车牌号 const val EVENT_PARAM_ENV_ONLINE = "env_online" // 是否线上环境:true/false diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiModel.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiModel.java index c114157434..384020964e 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiModel.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiModel.java @@ -1030,8 +1030,8 @@ public class TaxiModel { private final OchAdasStartFailureCallback mAdasStartFailureListener = new OchAdasStartFailureCallback() { @Override - public void onStartAutopilotFailure(@NonNull String startFailedMessage) { - TaxiAnalyticsManager.getInstance().triggerStartAutopilotFailureEventByAdas(startFailedMessage); + public void onStartAutopilotFailure(@NotNull String startFailedCode, @NonNull String startFailedMessage) { + TaxiAnalyticsManager.getInstance().triggerStartAutopilotFailureEventByAdas(startFailedCode, startFailedMessage); if (mADASStatusCallback != null && !FunctionBuildConfig.isDemoMode){ CallerLogger.INSTANCE.e(M_TAXI + TAG, "mAdasStartFailureListener = "+startFailedMessage); mADASStatusCallback.onStartAdasFailure(); diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/utils/TaxiAnalyticsManager.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/utils/TaxiAnalyticsManager.java index b6180d52d5..d54c098b4f 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/utils/TaxiAnalyticsManager.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/utils/TaxiAnalyticsManager.java @@ -36,12 +36,12 @@ public class TaxiAnalyticsManager { private Runnable startAutopilotRunnable = () -> { // 15s内未开启,上报失败埋点 - triggerStartAutopilotFailureEvent("15s后app等待超时"); + triggerStartAutopilotFailureEvent("", "15s后app等待超时"); }; - public void triggerStartAutopilotFailureEventByAdas(String failMsg){ + public void triggerStartAutopilotFailureEventByAdas(String failCode, String failMsg){ removeWaitingCallback(); - triggerStartAutopilotFailureEvent(failMsg); + triggerStartAutopilotFailureEvent(failCode, failMsg); } private void removeWaitingCallback() { @@ -51,9 +51,10 @@ public class TaxiAnalyticsManager { } } - private void triggerStartAutopilotFailureEvent(String failMsg){ + private void triggerStartAutopilotFailureEvent(String failCode, String failMsg){ CallerLogger.INSTANCE.e(M_TAXI + "triggerStartAutopilotFailureEvent", failMsg); mStartAutopilotParams.put(TaxiConst.EVENT_PARAM_START_RESULT, false); + mStartAutopilotParams.put(TaxiConst.EVENT_PARAM_START_FAILURE_CODE, failCode); mStartAutopilotParams.put(TaxiConst.EVENT_PARAM_START_FAILURE_MSG, failMsg); AnalyticsManager.INSTANCE.track(mStartAutopilotKey, mStartAutopilotParams); From 3964223177b4b4ee807fbe71307653f0e783f7f5 Mon Sep 17 00:00:00 2001 From: lixiaopeng Date: Thu, 8 Dec 2022 20:25:08 +0800 Subject: [PATCH 10/17] =?UTF-8?q?[2.13.0=20=E5=AF=B9=E6=8E=A5=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E4=B8=AD=E5=BF=83=20]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../obu/mogo/MogoPrivateObuNewManager.kt | 97 ++- .../eagle/core/data/enums/EventTypeEnumNew.kt | 576 ++++++++++++++---- .../data/enums/EventTypeEnumTrafficLight.kt | 71 --- .../enums/EventTypeEnumWeaknessTraffic.kt | 80 --- .../eagle/core/data/enums/V2iEventTypeEnum.kt | 410 ------------- 5 files changed, 490 insertions(+), 744 deletions(-) delete mode 100644 core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/EventTypeEnumTrafficLight.kt delete mode 100644 core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/EventTypeEnumWeaknessTraffic.kt delete mode 100644 core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/V2iEventTypeEnum.kt diff --git a/core/function-impl/mogo-core-function-obu-mogo/src/main/java/com/mogo/eagle/core/function/obu/mogo/MogoPrivateObuNewManager.kt b/core/function-impl/mogo-core-function-obu-mogo/src/main/java/com/mogo/eagle/core/function/obu/mogo/MogoPrivateObuNewManager.kt index 7fb5ea75ce..fcae6b1da0 100644 --- a/core/function-impl/mogo-core-function-obu-mogo/src/main/java/com/mogo/eagle/core/function/obu/mogo/MogoPrivateObuNewManager.kt +++ b/core/function-impl/mogo-core-function-obu-mogo/src/main/java/com/mogo/eagle/core/function/obu/mogo/MogoPrivateObuNewManager.kt @@ -1,7 +1,6 @@ package com.mogo.eagle.core.function.obu.mogo import android.content.Context -import android.util.Log import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.data.config.HmiBuildConfig import com.mogo.eagle.core.data.config.HmiBuildConfig.isShowObuLimitSpeedView @@ -253,27 +252,27 @@ class MogoPrivateObuNewManager private constructor() { MogoObuConstants.RSI_SCENE_TYPE.HLW.toString() -> { when (data.warningMsg[0].eventSerialNum) { MogoObuConstants.RTE.RTI_TYPE_BREAKDOWN -> {//车辆故障 - appId = V2iEventTypeEnum.TYPE_USECASE_ID_BREAKDOWN_WARNING.poiType + appId = EventTypeEnumNew.TYPE_USECASE_ID_BREAKDOWN_WARNING.poiType } MogoObuConstants.RTE.RTI_TYPE_ROAD_WATER -> { //道路积水 - appId = V2iEventTypeEnum.FOURS_PONDING.poiType + appId = EventTypeEnumNew.FOURS_PONDING.poiType } MogoObuConstants.RTE.RTI_TYPE_PARKING_VIOLATION -> { //异常停车 - appId = V2iEventTypeEnum.TYPE_USECASE_ID_ROAD_PARKING.poiType + appId = EventTypeEnumNew.TYPE_USECASE_ID_ROAD_PARKING.poiType } // MogoObuConstants.RTE.RTI_TYPE_CONSTRUCTION_RTE -> { //施工占道,和标牌重复 -// appId = V2iEventTypeEnum.FOURS_ROAD_WORK.poiType +// appId = EventTypeEnumNew.FOURS_ROAD_WORK.poiType // } MogoObuConstants.RTE.RTI_TYPE_SPEEDING -> { //超速行驶 - appId = V2iEventTypeEnum.TYPE_USECASE_ID_SLW.poiType + appId = EventTypeEnumNew.TYPE_USECASE_ID_SLW.poiType } MogoObuConstants.RTE.RTI_TYPE_RETRIGRADE -> { //车辆逆行 appId = - V2iEventTypeEnum.TYPE_USECASE_ID_ROAD_VEHICLE_RETROGRADE.poiType + EventTypeEnumNew.TYPE_USECASE_ID_ROAD_VEHICLE_RETROGRADE.poiType } } - alertContent = V2iEventTypeEnum.getWarningContent(appId) - ttsContent = V2iEventTypeEnum.getWarningTts(appId) + alertContent = EventTypeEnumNew.getWarningContent(appId) + ttsContent = EventTypeEnumNew.getWarningTts(appId) alertContent = String.format( //事件才有影响范围 alertContent, Math.round(data.warningMsg[0].distance).toString(), @@ -290,80 +289,80 @@ class MogoPrivateObuNewManager private constructor() { MogoObuConstants.RSI_SCENE_TYPE.IVS.toString() -> { when (data.warningMsg[0].signSerialNum) { // MogoObuConstants.RTS.RTI_TYPE_INTERSECTION -> { //十字路口 -// appId = V2iEventTypeEnum.TYPE_ID_NTERSECTION.poiType +// appId = EventTypeEnumNew.TYPE_ID_NTERSECTION.poiType // } MogoObuConstants.RTS.RTI_TYPE_SHAPR_TURNS -> { //急转弯 - appId = V2iEventTypeEnum.TYPE_ID_SHAPR_TURNS.poiType + appId = EventTypeEnumNew.TYPE_ID_SHAPR_TURNS.poiType } MogoObuConstants.RTS.RTI_TYPE_BRIDGE -> { //桥梁 - appId = V2iEventTypeEnum.TYPE_ID_BRIDGE.poiType + appId = EventTypeEnumNew.TYPE_ID_BRIDGE.poiType } MogoObuConstants.RTS.RTI_TYPE_PEDESTRIAN -> { //行人 - appId = V2iEventTypeEnum.TYPE_ID_PEDESTRIAN.poiType + appId = EventTypeEnumNew.TYPE_ID_PEDESTRIAN.poiType } MogoObuConstants.RTS.RTI_TYPE_SLIPPERY_ROAD -> { //路滑 - appId = V2iEventTypeEnum.TYPE_ID_SLIPPERY_ROAD.poiType + appId = EventTypeEnumNew.TYPE_ID_SLIPPERY_ROAD.poiType } MogoObuConstants.RTS.RTI_TYPE_TUNNEL -> { //隧道 - appId = V2iEventTypeEnum.TYPE_ID_TUNNEL.poiType + appId = EventTypeEnumNew.TYPE_ID_TUNNEL.poiType } MogoObuConstants.RTS.RTI_TYPE_FERRY -> { //渡轮 - appId = V2iEventTypeEnum.TYPE_ID_FERRY.poiType + appId = EventTypeEnumNew.TYPE_ID_FERRY.poiType } MogoObuConstants.RTS.RTI_TYPE_UNEVEN_ROAD -> { //路面不平 - appId = V2iEventTypeEnum.TYPE_ID_UNEVEN_ROAD.poiType + appId = EventTypeEnumNew.TYPE_ID_UNEVEN_ROAD.poiType } MogoObuConstants.RTS.RTI_TYPE_NON_MOTOR_VEHICLE -> { //非机动车 - appId = V2iEventTypeEnum.TYPE_ID_NON_MOTOR_VEHICLE.poiType + appId = EventTypeEnumNew.TYPE_ID_NON_MOTOR_VEHICLE.poiType } MogoObuConstants.RTS.RTI_TYPE_OBSTACLE -> { //障碍 - appId = V2iEventTypeEnum.TYPE_ID_OBSTACLE.poiType + appId = EventTypeEnumNew.TYPE_ID_OBSTACLE.poiType } MogoObuConstants.RTS.RTI_TYPE_CONSTRUCTION -> { //施工 - appId = V2iEventTypeEnum.TYPE_FOURS_ROAD_WORK.poiType + appId = EventTypeEnumNew.TYPE_FOURS_ROAD_WORK.poiType } MogoObuConstants.RTS.RTI_TYPE_VEHICLE_QUEUE -> { //车队 - appId = V2iEventTypeEnum.TYPE_VEHICLE_QUEUE.poiType + appId = EventTypeEnumNew.TYPE_VEHICLE_QUEUE.poiType } MogoObuConstants.RTS.RTI_TYPE_NO_PASSING -> { //不通 - appId = V2iEventTypeEnum.TYPE_NO_PASSING.poiType + appId = EventTypeEnumNew.TYPE_NO_PASSING.poiType } MogoObuConstants.RTS.RTI_TYPE_NO_TURNING_AROUND -> { //禁止掉头 - appId = V2iEventTypeEnum.TYPE_NO_TURNING_AROUND.poiType + appId = EventTypeEnumNew.TYPE_NO_TURNING_AROUND.poiType } MogoObuConstants.RTS.RTI_TYPE_NO_STOPPING -> { //禁止停车 - appId = V2iEventTypeEnum.TYPE_USECASE_ID_ROAD_NO_PARKING.poiType + appId = EventTypeEnumNew.TYPE_USECASE_ID_ROAD_NO_PARKING.poiType } MogoObuConstants.RTS.RTI_TYPE_NO_TOOTING -> { //禁止鸣笛 - appId = V2iEventTypeEnum.TYPE_USECASE_ID_ROAD_NO_TOOTING.poiType + appId = EventTypeEnumNew.TYPE_USECASE_ID_ROAD_NO_TOOTING.poiType } MogoObuConstants.RTS.RTI_TYPE_SPEED_LIMIT -> { //限速 - appId = V2iEventTypeEnum.TYPE_USECASE_ID_ROAD_SPEED_LIMIT.poiType + appId = EventTypeEnumNew.TYPE_USECASE_ID_ROAD_SPEED_LIMIT.poiType } // MogoObuConstants.RTS.RTI_TYPE_GO_STRAIGHT_TURN_RIGHT -> { //直行或右转 // appId = -// V2iEventTypeEnum.TYPE_USECASE_ID_GO_STRAIGHT_TURN_RIGHT.poiType +// EventTypeEnumNew.TYPE_USECASE_ID_GO_STRAIGHT_TURN_RIGHT.poiType // } MogoObuConstants.RTS.RTI_TYPE_BUS_WARNING -> { //公交提醒 - appId = V2iEventTypeEnum.TYPE_USECASE_ID_BUS_WARNING.poiType + appId = EventTypeEnumNew.TYPE_USECASE_ID_BUS_WARNING.poiType } MogoObuConstants.RTS.RTI_TYPE_NARROW_RIGHT -> { //右侧变窄/车道数减少 - appId = V2iEventTypeEnum.TYPE_USECASE_ID_NARROW_RIGHT.poiType + appId = EventTypeEnumNew.TYPE_USECASE_ID_NARROW_RIGHT.poiType } MogoObuConstants.RTS.RTI_TYPE_GAS_STATION -> { //加油站 - appId = V2iEventTypeEnum.TYPE_USECASE_ID_GAS_STATION.poiType + appId = EventTypeEnumNew.TYPE_USECASE_ID_GAS_STATION.poiType } MogoObuConstants.RTS.RTI_TYPE_SCHOOL -> { //学校 appId = - V2iEventTypeEnum.TYPE_USECASE_ID_ROAD_PEDESTRIAN_SCHOOL.poiType + EventTypeEnumNew.TYPE_USECASE_ID_ROAD_PEDESTRIAN_SCHOOL.poiType } MogoObuConstants.RTS.RTI_TYPE_ACCIDENT -> { //事故 - appId = V2iEventTypeEnum.TYPE_USECASE_ID_ACCIDENT.poiType + appId = EventTypeEnumNew.TYPE_USECASE_ID_ACCIDENT.poiType } } - alertContent = V2iEventTypeEnum.getWarningContent(appId) - ttsContent = V2iEventTypeEnum.getWarningTts(appId) + alertContent = EventTypeEnumNew.getWarningContent(appId) + ttsContent = EventTypeEnumNew.getWarningTts(appId) alertContent = String.format( //标牌是没有影响范围的 alertContent, Math.round(data.warningMsg[0].distance).toString() @@ -376,10 +375,10 @@ class MogoPrivateObuNewManager private constructor() { // 拥堵 MogoObuConstants.RSI_SCENE_TYPE.TJW.toString() -> { - appId = V2iEventTypeEnum.TYPE_USECASE_ID_TJW.poiType + appId = EventTypeEnumNew.TYPE_USECASE_ID_TJW.poiType - alertContent = V2iEventTypeEnum.getWarningContent(appId) - ttsContent = V2iEventTypeEnum.getWarningTts(appId) + alertContent = EventTypeEnumNew.getWarningContent(appId) + ttsContent = EventTypeEnumNew.getWarningTts(appId) alertContent = String.format( //事件才有影响范围 alertContent, Math.round(data.warningMsg[0].distance).toString(), @@ -394,8 +393,8 @@ class MogoPrivateObuNewManager private constructor() { //限速预警, ADD处理一次 MogoObuConstants.RSI_SCENE_TYPE.SLW.toString() -> { - alertContent = V2iEventTypeEnum.getWarningContent(appId) - ttsContent = V2iEventTypeEnum.getWarningTts(appId) + alertContent = EventTypeEnumNew.getWarningContent(appId) + ttsContent = EventTypeEnumNew.getWarningTts(appId) } } @@ -484,19 +483,19 @@ class MogoPrivateObuNewManager private constructor() { var v2xType = "" if (data.participant.ptcType == 1) { //机动车 v2xType = - EventTypeEnumWeaknessTraffic.TYPE_USECASE_ID_VRUCW_MOTOR_VEHICLES.poiType + EventTypeEnumNew.TYPE_USECASE_ID_VRUCW_MOTOR_VEHICLES.poiType } else if (data.participant.ptcType == 2) { //非机动车 v2xType = - EventTypeEnumWeaknessTraffic.TYPE_USECASE_ID_VRUCW_NOT_MOTOR_VEHICLES.poiType + EventTypeEnumNew.TYPE_USECASE_ID_VRUCW_NOT_MOTOR_VEHICLES.poiType } else if (data.participant.ptcType == 3) { //行人 v2xType = - EventTypeEnumWeaknessTraffic.TYPE_USECASE_ID_VRUCW_PERSON.poiType + EventTypeEnumNew.TYPE_USECASE_ID_VRUCW_PERSON.poiType } else { //未知 - v2xType = EventTypeEnumWeaknessTraffic.TYPE_ERROR.poiType + v2xType = EventTypeEnumNew.TYPE_ERROR.poiType } - val ttsContent = EventTypeEnumWeaknessTraffic.getWarningTts(v2xType) + val ttsContent = EventTypeEnumNew.getWarningTts(v2xType) val alertContent = - EventTypeEnumWeaknessTraffic.getWarningContent(v2xType) + EventTypeEnumNew.getWarningContent(v2xType) var level = -1 val direction = getMessageDirection(data.participant.targetPosition) if (data.warningMsg != null && data.warningMsg.warningData != null && data.warningMsg.warningData.size > 0) { @@ -856,8 +855,8 @@ class MogoPrivateObuNewManager private constructor() { isShowRunRedLight = true CallerHmiManager.disableWarningV2X(0x2.toString()) CallerLogger.d("$M_OBU${MogoObuConst.TAG_MOGO_NEW_OBU}","changeTrafficLightStatus 闯红灯 --------> ") - ttsContent = EventTypeEnumTrafficLight.getWarningTts(appId.toString()) - alertContent = EventTypeEnumTrafficLight.getWarningContent(appId.toString()) + ttsContent = EventTypeEnumNew.getWarningTts(appId.toString()) + alertContent = EventTypeEnumNew.getWarningContent(appId.toString()) CallerHmiManager.warningV2X( appId.toString(), alertContent, ttsContent,// 只有第一次才tts,防止更新的时候不断的提醒 appId.toString(), null, true, 5000L) @@ -878,12 +877,12 @@ class MogoPrivateObuNewManager private constructor() { "${currentLight.suggestMinSpeed}到${currentLight.suggestMaxSpeed}" ttsContent = String.format( - EventTypeEnumTrafficLight.getWarningTts(appId.toString()), + EventTypeEnumNew.getWarningTts(appId.toString()), adviceSpeedTts ) alertContent = String.format( - EventTypeEnumTrafficLight.getWarningContent(appId.toString()), + EventTypeEnumNew.getWarningContent(appId.toString()), adviceSpeed ) diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/EventTypeEnumNew.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/EventTypeEnumNew.kt index 901bb2aae1..989a74e40a 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/EventTypeEnumNew.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/EventTypeEnumNew.kt @@ -5,7 +5,8 @@ import com.mogo.eagle.core.data.config.CloudPoiManager /** - * OBU、V2N事件类型枚举类 + * OBU、V2N事件类型枚举类, 自研sdk版本的OBU + * */ enum class EventTypeEnumNew( val poiType: String, val poiTypeStr: String = "", @@ -132,110 +133,116 @@ enum class EventTypeEnumNew( // 违章停车 ALERT_ILLEGAL_PARK("99992"), - TYPE_USECASE_ID_EBW( - 6.toString(), - "紧急制动预警", - poiTypeSrcVr = R.drawable.icon_warning_v2x_emergency_brake, - content = "前车急刹车", - tts = "前车急刹车" - ), + //-------------v2n start ------------> TYPE_USECASE_ID_FCW( - 0.toString(), + 2000.toString(), "前向碰撞预警", poiTypeSrcVr = R.drawable.icon_warning_v2x_collision_warning, content = "前车碰撞预警", tts = "小心前车" ), -// TYPE_USECASE_ID_ICW( -// 1.toString(), -// "交叉路口碰撞预警", -// poiTypeSrcVr = R.drawable.icon_warning_v2x_collision_warning, -// content = "交叉路口碰撞预警", -// tts = "注意交叉路口车辆" -// ), - TYPE_USECASE_ID_AVW( - 7.toString(), - "异常车辆提醒", - poiTypeSrcVr = R.drawable.icon_warning_v2x_abnormal_vehicle, - content = "%s车异常", - tts = "小心%s异常车辆" + // TYPE_USECASE_ID_ICW( + // 1.toString(), + // "交叉路口碰撞预警", + // poiTypeSrcVr = R.drawable.icon_warning_v2x_collision_warning, + // content = "交叉路口碰撞预警", + // tts = "注意交叉路口车辆" + // ), + TYPE_USECASE_ID_LTA( + 2001.toString(), + "左转辅助", + poiTypeSrcVr = R.drawable.icon_warning_v2x_collision_warning, + content = "左转碰撞预警", + tts = "注意路口对向来车" ), TYPE_USECASE_ID_BSW( - 3.toString(), + 2002.toString(), "盲区预警", poiTypeSrcVr = R.drawable.icon_warning_v2x_blind_area_collision, content = "%s后盲区预警", tts = "注意%s后车辆" ), TYPE_USECASE_ID_LCW( - 4.toString(), + 2003.toString(), "变道预警", poiTypeSrcVr = R.drawable.icon_warning_v2x_reverse_overtaking, content = "%s向变道预警", tts = "注意%s后车辆" ),//注意左后车辆/注意右后车辆 - - TYPE_USECASE_ID_EVW( - 9.toString(), - "紧急车辆提醒", - poiTypeSrcVr = R.drawable.icon_warning_v2x_special_vehicle_access, - content = "注意特种车辆通行", - tts = "请避让特种车辆" - ), - TYPE_USECASE_ID_CLW( - 8.toString(), - "车辆失控预警", - poiTypeSrcVr = R.drawable.icon_warning_v2x_vehicle_control, - content = "前%s失控预警", - tts = "小心%s失控车辆" - ), TYPE_USECASE_ID_DNPW( - 5.toString(), + 2004.toString(), "逆向超车预警", poiTypeSrcVr = R.drawable.icon_warning_v2x_reverse_overtaking, content = "逆向超车预警", tts = "注意对向来车" ), - TYPE_USECASE_ID_ROAD_GIVE_WAY( - 0x2C11.toString(), - "减速慢行", - poiTypeSrcVr = R.drawable.icon_warning_v2x_give_way, - content = "注意路况复杂,减速慢行", - tts = "路况复杂,减速慢行" - ), - TYPE_USECASE_ID_ROAD_TURN_RIGHT_SHARP( - 0x2C03.toString(), - "前方右转急弯", - poiTypeSrcVr = R.drawable.icon_warning_v2x_turn_right_sharp, - content = "注意前方右转急弯", - tts = "前方路口右转急弯,减速慢行" - ), - TYPE_USECASE_ID_ROAD_TURN_LEFT_SHARP( - 0x2C02.toString(), - "前方左转急弯", - poiTypeSrcVr = R.drawable.icon_warning_v2x_turn_left_sharp, - content = "注意前方左转急弯", - tts = "前方路口左转急弯,减速慢行", + TYPE_USECASE_ID_EBW( + 2005.toString(), + "紧急制动预警", + poiTypeSrcVr = R.drawable.icon_warning_v2x_emergency_brake, + content = "前车急刹车", + tts = "前车急刹车" ), - TYPE_USECASE_ID_LTA( - 2.toString(), - "左转辅助", - poiTypeSrcVr = R.drawable.icon_warning_v2x_collision_warning, - content = "左转碰撞预警", - tts = "注意路口对向来车" + TYPE_USECASE_ID_AVW( + 2006.toString(), + "异常车辆提醒", + poiTypeSrcVr = R.drawable.icon_warning_v2x_abnormal_vehicle, + content = "%s车异常", + tts = "小心%s异常车辆" ), - - TYPE_USECASE_ID_TJW( //TODO - 4.toString(), - "前方拥堵提醒", - poiTypeSrcVr = R.drawable.icon_warning_v2x_congestion, - content = "前方%d米道路拥堵", - tts = "前方拥堵,减速慢行" + TYPE_USECASE_ID_CLW( + 2007.toString(), + "车辆失控预警", + poiTypeSrcVr = R.drawable.icon_warning_v2x_vehicle_control, + content = "前%s失控预警", + tts = "小心%s失控车辆" ), + TYPE_USECASE_ID_EVW( + 2008.toString(), + "紧急车辆提醒", + poiTypeSrcVr = R.drawable.icon_warning_v2x_special_vehicle_access, + content = "注意特种车辆通行", + tts = "请避让特种车辆" + ), + //-------------v2n end ------------> - TYPE_USECASE_ID_IVP( - 0x1.toString(), + + //---------弱势交通参与者 start ------> + TYPE_USECASE_ID_VRUCW_MOTOR_VEHICLES( + 1001.toString(), + "弱势交通参与者碰撞预警", + poiTypeSrcVr = R.drawable.icon_warning_v2x_motorcycle_collision, + content = "注意机动车", + tts = "注意机动车" + ), + TYPE_USECASE_ID_VRUCW_NOT_MOTOR_VEHICLES( + 1002.toString(), + "弱势交通参与者碰撞预警", + poiTypeSrcVr = R.drawable.icon_warning_v2x_motobike, + content = "注意非机动车", + tts = "注意非机动车" + ), + TYPE_USECASE_ID_VRUCW_PERSON( + 1003.toString(), + "弱势交通参与者碰撞预警", + poiTypeSrcVr = R.drawable.icon_warning_v2x_pedestrian_crossing, + content = "注意行人", + tts = "注意行人" + ), + TYPE_ERROR_WEAKNESS( + 1006.toString(), + "未知/错误/异常", + poiTypeSrcVr = R.drawable.icon_warning_v2x_abnormal_vehicle, + content = "前方有未知障碍物", + tts = "前方有未知障碍物" + ), + //---------弱势交通参与者 end --------> + + + //--------------红绿灯 start -------> TODO 修改重复 + TYPE_USECASE_ID_IVP_RED( + 1666.toString(), "闯红灯预警", poiTypeSrcVr = R.drawable.icon_warning_v2x_traffic_lights_red, content = "路口红灯,禁止通行", @@ -243,52 +250,210 @@ enum class EventTypeEnumNew( ), TYPE_USECASE_ID_IVP_GREEN( - 0x2.toString(), + 1667.toString(), "绿波通行", poiTypeSrcVr = R.drawable.icon_warning_v2x_traffic_lights_green, content = "建议车速 %s KM/H", tts = "建议车速 %s KM/H" ), + //-------------红绿灯 end ----------> - //6种智行杯的场景需添加 - TYPE_USECASE_ID_ROAD_VEHICLE_RETROGRADE( - 904.toString(), - "注意逆行车辆", - poiTypeSrcVr = R.drawable.icon_warning_v2x_school, - content = "注意逆行车辆", - tts = "注意逆行车辆" + //-----------道路危险情况预警 start ---------------> + TYPE_USECASE_ID_BREAKDOWN_WARNING( //故障车辆 + 101.toString(), + "车辆故障", + poiTypeSrcVr = R.drawable.icon_warning_v2x_collision_warning, + content = "前方%s米有故障车辆,影响路段%s米", + tts = "前方%s米有故障车辆,影响路段%s米" ), - - TYPE_USECASE_ID_SLW( + TYPE_FOURS_PONDING( //积水 + 407.toString(), + "道路积水", + poiTypeSrcVr = R.drawable.v2x_icon_jishui_vr, + content = "前方%s米道路积水,影响路段%s米", + tts ="前方%s米道路积水,影响路段%s米" + ), + TYPE_USECASE_ID_ROAD_PARKING( //异常停车 + 412.toString(), + "异常停车", + poiTypeSrcVr = R.drawable.icon_warning_v2x_no_parking, + content = "前方%s米异常停车,影响路段%s米", + tts = "前方%s米异常停车,影响路段%s米" + ), + TYPE_USECASE_ID_TJW( //%d + 707.toString(), + "拥堵", + poiTypeSrcVr = R.drawable.icon_warning_v2x_congestion, + content = "前方%s米拥堵,影响路段%s米", + tts = "前方%s米拥堵,影响路段%s米" + ), + TYPE_USECASE_ID_SLW( //超速行驶 901.toString(), - "注意超速车辆", + "超速行驶", poiTypeSrcVr = R.drawable.icon_warning_v2x_over_speed, - content = "注意超速车辆", - tts = "注意超速车辆" + content = "前方%s米超速行驶,影响路段%s米", + tts = "前方%s米超速行驶,影响路段%s米" ), - - TYPE_USECASE_ID_ROAD_TRAMCAR( - 0x2C01.toString(), - "前方有轨电车提醒", - poiTypeSrcVr = R.drawable.icon_warning_v2x_tramcar, - content = "注意前方有轨电车", - tts = "注意前方有轨电车驶过" + TYPE_USECASE_ID_ROAD_VEHICLE_RETROGRADE( //车辆逆行 + 904.toString(), + "逆行车辆", + poiTypeSrcVr = R.drawable.icon_default, + content = "前方%s米逆行车辆,影响路段%s米", + tts = "前方%s米逆行车辆,影响路段%s米" ), + TYPE_USECASE_ID_ROAD_SPEED_LIMIT( //--> + 6666.toString(), + "超速", + poiTypeSrcVr = R.drawable.icon_warning_v2x_over_speed, + content = "您已超速,请减速行驶", + tts = "您已超速,请减速行驶" + ), + //------------道路危险情况预警 end -----------> - TYPE_USECASE_ID_ROAD_PEDESTRIAN_CROSSING( - 0x2C04.toString(), - "人行横道", + + //------------车内标牌 start --------------> + TYPE_ID_SHAPR_TURNS( + 2.toString(), + "急转弯", + poiTypeSrcVr = R.drawable.icon_warning_v2x_turn_left_sharp, + content = "前方%s米急转弯", + tts = "前方%s米急转弯" + ), + TYPE_ID_BRIDGE( + 8.toString(), + "桥梁", + poiTypeSrcVr = R.drawable.icon_warning_v2x_hump_bridge, + content = "前方%s米桥梁", + tts = "前方%s米桥梁" + ), + TYPE_ID_PEDESTRIAN( + 10.toString(), + "行人", poiTypeSrcVr = R.drawable.icon_warning_v2x_pedestrian_crossing, - content = "注意前方人行横道", - tts = "前方人行横道,减速慢行" + content = "前方%s米行人", + tts = "前方%s米行人" + ), + TYPE_ID_SLIPPERY_ROAD( + 17.toString(), + "路滑", + poiTypeSrcVr = R.drawable.v2x_icon_jiebing_vr, + content = "前方%s米路滑", + tts = "前方%s米路滑" + ), + TYPE_ID_TUNNEL( + 21.toString(), + "隧道", + poiTypeSrcVr = R.drawable.icon_default, + content = "前方%s米隧道", + tts = "前方%s米隧道" + ), + TYPE_ID_FERRY( + 22.toString(), + "渡轮", + poiTypeSrcVr = R.drawable.icon_default, + content = "前方%s米渡轮", + tts = "前方%s米渡轮" + ), + TYPE_ID_UNEVEN_ROAD( + 24.toString(), + "路面不平", + poiTypeSrcVr = R.drawable.icon_warning_road_hollow, + content = "前方%s米路面不平", + tts = "前方%s米路面不平" + ), + TYPE_ID_NON_MOTOR_VEHICLE( + 32.toString(), + "非机动车", + poiTypeSrcVr = R.drawable.icon_warning_v2x_motobike, + content = "前方%s米有非机动车", + tts = "前方%s米有非机动车" + ), + TYPE_ID_OBSTACLE( + 36.toString(), + "障碍", + poiTypeSrcVr = R.drawable.icon_default, + content = "前方%s米障碍", + tts = "前方%s米障碍" + ), + TYPE_FOURS_ROAD_WORK( + 38.toString(), + "施工", + poiTypeSrcVr = R.drawable.icon_warning_v2x_road_construction, + content = "前方%s米施工", + tts = "前方%s米施工" + ), + TYPE_VEHICLE_QUEUE( + 47.toString(), + "车队", + poiTypeSrcVr = R.drawable.icon_default, + content = "前方%s米车队", + tts = "前方%s米车队" + ), + TYPE_NO_PASSING( + 51.toString(), + "不通", + poiTypeSrcVr = R.drawable.v2x_icon_fenglu_vr, + content = "前方%s米不通", + tts = "前方%s米不通" + ), + TYPE_NO_TURNING_AROUND( + 75.toString(), + "禁止掉头", + poiTypeSrcVr = R.drawable.icon_default, + content = "前方%s米禁止掉头", + tts = "前方%s米禁止掉头" ), TYPE_USECASE_ID_ROAD_NO_PARKING( - 0x2C10.toString(), + 78.toString(), "禁止停车", poiTypeSrcVr = R.drawable.icon_warning_v2x_no_parking, - content = "注意当前路段禁止停车", - tts = "当前路段,禁止停车" + content = "前方%s米禁止停车", + tts = "前方%s米禁止停车" ), + TYPE_USECASE_ID_ROAD_NO_TOOTING( + 80.toString(), + "禁止鸣笛", + poiTypeSrcVr = R.drawable.icon_warning_v2x_no_tooting, + content = "前方%s米禁止鸣笛", + tts = "前方%s米禁止鸣笛" + ), + TYPE_USECASE_ID_BUS_WARNING( + 123.toString(), + "公交提醒", + poiTypeSrcVr = R.drawable.icon_warning_v2x_tramcar, + content = "前方%s米公交提醒", + tts = "前方%s米公交提醒" + ), + TYPE_USECASE_ID_NARROW_RIGHT( + 163.toString(), + "右侧变窄/车道数减少", + poiTypeSrcVr = R.drawable.icon_default, + content = "前方%s米右侧变窄/车道数减少", + tts = "前方%s米右侧变窄/车道数减少" + ), + TYPE_USECASE_ID_GAS_STATION( + 201.toString(), + "加油站", + poiTypeSrcVr = R.drawable.icon_warning_gas_station, + content = "前方%s米加油站", + tts = "前方%s米加油站" + ), + TYPE_USECASE_ID_ROAD_PEDESTRIAN_SCHOOL( + 242.toString(), + "学校", + poiTypeSrcVr = R.drawable.icon_warning_v2x_school, + content = "前方%s米学校", + tts = "前方%s米学校" + ), + TYPE_USECASE_ID_ACCIDENT( + 244.toString(), + "事故", + poiTypeSrcVr = R.drawable.v2x_icon_jiaotongshigu_vr, + content = "前方%s米事故", + tts = "前方%s米事故" + ), + //------------车内标牌 end --------------> + TYPE_ERROR( 0.toString(), @@ -640,12 +805,66 @@ enum class EventTypeEnumNew( ALERT_CAR_TROUBLE_WARNING.poiType -> { R.drawable.icon_car_red } + + //闯红灯预警 + TYPE_USECASE_ID_IVP_RED.poiType -> { + R.drawable.icon_warning_v2x_traffic_lights_red + } + //绿波通行 + TYPE_USECASE_ID_IVP_GREEN.poiType -> { + R.drawable.icon_warning_v2x_traffic_lights_green + } + + //机动车 + TYPE_USECASE_ID_VRUCW_MOTOR_VEHICLES.poiType -> { + R.drawable.icon_warning_v2x_motorcycle_collision + } + TYPE_USECASE_ID_VRUCW_NOT_MOTOR_VEHICLES.poiType -> { + R.drawable.icon_warning_v2x_motobike + } + TYPE_USECASE_ID_VRUCW_PERSON.poiType -> { + R.drawable.icon_warning_v2x_pedestrian_crossing + } + TYPE_ERROR_WEAKNESS.poiType -> { + R.drawable.icon_warning_v2x_abnormal_vehicle + } + + TYPE_USECASE_ID_ROAD_PEDESTRIAN_SCHOOL.poiType -> TYPE_USECASE_ID_ROAD_PEDESTRIAN_SCHOOL.poiTypeSrcVr + TYPE_USECASE_ID_ROAD_NO_PARKING.poiType -> TYPE_USECASE_ID_ROAD_NO_PARKING.poiTypeSrcVr + TYPE_USECASE_ID_SLW.poiType -> TYPE_USECASE_ID_SLW.poiTypeSrcVr + TYPE_USECASE_ID_TJW.poiType -> TYPE_USECASE_ID_TJW.poiTypeSrcVr + TYPE_USECASE_ID_BREAKDOWN_WARNING.poiType -> TYPE_USECASE_ID_BREAKDOWN_WARNING.poiTypeSrcVr + FOURS_PONDING.poiType -> FOURS_PONDING.poiTypeSrcVr + TYPE_USECASE_ID_ROAD_PARKING.poiType -> TYPE_USECASE_ID_ROAD_PARKING.poiTypeSrcVr + TYPE_USECASE_ID_ROAD_VEHICLE_RETROGRADE.poiType -> TYPE_USECASE_ID_ROAD_VEHICLE_RETROGRADE.poiTypeSrcVr + TYPE_ID_SHAPR_TURNS.poiType -> TYPE_ID_SHAPR_TURNS.poiTypeSrcVr + TYPE_ID_BRIDGE.poiType -> TYPE_ID_BRIDGE.poiTypeSrcVr + TYPE_ID_PEDESTRIAN.poiType -> TYPE_ID_PEDESTRIAN.poiTypeSrcVr + TYPE_ID_SLIPPERY_ROAD.poiType -> TYPE_ID_SLIPPERY_ROAD.poiTypeSrcVr + TYPE_ID_TUNNEL.poiType -> TYPE_ID_TUNNEL.poiTypeSrcVr + TYPE_ID_FERRY.poiType -> TYPE_ID_FERRY.poiTypeSrcVr + TYPE_ID_UNEVEN_ROAD.poiType -> TYPE_ID_UNEVEN_ROAD.poiTypeSrcVr + TYPE_ID_NON_MOTOR_VEHICLE.poiType -> TYPE_ID_NON_MOTOR_VEHICLE.poiTypeSrcVr + TYPE_ID_OBSTACLE.poiType -> TYPE_ID_OBSTACLE.poiTypeSrcVr + TYPE_FOURS_ROAD_WORK.poiType -> TYPE_FOURS_ROAD_WORK.poiTypeSrcVr + TYPE_VEHICLE_QUEUE.poiType -> TYPE_VEHICLE_QUEUE.poiTypeSrcVr + TYPE_NO_PASSING.poiType -> TYPE_NO_PASSING.poiTypeSrcVr + TYPE_NO_TURNING_AROUND.poiType -> TYPE_NO_TURNING_AROUND.poiTypeSrcVr + TYPE_USECASE_ID_ROAD_NO_PARKING.poiType -> TYPE_USECASE_ID_ROAD_NO_PARKING.poiTypeSrcVr + TYPE_USECASE_ID_ROAD_NO_TOOTING.poiType -> TYPE_USECASE_ID_ROAD_NO_TOOTING.poiTypeSrcVr + TYPE_USECASE_ID_ROAD_SPEED_LIMIT.poiType -> TYPE_USECASE_ID_ROAD_SPEED_LIMIT.poiTypeSrcVr + TYPE_USECASE_ID_BUS_WARNING.poiType -> TYPE_USECASE_ID_BUS_WARNING.poiTypeSrcVr + TYPE_USECASE_ID_NARROW_RIGHT.poiType -> TYPE_USECASE_ID_NARROW_RIGHT.poiTypeSrcVr + TYPE_USECASE_ID_GAS_STATION.poiType -> TYPE_USECASE_ID_GAS_STATION.poiTypeSrcVr + TYPE_USECASE_ID_ROAD_PEDESTRIAN_SCHOOL.poiType -> TYPE_USECASE_ID_ROAD_PEDESTRIAN_SCHOOL.poiTypeSrcVr + TYPE_USECASE_ID_ACCIDENT.poiType -> TYPE_USECASE_ID_ACCIDENT.poiTypeSrcVr + else -> 0 } } - //===================告警类事件=================== + //===================告警类事件=================== @JvmStatic fun getWarningIcon(poiType: String?): Int { return when (poiType) { @@ -658,22 +877,51 @@ enum class EventTypeEnumNew( TYPE_USECASE_ID_BSW.poiType -> TYPE_USECASE_ID_BSW.poiTypeSrcVr TYPE_USECASE_ID_LCW.poiType -> TYPE_USECASE_ID_LCW.poiTypeSrcVr TYPE_USECASE_ID_EVW.poiType -> TYPE_USECASE_ID_EVW.poiTypeSrcVr - TYPE_USECASE_ID_SLW.poiType -> TYPE_USECASE_ID_SLW.poiTypeSrcVr TYPE_USECASE_ID_LTA.poiType -> TYPE_USECASE_ID_LTA.poiTypeSrcVr - TYPE_USECASE_ID_TJW.poiType -> TYPE_USECASE_ID_TJW.poiTypeSrcVr - TYPE_USECASE_ID_IVP.poiType -> TYPE_USECASE_ID_IVP.poiTypeSrcVr - TYPE_USECASE_ID_IVP_GREEN.poiType -> TYPE_USECASE_ID_IVP_GREEN.poiTypeSrcVr - TYPE_USECASE_ID_ROAD_TRAMCAR.poiType -> TYPE_USECASE_ID_ROAD_TRAMCAR.poiTypeSrcVr - TYPE_USECASE_ID_ROAD_TURN_LEFT_SHARP.poiType -> TYPE_USECASE_ID_ROAD_TURN_LEFT_SHARP.poiTypeSrcVr - TYPE_USECASE_ID_ROAD_TURN_RIGHT_SHARP.poiType -> TYPE_USECASE_ID_ROAD_TURN_RIGHT_SHARP.poiTypeSrcVr - TYPE_USECASE_ID_ROAD_PEDESTRIAN_CROSSING.poiType -> TYPE_USECASE_ID_ROAD_PEDESTRIAN_CROSSING.poiTypeSrcVr - TYPE_USECASE_ID_ROAD_NO_PARKING.poiType -> TYPE_USECASE_ID_ROAD_NO_PARKING.poiTypeSrcVr - TYPE_USECASE_ID_ROAD_GIVE_WAY.poiType -> TYPE_USECASE_ID_ROAD_GIVE_WAY.poiTypeSrcVr TYPE_VIP_IDENTIFICATION.poiType -> TYPE_VIP_IDENTIFICATION.poiTypeSrcVr TYPE_ERROR.poiType -> TYPE_ERROR.poiTypeSrcVr TYPE_OPTIMAL_ROUTE_RECOMMEND.poiType -> TYPE_OPTIMAL_ROUTE_RECOMMEND.poiTypeSrcVr GHOST_PROBE.poiType -> GHOST_PROBE.poiTypeSrcVr AI_ROAD_WORK.poiType -> AI_ROAD_WORK.poiTypeSrcVr + + TYPE_USECASE_ID_IVP_RED.poiType -> TYPE_USECASE_ID_IVP_RED.poiTypeSrcVr + TYPE_USECASE_ID_IVP_GREEN.poiType -> TYPE_USECASE_ID_IVP_GREEN.poiTypeSrcVr + + TYPE_USECASE_ID_VRUCW_PERSON.poiType -> TYPE_USECASE_ID_VRUCW_PERSON.poiTypeSrcVr + TYPE_USECASE_ID_VRUCW_NOT_MOTOR_VEHICLES.poiType -> TYPE_USECASE_ID_VRUCW_NOT_MOTOR_VEHICLES.poiTypeSrcVr + TYPE_USECASE_ID_VRUCW_NOT_MOTOR_VEHICLES.poiType -> TYPE_USECASE_ID_VRUCW_NOT_MOTOR_VEHICLES.poiTypeSrcVr + TYPE_ERROR_WEAKNESS.poiType -> TYPE_ERROR_WEAKNESS.poiTypeSrcVr + + TYPE_USECASE_ID_ROAD_PEDESTRIAN_SCHOOL.poiType -> TYPE_USECASE_ID_ROAD_PEDESTRIAN_SCHOOL.poiTypeSrcVr + TYPE_USECASE_ID_ROAD_NO_PARKING.poiType -> TYPE_USECASE_ID_ROAD_NO_PARKING.poiTypeSrcVr + TYPE_USECASE_ID_SLW.poiType -> TYPE_USECASE_ID_SLW.poiTypeSrcVr + TYPE_USECASE_ID_TJW.poiType -> TYPE_USECASE_ID_TJW.poiTypeSrcVr + TYPE_USECASE_ID_BREAKDOWN_WARNING.poiType -> TYPE_USECASE_ID_BREAKDOWN_WARNING.poiTypeSrcVr + FOURS_PONDING.poiType -> FOURS_PONDING.poiTypeSrcVr + TYPE_USECASE_ID_ROAD_PARKING.poiType -> TYPE_USECASE_ID_ROAD_PARKING.poiTypeSrcVr + TYPE_USECASE_ID_ROAD_VEHICLE_RETROGRADE.poiType -> TYPE_USECASE_ID_ROAD_VEHICLE_RETROGRADE.poiTypeSrcVr + TYPE_ID_SHAPR_TURNS.poiType -> TYPE_ID_SHAPR_TURNS.poiTypeSrcVr + TYPE_ID_BRIDGE.poiType -> TYPE_ID_BRIDGE.poiTypeSrcVr + TYPE_ID_PEDESTRIAN.poiType -> TYPE_ID_PEDESTRIAN.poiTypeSrcVr + TYPE_ID_SLIPPERY_ROAD.poiType -> TYPE_ID_SLIPPERY_ROAD.poiTypeSrcVr + TYPE_ID_TUNNEL.poiType -> TYPE_ID_TUNNEL.poiTypeSrcVr + TYPE_ID_FERRY.poiType -> TYPE_ID_FERRY.poiTypeSrcVr + TYPE_ID_UNEVEN_ROAD.poiType -> TYPE_ID_UNEVEN_ROAD.poiTypeSrcVr + TYPE_ID_NON_MOTOR_VEHICLE.poiType -> TYPE_ID_NON_MOTOR_VEHICLE.poiTypeSrcVr + TYPE_ID_OBSTACLE.poiType -> TYPE_ID_OBSTACLE.poiTypeSrcVr + TYPE_FOURS_ROAD_WORK.poiType -> TYPE_FOURS_ROAD_WORK.poiTypeSrcVr + TYPE_VEHICLE_QUEUE.poiType -> TYPE_VEHICLE_QUEUE.poiTypeSrcVr + TYPE_NO_PASSING.poiType -> TYPE_NO_PASSING.poiTypeSrcVr + TYPE_NO_TURNING_AROUND.poiType -> TYPE_NO_TURNING_AROUND.poiTypeSrcVr + TYPE_USECASE_ID_ROAD_NO_PARKING.poiType -> TYPE_USECASE_ID_ROAD_NO_PARKING.poiTypeSrcVr + TYPE_USECASE_ID_ROAD_NO_TOOTING.poiType -> TYPE_USECASE_ID_ROAD_NO_TOOTING.poiTypeSrcVr + TYPE_USECASE_ID_ROAD_SPEED_LIMIT.poiType -> TYPE_USECASE_ID_ROAD_SPEED_LIMIT.poiTypeSrcVr + TYPE_USECASE_ID_BUS_WARNING.poiType -> TYPE_USECASE_ID_BUS_WARNING.poiTypeSrcVr + TYPE_USECASE_ID_NARROW_RIGHT.poiType -> TYPE_USECASE_ID_NARROW_RIGHT.poiTypeSrcVr + TYPE_USECASE_ID_GAS_STATION.poiType -> TYPE_USECASE_ID_GAS_STATION.poiTypeSrcVr + TYPE_USECASE_ID_ROAD_PEDESTRIAN_SCHOOL.poiType -> TYPE_USECASE_ID_ROAD_PEDESTRIAN_SCHOOL.poiTypeSrcVr + TYPE_USECASE_ID_ACCIDENT.poiType -> TYPE_USECASE_ID_ACCIDENT.poiTypeSrcVr + else -> TYPE_ERROR.poiTypeSrcVr } } @@ -690,23 +938,53 @@ enum class EventTypeEnumNew( TYPE_USECASE_ID_BSW.poiType -> TYPE_USECASE_ID_BSW.content TYPE_USECASE_ID_LCW.poiType -> TYPE_USECASE_ID_LCW.content TYPE_USECASE_ID_EVW.poiType -> TYPE_USECASE_ID_EVW.content - TYPE_USECASE_ID_SLW.poiType -> TYPE_USECASE_ID_SLW.content TYPE_USECASE_ID_LTA.poiType -> TYPE_USECASE_ID_LTA.content - TYPE_USECASE_ID_TJW.poiType -> TYPE_USECASE_ID_TJW.content - TYPE_USECASE_ID_IVP.poiType -> TYPE_USECASE_ID_IVP.content - TYPE_USECASE_ID_IVP_GREEN.poiType -> TYPE_USECASE_ID_IVP_GREEN.content - TYPE_USECASE_ID_ROAD_TRAMCAR.poiType -> TYPE_USECASE_ID_ROAD_TRAMCAR.content - TYPE_USECASE_ID_ROAD_TURN_LEFT_SHARP.poiType -> TYPE_USECASE_ID_ROAD_TURN_LEFT_SHARP.content - TYPE_USECASE_ID_ROAD_TURN_RIGHT_SHARP.poiType -> TYPE_USECASE_ID_ROAD_TURN_RIGHT_SHARP.content - TYPE_USECASE_ID_ROAD_PEDESTRIAN_CROSSING.poiType -> TYPE_USECASE_ID_ROAD_PEDESTRIAN_CROSSING.content - TYPE_USECASE_ID_ROAD_NO_PARKING.poiType -> TYPE_USECASE_ID_ROAD_NO_PARKING.content - TYPE_USECASE_ID_ROAD_GIVE_WAY.poiType -> TYPE_USECASE_ID_ROAD_GIVE_WAY.content TYPE_VIP_IDENTIFICATION.poiType -> TYPE_VIP_IDENTIFICATION.content FOURS_ROAD_WORK.poiType -> FOURS_ROAD_WORK.content AI_ROAD_WORK.poiType -> AI_ROAD_WORK.content TYPE_ERROR.poiType -> TYPE_ERROR.content TYPE_OPTIMAL_ROUTE_RECOMMEND.poiType -> TYPE_OPTIMAL_ROUTE_RECOMMEND.content GHOST_PROBE.poiType -> GHOST_PROBE.content + + TYPE_USECASE_ID_IVP_RED.poiType -> TYPE_USECASE_ID_IVP_RED.content + TYPE_USECASE_ID_IVP_GREEN.poiType -> TYPE_USECASE_ID_IVP_GREEN.content + + TYPE_USECASE_ID_VRUCW_PERSON.poiType -> TYPE_USECASE_ID_VRUCW_PERSON.content + TYPE_USECASE_ID_VRUCW_MOTOR_VEHICLES.poiType -> TYPE_USECASE_ID_VRUCW_MOTOR_VEHICLES.content + TYPE_USECASE_ID_VRUCW_NOT_MOTOR_VEHICLES.poiType -> TYPE_USECASE_ID_VRUCW_NOT_MOTOR_VEHICLES.content + TYPE_ERROR_WEAKNESS.poiType -> TYPE_ERROR_WEAKNESS.content + + TYPE_USECASE_ID_ROAD_PEDESTRIAN_SCHOOL.poiType -> TYPE_USECASE_ID_ROAD_PEDESTRIAN_SCHOOL.content + TYPE_USECASE_ID_ROAD_NO_PARKING.poiType -> TYPE_USECASE_ID_ROAD_NO_PARKING.content + TYPE_FOURS_ROAD_WORK.poiType -> TYPE_FOURS_ROAD_WORK.content + TYPE_USECASE_ID_SLW.poiType -> TYPE_USECASE_ID_SLW.content + TYPE_USECASE_ID_TJW.poiType -> TYPE_USECASE_ID_TJW.content + TYPE_USECASE_ID_BREAKDOWN_WARNING.poiType -> TYPE_USECASE_ID_BREAKDOWN_WARNING.content + FOURS_PONDING.poiType -> FOURS_PONDING.content + TYPE_USECASE_ID_ROAD_PARKING.poiType -> TYPE_USECASE_ID_ROAD_PARKING.content + TYPE_USECASE_ID_ROAD_VEHICLE_RETROGRADE.poiType -> TYPE_USECASE_ID_ROAD_VEHICLE_RETROGRADE.content + TYPE_ID_SHAPR_TURNS.poiType -> TYPE_ID_SHAPR_TURNS.content + TYPE_ID_BRIDGE.poiType -> TYPE_ID_BRIDGE.content + TYPE_ID_PEDESTRIAN.poiType -> TYPE_ID_PEDESTRIAN.content + TYPE_ID_SLIPPERY_ROAD.poiType -> TYPE_ID_SLIPPERY_ROAD.content + TYPE_ID_TUNNEL.poiType -> TYPE_ID_TUNNEL.content + TYPE_ID_FERRY.poiType -> TYPE_ID_FERRY.content + TYPE_ID_UNEVEN_ROAD.poiType -> TYPE_ID_UNEVEN_ROAD.content + TYPE_ID_NON_MOTOR_VEHICLE.poiType -> TYPE_ID_NON_MOTOR_VEHICLE.content + TYPE_ID_OBSTACLE.poiType -> TYPE_ID_OBSTACLE.content + TYPE_FOURS_ROAD_WORK.poiType -> TYPE_FOURS_ROAD_WORK.content + TYPE_VEHICLE_QUEUE.poiType -> TYPE_VEHICLE_QUEUE.content + TYPE_NO_PASSING.poiType -> TYPE_NO_PASSING.content + TYPE_NO_TURNING_AROUND.poiType -> TYPE_NO_TURNING_AROUND.content + TYPE_USECASE_ID_ROAD_NO_PARKING.poiType -> TYPE_USECASE_ID_ROAD_NO_PARKING.content + TYPE_USECASE_ID_ROAD_NO_TOOTING.poiType -> TYPE_USECASE_ID_ROAD_NO_TOOTING.content + TYPE_USECASE_ID_ROAD_SPEED_LIMIT.poiType -> TYPE_USECASE_ID_ROAD_SPEED_LIMIT.content + TYPE_USECASE_ID_BUS_WARNING.poiType -> TYPE_USECASE_ID_BUS_WARNING.content + TYPE_USECASE_ID_NARROW_RIGHT.poiType -> TYPE_USECASE_ID_NARROW_RIGHT.content + TYPE_USECASE_ID_GAS_STATION.poiType -> TYPE_USECASE_ID_GAS_STATION.content + TYPE_USECASE_ID_ROAD_PEDESTRIAN_SCHOOL.poiType -> TYPE_USECASE_ID_ROAD_PEDESTRIAN_SCHOOL.content + TYPE_USECASE_ID_ACCIDENT.poiType -> TYPE_USECASE_ID_ACCIDENT.content + else -> TYPE_ERROR.content } } @@ -723,23 +1001,53 @@ enum class EventTypeEnumNew( TYPE_USECASE_ID_BSW.poiType -> TYPE_USECASE_ID_BSW.tts TYPE_USECASE_ID_LCW.poiType -> TYPE_USECASE_ID_LCW.tts TYPE_USECASE_ID_EVW.poiType -> TYPE_USECASE_ID_EVW.tts - TYPE_USECASE_ID_SLW.poiType -> TYPE_USECASE_ID_SLW.tts TYPE_USECASE_ID_LTA.poiType -> TYPE_USECASE_ID_LTA.tts - TYPE_USECASE_ID_TJW.poiType -> TYPE_USECASE_ID_TJW.tts - TYPE_USECASE_ID_IVP.poiType -> TYPE_USECASE_ID_IVP.tts - TYPE_USECASE_ID_IVP_GREEN.poiType -> TYPE_USECASE_ID_IVP_GREEN.tts - TYPE_USECASE_ID_ROAD_TRAMCAR.poiType -> TYPE_USECASE_ID_ROAD_TRAMCAR.tts - TYPE_USECASE_ID_ROAD_TURN_LEFT_SHARP.poiType -> TYPE_USECASE_ID_ROAD_TURN_LEFT_SHARP.tts - TYPE_USECASE_ID_ROAD_TURN_RIGHT_SHARP.poiType -> TYPE_USECASE_ID_ROAD_TURN_RIGHT_SHARP.tts - TYPE_USECASE_ID_ROAD_PEDESTRIAN_CROSSING.poiType -> TYPE_USECASE_ID_ROAD_PEDESTRIAN_CROSSING.tts - TYPE_USECASE_ID_ROAD_NO_PARKING.poiType -> TYPE_USECASE_ID_ROAD_NO_PARKING.tts - TYPE_USECASE_ID_ROAD_GIVE_WAY.poiType -> TYPE_USECASE_ID_ROAD_GIVE_WAY.tts TYPE_VIP_IDENTIFICATION.poiType -> TYPE_VIP_IDENTIFICATION.tts FOURS_ROAD_WORK.poiType -> FOURS_ROAD_WORK.tts AI_ROAD_WORK.poiType -> AI_ROAD_WORK.tts TYPE_ERROR.poiType -> TYPE_ERROR.tts TYPE_OPTIMAL_ROUTE_RECOMMEND.poiType -> TYPE_OPTIMAL_ROUTE_RECOMMEND.tts GHOST_PROBE.poiType -> GHOST_PROBE.tts + + TYPE_USECASE_ID_IVP_RED.poiType -> TYPE_USECASE_ID_IVP_RED.tts + TYPE_USECASE_ID_IVP_GREEN.poiType -> TYPE_USECASE_ID_IVP_GREEN.tts + + TYPE_USECASE_ID_VRUCW_PERSON.poiType -> TYPE_USECASE_ID_VRUCW_PERSON.tts + TYPE_USECASE_ID_VRUCW_MOTOR_VEHICLES.poiType -> TYPE_USECASE_ID_VRUCW_MOTOR_VEHICLES.tts + TYPE_USECASE_ID_VRUCW_NOT_MOTOR_VEHICLES.poiType -> TYPE_USECASE_ID_VRUCW_NOT_MOTOR_VEHICLES.tts + TYPE_ERROR_WEAKNESS.poiType -> TYPE_ERROR_WEAKNESS.tts + + TYPE_USECASE_ID_ROAD_PEDESTRIAN_SCHOOL.poiType -> TYPE_USECASE_ID_ROAD_PEDESTRIAN_SCHOOL.tts + TYPE_USECASE_ID_ROAD_NO_PARKING.poiType -> TYPE_USECASE_ID_ROAD_NO_PARKING.tts + TYPE_FOURS_ROAD_WORK.poiType -> TYPE_FOURS_ROAD_WORK.tts + TYPE_USECASE_ID_SLW.poiType -> TYPE_USECASE_ID_SLW.tts + TYPE_USECASE_ID_TJW.poiType -> TYPE_USECASE_ID_TJW.tts + TYPE_USECASE_ID_BREAKDOWN_WARNING.poiType -> TYPE_USECASE_ID_BREAKDOWN_WARNING.tts + FOURS_PONDING.poiType -> FOURS_PONDING.tts + TYPE_USECASE_ID_ROAD_PARKING.poiType -> TYPE_USECASE_ID_ROAD_PARKING.tts + TYPE_USECASE_ID_ROAD_VEHICLE_RETROGRADE.poiType -> TYPE_USECASE_ID_ROAD_VEHICLE_RETROGRADE.tts + TYPE_ID_SHAPR_TURNS.poiType -> TYPE_ID_SHAPR_TURNS.tts + TYPE_ID_BRIDGE.poiType -> TYPE_ID_BRIDGE.tts + TYPE_ID_PEDESTRIAN.poiType -> TYPE_ID_PEDESTRIAN.tts + TYPE_ID_SLIPPERY_ROAD.poiType -> TYPE_ID_SLIPPERY_ROAD.tts + TYPE_ID_TUNNEL.poiType -> TYPE_ID_TUNNEL.tts + TYPE_ID_FERRY.poiType -> TYPE_ID_FERRY.tts + TYPE_ID_UNEVEN_ROAD.poiType -> TYPE_ID_UNEVEN_ROAD.tts + TYPE_ID_NON_MOTOR_VEHICLE.poiType -> TYPE_ID_NON_MOTOR_VEHICLE.tts + TYPE_ID_OBSTACLE.poiType -> TYPE_ID_OBSTACLE.tts + TYPE_FOURS_ROAD_WORK.poiType -> TYPE_FOURS_ROAD_WORK.tts + TYPE_VEHICLE_QUEUE.poiType -> TYPE_VEHICLE_QUEUE.tts + TYPE_NO_PASSING.poiType -> TYPE_NO_PASSING.tts + TYPE_NO_TURNING_AROUND.poiType -> TYPE_NO_TURNING_AROUND.tts + TYPE_USECASE_ID_ROAD_NO_PARKING.poiType -> TYPE_USECASE_ID_ROAD_NO_PARKING.tts + TYPE_USECASE_ID_ROAD_NO_TOOTING.poiType -> TYPE_USECASE_ID_ROAD_NO_TOOTING.tts + TYPE_USECASE_ID_ROAD_SPEED_LIMIT.poiType -> TYPE_USECASE_ID_ROAD_SPEED_LIMIT.tts + TYPE_USECASE_ID_BUS_WARNING.poiType -> TYPE_USECASE_ID_BUS_WARNING.tts + TYPE_USECASE_ID_NARROW_RIGHT.poiType -> TYPE_USECASE_ID_NARROW_RIGHT.tts + TYPE_USECASE_ID_GAS_STATION.poiType -> TYPE_USECASE_ID_GAS_STATION.tts + TYPE_USECASE_ID_ROAD_PEDESTRIAN_SCHOOL.poiType -> TYPE_USECASE_ID_ROAD_PEDESTRIAN_SCHOOL.tts + TYPE_USECASE_ID_ACCIDENT.poiType -> TYPE_USECASE_ID_ACCIDENT.tts + else -> TYPE_ERROR.tts } } diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/EventTypeEnumTrafficLight.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/EventTypeEnumTrafficLight.kt deleted file mode 100644 index 4b3af24b5d..0000000000 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/EventTypeEnumTrafficLight.kt +++ /dev/null @@ -1,71 +0,0 @@ -package com.mogo.eagle.core.data.enums - -import com.mogo.eagle.core.data.R - - -/** - * 交通信号灯 - */ -enum class EventTypeEnumTrafficLight( - val poiType: String, val poiTypeStr: String = "", - val poiTypeStrVr: String = "", - val poiTypeSrcVr: Int = R.drawable.v2x_icon_live_logo, - val content: String = "", val tts: String = "" -) { - - TYPE_USECASE_ID_IVP_RED( - 0x1.toString(), - "闯红灯预警", - poiTypeSrcVr = R.drawable.icon_warning_v2x_traffic_lights_red, - content = "路口红灯,禁止通行", - tts = "路口红灯,禁止通行" - ), - TYPE_USECASE_ID_IVP_GREEN( - 0x2.toString(), - "绿波通行", - poiTypeSrcVr = R.drawable.icon_warning_v2x_traffic_lights_green, - content = "建议车速 %s KM/H", - tts = "建议车速 %s KM/H" - ), - - TYPE_ERROR( - 0.toString(), - "未知/错误/异常", - poiTypeSrcVr = R.drawable.icon_warning_v2x_abnormal_vehicle, - content = "", - tts = "" - ); - - - companion object { - @JvmStatic - fun getWarningIcon(poiType: String?): Int { - return when (poiType) { - TYPE_USECASE_ID_IVP_RED.poiType -> TYPE_USECASE_ID_IVP_RED.poiTypeSrcVr - TYPE_USECASE_ID_IVP_GREEN.poiType -> TYPE_USECASE_ID_IVP_GREEN.poiTypeSrcVr - - else -> TYPE_ERROR.poiTypeSrcVr - } - } - - @JvmStatic - fun getWarningContent(poiType: String?): String { - return when (poiType) { - TYPE_USECASE_ID_IVP_RED.poiType -> TYPE_USECASE_ID_IVP_RED.content - TYPE_USECASE_ID_IVP_GREEN.poiType -> TYPE_USECASE_ID_IVP_GREEN.content - - else -> TYPE_ERROR.content - } - } - - @JvmStatic - fun getWarningTts(poiType: String?): String { - return when (poiType) { - TYPE_USECASE_ID_IVP_RED.poiType -> TYPE_USECASE_ID_IVP_RED.tts - TYPE_USECASE_ID_IVP_GREEN.poiType -> TYPE_USECASE_ID_IVP_GREEN.tts - else -> TYPE_ERROR.tts - } - } - } - -} \ No newline at end of file diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/EventTypeEnumWeaknessTraffic.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/EventTypeEnumWeaknessTraffic.kt deleted file mode 100644 index 8ca4806dc1..0000000000 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/EventTypeEnumWeaknessTraffic.kt +++ /dev/null @@ -1,80 +0,0 @@ -package com.mogo.eagle.core.data.enums - -import com.mogo.eagle.core.data.R - - -/** - * 弱势交通分类 - */ -enum class EventTypeEnumWeaknessTraffic( - val poiType: String, val poiTypeStr: String = "", - val poiTypeStrVr: String = "", - val poiTypeSrcVr: Int = R.drawable.v2x_icon_live_logo, - val content: String = "", val tts: String = "" -) { - - TYPE_USECASE_ID_VRUCW_MOTOR_VEHICLES( - 1.toString(), - "弱势交通参与者碰撞预警", - poiTypeSrcVr = R.drawable.icon_warning_v2x_motorcycle_collision, - content = "注意机动车", - tts = "注意机动车" - ), - TYPE_USECASE_ID_VRUCW_NOT_MOTOR_VEHICLES( - 2.toString(), - "弱势交通参与者碰撞预警", - poiTypeSrcVr = R.drawable.icon_warning_v2x_motobike, - content = "注意非机动车", - tts = "注意非机动车" - ), - TYPE_USECASE_ID_VRUCW_PERSON( - 3.toString(), - "弱势交通参与者碰撞预警", - poiTypeSrcVr = R.drawable.icon_warning_v2x_pedestrian_crossing, - content = "注意行人", - tts = "注意行人" - ), - - TYPE_ERROR( - 0.toString(), - "未知/错误/异常", - poiTypeSrcVr = R.drawable.icon_warning_v2x_abnormal_vehicle, - content = "前方有未知障碍物", - tts = "前方有未知障碍物" - ); - - - companion object { - @JvmStatic - fun getWarningIcon(poiType: String?): Int { - return when (poiType) { - TYPE_USECASE_ID_VRUCW_PERSON.poiType -> TYPE_USECASE_ID_VRUCW_PERSON.poiTypeSrcVr - TYPE_USECASE_ID_VRUCW_NOT_MOTOR_VEHICLES.poiType -> TYPE_USECASE_ID_VRUCW_NOT_MOTOR_VEHICLES.poiTypeSrcVr - TYPE_USECASE_ID_VRUCW_NOT_MOTOR_VEHICLES.poiType -> TYPE_USECASE_ID_VRUCW_NOT_MOTOR_VEHICLES.poiTypeSrcVr - - else -> TYPE_ERROR.poiTypeSrcVr - } - } - - @JvmStatic - fun getWarningContent(poiType: String?): String { - return when (poiType) { - TYPE_USECASE_ID_VRUCW_PERSON.poiType -> TYPE_USECASE_ID_VRUCW_PERSON.content - TYPE_USECASE_ID_VRUCW_MOTOR_VEHICLES.poiType -> TYPE_USECASE_ID_VRUCW_MOTOR_VEHICLES.content - TYPE_USECASE_ID_VRUCW_NOT_MOTOR_VEHICLES.poiType -> TYPE_USECASE_ID_VRUCW_NOT_MOTOR_VEHICLES.content - else -> TYPE_ERROR.content - } - } - - @JvmStatic - fun getWarningTts(poiType: String?): String { - return when (poiType) { - TYPE_USECASE_ID_VRUCW_PERSON.poiType -> TYPE_USECASE_ID_VRUCW_PERSON.tts - TYPE_USECASE_ID_VRUCW_MOTOR_VEHICLES.poiType -> TYPE_USECASE_ID_VRUCW_MOTOR_VEHICLES.tts - TYPE_USECASE_ID_VRUCW_NOT_MOTOR_VEHICLES.poiType -> TYPE_USECASE_ID_VRUCW_NOT_MOTOR_VEHICLES.tts - else -> TYPE_ERROR.tts - } - } - } - -} \ No newline at end of file diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/V2iEventTypeEnum.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/V2iEventTypeEnum.kt deleted file mode 100644 index d7cff6cad0..0000000000 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/V2iEventTypeEnum.kt +++ /dev/null @@ -1,410 +0,0 @@ -package com.mogo.eagle.core.data.enums - -import com.mogo.eagle.core.data.R - -/** - * OBU、V2i事件类型枚举类 - */ -enum class V2iEventTypeEnum( - val poiType: String, val poiTypeStr: String = "", - val poiTypeStrVr: String = "", - val poiTypeSrcVr: Int = R.drawable.v2x_icon_live_logo, - val content: String = "", val tts: String = "" -) { - - //-----------道路危险情况预警 start ---------------> - TYPE_USECASE_ID_BREAKDOWN_WARNING( //故障车辆 - 101.toString(), - "车辆故障", - poiTypeSrcVr = R.drawable.icon_warning_v2x_collision_warning, - content = "前方%s米有故障车辆,影响路段%s米", - tts = "前方%s米有故障车辆,影响路段%s米" - ), - FOURS_PONDING( //积水 - 407.toString(), - "道路积水", - poiTypeSrcVr = R.drawable.v2x_icon_jishui_vr, - content = "前方%s米道路积水,影响路段%s米", - tts ="前方%s米道路积水,影响路段%s米" - ), - TYPE_USECASE_ID_ROAD_PARKING( //异常停车 - 412.toString(), - "异常停车", - poiTypeSrcVr = R.drawable.icon_warning_v2x_no_parking, - content = "前方%s米异常停车,影响路段%s米", - tts = "前方%s米异常停车,影响路段%s米" - ), - TYPE_USECASE_ID_TJW( //%d - 707.toString(), - "拥堵", - poiTypeSrcVr = R.drawable.icon_warning_v2x_congestion, - content = "前方%s米拥堵,影响路段%s米", - tts = "前方%s米拥堵,影响路段%s米" - ), - TYPE_USECASE_ID_SLW( //超速行驶 - 901.toString(), - "超速行驶", - poiTypeSrcVr = R.drawable.icon_warning_v2x_over_speed, - content = "前方%s米超速行驶,影响路段%s米", - tts = "前方%s米超速行驶,影响路段%s米" - ), - TYPE_USECASE_ID_ROAD_VEHICLE_RETROGRADE( //车辆逆行 - 904.toString(), - "逆行车辆", - poiTypeSrcVr = R.drawable.icon_default, - content = "前方%s米逆行车辆,影响路段%s米", - tts = "前方%s米逆行车辆,影响路段%s米" - ), - TYPE_USECASE_ID_ROAD_SPEED_LIMIT( - 1.toString(), - "超速", - poiTypeSrcVr = R.drawable.icon_warning_v2x_over_speed, - content = "您已超速,请减速行驶", - tts = "您已超速,请减速行驶" - ), - - //------------道路危险情况预警 end -----------> - - //------------车内标牌 start --------------> -// TYPE_ID_NTERSECTION( -// 1.toString(), -// "十字路口", -// poiTypeSrcVr = R.drawable.icon_warning_v2x_tramcar, -// content = "前方%s米十字路口,影响路段%s米", -// tts = "前方%s米十字路口,影响路段%s米" -// ), - TYPE_ID_SHAPR_TURNS( - 2.toString(), - "急转弯", - poiTypeSrcVr = R.drawable.icon_warning_v2x_turn_left_sharp, - content = "前方%s米急转弯", - tts = "前方%s米急转弯" - ), - TYPE_ID_BRIDGE( - 8.toString(), - "桥梁", - poiTypeSrcVr = R.drawable.icon_warning_v2x_hump_bridge, - content = "前方%s米桥梁", - tts = "前方%s米桥梁" - ), - TYPE_ID_PEDESTRIAN( - 10.toString(), - "行人", - poiTypeSrcVr = R.drawable.icon_warning_v2x_pedestrian_crossing, - content = "前方%s米行人", - tts = "前方%s米行人" - ), - TYPE_ID_SLIPPERY_ROAD( - 17.toString(), - "路滑", - poiTypeSrcVr = R.drawable.v2x_icon_jiebing_vr, - content = "前方%s米路滑", - tts = "前方%s米路滑" - ), - TYPE_ID_TUNNEL( - 21.toString(), - "隧道", - poiTypeSrcVr = R.drawable.icon_default, - content = "前方%s米隧道", - tts = "前方%s米隧道" - ), - TYPE_ID_FERRY( - 22.toString(), - "渡轮", - poiTypeSrcVr = R.drawable.icon_default, - content = "前方%s米渡轮", - tts = "前方%s米渡轮" - ), - TYPE_ID_UNEVEN_ROAD( - 24.toString(), - "路面不平", - poiTypeSrcVr = R.drawable.icon_warning_road_hollow, - content = "前方%s米路面不平", - tts = "前方%s米路面不平" - ), - TYPE_ID_NON_MOTOR_VEHICLE( - 32.toString(), - "非机动车", - poiTypeSrcVr = R.drawable.icon_warning_v2x_motobike, - content = "前方%s米有非机动车", - tts = "前方%s米有非机动车" - ), - TYPE_ID_OBSTACLE( - 36.toString(), - "障碍", - poiTypeSrcVr = R.drawable.icon_default, - content = "前方%s米障碍", - tts = "前方%s米障碍" - ), - TYPE_FOURS_ROAD_WORK( - 38.toString(), - "施工", - poiTypeSrcVr = R.drawable.icon_warning_v2x_road_construction, - content = "前方%s米施工", - tts = "前方%s米施工" - ), - TYPE_VEHICLE_QUEUE( - 47.toString(), - "车队", - poiTypeSrcVr = R.drawable.icon_default, - content = "前方%s米车队", - tts = "前方%s米车队" - ), - TYPE_NO_PASSING( - 51.toString(), - "不通", - poiTypeSrcVr = R.drawable.v2x_icon_fenglu_vr, - content = "前方%s米不通", - tts = "前方%s米不通" - ), - TYPE_NO_TURNING_AROUND( - 75.toString(), - "禁止掉头", - poiTypeSrcVr = R.drawable.icon_default, - content = "前方%s米禁止掉头", - tts = "前方%s米禁止掉头" - ), - TYPE_USECASE_ID_ROAD_NO_PARKING( - 78.toString(), - "禁止停车", - poiTypeSrcVr = R.drawable.icon_warning_v2x_no_parking, - content = "前方%s米禁止停车", - tts = "前方%s米禁止停车" - ), - TYPE_USECASE_ID_ROAD_NO_TOOTING( - 80.toString(), - "禁止鸣笛", - poiTypeSrcVr = R.drawable.icon_warning_v2x_no_tooting, - content = "前方%s米禁止鸣笛", - tts = "前方%s米禁止鸣笛" - ), - -// TYPE_USECASE_ID_GO_STRAIGHT_TURN_RIGHT( -// 100.toString(), -// "直行或右转", -// poiTypeSrcVr = R.drawable.icon_warning_v2x_no_parking, -// content = "前方%s米直行或右转", -// tts = "前方%s米直行或右转" -// ), - TYPE_USECASE_ID_BUS_WARNING( - 123.toString(), - "公交提醒", - poiTypeSrcVr = R.drawable.icon_warning_v2x_tramcar, - content = "前方%s米公交提醒", - tts = "前方%s米公交提醒" - ), - TYPE_USECASE_ID_NARROW_RIGHT( - 163.toString(), - "右侧变窄/车道数减少", - poiTypeSrcVr = R.drawable.icon_default, - content = "前方%s米右侧变窄/车道数减少", - tts = "前方%s米右侧变窄/车道数减少" - ), - TYPE_USECASE_ID_GAS_STATION( - 201.toString(), - "加油站", - poiTypeSrcVr = R.drawable.icon_warning_gas_station, - content = "前方%s米加油站", - tts = "前方%s米加油站" - ), - TYPE_USECASE_ID_ROAD_PEDESTRIAN_SCHOOL( - 242.toString(), - "学校", - poiTypeSrcVr = R.drawable.icon_warning_v2x_school, - content = "前方%s米学校", - tts = "前方%s米学校" - ), - - TYPE_USECASE_ID_ACCIDENT( - 244.toString(), - "事故", - poiTypeSrcVr = R.drawable.v2x_icon_jiaotongshigu_vr, - content = "前方%s米事故", - tts = "前方%s米事故" - ), - - //------------车内标牌 end --------------> - - TYPE_USECASE_ID_IVP( - 0x2.toString(), - "闯红灯预警", - poiTypeSrcVr = R.drawable.icon_warning_v2x_traffic_lights_red, - content = "路口红灯,禁止通行", - tts = "路口红灯,禁止通行" - ), - TYPE_USECASE_ID_IVP_GREEN( - 0x2B091.toString(), - "绿波通行", - poiTypeSrcVr = R.drawable.icon_warning_v2x_traffic_lights_green, - content = "建议车速 %s KM/H", - tts = "建议车速 %s KM/H" - ), - - TYPE_USECASE_ID_ROAD_PEDESTRIAN_CROSSING( - 0x2C04.toString(), - "人行横道", - poiTypeSrcVr = R.drawable.icon_warning_v2x_pedestrian_crossing, - content = "注意前方人行横道", - tts = "前方人行横道,减速慢行" - ), - - TYPE_ERROR( - 0.toString(), - "未知/错误/异常", - poiTypeSrcVr = R.drawable.icon_warning_v2x_abnormal_vehicle, - content = "", - tts = "" - ), - - TYPE_VIP_IDENTIFICATION("10022", "", "", R.drawable.icon_warning_v2x_vip_turn_light, "VIP车辆优先通行", "已为您变灯,请优先通行"), - TYPE_OPTIMAL_ROUTE_RECOMMEND("2000", "", "", R.drawable.icon_warning_v2x_optimal_route, "为您推荐最优路线", "已为您选择最优路线"); - - - companion object { - //===================告警类事件=================== - - @JvmStatic - fun getTts(poiType: String?): String { - return when (poiType) { - TYPE_FOURS_ROAD_WORK.poiType -> TYPE_FOURS_ROAD_WORK.tts - else -> "道路事件" - } - } - - @JvmStatic - fun getWarningIcon(poiType: String?): Int { - return when (poiType) { - TYPE_USECASE_ID_SLW.poiType -> TYPE_USECASE_ID_SLW.poiTypeSrcVr - TYPE_USECASE_ID_TJW.poiType -> TYPE_USECASE_ID_TJW.poiTypeSrcVr - TYPE_USECASE_ID_IVP.poiType -> TYPE_USECASE_ID_IVP.poiTypeSrcVr - TYPE_USECASE_ID_IVP_GREEN.poiType -> TYPE_USECASE_ID_IVP_GREEN.poiTypeSrcVr - TYPE_USECASE_ID_ROAD_PEDESTRIAN_CROSSING.poiType -> TYPE_USECASE_ID_ROAD_PEDESTRIAN_CROSSING.poiTypeSrcVr - TYPE_USECASE_ID_ROAD_PEDESTRIAN_SCHOOL.poiType -> TYPE_USECASE_ID_ROAD_PEDESTRIAN_SCHOOL.poiTypeSrcVr - TYPE_USECASE_ID_ROAD_NO_PARKING.poiType -> TYPE_USECASE_ID_ROAD_NO_PARKING.poiTypeSrcVr - TYPE_VIP_IDENTIFICATION.poiType -> TYPE_VIP_IDENTIFICATION.poiTypeSrcVr - TYPE_ERROR.poiType -> TYPE_ERROR.poiTypeSrcVr - TYPE_OPTIMAL_ROUTE_RECOMMEND.poiType -> TYPE_OPTIMAL_ROUTE_RECOMMEND.poiTypeSrcVr - TYPE_USECASE_ID_BREAKDOWN_WARNING.poiType -> TYPE_USECASE_ID_BREAKDOWN_WARNING.poiTypeSrcVr - FOURS_PONDING.poiType -> FOURS_PONDING.poiTypeSrcVr - TYPE_USECASE_ID_ROAD_PARKING.poiType -> TYPE_USECASE_ID_ROAD_PARKING.poiTypeSrcVr - TYPE_USECASE_ID_ROAD_VEHICLE_RETROGRADE.poiType -> TYPE_USECASE_ID_ROAD_VEHICLE_RETROGRADE.poiTypeSrcVr -// TYPE_ID_NTERSECTION.poiType -> TYPE_ID_NTERSECTION.poiTypeSrcVr - TYPE_ID_SHAPR_TURNS.poiType -> TYPE_ID_SHAPR_TURNS.poiTypeSrcVr - TYPE_ID_BRIDGE.poiType -> TYPE_ID_BRIDGE.poiTypeSrcVr - TYPE_ID_PEDESTRIAN.poiType -> TYPE_ID_PEDESTRIAN.poiTypeSrcVr - TYPE_ID_SLIPPERY_ROAD.poiType -> TYPE_ID_SLIPPERY_ROAD.poiTypeSrcVr - TYPE_ID_TUNNEL.poiType -> TYPE_ID_TUNNEL.poiTypeSrcVr - TYPE_ID_FERRY.poiType -> TYPE_ID_FERRY.poiTypeSrcVr - TYPE_ID_UNEVEN_ROAD.poiType -> TYPE_ID_UNEVEN_ROAD.poiTypeSrcVr - TYPE_ID_NON_MOTOR_VEHICLE.poiType -> TYPE_ID_NON_MOTOR_VEHICLE.poiTypeSrcVr - TYPE_ID_OBSTACLE.poiType -> TYPE_ID_OBSTACLE.poiTypeSrcVr - TYPE_FOURS_ROAD_WORK.poiType -> TYPE_FOURS_ROAD_WORK.poiTypeSrcVr - TYPE_VEHICLE_QUEUE.poiType -> TYPE_VEHICLE_QUEUE.poiTypeSrcVr - TYPE_NO_PASSING.poiType -> TYPE_NO_PASSING.poiTypeSrcVr - TYPE_NO_TURNING_AROUND.poiType -> TYPE_NO_TURNING_AROUND.poiTypeSrcVr - TYPE_USECASE_ID_ROAD_NO_PARKING.poiType -> TYPE_USECASE_ID_ROAD_NO_PARKING.poiTypeSrcVr - TYPE_USECASE_ID_ROAD_NO_TOOTING.poiType -> TYPE_USECASE_ID_ROAD_NO_TOOTING.poiTypeSrcVr - TYPE_USECASE_ID_ROAD_SPEED_LIMIT.poiType -> TYPE_USECASE_ID_ROAD_SPEED_LIMIT.poiTypeSrcVr -// TYPE_USECASE_ID_GO_STRAIGHT_TURN_RIGHT.poiType -> TYPE_USECASE_ID_GO_STRAIGHT_TURN_RIGHT.poiTypeSrcVr - TYPE_USECASE_ID_BUS_WARNING.poiType -> TYPE_USECASE_ID_BUS_WARNING.poiTypeSrcVr - TYPE_USECASE_ID_NARROW_RIGHT.poiType -> TYPE_USECASE_ID_NARROW_RIGHT.poiTypeSrcVr - TYPE_USECASE_ID_GAS_STATION.poiType -> TYPE_USECASE_ID_GAS_STATION.poiTypeSrcVr - TYPE_USECASE_ID_ROAD_PEDESTRIAN_SCHOOL.poiType -> TYPE_USECASE_ID_ROAD_PEDESTRIAN_SCHOOL.poiTypeSrcVr - TYPE_USECASE_ID_ACCIDENT.poiType -> TYPE_USECASE_ID_ACCIDENT.poiTypeSrcVr - else -> TYPE_ERROR.poiTypeSrcVr - } - } - - @JvmStatic - fun getWarningContent(poiType: String?): String { - return when (poiType) { - TYPE_USECASE_ID_SLW.poiType -> TYPE_USECASE_ID_SLW.content - TYPE_USECASE_ID_TJW.poiType -> TYPE_USECASE_ID_TJW.content - TYPE_USECASE_ID_IVP.poiType -> TYPE_USECASE_ID_IVP.content - TYPE_USECASE_ID_IVP_GREEN.poiType -> TYPE_USECASE_ID_IVP_GREEN.content - TYPE_USECASE_ID_ROAD_PEDESTRIAN_CROSSING.poiType -> TYPE_USECASE_ID_ROAD_PEDESTRIAN_CROSSING.content - TYPE_USECASE_ID_ROAD_PEDESTRIAN_SCHOOL.poiType -> TYPE_USECASE_ID_ROAD_PEDESTRIAN_SCHOOL.content - TYPE_USECASE_ID_ROAD_NO_PARKING.poiType -> TYPE_USECASE_ID_ROAD_NO_PARKING.content - TYPE_VIP_IDENTIFICATION.poiType -> TYPE_VIP_IDENTIFICATION.content - TYPE_ERROR.poiType -> TYPE_ERROR.content - TYPE_FOURS_ROAD_WORK.poiType -> TYPE_FOURS_ROAD_WORK.content - TYPE_OPTIMAL_ROUTE_RECOMMEND.poiType -> TYPE_OPTIMAL_ROUTE_RECOMMEND.content - TYPE_USECASE_ID_BREAKDOWN_WARNING.poiType -> TYPE_USECASE_ID_BREAKDOWN_WARNING.content - FOURS_PONDING.poiType -> FOURS_PONDING.content - TYPE_USECASE_ID_ROAD_PARKING.poiType -> TYPE_USECASE_ID_ROAD_PARKING.content - TYPE_USECASE_ID_ROAD_VEHICLE_RETROGRADE.poiType -> TYPE_USECASE_ID_ROAD_VEHICLE_RETROGRADE.content -// TYPE_ID_NTERSECTION.poiType -> TYPE_ID_NTERSECTION.content - TYPE_ID_SHAPR_TURNS.poiType -> TYPE_ID_SHAPR_TURNS.content - TYPE_ID_BRIDGE.poiType -> TYPE_ID_BRIDGE.content - TYPE_ID_PEDESTRIAN.poiType -> TYPE_ID_PEDESTRIAN.content - TYPE_ID_SLIPPERY_ROAD.poiType -> TYPE_ID_SLIPPERY_ROAD.content - TYPE_ID_TUNNEL.poiType -> TYPE_ID_TUNNEL.content - TYPE_ID_FERRY.poiType -> TYPE_ID_FERRY.content - TYPE_ID_UNEVEN_ROAD.poiType -> TYPE_ID_UNEVEN_ROAD.content - TYPE_ID_NON_MOTOR_VEHICLE.poiType -> TYPE_ID_NON_MOTOR_VEHICLE.content - TYPE_ID_OBSTACLE.poiType -> TYPE_ID_OBSTACLE.content - TYPE_FOURS_ROAD_WORK.poiType -> TYPE_FOURS_ROAD_WORK.content - TYPE_VEHICLE_QUEUE.poiType -> TYPE_VEHICLE_QUEUE.content - TYPE_NO_PASSING.poiType -> TYPE_NO_PASSING.content - TYPE_NO_TURNING_AROUND.poiType -> TYPE_NO_TURNING_AROUND.content - TYPE_USECASE_ID_ROAD_NO_PARKING.poiType -> TYPE_USECASE_ID_ROAD_NO_PARKING.content - TYPE_USECASE_ID_ROAD_NO_TOOTING.poiType -> TYPE_USECASE_ID_ROAD_NO_TOOTING.content - TYPE_USECASE_ID_ROAD_SPEED_LIMIT.poiType -> TYPE_USECASE_ID_ROAD_SPEED_LIMIT.content -// TYPE_USECASE_ID_GO_STRAIGHT_TURN_RIGHT.poiType -> TYPE_USECASE_ID_GO_STRAIGHT_TURN_RIGHT.content - TYPE_USECASE_ID_BUS_WARNING.poiType -> TYPE_USECASE_ID_BUS_WARNING.content - TYPE_USECASE_ID_NARROW_RIGHT.poiType -> TYPE_USECASE_ID_NARROW_RIGHT.content - TYPE_USECASE_ID_GAS_STATION.poiType -> TYPE_USECASE_ID_GAS_STATION.content - TYPE_USECASE_ID_ROAD_PEDESTRIAN_SCHOOL.poiType -> TYPE_USECASE_ID_ROAD_PEDESTRIAN_SCHOOL.content - TYPE_USECASE_ID_ACCIDENT.poiType -> TYPE_USECASE_ID_ACCIDENT.content - - else -> TYPE_ERROR.content - } - } - - @JvmStatic - fun getWarningTts(poiType: String?): String { - return when (poiType) { - TYPE_USECASE_ID_SLW.poiType -> TYPE_USECASE_ID_SLW.tts - TYPE_USECASE_ID_TJW.poiType -> TYPE_USECASE_ID_TJW.tts - TYPE_USECASE_ID_IVP.poiType -> TYPE_USECASE_ID_IVP.tts - TYPE_USECASE_ID_IVP_GREEN.poiType -> TYPE_USECASE_ID_IVP_GREEN.tts - TYPE_USECASE_ID_ROAD_PEDESTRIAN_CROSSING.poiType -> TYPE_USECASE_ID_ROAD_PEDESTRIAN_CROSSING.tts - TYPE_USECASE_ID_ROAD_PEDESTRIAN_SCHOOL.poiType -> TYPE_USECASE_ID_ROAD_PEDESTRIAN_SCHOOL.tts - TYPE_USECASE_ID_ROAD_NO_PARKING.poiType -> TYPE_USECASE_ID_ROAD_NO_PARKING.tts - TYPE_VIP_IDENTIFICATION.poiType -> TYPE_VIP_IDENTIFICATION.tts - TYPE_ERROR.poiType -> TYPE_ERROR.tts - TYPE_FOURS_ROAD_WORK.poiType -> TYPE_FOURS_ROAD_WORK.tts - TYPE_OPTIMAL_ROUTE_RECOMMEND.poiType -> TYPE_OPTIMAL_ROUTE_RECOMMEND.tts - TYPE_USECASE_ID_BREAKDOWN_WARNING.poiType -> TYPE_USECASE_ID_BREAKDOWN_WARNING.tts - FOURS_PONDING.poiType -> FOURS_PONDING.tts - TYPE_USECASE_ID_ROAD_PARKING.poiType -> TYPE_USECASE_ID_ROAD_PARKING.tts - TYPE_USECASE_ID_ROAD_VEHICLE_RETROGRADE.poiType -> TYPE_USECASE_ID_ROAD_VEHICLE_RETROGRADE.tts -// TYPE_ID_NTERSECTION.poiType -> TYPE_ID_NTERSECTION.tts - TYPE_ID_SHAPR_TURNS.poiType -> TYPE_ID_SHAPR_TURNS.tts - TYPE_ID_BRIDGE.poiType -> TYPE_ID_BRIDGE.tts - TYPE_ID_PEDESTRIAN.poiType -> TYPE_ID_PEDESTRIAN.tts - TYPE_ID_SLIPPERY_ROAD.poiType -> TYPE_ID_SLIPPERY_ROAD.tts - TYPE_ID_TUNNEL.poiType -> TYPE_ID_TUNNEL.tts - TYPE_ID_FERRY.poiType -> TYPE_ID_FERRY.tts - TYPE_ID_UNEVEN_ROAD.poiType -> TYPE_ID_UNEVEN_ROAD.tts - TYPE_ID_NON_MOTOR_VEHICLE.poiType -> TYPE_ID_NON_MOTOR_VEHICLE.tts - TYPE_ID_OBSTACLE.poiType -> TYPE_ID_OBSTACLE.tts - TYPE_FOURS_ROAD_WORK.poiType -> TYPE_FOURS_ROAD_WORK.tts - TYPE_VEHICLE_QUEUE.poiType -> TYPE_VEHICLE_QUEUE.tts - TYPE_NO_PASSING.poiType -> TYPE_NO_PASSING.tts - TYPE_NO_TURNING_AROUND.poiType -> TYPE_NO_TURNING_AROUND.tts - TYPE_USECASE_ID_ROAD_NO_PARKING.poiType -> TYPE_USECASE_ID_ROAD_NO_PARKING.tts - TYPE_USECASE_ID_ROAD_NO_TOOTING.poiType -> TYPE_USECASE_ID_ROAD_NO_TOOTING.tts - TYPE_USECASE_ID_ROAD_SPEED_LIMIT.poiType -> TYPE_USECASE_ID_ROAD_SPEED_LIMIT.tts -// TYPE_USECASE_ID_GO_STRAIGHT_TURN_RIGHT.poiType -> TYPE_USECASE_ID_GO_STRAIGHT_TURN_RIGHT.tts - TYPE_USECASE_ID_BUS_WARNING.poiType -> TYPE_USECASE_ID_BUS_WARNING.tts - TYPE_USECASE_ID_NARROW_RIGHT.poiType -> TYPE_USECASE_ID_NARROW_RIGHT.tts - TYPE_USECASE_ID_GAS_STATION.poiType -> TYPE_USECASE_ID_GAS_STATION.tts - TYPE_USECASE_ID_ROAD_PEDESTRIAN_SCHOOL.poiType -> TYPE_USECASE_ID_ROAD_PEDESTRIAN_SCHOOL.tts - TYPE_USECASE_ID_ACCIDENT.poiType -> TYPE_USECASE_ID_ACCIDENT.tts - else -> TYPE_ERROR.tts - } - } - } - -} \ No newline at end of file From e7648bd9b1c1ed4ef255d835e6459d2e29845213 Mon Sep 17 00:00:00 2001 From: zhongchao Date: Fri, 9 Dec 2022 12:01:51 +0800 Subject: [PATCH 11/17] [2.13.0] add func of binding car change model --- app/build.gradle | 2 + .../mogo/launcher/stageone/ConfigStartUp.kt | 2 + .../zhidao/adas/magic/utils/CrashHandler.java | 2 +- .../bindingcar/BindingcarManager.java | 37 --------- .../network/BindingcarNetWorkManager.java | 76 ++++++++++++------- .../trace/SyncConfig.kt | 8 +- .../hmi/ui/setting/DebugSettingView.kt | 6 +- .../core/function/impl/MogoMapService.java | 10 --- .../mogo/eagle/core/data/app/AppConfigInfo.kt | 4 + .../mogo/eagle/core/data/app/ConfigUpload.kt | 1 + .../eagle/core/data/bindingcar/CarInfo.java | 10 +++ .../data/bindingcar/ModifyBindingcarInfo.java | 10 +++ .../core/data/config/HdMapBuildConfig.kt | 2 +- .../function/api/map/IMogoMapService.java | 5 -- .../com/mogo/commons/debug/DebugConfig.java | 20 +++++ .../src/main/java/com/mogo/map/IMogoMap.java | 6 -- .../java/com/mogo/map/AMapViewWrapper.java | 2 - .../main/java/com/mogo/map/AMapWrapper.java | 5 -- 18 files changed, 105 insertions(+), 103 deletions(-) delete mode 100644 core/function-impl/mogo-core-function-bindingcar/src/main/java/com/mogo/eagle/core/function/bindingcar/BindingcarManager.java diff --git a/app/build.gradle b/app/build.gradle index 9ce3326429..1548f70962 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -201,6 +201,8 @@ android { buildConfigField 'String', 'WORKING_BRANCH_NAME', getWorkingBranchName() buildConfigField 'String', 'WORKING_BRANCH_HASH', getWorkingBranchHash() buildConfigField 'String', 'APP_BUILD_TIME', getBuildTime() + buildConfigField 'String', 'MAP_SDK_VERSION', "\"${MAP_SDK_VERSION}\"" + buildConfigField 'String', 'MAP_SDK_OPT_VERSION', "\"${MAP_SDK_OPERATION_VERSION}\"" } // 配置网络环境,QA、线上、演示 qa { diff --git a/app/src/main/java/com/mogo/launcher/stageone/ConfigStartUp.kt b/app/src/main/java/com/mogo/launcher/stageone/ConfigStartUp.kt index 64166537b2..dbdbc21a98 100644 --- a/app/src/main/java/com/mogo/launcher/stageone/ConfigStartUp.kt +++ b/app/src/main/java/com/mogo/launcher/stageone/ConfigStartUp.kt @@ -55,6 +55,8 @@ class ConfigStartUp : AndroidStartup() { DebugConfig.setCarMachineType(BuildConfig.CAR_MACHINE_TYPE) DebugConfig.setProductFlavor(BuildConfig.FLAVOR_product) DebugConfig.setSocketAppId(BuildConfig.SOCKET_APP_ID) + DebugConfig.setMapVersion(BuildConfig.MAP_SDK_VERSION) + DebugConfig.setMapOptVersion(BuildConfig.MAP_SDK_OPT_VERSION) DebugConfig.setNeedUploadCoordinatesInTime(BuildConfig.IS_NEED_UPLOAD_COORDINATES_IN_TIME) } diff --git a/app_mogo_magic_ring/src/main/java/com/zhidao/adas/magic/utils/CrashHandler.java b/app_mogo_magic_ring/src/main/java/com/zhidao/adas/magic/utils/CrashHandler.java index a1fbf50402..9424dfa55a 100644 --- a/app_mogo_magic_ring/src/main/java/com/zhidao/adas/magic/utils/CrashHandler.java +++ b/app_mogo_magic_ring/src/main/java/com/zhidao/adas/magic/utils/CrashHandler.java @@ -134,7 +134,7 @@ public class CrashHandler implements UncaughtExceptionHandler { // 获取设备参数信息 getDeviceInfo(mContext); // mLogInfo.put("versionName", String.valueOf(BuildConfig.VERSION_CODE)); -// mLogInfo.put("versionCode", BuildConfig.VERSION_NAME); +// mLogInfo.put("versionCode", BuildConfig.`VERSION_NAME`); // 保存日志文件 String result = saveCrashLogToFile(paramThrowable); mDefaultHandler.uncaughtException(paramThread, paramThrowable); diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/java/com/mogo/eagle/core/function/bindingcar/BindingcarManager.java b/core/function-impl/mogo-core-function-bindingcar/src/main/java/com/mogo/eagle/core/function/bindingcar/BindingcarManager.java deleted file mode 100644 index 775077088e..0000000000 --- a/core/function-impl/mogo-core-function-bindingcar/src/main/java/com/mogo/eagle/core/function/bindingcar/BindingcarManager.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.mogo.eagle.core.function.bindingcar; - -import android.content.Context; - -import com.mogo.eagle.core.function.api.bindingcar.BindingcarCallBack; -import com.mogo.eagle.core.function.bindingcar.network.BindingcarNetWorkManager; -import com.mogo.eagle.core.function.call.hmi.CallerHmiManager; - -/** - * @author lixiaopeng - * @description - * @since: 10/27/21 - */ -public class BindingcarManager { - private String TAG = "BindingcarManager"; - private static BindingcarManager mBindingcarManager; - private Context mContext; - - public static synchronized BindingcarManager getInstance() { - synchronized (BindingcarManager.class) { - if (mBindingcarManager == null) { - mBindingcarManager = new BindingcarManager(); - } - } - return mBindingcarManager; - } - - protected void getBindingcarInfo() { - } - - protected void modifyCarInfo(BindingcarCallBack callBack) { - } - - - -} - diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/java/com/mogo/eagle/core/function/bindingcar/network/BindingcarNetWorkManager.java b/core/function-impl/mogo-core-function-bindingcar/src/main/java/com/mogo/eagle/core/function/bindingcar/network/BindingcarNetWorkManager.java index d9c1726171..303a9f18f8 100644 --- a/core/function-impl/mogo-core-function-bindingcar/src/main/java/com/mogo/eagle/core/function/bindingcar/network/BindingcarNetWorkManager.java +++ b/core/function-impl/mogo-core-function-bindingcar/src/main/java/com/mogo/eagle/core/function/bindingcar/network/BindingcarNetWorkManager.java @@ -1,5 +1,7 @@ package com.mogo.eagle.core.function.bindingcar.network; +import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_BINDING; + import android.content.Context; import android.util.Log; @@ -7,8 +9,11 @@ import com.mogo.commons.constants.HostConst; import com.mogo.commons.constants.SharedPrefsConstants; import com.mogo.eagle.core.data.bindingcar.BindingcarInfo; import com.mogo.eagle.core.data.bindingcar.ModifyBindingcarInfo; +import com.mogo.eagle.core.data.config.HdMapBuildConfig; import com.mogo.eagle.core.function.api.bindingcar.BindingcarCallBack; +import com.mogo.eagle.core.function.bindingcar.R; import com.mogo.eagle.core.function.call.hmi.CallerHmiManager; +import com.mogo.eagle.core.function.call.map.CallerHDMapManager; import com.mogo.eagle.core.network.MoGoRetrofitFactory; import com.mogo.eagle.core.network.utils.GsonUtil; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; @@ -57,9 +62,8 @@ public class BindingcarNetWorkManager { * @param macAddress mac地址 */ public void getBindingcarInfo(Context context, String macAddress, String widevineIDWithMd5, int screenType) { -// String macAddress1 = "48:b0:2d:3a:bc:78"; -// String macAddress1 = "48:b0:2d:4d:b9:63"; -// String sn = "X20202203105S688HZ"; +// String macAddress1 = "48:b0:2d:4d:33:40"; +// String sn = "X2020220417KA94QIN"; BindingcarRequest request = new BindingcarRequest(macAddress, widevineIDWithMd5, screenType); RequestBody requestBody = RequestBody.create(MediaType.get("application/json;charset=UTF-8"), GsonUtil.jsonFromObject(request)); @@ -74,36 +78,28 @@ public class BindingcarNetWorkManager { @Override public void onNext(@NonNull BindingcarInfo info) { if (info != null && info.getData() != null) { - CallerLogger.INSTANCE.d(TAG, "getBindingcarInfo onNext info.getData() =" + info.getData().toString()); - Log.d(TAG, "getBindingcarInfo onNext info.getData() =" + info.getData().toString()); - if (info.getData().getCompare().equals("0")) { - CallerHmiManager.INSTANCE.showBindingcarDialog(); - } else if (info.getData().getCompare().equals("3")) { - CallerHmiManager.INSTANCE.showModifyBindingcarDialog(); - } else if (info.getData().getCompare().equals("null")) { - TipToast.shortTip("当前工控机没有入库"); + CallerLogger.INSTANCE.d(M_BINDING + TAG, "getBindingcarInfo onNext info.getData() =" + info.getData().toString()); + switch (info.getData().getCompare()) { + case "0": + CallerHmiManager.INSTANCE.showBindingcarDialog(); + break; + case "3": + CallerHmiManager.INSTANCE.showModifyBindingcarDialog(); + break; + case "null": + TipToast.shortTip("当前工控机没有入库"); + break; } //根据车辆类型切换不同的车辆模型,只针对红旗做处理 -// if (info.getData().getVendor().equals("一汽红旗")) { //TODO -// CallerHDMapManager.INSTANCE.changeCurrentIcon(R.raw.hq_h9); -// } - -// else if (info.getData().getVendor().equals("东风汽车集团")) { -// CallerHDMapManager.INSTANCE.changeCurrentIcon(R.raw.chuzuche); -// } else if (info.getData().getVendor().equals("金旅星辰")) { -// CallerHDMapManager.INSTANCE.changeCurrentIcon(R.raw.xiaobache); -// } else { -// CallerHDMapManager.INSTANCE.changeCurrentIcon(R.raw.chuzuche); -// } - + updateCarVrIconRes(info.getData().getBrandId()); SharedPrefsMgr.getInstance(context).putString(SharedPrefsConstants.CAR_INFO, GsonUtils.toJson(info.getData())); } } @Override public void onError(@NonNull Throwable e) { - CallerLogger.INSTANCE.e(TAG, "getBindingcarInfo onError e = " + e.toString() + "---e.getMessage = " + e.getMessage()); + CallerLogger.INSTANCE.e(M_BINDING + TAG, "getBindingcarInfo onError e = " + e.toString() + "---e.getMessage = " + e.getMessage()); } @Override @@ -132,14 +128,14 @@ public class BindingcarNetWorkManager { public void onNext(@NonNull ModifyBindingcarInfo info) { if (info != null) { callBack.callBackResult(info); - Log.d(TAG, "modifyBindingcar onNext code = " + info.code + "---msg = " + info.msg + "--info.toString() = " + info.toString()); - CallerLogger.INSTANCE.d(TAG, "modifyBindingcar onNext code = " + info.code + "---msg = " + info.msg + "--info.toString() = " + info.toString()); + CallerLogger.INSTANCE.d(M_BINDING + TAG, "modifyBindingcar onNext code = " + info.code + "---msg = " + info.msg + "--info.toString() = " + info.toString()); + updateCarVrIconRes(info.getBrandId()); } } @Override public void onError(@NonNull Throwable e) { - CallerLogger.INSTANCE.e(TAG, "modifyBindingcar onError e = " + e.toString() + "---e.getMessage = " + e.getMessage()); + CallerLogger.INSTANCE.e(M_BINDING + TAG, "modifyBindingcar onError e = " + e.toString() + "---e.getMessage = " + e.getMessage()); } @Override @@ -149,4 +145,30 @@ public class BindingcarNetWorkManager { } + private void updateCarVrIconRes(String brandId){ + if(brandId == null || brandId.isEmpty()){ + return; + } + CallerLogger.INSTANCE.d(M_BINDING + TAG,"updateCarVrIconRes : " + brandId); + switch (brandId){ + case "1": + CallerHDMapManager.INSTANCE.changeCurrentIcon(R.raw.chuzuche); + HdMapBuildConfig.currentCarVrIconRes =R.raw.chuzuche; + break; + case "2": + CallerHDMapManager.INSTANCE.changeCurrentIcon(R.raw.hq_h9); + HdMapBuildConfig.currentCarVrIconRes =R.raw.hq_h9; + break; + case "3": + CallerHDMapManager.INSTANCE.changeCurrentIcon(R.raw.xiaobache); + HdMapBuildConfig.currentCarVrIconRes =R.raw.xiaobache; + break; + default: + CallerHDMapManager.INSTANCE.changeCurrentIcon(R.raw.chuzuche); + HdMapBuildConfig.currentCarVrIconRes =R.raw.chuzuche; + break; + } + + } + } diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/trace/SyncConfig.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/trace/SyncConfig.kt index a47fe42f12..51ca529e18 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/trace/SyncConfig.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/trace/SyncConfig.kt @@ -13,7 +13,6 @@ import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_DEVA import com.mogo.eagle.core.utilcode.util.NetworkUtils -import com.mogo.map.MogoMap import com.zhjt.mogo_core_function_devatools.trace.network.StartUpTraceNetWorkModel import com.zhjt.service.chain.ChainLog import com.zhjt.service.chain.TracingConstants @@ -35,9 +34,8 @@ object SyncConfig { AppConfigInfo.mogoToken = MoGoAiCloudClient.getInstance().aiCloudClientConfig.token } AppConfigInfo.netMode = DebugConfig.getNetMode() - if (MogoMap.getInstance().mogoMap != null) { - AppConfigInfo.mapSdkVersion = MogoMap.getInstance().mogoMap.mapVersion - } + AppConfigInfo.mapSdkVersion = DebugConfig.getMapVersion() + AppConfigInfo.mapSdkOptVersion = DebugConfig.getMapOptVersion() AppConfigInfo.isConnectNet = NetworkUtils.isConnected(context) AppConfigInfo.isConnectSocket = MogoStatusManager.getInstance().isSocketOnLine when { @@ -69,7 +67,7 @@ object SyncConfig { startUpTraceModel.report(traceId, { traceId = it }, { - CallerLogger.e("$M_DEVA${"SyncConfig"}","error : $it") + CallerLogger.e("$M_DEVA${"SyncConfig"}", "error : $it") }) } } \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt index b36220de4e..d29227f462 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt @@ -73,13 +73,11 @@ import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr import com.mogo.eagle.core.utilcode.mogo.toast.TipToast import com.mogo.eagle.core.utilcode.util.* -import com.mogo.map.MogoMap import com.mogo.map.MogoMapUIController import com.mogo.map.uicontroller.VisualAngleMode import com.mogo.map.uicontroller.VisualAngleMode.* import com.mogo.eagle.core.function.business.routeoverlay.* import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager -import com.mogo.eagle.core.function.v2x.vip.VipCarManager import com.zhidao.easysocket.utils.L import com.zhidao.support.adas.high.other.permission.BackgrounderPermission import com.zhjt.mogo_core_function_devatools.env.* @@ -1691,8 +1689,8 @@ class DebugSettingView @JvmOverloads constructor( } tvIpcVersionInfo.text = "MAP:${mAutoPilotStatusInfo?.dockVersion}" tvIpcVersionInfoKey.text = "MAP:${mAutoPilotStatusInfo?.dockVersion}" - tvMoGoMapVersion.text = "HD-Map版本:${MogoMap.getInstance().mogoMap.mapVersion}" - tvMoGoMapVersionKey.text = "HD-Map版本:${MogoMap.getInstance().mogoMap.mapVersion}" + tvMoGoMapVersion.text = "HD-Map版本:${DebugConfig.getMapVersion()}" + tvMoGoMapVersionKey.text = "HD-Map版本:${DebugConfig.getMapVersion()}" tvGitBranchInfo.text = "Git分支:${AppConfigInfo.workingBranchName}" tvAppBuildTimeInfo.text = "版本构建时间:${AppConfigInfo.appBuildTime}" diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/impl/MogoMapService.java b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/impl/MogoMapService.java index 8bd5018572..671ec4b65e 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/impl/MogoMapService.java +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/impl/MogoMapService.java @@ -8,7 +8,6 @@ import com.mogo.eagle.core.function.api.map.marker.IMogoMarkerService; import com.mogo.eagle.core.function.call.map.CallerVisualAngleManager; import com.mogo.map.MogoGeoSearch; import com.mogo.map.MogoLocationClient; -import com.mogo.map.MogoMap; import com.mogo.map.MogoMapUIController; import com.mogo.map.MogoMarkerManager; import com.mogo.map.MogoOverlayManager; @@ -79,15 +78,6 @@ public class MogoMapService implements IMogoMapService { return new MogoTrafficSearch(); } - @Override - public String getMapVersion() { - if (MogoMap.getInstance().getMogoMap() != null) { - return MogoMap.getInstance().getMogoMap().getMapVersion(); - } else { - return "0"; - } - } - @Override public void init(Context context) { CallerVisualAngleManager.INSTANCE.init(context); diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/app/AppConfigInfo.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/app/AppConfigInfo.kt index 3daf32d036..1a43eab9b8 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/app/AppConfigInfo.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/app/AppConfigInfo.kt @@ -28,6 +28,8 @@ object AppConfigInfo { // 高精地图版本 var mapSdkVersion: String? = null + // 高精地图采集版本 + var mapSdkOptVersion: String? = null var adasSdkVersion: String? = null var obuSdkVersion: String? = null @@ -92,6 +94,7 @@ object AppConfigInfo { "Git分支HASH:${workingBranchHash}
" + "------------------依赖信息---------------------
" + "MAP-SDK版本:${mapSdkVersion}
" + + "MAP-OPT-SDK版本:${mapSdkOptVersion}
" + "ADAS-SDK版本:${adasSdkVersion}
" + "OBU-SDK版本:${obuSdkVersion}
" + "------------------鉴权信息---------------------
" + @@ -187,6 +190,7 @@ fun AppConfigInfo.toConfigUpload():ConfigUpload{ configUpload.isConnectSocket = isConnectSocket configUpload.isConnectedNetty = isConnectedNetty configUpload.mapSdkVersion = mapSdkVersion + configUpload.mapSdkOptVersion = mapSdkOptVersion configUpload.mogoSN = mogoSN configUpload.mogoToken = mogoToken configUpload.netMode = netMode diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/app/ConfigUpload.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/app/ConfigUpload.kt index 508e4e2e58..04870277a0 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/app/ConfigUpload.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/app/ConfigUpload.kt @@ -14,6 +14,7 @@ class ConfigUpload( var uniqueDeviceId: String? = null, var widevineIDMd5: String? = null, var mapSdkVersion: String? = null, + var mapSdkOptVersion: String? = null, var adasSdkVersion: String? = null, var obuSdkVersion: String? = null, var mogoToken: String? = null, diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/bindingcar/CarInfo.java b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/bindingcar/CarInfo.java index b4a5b2201d..e7f11b187e 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/bindingcar/CarInfo.java +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/bindingcar/CarInfo.java @@ -21,6 +21,7 @@ public class CarInfo implements Serializable { private String model; //款式 private String new_version; private String brand; //品牌 + private String brandId; //品牌 private String energy_type; //驱动类型 private List passenger; //乘客数量 private String number_plate; //车牌号 @@ -105,6 +106,14 @@ public class CarInfo implements Serializable { this.number_plate = number_plate; } + public String getBrandId() { + return brandId; + } + + public void setBrandId(String brandId) { + this.brandId = brandId; + } + @Override public String toString() { return "CarInfo{" + @@ -115,6 +124,7 @@ public class CarInfo implements Serializable { ", model='" + model + '\'' + ", new_version='" + new_version + '\'' + ", brand='" + brand + '\'' + + ", brandId='" + brandId + '\'' + ", energy_type='" + energy_type + '\'' + ", passenger=" + passenger + ", number_plate='" + number_plate + '\'' + diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/bindingcar/ModifyBindingcarInfo.java b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/bindingcar/ModifyBindingcarInfo.java index 768abc35aa..4862383e98 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/bindingcar/ModifyBindingcarInfo.java +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/bindingcar/ModifyBindingcarInfo.java @@ -9,6 +9,7 @@ import com.mogo.eagle.core.data.BaseData; */ public class ModifyBindingcarInfo extends BaseData { public String data; + public String brandId; public String getData() { return data; @@ -18,10 +19,19 @@ public class ModifyBindingcarInfo extends BaseData { this.data = data; } + public String getBrandId() { + return brandId; + } + + public void setBrandId(String brandId) { + this.brandId = brandId; + } + @Override public String toString() { return "ModifyBindingcarInfo{" + "data='" + data + '\'' + + "brandId='" + brandId + '\'' + '}'; } } diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/HdMapBuildConfig.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/HdMapBuildConfig.kt index cd0ac043de..e6937704fb 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/HdMapBuildConfig.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/HdMapBuildConfig.kt @@ -13,7 +13,7 @@ object HdMapBuildConfig { * 可以指定,R.raw.chuzuche,R.raw.xiaobache,R.raw.hongqi */ @JvmField - var currentCarVrIconRes = R.raw.chuzuche + var currentCarVrIconRes = R.raw.hq_h9 /** * 地图是否加载成功 diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/map/IMogoMapService.java b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/map/IMogoMapService.java index d760fbeec0..f677a42147 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/map/IMogoMapService.java +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/map/IMogoMapService.java @@ -90,9 +90,4 @@ public interface IMogoMapService extends IProvider { */ IMogoTrafficSearch getTrafficSearchApi(); - /** - * 获取地图版本号 - * @return - */ - String getMapVersion(); } diff --git a/foudations/mogo-commons/src/main/java/com/mogo/commons/debug/DebugConfig.java b/foudations/mogo-commons/src/main/java/com/mogo/commons/debug/DebugConfig.java index 3ccc96c83c..86cb3a727c 100644 --- a/foudations/mogo-commons/src/main/java/com/mogo/commons/debug/DebugConfig.java +++ b/foudations/mogo-commons/src/main/java/com/mogo/commons/debug/DebugConfig.java @@ -148,6 +148,26 @@ public class DebugConfig { return sSocketAppId; } + private static String mapVersion; + + public static void setMapVersion(String mapVersion) { + DebugConfig.mapVersion = mapVersion; + } + + public static String getMapVersion() { + return mapVersion; + } + + private static String mapOptVersion; + + public static void setMapOptVersion(String mapOptVersion) { + DebugConfig.mapOptVersion = mapOptVersion; + } + + public static String getMapOptVersion() { + return mapOptVersion; + } + /** * 是否需要实时上报坐标位置 */ 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 9f3713f8fa..baec754e0c 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 @@ -171,12 +171,6 @@ public interface IMogoMap { */ IMogoPolyline addPolyline( MogoPolylineOptions options ); - /** - * 获取地图版本 - * @return - */ - String getMapVersion(); - /** * 获取行驶方向一定长度的中心线 * @param lon 经度 diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java b/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java index e94abde8ee..a9866d4f6e 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java @@ -19,7 +19,6 @@ import android.location.Location; import android.os.Bundle; import android.os.Handler; import android.os.Looper; -import android.os.SystemClock; import android.os.Trace; import android.text.TextUtils; import android.util.Log; @@ -45,7 +44,6 @@ import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr; import com.mogo.eagle.core.utilcode.mogo.toast.TipToast; -import com.mogo.eagle.core.utilcode.util.GsonUtils; import com.mogo.eagle.core.utilcode.util.UiThreadHandler; import com.mogo.map.listener.MogoMapListenerHandler; import com.mogo.map.navi.MogoCarLocationChangedListenerRegister; 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 f71f453a74..d2a1c9ab79 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 @@ -302,11 +302,6 @@ public class AMapWrapper implements IMogoMap { return null; } - @Override - public String getMapVersion() { - return MapAutoApi.INSTANCE.getSDKVersion(); - } - private boolean checkAMap() { mAMap = mMapView.getMapAutoViewHelper(); sAMap = mAMap; From c78405a0f39167a1321583d0c24ecdc00dc295ee Mon Sep 17 00:00:00 2001 From: renwj Date: Fri, 9 Dec 2022 14:27:28 +0800 Subject: [PATCH 12/17] =?UTF-8?q?[2.13.0]=E9=A1=B6=E8=A7=86=E8=A7=92?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=8F=8A=E8=A7=86=E8=A7=92=E5=88=87=E6=8D=A2?= =?UTF-8?q?=E9=80=BB=E8=BE=91=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/function/hmi/ui/MoGoHmiFragment.kt | 20 +++++++++++-- .../call/map/CallerVisualAngleManager.kt | 30 +++++++++---------- 2 files changed, 33 insertions(+), 17 deletions(-) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt index 8ce2536cf9..1313c9a343 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt @@ -9,6 +9,7 @@ import android.os.Build.VERSION_CODES import android.os.Bundle import android.text.TextUtils import android.transition.* +import android.util.* import android.view.Gravity import android.view.View import android.view.ViewGroup @@ -60,8 +61,8 @@ import com.mogo.eagle.core.function.call.bindingcar.CallerBindingcarManager import com.mogo.eagle.core.function.call.check.CallerCheckManager import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager import com.mogo.eagle.core.function.call.hmi.CallerHmiManager -import com.mogo.eagle.core.function.call.map.CallerMapDataCollectorManager -import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager +import com.mogo.eagle.core.function.call.map.* +import com.mogo.eagle.core.function.call.map.CallerVisualAngleManager.Scene.Turning import com.mogo.eagle.core.function.call.monitor.CallerMonitorManager import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager @@ -98,6 +99,7 @@ import com.mogo.eagle.core.utilcode.reminder.api.* import com.mogo.eagle.core.utilcode.reminder.api.IReminder.IStateChangeListener import com.mogo.eagle.core.utilcode.reminder.api.impl.* import com.mogo.eagle.core.utilcode.util.* +import com.mogo.eagle.core.utilcode.util.TimeUtils import com.mogo.eagle.core.utilcode.util.TimeUtils.millis2String import com.mogo.map.MogoMap import com.zhidao.support.adas.high.common.MogoReport.Code.Error.EMAP.* @@ -1372,12 +1374,26 @@ class MoGoHmiFragment : MvpFragment(), private var isRightLight: Boolean = false private var isDisappare: Boolean = false + @Volatile + private var isVisualAngleChanged = false + /** * 显示转向灯效果 if (HmiBuildConfig.isShowBadCaseView) { */ override fun showTurnLight(light: Int) { if (HmiBuildConfig.isShowTurnLightView) { ThreadUtils.runOnUiThread { + if (light == 1 || light == 2) { + if (!isVisualAngleChanged) { + isVisualAngleChanged = true + CallerVisualAngleManager.changeVisualAngle(Turning(true)) + } + } else { + if (isVisualAngleChanged) { + isVisualAngleChanged = false + CallerVisualAngleManager.changeVisualAngle(Turning(false)) + } + } if (light == 1) { if (!isLeftLight) { isLeftLight = true diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerVisualAngleManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerVisualAngleManager.kt index d6709a65ff..c412fee003 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerVisualAngleManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerVisualAngleManager.kt @@ -15,7 +15,7 @@ import com.mogo.eagle.core.function.call.map.CallerVisualAngleManager.Scene.* import com.mogo.eagle.core.utilcode.kotlin.lifeCycleOwner 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.* import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_DEVA import com.mogo.map.uicontroller.VisualAngleMode import kotlinx.coroutines.* @@ -199,30 +199,30 @@ object CallerVisualAngleManager { } val triggerTime = SystemClock.elapsedRealtime() scope.launch { - CallerLogger.d("${M_DEVA}${TAG}", "触发场景:${scene} --- 1 ---") + Logger.d("${M_DEVA}${TAG}", "触发场景:${scene} --- 1 ---") val displayed = getDisplayed() if (displayed == null) { - CallerLogger.d("${M_DEVA}${TAG}", "触发场景:${scene} --- 2 ---") + Logger.d("${M_DEVA}${TAG}", "触发场景:${scene} --- 2 ---") val top = getTop() //堆顶 if (top != null) { if (top.target.priority >= scene.priority) { - CallerLogger.d("${M_DEVA}${TAG}", "触发场景:${scene} --- 3 ---") + Logger.d("${M_DEVA}${TAG}", "触发场景:${scene} --- 3 ---") top.triggerTime = triggerTime doChangeAngle(top) synchronized(heap){ heap += Record(scene, triggerTime = -1) } } else { - CallerLogger.d("${M_DEVA}${TAG}", "触发场景:${scene} --- 4 ---") + Logger.d("${M_DEVA}${TAG}", "触发场景:${scene} --- 4 ---") doChangeAngle(Record(scene, triggerTime = triggerTime)) } } else { - CallerLogger.d("${M_DEVA}${TAG}", "触发场景:${scene} --- 4 ---") + Logger.d("${M_DEVA}${TAG}", "触发场景:${scene} --- 4 ---") doChangeAngle(Record(scene, triggerTime = triggerTime)) } } else { if (scene.javaClass == displayed.target.javaClass) { - CallerLogger.d("${M_DEVA}${TAG}", "触发场景:${scene} --- 5 ---") + Logger.d("${M_DEVA}${TAG}", "触发场景:${scene} --- 5 ---") defaultDelayJob?.safeCancel() return@launch } @@ -242,32 +242,32 @@ object CallerVisualAngleManager { return@launch } } - if (prev.priority >= scene.priority && (prev is RoadEvent || prev is TooClose)) { + if (scene !is Default && prev.priority >= scene.priority && (prev is RoadEvent || prev is TooClose)) { val displayDuration = triggerTime - prevTriggerTime if (displayDuration < prev.displayThreshold) { return@launch } } if (scene is Default) { - CallerLogger.d("${M_DEVA}${TAG}", "触发场景:${scene} --- 6 ---") + Logger.d("${M_DEVA}${TAG}", "触发场景:${scene} --- 6 ---") defaultDelayJob?.safeCancel() launch { val delay = scene.unit.toMillis(scene.delay) - CallerLogger.d("${M_DEVA}${TAG}", "触发场景:${scene} --- 7 ---") + Logger.d("${M_DEVA}${TAG}", "触发场景:${scene} --- 7 ---") delay(delay) - CallerLogger.d("${M_DEVA}${TAG}", "触发场景:${scene} --- 8 ---") + Logger.d("${M_DEVA}${TAG}", "触发场景:${scene} --- 8 ---") doChangeAngle(Record(scene, triggerTime = triggerTime)) heap -= displayed }.also { itx -> itx.invokeOnCompletion { if (it is CancellationException) { - CallerLogger.d("${M_DEVA}${TAG}", "触发场景:${scene} --- 9 ---") + Logger.d("${M_DEVA}${TAG}", "触发场景:${scene} --- 9 ---") } } defaultDelayJob = itx } } else { - CallerLogger.d("${M_DEVA}${TAG}", "触发场景:${scene} --- 10 ---") + Logger.d("${M_DEVA}${TAG}", "触发场景:${scene} --- 10 ---") defaultDelayJob?.safeCancel() if (displayed.target.priority < scene.priority) { doChangeAngle(Record(scene, triggerTime = triggerTime)) @@ -281,14 +281,14 @@ object CallerVisualAngleManager { private fun doChangeAngle(record: Record) { val angle = record.target.angle CallerMapUIServiceManager.getMapUIController()?.also { - CallerLogger.d("${M_DEVA}${TAG}", "触发场景:${record.target} --- 13 ---") + Logger.d("${M_DEVA}${TAG}", "触发场景:${record.target} --- 13 ---") if (record.target !is Default) { record.isDisplay = true synchronized(heap) { heap += record } } - CallerLogger.d("${M_DEVA}${TAG}", "触发场景:${record.target} --- 15 ---> angle: $angle") + Logger.d("${M_DEVA}${TAG}", "触发场景:${record.target} --- 15 ---> angle: $angle") it.changeMapVisualAngle(angle, null) } } From e00ab54382839ffc880d003f9ee3c8ec70ab5fc3 Mon Sep 17 00:00:00 2001 From: chenfufeng Date: Fri, 9 Dec 2022 15:42:04 +0800 Subject: [PATCH 13/17] =?UTF-8?q?[2.13.0][Update]=E8=A7=A3=E5=86=B3?= =?UTF-8?q?=E9=81=93=E8=B7=AF=E6=96=BD=E5=B7=A5=E4=B8=8D=E5=9C=A8=E6=B6=88?= =?UTF-8?q?=E6=81=AF=E7=9B=92=E5=AD=90=E4=B8=AD=E4=B8=8D=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E6=96=87=E6=A1=88=E4=B8=94=E4=B8=8DTTS=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../scene/road/V2XRoadEventScenario.java | 2 +- .../data/map/entity/V2XRoadEventEntity.java | 32 ++++++++++++++++++- 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/scene/road/V2XRoadEventScenario.java b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/scene/road/V2XRoadEventScenario.java index 8d1031e440..1a2289cbbf 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/scene/road/V2XRoadEventScenario.java +++ b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/scene/road/V2XRoadEventScenario.java @@ -72,7 +72,7 @@ public class V2XRoadEventScenario extends AbsV2XScenario imp boolean onlyShow = getV2XMessageEntity().isOnlyShow(); if (!onlyShow) { // 设置TTS - getV2XMessageEntity().getContent().getTts(); + getV2XMessageEntity().getContent().getTts(false); } showWindow(); String poiType = getV2XMessageEntity().getContent().getPoiType(); diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/map/entity/V2XRoadEventEntity.java b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/map/entity/V2XRoadEventEntity.java index b6ea46986b..eea9b6b93e 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/map/entity/V2XRoadEventEntity.java +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/map/entity/V2XRoadEventEntity.java @@ -3,6 +3,8 @@ package com.mogo.eagle.core.data.map.entity; import android.text.TextUtils; +import com.mogo.eagle.core.data.enums.EventTypeEnum; + import java.io.Serializable; import java.util.Objects; @@ -54,6 +56,33 @@ public class V2XRoadEventEntity implements Serializable { this.poiType = poiType; } + public String getTts(boolean haveLiveCar) { + if (EventTypeEnum.GHOST_PROBE.getPoiType().equals(poiType)) { + tts = EventTypeEnum.GHOST_PROBE.getTts(); + return tts; + } + tts = "前方#" + (int) getDistance() + "米#"; + tts += EventTypeEnum.getTts(getPoiType()); + if (haveLiveCar) { + tts += ",查看实况请说确定。"; + setShowEventButton(true); + } else { + tts += ",请注意躲避。"; + setShowEventButton(false); + } + return tts; + } + + /** + * 检测到附近#道路施工#,确认该信息是否正确?您可以说“正确”或“错误”帮助其他车友。 + */ + public String getTtsWithFeedback() { + tts = "检测到附近"; + tts += EventTypeEnum.getTtsWithFeedback(getPoiType()); + tts += ",确认该信息是否正确?您可以说“正确”或“错误”帮助其他车友。"; + return tts; + } + public String getTts() { return tts; } @@ -70,7 +99,8 @@ public class V2XRoadEventEntity implements Serializable { isShowEventButton = showEventButton; } - public String getAlarmContent(){ //todo 缺少 + public String getAlarmContent() { + alarmContent = EventTypeEnum.getAlarmContent(getPoiType()); return alarmContent; } From 450620299b38a4cf734eb6d48028759503184ce9 Mon Sep 17 00:00:00 2001 From: zhongchao Date: Fri, 9 Dec 2022 16:48:47 +0800 Subject: [PATCH 14/17] [2.13.0]modify the bindingcar extend --- .../bindingcar/BindingcarProvider.java | 3 + .../network/BindingcarApiService.java | 2 +- .../network/BindingcarNetWorkManager.java | 9 +-- .../data/bindingcar/ModifyBindingcarInfo.java | 59 ++++++++++++++----- 4 files changed, 54 insertions(+), 19 deletions(-) diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/java/com/mogo/eagle/core/function/bindingcar/BindingcarProvider.java b/core/function-impl/mogo-core-function-bindingcar/src/main/java/com/mogo/eagle/core/function/bindingcar/BindingcarProvider.java index 1e61715f12..f484c74f53 100644 --- a/core/function-impl/mogo-core-function-bindingcar/src/main/java/com/mogo/eagle/core/function/bindingcar/BindingcarProvider.java +++ b/core/function-impl/mogo-core-function-bindingcar/src/main/java/com/mogo/eagle/core/function/bindingcar/BindingcarProvider.java @@ -4,6 +4,7 @@ import android.content.Context; import android.util.Log; import com.alibaba.android.arouter.facade.annotation.Route; +import com.mogo.eagle.core.data.bindingcar.ModifyBindingcarInfo; import com.mogo.eagle.core.data.config.FunctionBuildConfig; import com.mogo.eagle.core.data.config.HmiBuildConfig; import com.mogo.eagle.core.data.constants.MogoServicePaths; @@ -12,9 +13,11 @@ import com.mogo.eagle.core.function.api.bindingcar.IMoGoBindingcarProvider; import com.mogo.eagle.core.function.appupgrade.network.UpgradeAppNetWorkManager; import com.mogo.eagle.core.function.bindingcar.network.BindingcarNetWorkManager; import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotManager; +import com.mogo.eagle.core.function.call.bindingcar.CallerBindingcarManager; import com.mogo.eagle.core.function.ipcupgrade.IPCUpgradeManager; import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils; import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr; +import com.mogo.eagle.core.utilcode.mogo.toast.TipToast; import org.jetbrains.annotations.NotNull; diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/java/com/mogo/eagle/core/function/bindingcar/network/BindingcarApiService.java b/core/function-impl/mogo-core-function-bindingcar/src/main/java/com/mogo/eagle/core/function/bindingcar/network/BindingcarApiService.java index 0dde914f8b..803fc96ee7 100644 --- a/core/function-impl/mogo-core-function-bindingcar/src/main/java/com/mogo/eagle/core/function/bindingcar/network/BindingcarApiService.java +++ b/core/function-impl/mogo-core-function-bindingcar/src/main/java/com/mogo/eagle/core/function/bindingcar/network/BindingcarApiService.java @@ -31,7 +31,7 @@ public interface BindingcarApiService { * @return {@link ModifyBindingcarInfo} */ @Headers("Content-Type:application/json;charset=UTF-8") - @POST("eagleEye-mis/cmdbapi/pad/updatePadByMac") + @POST("eagleEye-mis/cmdbapi/pad/v2/updatePadByMac") Observable modifyBindingcarInfo(/*@Header("access_token") String access_token,*/ @Body RequestBody requestBody); } diff --git a/core/function-impl/mogo-core-function-bindingcar/src/main/java/com/mogo/eagle/core/function/bindingcar/network/BindingcarNetWorkManager.java b/core/function-impl/mogo-core-function-bindingcar/src/main/java/com/mogo/eagle/core/function/bindingcar/network/BindingcarNetWorkManager.java index 303a9f18f8..b687adde48 100644 --- a/core/function-impl/mogo-core-function-bindingcar/src/main/java/com/mogo/eagle/core/function/bindingcar/network/BindingcarNetWorkManager.java +++ b/core/function-impl/mogo-core-function-bindingcar/src/main/java/com/mogo/eagle/core/function/bindingcar/network/BindingcarNetWorkManager.java @@ -79,6 +79,8 @@ public class BindingcarNetWorkManager { public void onNext(@NonNull BindingcarInfo info) { if (info != null && info.getData() != null) { CallerLogger.INSTANCE.d(M_BINDING + TAG, "getBindingcarInfo onNext info.getData() =" + info.getData().toString()); + //根据车辆类型切换不同的车辆模型,只针对红旗做处理 + updateCarVrIconRes(info.getData().getBrandId()); switch (info.getData().getCompare()) { case "0": CallerHmiManager.INSTANCE.showBindingcarDialog(); @@ -90,9 +92,6 @@ public class BindingcarNetWorkManager { TipToast.shortTip("当前工控机没有入库"); break; } - - //根据车辆类型切换不同的车辆模型,只针对红旗做处理 - updateCarVrIconRes(info.getData().getBrandId()); SharedPrefsMgr.getInstance(context).putString(SharedPrefsConstants.CAR_INFO, GsonUtils.toJson(info.getData())); } } @@ -114,6 +113,8 @@ public class BindingcarNetWorkManager { * mac: 48:b0:2d:3a:9c:19 */ public void modifyBindingcar(String macAddress, String widevineIDWithMd5, BindingcarCallBack callBack, int screenType) { +// String macAddress1 = "48:b0:2d:4d:33:40"; +// String sn = "X2020220417KA94QIN"; BindingcarRequest request = new BindingcarRequest(macAddress, widevineIDWithMd5, screenType); RequestBody requestBody = RequestBody.create(MediaType.get("application/json;charset=UTF-8"), GsonUtil.jsonFromObject(request)); mBindingcarApiService.modifyBindingcarInfo(requestBody) @@ -129,7 +130,7 @@ public class BindingcarNetWorkManager { if (info != null) { callBack.callBackResult(info); CallerLogger.INSTANCE.d(M_BINDING + TAG, "modifyBindingcar onNext code = " + info.code + "---msg = " + info.msg + "--info.toString() = " + info.toString()); - updateCarVrIconRes(info.getBrandId()); + updateCarVrIconRes(info.getData().getBrandId()); } } diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/bindingcar/ModifyBindingcarInfo.java b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/bindingcar/ModifyBindingcarInfo.java index 4862383e98..564d3bf959 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/bindingcar/ModifyBindingcarInfo.java +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/bindingcar/ModifyBindingcarInfo.java @@ -8,30 +8,61 @@ import com.mogo.eagle.core.data.BaseData; * @since: 3/16/22 */ public class ModifyBindingcarInfo extends BaseData { - public String data; - public String brandId; - public String getData() { + private BindMsg data; + + public BindMsg getData() { return data; } - public void setData(String data) { + public void setData(BindMsg data) { this.data = data; } - public String getBrandId() { - return brandId; - } - - public void setBrandId(String brandId) { - this.brandId = brandId; - } - @Override public String toString() { return "ModifyBindingcarInfo{" + - "data='" + data + '\'' + - "brandId='" + brandId + '\'' + + "data=" + data + '}'; } + + public class BindMsg { + private String result; + private String brand; //品牌 + private String brandId; + + public String getResult() { + return result; + } + + public void setResult(String result) { + this.result = result; + } + + public String getBrand() { + return brand; + } + + public void setBrand(String brand) { + this.brand = brand; + } + + public String getBrandId() { + return brandId; + } + + public void setBrandId(String brandId) { + this.brandId = brandId; + } + + @Override + public String toString() { + return "BindMsg{" + + "result='" + result + '\'' + + ", brand='" + brand + '\'' + + ", brandId='" + brandId + '\'' + + '}'; + } + + } } From 5b59947b0f6d34e33117593276d84e65fc805529 Mon Sep 17 00:00:00 2001 From: chenfufeng Date: Thu, 8 Dec 2022 21:14:18 +0800 Subject: [PATCH 15/17] =?UTF-8?q?[2.13.0][Update]=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E6=B6=88=E6=81=AF=E7=9B=92=E5=AD=90=E7=9A=84=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hmi/receiver/V2XWarningBroadcastReceiver.kt | 4 ++++ .../function/obu/mogo/MogoPrivateObuManager.kt | 15 +++++++++++++++ .../function/obu/mogo/MogoPrivateObuNewManager.kt | 12 ++++++++++++ .../core/function/v2x/events/V2XEventManager.kt | 5 ++++- .../scenario/scene/road/V2XRoadEventScenario.java | 6 ++++++ .../scene/warning/V2XFrontWarningScenario.java | 7 +++++++ .../v2x/redlightwarning/RedLightWarningManager.kt | 4 ++++ .../eagle/core/function/v2x/vip/VipCarManager.kt | 4 ++++ 8 files changed, 56 insertions(+), 1 deletion(-) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/receiver/V2XWarningBroadcastReceiver.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/receiver/V2XWarningBroadcastReceiver.kt index 244d170bfa..6207e5eb1b 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/receiver/V2XWarningBroadcastReceiver.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/receiver/V2XWarningBroadcastReceiver.kt @@ -3,6 +3,7 @@ package com.mogo.eagle.core.function.hmi.receiver import android.content.BroadcastReceiver import android.content.Context import android.content.Intent +import android.util.Log import com.mogo.eagle.core.function.call.hmi.CallerHmiManager import com.mogo.eagle.core.function.hmi.WaringConst import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger @@ -77,6 +78,9 @@ class V2XWarningBroadcastReceiver : BroadcastReceiver() { if (EventTypeEnum.TYPE_USECASE_ID_IVP.poiType == v2xType.toString()) { CallerHmiManager.showLimitingVelocity(1) } + if (alertContent.isNullOrEmpty() || ttsContent.isNullOrEmpty()) { + Log.d("MsgBox-V2XWarningBR", "alertContent或ttsContent为空!") + } CallerMsgBoxManager.saveMsgBox( MsgBoxBean( MsgBoxType.V2X, diff --git a/core/function-impl/mogo-core-function-obu-mogo/src/main/java/com/mogo/eagle/core/function/obu/mogo/MogoPrivateObuManager.kt b/core/function-impl/mogo-core-function-obu-mogo/src/main/java/com/mogo/eagle/core/function/obu/mogo/MogoPrivateObuManager.kt index 1be115a6a7..66988e4d97 100644 --- a/core/function-impl/mogo-core-function-obu-mogo/src/main/java/com/mogo/eagle/core/function/obu/mogo/MogoPrivateObuManager.kt +++ b/core/function-impl/mogo-core-function-obu-mogo/src/main/java/com/mogo/eagle/core/function/obu/mogo/MogoPrivateObuManager.kt @@ -375,6 +375,9 @@ class MogoPrivateObuManager private constructor() { ObuConstants.STATUS.ADD -> { //不显示弹框,其它保留 CallerLogger.d("$M_OBU${MogoObuConst.TAG_MOGO_OBU}", "old onCvxRtiThreatIndInfo ------> appId = $appId --- alertContent = $alertContent --- ttsContent = $ttsContent ") + if (alertContent.isNullOrEmpty() || ttsContent.isNullOrEmpty()) { + Log.d("MsgBox-PriObuManager4", "alertContent或ttsContent为空!") + } CallerMsgBoxManager.saveMsgBox( MsgBoxBean( MsgBoxType.OBU, @@ -508,6 +511,9 @@ class MogoPrivateObuManager private constructor() { //显示警告红边 CallerHmiManager.showWarning(direction) CallerLogger.d("$M_OBU${MogoObuConst.TAG_MOGO_OBU}", "old onCvxPtcThreatIndInfo ------> v2xType = $v2xType --- alertContent = $alertContent --- ttsContent = $ttsContent ") + if (alertContent.isNullOrEmpty() || ttsContent.isNullOrEmpty()) { + Log.d("MsgBox-PriObuManager5", "alertContent或ttsContent为空!") + } CallerMsgBoxManager.saveMsgBox( MsgBoxBean( MsgBoxType.OBU, @@ -729,6 +735,9 @@ class MogoPrivateObuManager private constructor() { ttsContent = EventTypeEnum.getWarningTts(appId.toString()) alertContent = EventTypeEnum.getWarningContent(appId.toString()) CallerLogger.d("$M_OBU${MogoObuConst.TAG_MOGO_OBU}", "old changeTrafficLightStatus ------> appId.toString() = ${appId.toString()} --- alertContent = $alertContent --- ttsContent = $ttsContent ") + if (alertContent.isNullOrEmpty() || ttsContent.isNullOrEmpty()) { + Log.d("MsgBox-PriObuManager1", "alertContent或ttsContent为空!") + } CallerMsgBoxManager.saveMsgBox( MsgBoxBean( MsgBoxType.OBU, @@ -803,6 +812,9 @@ class MogoPrivateObuManager private constructor() { val maxSpeed = currentLight.glosa_suggested_speed_max.toInt() if (maxSpeed > 0) { CallerLogger.d("$M_OBU${MogoObuConst.TAG_MOGO_OBU}", "old changeTrafficLightStatus ------> TYPE_USECASE_ID_IVP_GREEN --- alertContent = $alertContent --- ttsContent = $ttsContent ") + if (alertContent.isNullOrEmpty() || ttsContent.isNullOrEmpty()) { + Log.d("MsgBox-PriObuManager2", "alertContent或ttsContent为空!") + } CallerMsgBoxManager.saveMsgBox( MsgBoxBean( MsgBoxType.OBU, @@ -938,6 +950,9 @@ class MogoPrivateObuManager private constructor() { CallerLogger.d("$M_OBU${MogoObuConst.TAG_MOGO_OBU}", "old handleSdkObu appId2 = $appId --- level = $level ---ttsContent = $ttsContent --- alertContent = $alertContent --- direction = $direction" ) + if (alertContent.isNullOrEmpty() || ttsContent.isNullOrEmpty()) { + Log.d("MsgBox-PriObuManager3", "alertContent或ttsContent为空!") + } CallerMsgBoxManager.saveMsgBox( MsgBoxBean( MsgBoxType.OBU, diff --git a/core/function-impl/mogo-core-function-obu-mogo/src/main/java/com/mogo/eagle/core/function/obu/mogo/MogoPrivateObuNewManager.kt b/core/function-impl/mogo-core-function-obu-mogo/src/main/java/com/mogo/eagle/core/function/obu/mogo/MogoPrivateObuNewManager.kt index fcae6b1da0..ce58eb45db 100644 --- a/core/function-impl/mogo-core-function-obu-mogo/src/main/java/com/mogo/eagle/core/function/obu/mogo/MogoPrivateObuNewManager.kt +++ b/core/function-impl/mogo-core-function-obu-mogo/src/main/java/com/mogo/eagle/core/function/obu/mogo/MogoPrivateObuNewManager.kt @@ -407,6 +407,9 @@ class MogoPrivateObuNewManager private constructor() { //显示警告红边 // CallerHmiManager.showWarning(direction) //不显示弹框,语音提示,数据在消息盒子里面展示,此处不在处理弹框 + if (alertContent.isNullOrEmpty() || ttsContent.isNullOrEmpty()) { + Log.d("MsgBox-PriObuNewMana1", "alertContent或ttsContent为空!") + } CallerMsgBoxManager.saveMsgBox( MsgBoxBean( MsgBoxType.OBU, @@ -509,6 +512,9 @@ class MogoPrivateObuNewManager private constructor() { // if (level == 2 || level == 3) { //不考虑level //显示警告红边 CallerHmiManager.showWarning(direction) + if (alertContent.isNullOrEmpty() || ttsContent.isNullOrEmpty()) { + Log.d("MsgBox-PriObuNewMana2", "alertContent或ttsContent为空!") + } CallerMsgBoxManager.saveMsgBox( MsgBoxBean( MsgBoxType.OBU, @@ -738,6 +744,9 @@ class MogoPrivateObuNewManager private constructor() { "new handleSdkObu appId2 = $appId --- level = $level ---ttsContent = $ttsContent --- alertContent = $alertContent --- direction = $direction" ) if (level == 2 || level == 3) { + if (alertContent.isNullOrEmpty() || ttsContent.isNullOrEmpty()) { + Log.d("MsgBox-PriObuNewManager2", "alertContent或ttsContent为空!") + } //不显示弹框,其它保留 CallerMsgBoxManager.saveMsgBox( MsgBoxBean( @@ -888,6 +897,9 @@ class MogoPrivateObuNewManager private constructor() { val maxSpeed = currentLight.suggestMaxSpeed if (maxSpeed > 0) { + if (alertContent.isNullOrEmpty() || ttsContent.isNullOrEmpty()) { + Log.d("MsgBox-PriObuNewManager1", "alertContent或ttsContent为空!") + } CallerMsgBoxManager.saveMsgBox( MsgBoxBean( MsgBoxType.OBU, diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/V2XEventManager.kt b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/V2XEventManager.kt index 759be5b25f..86c0e3b634 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/V2XEventManager.kt +++ b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/V2XEventManager.kt @@ -557,7 +557,7 @@ object V2XEventManager : IMoGoMapLocationListener, IMoGoTokenCallback, IV2XCallb tempContent = EventTypeEnum.TYPE_USECASE_ID_IVP.content } 2001 -> { - // 最优车道 + // 最优车道100061 EventTypeHelper.getOptLine{ appId, tts, content -> tempAppId = appId tempTts = tts @@ -574,6 +574,9 @@ object V2XEventManager : IMoGoMapLocationListener, IMoGoTokenCallback, IV2XCallb } } // 不显示弹框,其它保留 + if (tempContent.isNullOrEmpty() || tempTts.isNullOrEmpty()) { + Log.d("MsgBox-V2XEventManager", "alertContent或ttsContent为空!") + } CallerMsgBoxManager.saveMsgBox( MsgBoxBean( MsgBoxType.V2X, diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/scene/road/V2XRoadEventScenario.java b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/scene/road/V2XRoadEventScenario.java index 1a2289cbbf..cf448413a1 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/scene/road/V2XRoadEventScenario.java +++ b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/scene/road/V2XRoadEventScenario.java @@ -2,6 +2,8 @@ package com.mogo.eagle.core.function.v2x.events.scenario.scene.road; import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_V2X; +import android.util.Log; + import com.mogo.commons.analytics.AnalyticsUtils; import com.mogo.eagle.core.data.enums.WarningDirectionEnum; import com.mogo.eagle.core.data.map.entity.MarkerExploreWay; @@ -98,6 +100,10 @@ public class V2XRoadEventScenario extends AbsV2XScenario imp V2XRoadEventEntity content = entity != null ? entity.getContent() : null; if (content != null) { // //显示警告红边 + if (content.getAlarmContent() == null || content.getAlarmContent().isEmpty() + || content.getTts() == null || content.getTts().isEmpty()) { + Log.d("MsgBox-V2XRoadScenario", "alertContent或ttsContent为空!"); + } CallerMsgBoxManager.INSTANCE.saveMsgBox( new MsgBoxBean( MsgBoxType.V2X, diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/scene/warning/V2XFrontWarningScenario.java b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/scene/warning/V2XFrontWarningScenario.java index b53b27f6ea..c4d1d6f357 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/scene/warning/V2XFrontWarningScenario.java +++ b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/scene/warning/V2XFrontWarningScenario.java @@ -6,6 +6,8 @@ import android.graphics.Color; import android.text.Spannable; import android.text.SpannableStringBuilder; import android.text.style.ForegroundColorSpan; +import android.util.Log; + import androidx.annotation.Nullable; import com.mogo.eagle.core.data.enums.WarningDirectionEnum; import com.mogo.eagle.core.data.map.MogoLocation; @@ -63,6 +65,11 @@ public class V2XFrontWarningScenario extends AbsV2XScenario implements IMoGoMapL int v2xType = getV2XTypeForFrontWarning(mMarkerEntity); V2XMessageEntity entity = getV2XMessageEntity(); if (v2xType != 0) { + if (getAlertContentForFrontWarning(mMarkerEntity).toString() == null + || getAlertContentForFrontWarning(mMarkerEntity).toString().isEmpty() + || mMarkerEntity.getTts() == null || mMarkerEntity.getTts().isEmpty()) { + Log.d("MsgBox-FrontWarScenario", "alertContent或ttsContent为空!"); + } CallerMsgBoxManager.INSTANCE.saveMsgBox( new MsgBoxBean( MsgBoxType.V2X, diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/redlightwarning/RedLightWarningManager.kt b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/redlightwarning/RedLightWarningManager.kt index 40c412f93e..49004bae3e 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/redlightwarning/RedLightWarningManager.kt +++ b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/redlightwarning/RedLightWarningManager.kt @@ -1,5 +1,6 @@ package com.mogo.eagle.core.function.v2x.redlightwarning +import android.util.Log import com.mogo.eagle.core.data.deva.bizconfig.FuncBizConfig.Companion.BIZ_IVP import com.mogo.eagle.core.data.deva.bizconfig.FuncBizConfig.Companion.BIZ_IVP_GREEN import com.mogo.eagle.core.data.deva.bizconfig.FuncBizConfig.Companion.V2I @@ -239,6 +240,9 @@ class RedLightWarningManager : IMoGoTrafficLightListener, IMoGoVipSetListener, EventTypeEnum.getWarningTts(EventTypeEnum.TYPE_USECASE_ID_IVP_GREEN.poiType), speed ) + if (content.isNullOrEmpty() || tts.isNullOrEmpty()) { + Log.d("MsgBox-RedLightWarManaG", "alertContent或ttsContent为空!") + } CallerMsgBoxManager.saveMsgBox( MsgBoxBean( MsgBoxType.V2X, diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/vip/VipCarManager.kt b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/vip/VipCarManager.kt index f4659f54ab..61bd434cb7 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/vip/VipCarManager.kt +++ b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/vip/VipCarManager.kt @@ -4,6 +4,7 @@ import android.content.Context import android.os.Handler import android.os.Looper import android.os.Message +import android.util.Log import com.mogo.aicloud.services.socket.IMogoOnMessageListener import com.mogo.aicloud.services.socket.MogoAiCloudSocketManager import com.mogo.cloud.passport.MoGoAiCloudClientConfig @@ -275,6 +276,9 @@ class VipCarManager : IMogoOnMessageListener, IMoGoTrafficLightListe ttsContent: String, tag: String ) { + if (alertContent.toString().isNullOrEmpty() || ttsContent.isNullOrEmpty()) { + Log.d("MsgBox-VipCarManager", "alertContent或ttsContent为空!") + } CallerMsgBoxManager.saveMsgBox( MsgBoxBean(MsgBoxType.V2X, V2XMsg(v2xType, alertContent.toString(), ttsContent)) ) From bfa0c06ee56ba28bd592410102b0b44b3bd17ec6 Mon Sep 17 00:00:00 2001 From: chenfufeng Date: Fri, 9 Dec 2022 17:13:28 +0800 Subject: [PATCH 16/17] =?UTF-8?q?[2.13.0][Fix]=E6=BC=8F=E6=8F=90=E4=BA=A4i?= =?UTF-8?q?mport=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../eagle/core/function/obu/mogo/MogoPrivateObuNewManager.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/core/function-impl/mogo-core-function-obu-mogo/src/main/java/com/mogo/eagle/core/function/obu/mogo/MogoPrivateObuNewManager.kt b/core/function-impl/mogo-core-function-obu-mogo/src/main/java/com/mogo/eagle/core/function/obu/mogo/MogoPrivateObuNewManager.kt index ce58eb45db..aa11c494a1 100644 --- a/core/function-impl/mogo-core-function-obu-mogo/src/main/java/com/mogo/eagle/core/function/obu/mogo/MogoPrivateObuNewManager.kt +++ b/core/function-impl/mogo-core-function-obu-mogo/src/main/java/com/mogo/eagle/core/function/obu/mogo/MogoPrivateObuNewManager.kt @@ -1,6 +1,7 @@ package com.mogo.eagle.core.function.obu.mogo import android.content.Context +import android.util.Log import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.data.config.HmiBuildConfig import com.mogo.eagle.core.data.config.HmiBuildConfig.isShowObuLimitSpeedView From faf313940ccd964761acf57b0838bbfb3a3ee283 Mon Sep 17 00:00:00 2001 From: wangmingjun Date: Fri, 9 Dec 2022 19:41:48 +0800 Subject: [PATCH 17/17] =?UTF-8?q?[1.8.0]=E8=A7=A3=E5=86=B3bus=E4=B9=98?= =?UTF-8?q?=E5=AE=A2=E5=B1=8F=E8=AE=A1=E7=AE=97=E9=87=8C=E7=A8=8B=E8=BD=AE?= =?UTF-8?q?=E8=AF=A2bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/mogo/och/bus/passenger/model/BusPassengerModel.java | 1 + 1 file changed, 1 insertion(+) diff --git a/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java b/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java index 1e235f6565..d78109fed5 100644 --- a/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java +++ b/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java @@ -160,6 +160,7 @@ public class BusPassengerModel { || data.getResult() == null || data.getResult().getSites() == null) { routesResult = null; + mNextStationIndex = 0; startOrStopCalculateRouteInfo(false); if (mRouteLineInfoCallback != null){ mRouteLineInfoCallback.showNoTaskView();