From a9b8555388bd418c3b287500591df49634f98af8 Mon Sep 17 00:00:00 2001 From: lixiaopeng Date: Thu, 9 Sep 2021 10:12:06 +0800 Subject: [PATCH 01/47] opt --- .../java/com/mogo/module/common/drawer/TrafficMarkerDrawer.kt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/TrafficMarkerDrawer.kt b/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/TrafficMarkerDrawer.kt index d8c239012f..bbbe1825c5 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/TrafficMarkerDrawer.kt +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/TrafficMarkerDrawer.kt @@ -13,6 +13,7 @@ import com.mogo.module.common.constants.DataTypes import com.mogo.module.common.drawer.bean.TrafficData import com.mogo.module.common.enums.TrafficTypeEnum import com.mogo.utils.WorkThreadHandler +import com.mogo.utils.logger.Logger import java.util.concurrent.ConcurrentHashMap /** @@ -112,6 +113,7 @@ object TrafficMarkerDrawer { * 绘制单条 */ private fun drawObuRecognizedDataMarker(trafficData: TrafficData) { + Logger.d("MogoObu", "drawObuRecognizedDataMarker trafficData.type = " + trafficData.type + "---trafficData.threatLevel = " + trafficData.threatLevel) if (trafficData.type != null) { val resId: Int = trafficData.type.traffic3DIconId @@ -170,6 +172,7 @@ object TrafficMarkerDrawer { marker: IMogoMarker, trafficData: TrafficData ) { + Logger.d("MogoObu", "changeDynamicMarker trafficData.type = " + trafficData.type + "---trafficData.threatLevel = " + trafficData.threatLevel) if (trafficData.type != TrafficTypeEnum.TYPE_TRAFFIC_ID_SPECIAL_VEHICLE) { // 修改颜色 when (trafficData.threatLevel) { From ef1b7f3b93d356bbc8d33ebfa0431956f1ee6682 Mon Sep 17 00:00:00 2001 From: lixiaopeng Date: Thu, 9 Sep 2021 19:39:58 +0800 Subject: [PATCH 02/47] opt --- .../com/mogo/module/hmi/ui/MoGoWarningFragment.kt | 1 + .../mogo/module/obu/mogo/MogoPrivateObuManager.kt | 13 ++++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/modules/mogo-module-hmi/src/main/java/com/mogo/module/hmi/ui/MoGoWarningFragment.kt b/modules/mogo-module-hmi/src/main/java/com/mogo/module/hmi/ui/MoGoWarningFragment.kt index b137336784..d5ecb383d0 100644 --- a/modules/mogo-module-hmi/src/main/java/com/mogo/module/hmi/ui/MoGoWarningFragment.kt +++ b/modules/mogo-module-hmi/src/main/java/com/mogo/module/hmi/ui/MoGoWarningFragment.kt @@ -95,6 +95,7 @@ class MoGoWarningFragment : MvpFragment ttsContent = $ttsContent") AIAssist.getInstance(activity) diff --git a/modules/mogo-module-obu-mogo/src/main/java/com/mogo/module/obu/mogo/MogoPrivateObuManager.kt b/modules/mogo-module-obu-mogo/src/main/java/com/mogo/module/obu/mogo/MogoPrivateObuManager.kt index c10b53e6f0..5d3d914749 100644 --- a/modules/mogo-module-obu-mogo/src/main/java/com/mogo/module/obu/mogo/MogoPrivateObuManager.kt +++ b/modules/mogo-module-obu-mogo/src/main/java/com/mogo/module/obu/mogo/MogoPrivateObuManager.kt @@ -3,6 +3,7 @@ package com.mogo.module.obu.mogo import android.content.Context import android.util.Log import com.alibaba.android.arouter.launcher.ARouter +import com.mogo.commons.voice.AIAssist import com.mogo.module.common.datacenter.SnapshotLocationDataCenter import com.mogo.module.common.drawer.TrafficMarkerDrawer import com.mogo.module.common.enums.WarningTypeEnum @@ -538,6 +539,8 @@ class MogoPrivateObuManager private constructor() { } + private var isStrikeTts = false + /** * 构造对应展示数据和场景 根据obu的场景,add change delete确定是否展示 * @@ -639,7 +642,7 @@ class MogoPrivateObuManager private constructor() { } when (status) { - // 添加 + // 添加, add的时候,可能级别是2, ObuConstants.STATUS.ADD -> { //显示警告红边 mMogoServiceApis!!.v2XListenerManager.warningChangedForListenerWithDirection( @@ -657,6 +660,9 @@ class MogoPrivateObuManager private constructor() { if (level == 3) ttsContent else "", appId.toString() ) + if (level == 3) { + isStrikeTts = true + } //更新周边车辆进行预警颜色变换,车辆实时移动和变色 TrafficDataConvertUtils.cvxV2vThreatIndInfo2TrafficData(info)?.let { TrafficMarkerDrawer.updateITrafficInfo(it) @@ -664,6 +670,7 @@ class MogoPrivateObuManager private constructor() { } // 删除 ObuConstants.STATUS.DELETE -> { + isStrikeTts = false // 移除顶部弹窗 mIMoGoWaringProvider?.disableWarningV2X(appId.toString()) // 移除地图元素 @@ -671,6 +678,10 @@ class MogoPrivateObuManager private constructor() { } // 更新 else -> { + if (!isStrikeTts) { + AIAssist.getInstance(mContext).speakTTSVoice(ttsContent) + isStrikeTts = true + } //更新周边车辆进行预警颜色变换,车辆实时移动和变色 TrafficDataConvertUtils.cvxV2vThreatIndInfo2TrafficData(info)?.let { TrafficMarkerDrawer.updateITrafficInfo(it) From 050c08a54be8641b39cfdaacd06c609cc55ee308 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=A3=E5=AE=8F=E5=AE=87?= Date: Thu, 9 Sep 2021 20:11:44 +0800 Subject: [PATCH 03/47] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=A2=84=E8=AD=A6?= =?UTF-8?q?=E6=B0=94=E6=B3=A1=E6=B6=88=E5=A4=B1=E5=90=8E=E5=89=8D=E8=BD=A6?= =?UTF-8?q?=E6=A8=A1=E5=9E=8B=E6=B6=88=E5=A4=B1=EF=BC=9B=20=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E5=89=8D=E8=BD=A6=E7=A2=B0=E6=92=9E=E9=A2=84=E8=AD=A6?= =?UTF-8?q?=E9=A2=9C=E8=89=B2=E5=8F=98=E6=8D=A2=E5=BB=B6=E8=BF=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/obu/mogo/MogoPrivateObuManager.kt | 42 +++++++++++++++---- .../obu/mogo/utils/TrafficDataConvertUtils.kt | 12 +++--- 2 files changed, 38 insertions(+), 16 deletions(-) diff --git a/modules/mogo-module-obu-mogo/src/main/java/com/mogo/module/obu/mogo/MogoPrivateObuManager.kt b/modules/mogo-module-obu-mogo/src/main/java/com/mogo/module/obu/mogo/MogoPrivateObuManager.kt index 5d3d914749..762c4c5804 100644 --- a/modules/mogo-module-obu-mogo/src/main/java/com/mogo/module/obu/mogo/MogoPrivateObuManager.kt +++ b/modules/mogo-module-obu-mogo/src/main/java/com/mogo/module/obu/mogo/MogoPrivateObuManager.kt @@ -169,7 +169,10 @@ class MogoPrivateObuManager private constructor() { when (appId) { // 道路危险情况预警 WarningTypeEnum.TYPE_USECASE_ID_HLW.useCaseId -> { - Logger.d(MogoObuConst.TAG_MOGO_OBU, "onCvxRtiThreatIndInfo appId = $appId --status = $status --level = $level -- handleDirection = $direction --rtiType = ${info.ext_info.rti_type}") + Logger.d( + MogoObuConst.TAG_MOGO_OBU, + "onCvxRtiThreatIndInfo appId = $appId --status = $status --level = $level -- handleDirection = $direction --rtiType = ${info.ext_info.rti_type}" + ) when (info.ext_info.rti_type) { //急转弯 0x2 -> { @@ -262,11 +265,19 @@ class MogoPrivateObuManager private constructor() { ObuConstants.STATUS.DELETE -> { // 移除顶部弹窗 mIMoGoWaringProvider?.disableWarningV2X(appId.toString()) - TrafficMarkerDrawer.removeCvxRvInfoIndInfo(info.rti_id) + // 更新数据 + TrafficDataConvertUtils.cvxRtiThreatIndInfo2TrafficData(info)?.let { + // 事件结束,还原车辆颜色 + it.threatLevel = 0x01 + TrafficMarkerDrawer.updateITrafficInfo(it) + } } // 更新 else -> { - + // 更新数据 + TrafficDataConvertUtils.cvxRtiThreatIndInfo2TrafficData(info)?.let { + TrafficMarkerDrawer.updateITrafficInfo(it) + } } } } @@ -303,7 +314,10 @@ class MogoPrivateObuManager private constructor() { override fun onCvxPtcThreatIndInfo(info: CvxPtcThreatIndInfo?) { Logger.d(MogoObuConst.TAG_MOGO_OBU, "onCvxPtcInfoIndInfo ------> $info") info?.let { - Logger.d(MogoObuConst.TAG_MOGO_OBU, "onCvxPtcInfoIndInfo ---status---> ${info.status}") + Logger.d( + MogoObuConst.TAG_MOGO_OBU, + "onCvxPtcInfoIndInfo ---status---> ${info.status}" + ) when (info.status) { // 添加 ObuConstants.STATUS.ADD -> { @@ -335,7 +349,12 @@ class MogoPrivateObuManager private constructor() { } // 删除 ObuConstants.STATUS.DELETE -> { - TrafficMarkerDrawer.removeCvxRvInfoIndInfo(info.ptc_id) + // 更新数据 + TrafficDataConvertUtils.cvxPtcThreatIndInfo2TrafficData(info)?.let { + // 事件结束,还原交通参与者颜色 + it.threatLevel = 0x01 + TrafficMarkerDrawer.updateITrafficInfo(it) + } mIMoGoWaringProvider?.disableWarningV2X(ObuConstants.USE_CASE_ID.VRUCW.toString()) } // 更新 @@ -443,8 +462,10 @@ class MogoPrivateObuManager private constructor() { * 处理红绿灯 */ private fun handlerTrafficLight(appId: Int, status: Int, lights: List, indicator: Int) { - Logger.d(MogoObuConst.TAG_MOGO_OBU, - "handlerTrafficLight appId = $appId --- status = $status ---indicator = $indicator ") + Logger.d( + MogoObuConst.TAG_MOGO_OBU, + "handlerTrafficLight appId = $appId --- status = $status ---indicator = $indicator " + ) when (status) { // 添加 ObuConstants.STATUS.ADD -> { @@ -673,8 +694,11 @@ class MogoPrivateObuManager private constructor() { isStrikeTts = false // 移除顶部弹窗 mIMoGoWaringProvider?.disableWarningV2X(appId.toString()) - // 移除地图元素 - TrafficMarkerDrawer.removeCvxRvInfoIndInfo(info.vehicle_id) + //更新周边车辆进行预警颜色变换,车辆实时移动和变色 + TrafficDataConvertUtils.cvxV2vThreatIndInfo2TrafficData(info)?.let { + it.threatLevel = 0x01 + TrafficMarkerDrawer.updateITrafficInfo(it) + } } // 更新 else -> { diff --git a/modules/mogo-module-obu-mogo/src/main/java/com/mogo/module/obu/mogo/utils/TrafficDataConvertUtils.kt b/modules/mogo-module-obu-mogo/src/main/java/com/mogo/module/obu/mogo/utils/TrafficDataConvertUtils.kt index c7058643da..fa61a8a6cb 100644 --- a/modules/mogo-module-obu-mogo/src/main/java/com/mogo/module/obu/mogo/utils/TrafficDataConvertUtils.kt +++ b/modules/mogo-module-obu-mogo/src/main/java/com/mogo/module/obu/mogo/utils/TrafficDataConvertUtils.kt @@ -32,11 +32,6 @@ object TrafficDataConvertUtils { trafficData.heading = info.basic_info.heading trafficData.speed = info.basic_info.speed - // 判断车辆V2X预警级别,调整车辆颜色 - if (!info.threat_infos.isNullOrEmpty()) { - trafficData.threatLevel = info.threat_infos.first().threat_level - } - return trafficData } @@ -45,9 +40,10 @@ object TrafficDataConvertUtils { */ fun cvxRtiThreatIndInfo2TrafficData(info: CvxRtiThreatIndInfo): TrafficData? { // 这里只处理道路施工 - if (info.rti_id == null || info.ext_info == null || info.ext_info.rti_type != 0x7 || - info.zones_info == null || info.zones_info.first() == null + if (info.rti_id == null || info.ext_info == null || info.ext_info.rti_type != 0x7 + || info.zones_info == null || info.zones_info.first() == null || info.zones_info.first().path_points.first() == null + || info.threat_info == null ) { Logger.e(TAG, "数据转换异常,请检查参数是否齐全") return null @@ -59,6 +55,8 @@ object TrafficDataConvertUtils { trafficData.lat = info.zones_info.first().path_points.first().latitude trafficData.lon = info.zones_info.first().path_points.first().longitude + trafficData.threatLevel = info.threat_info.threat_level + return trafficData } From 11716054e404c584d3109f67b4fc6061831bfdec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=A3=E5=AE=8F=E5=AE=87?= Date: Fri, 10 Sep 2021 14:48:43 +0800 Subject: [PATCH 04/47] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=A2=84=E8=AD=A6?= =?UTF-8?q?=E6=B0=94=E6=B3=A1=E6=B6=88=E5=A4=B1=E5=90=8E=E5=89=8D=E8=BD=A6?= =?UTF-8?q?=E6=A8=A1=E5=9E=8B=E6=B6=88=E5=A4=B1=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/mogo/module/obu/mogo/utils/TrafficDataConvertUtils.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/mogo-module-obu-mogo/src/main/java/com/mogo/module/obu/mogo/utils/TrafficDataConvertUtils.kt b/modules/mogo-module-obu-mogo/src/main/java/com/mogo/module/obu/mogo/utils/TrafficDataConvertUtils.kt index fa61a8a6cb..8adcd22292 100644 --- a/modules/mogo-module-obu-mogo/src/main/java/com/mogo/module/obu/mogo/utils/TrafficDataConvertUtils.kt +++ b/modules/mogo-module-obu-mogo/src/main/java/com/mogo/module/obu/mogo/utils/TrafficDataConvertUtils.kt @@ -20,7 +20,7 @@ object TrafficDataConvertUtils { * OBU 远车 转换交通元素数据 */ fun cvxRvInfoIndInfo2TrafficData(info: CvxRvInfoIndInfo): TrafficData? { - if (info.basic_info == null || info.basic_info.position == null || info.threat_infos == null) { + if (info.basic_info == null || info.basic_info.position == null) { Logger.e(TAG, "cvxRvInfoIndInfo2TrafficData 数据转换异常,请检查参数是否齐全") return null } From 08b66effb243c369c7005f660a143c371bde0435 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=A3=E5=AE=8F=E5=AE=87?= Date: Fri, 10 Sep 2021 15:43:40 +0800 Subject: [PATCH 05/47] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BB=96=E8=BD=A6?= =?UTF-8?q?=E9=A2=9C=E8=89=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/drawer/TrafficMarkerDrawer.kt | 34 ++++++++++++++++++- .../module/obu/mogo/MogoPrivateObuManager.kt | 10 +++--- 2 files changed, 38 insertions(+), 6 deletions(-) diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/TrafficMarkerDrawer.kt b/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/TrafficMarkerDrawer.kt index bbbe1825c5..120a3a2baf 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/TrafficMarkerDrawer.kt +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/TrafficMarkerDrawer.kt @@ -70,6 +70,35 @@ object TrafficMarkerDrawer { mTrafficMap[trafficData.uuid] = trafficData } + /** + * 更新识别数据位置 + */ + fun updateITrafficLocationInfo(trafficData: TrafficData) { + val tempTraffic = mTrafficMap[trafficData.uuid] + if (tempTraffic != null) { + tempTraffic.lat = trafficData.lat + tempTraffic.lon = trafficData.lon + mTrafficMap[trafficData.uuid] = tempTraffic + } else { + mTrafficMap[trafficData.uuid] = trafficData + } + } + + /** + * 更新识别数据颜色 + */ + fun updateITrafficThreatLevelInfo(trafficData: TrafficData) { + val tempTraffic = mTrafficMap[trafficData.uuid] + if (tempTraffic != null) { + tempTraffic.lat = trafficData.lat + tempTraffic.lon = trafficData.lon + tempTraffic.threatLevel = trafficData.threatLevel + mTrafficMap[trafficData.uuid] = tempTraffic + } else { + mTrafficMap[trafficData.uuid] = trafficData + } + } + /** * 移除识别的数据 */ @@ -113,7 +142,10 @@ object TrafficMarkerDrawer { * 绘制单条 */ private fun drawObuRecognizedDataMarker(trafficData: TrafficData) { - Logger.d("MogoObu", "drawObuRecognizedDataMarker trafficData.type = " + trafficData.type + "---trafficData.threatLevel = " + trafficData.threatLevel) + Logger.d( + "MogoObu", + "drawObuRecognizedDataMarker trafficData.type = " + trafficData.type + "---trafficData.threatLevel = " + trafficData.threatLevel + ) if (trafficData.type != null) { val resId: Int = trafficData.type.traffic3DIconId diff --git a/modules/mogo-module-obu-mogo/src/main/java/com/mogo/module/obu/mogo/MogoPrivateObuManager.kt b/modules/mogo-module-obu-mogo/src/main/java/com/mogo/module/obu/mogo/MogoPrivateObuManager.kt index 762c4c5804..8c9820f5e1 100644 --- a/modules/mogo-module-obu-mogo/src/main/java/com/mogo/module/obu/mogo/MogoPrivateObuManager.kt +++ b/modules/mogo-module-obu-mogo/src/main/java/com/mogo/module/obu/mogo/MogoPrivateObuManager.kt @@ -150,7 +150,7 @@ class MogoPrivateObuManager private constructor() { mContext?.let { SharedPrefsMgr.getInstance(it).putBoolean("OBU_RV", true) } // 更新数据 TrafficDataConvertUtils.cvxRvInfoIndInfo2TrafficData(info)?.let { - TrafficMarkerDrawer.updateITrafficInfo(it) + TrafficMarkerDrawer.updateITrafficLocationInfo(it) } } @@ -353,7 +353,7 @@ class MogoPrivateObuManager private constructor() { TrafficDataConvertUtils.cvxPtcThreatIndInfo2TrafficData(info)?.let { // 事件结束,还原交通参与者颜色 it.threatLevel = 0x01 - TrafficMarkerDrawer.updateITrafficInfo(it) + TrafficMarkerDrawer.updateITrafficThreatLevelInfo(it) } mIMoGoWaringProvider?.disableWarningV2X(ObuConstants.USE_CASE_ID.VRUCW.toString()) } @@ -361,7 +361,7 @@ class MogoPrivateObuManager private constructor() { else -> { // 更新数据 TrafficDataConvertUtils.cvxPtcThreatIndInfo2TrafficData(info)?.let { - TrafficMarkerDrawer.updateITrafficInfo(it) + TrafficMarkerDrawer.updateITrafficThreatLevelInfo(it) } } } @@ -697,7 +697,7 @@ class MogoPrivateObuManager private constructor() { //更新周边车辆进行预警颜色变换,车辆实时移动和变色 TrafficDataConvertUtils.cvxV2vThreatIndInfo2TrafficData(info)?.let { it.threatLevel = 0x01 - TrafficMarkerDrawer.updateITrafficInfo(it) + TrafficMarkerDrawer.updateITrafficThreatLevelInfo(it) } } // 更新 @@ -708,7 +708,7 @@ class MogoPrivateObuManager private constructor() { } //更新周边车辆进行预警颜色变换,车辆实时移动和变色 TrafficDataConvertUtils.cvxV2vThreatIndInfo2TrafficData(info)?.let { - TrafficMarkerDrawer.updateITrafficInfo(it) + TrafficMarkerDrawer.updateITrafficThreatLevelInfo(it) } } } From 2c6b36d2d39ddfd26433ab2a0722f59a55aa0b84 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=A3=E5=AE=8F=E5=AE=87?= Date: Fri, 10 Sep 2021 15:53:41 +0800 Subject: [PATCH 06/47] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dobu=E4=BB=96=E8=BD=A6?= =?UTF-8?q?=E8=88=AA=E5=90=91=E8=A7=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/mogo/module/common/drawer/TrafficMarkerDrawer.kt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/TrafficMarkerDrawer.kt b/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/TrafficMarkerDrawer.kt index 120a3a2baf..b1d72a84cb 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/TrafficMarkerDrawer.kt +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/TrafficMarkerDrawer.kt @@ -78,6 +78,7 @@ object TrafficMarkerDrawer { if (tempTraffic != null) { tempTraffic.lat = trafficData.lat tempTraffic.lon = trafficData.lon + tempTraffic.heading = trafficData.heading mTrafficMap[trafficData.uuid] = tempTraffic } else { mTrafficMap[trafficData.uuid] = trafficData @@ -92,6 +93,7 @@ object TrafficMarkerDrawer { if (tempTraffic != null) { tempTraffic.lat = trafficData.lat tempTraffic.lon = trafficData.lon + tempTraffic.heading = trafficData.heading tempTraffic.threatLevel = trafficData.threatLevel mTrafficMap[trafficData.uuid] = tempTraffic } else { From 6db34eea86d710ded24974027b3cd25004d8dfca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=A3=E5=AE=8F=E5=AE=87?= Date: Fri, 10 Sep 2021 16:36:07 +0800 Subject: [PATCH 07/47] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=BA=A2=E8=89=B2?= =?UTF-8?q?=E8=BE=B9=E6=A1=86=E7=9A=84=E5=B1=95=E7=A4=BA=E4=BD=8D=E7=BD=AE?= =?UTF-8?q?=E5=BC=82=E5=B8=B8=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/launcher/MainLauncherActivity.java | 43 +++++++++---- .../common/entity/V2XMessageEntity.java | 2 + .../module/obu/mogo/MogoPrivateObuManager.kt | 60 +++++++++++++++---- 3 files changed, 84 insertions(+), 21 deletions(-) diff --git a/main-extensions/mogo-module-main-launcher/src/main/java/com/zhidao/mogo/module/main/launcher/MainLauncherActivity.java b/main-extensions/mogo-module-main-launcher/src/main/java/com/zhidao/mogo/module/main/launcher/MainLauncherActivity.java index 0f79c5e1cc..b892b3df2d 100644 --- a/main-extensions/mogo-module-main-launcher/src/main/java/com/zhidao/mogo/module/main/launcher/MainLauncherActivity.java +++ b/main-extensions/mogo-module-main-launcher/src/main/java/com/zhidao/mogo/module/main/launcher/MainLauncherActivity.java @@ -1,5 +1,13 @@ package com.zhidao.mogo.module.main.launcher; +import static com.mogo.module.common.entity.V2XMessageEntity.V2XTypeEnum.ALERT_THE_FRONT_CRASH_WARNING_NON; +import static com.mogo.module.common.entity.V2XMessageEntity.V2XTypeEnum.ALERT_THE_FRONT_CRASH_WARNING_BOTTOM; +import static com.mogo.module.common.entity.V2XMessageEntity.V2XTypeEnum.ALERT_THE_FRONT_CRASH_WARNING_BOTTOM_LEFT; +import static com.mogo.module.common.entity.V2XMessageEntity.V2XTypeEnum.ALERT_THE_FRONT_CRASH_WARNING_BOTTOM_RIGHT; +import static com.mogo.module.common.entity.V2XMessageEntity.V2XTypeEnum.ALERT_THE_FRONT_CRASH_WARNING_LEFT; +import static com.mogo.module.common.entity.V2XMessageEntity.V2XTypeEnum.ALERT_THE_FRONT_CRASH_WARNING_RIGHT; +import static com.mogo.module.common.entity.V2XMessageEntity.V2XTypeEnum.ALERT_THE_FRONT_CRASH_WARNING_TOP; + import android.content.Intent; import android.os.Bundle; import android.os.Handler; @@ -25,13 +33,6 @@ import com.mogo.service.statusmanager.StatusDescriptor; import com.mogo.service.v2x.IV2XWarningListener; import com.mogo.utils.logger.Logger; -import static com.mogo.module.common.entity.V2XMessageEntity.V2XTypeEnum.ALERT_THE_FRONT_CRASH_WARNING_BOTTOM; -import static com.mogo.module.common.entity.V2XMessageEntity.V2XTypeEnum.ALERT_THE_FRONT_CRASH_WARNING_BOTTOM_LEFT; -import static com.mogo.module.common.entity.V2XMessageEntity.V2XTypeEnum.ALERT_THE_FRONT_CRASH_WARNING_BOTTOM_RIGHT; -import static com.mogo.module.common.entity.V2XMessageEntity.V2XTypeEnum.ALERT_THE_FRONT_CRASH_WARNING_LEFT; -import static com.mogo.module.common.entity.V2XMessageEntity.V2XTypeEnum.ALERT_THE_FRONT_CRASH_WARNING_RIGHT; -import static com.mogo.module.common.entity.V2XMessageEntity.V2XTypeEnum.ALERT_THE_FRONT_CRASH_WARNING_TOP; - /** * 针对作为Launcher的情况,做个性化操作 * @@ -178,6 +179,12 @@ public class MainLauncherActivity extends MainActivity implements IMogoIntentLis Log.d(TAG, "显示红色预警蒙层"); Log.d("MogoObu", "显示红色预警蒙层 ------> type = " + type); switch (type) { + case ALERT_THE_FRONT_CRASH_WARNING_NON: + mWarningTop.setVisibility(View.GONE); + mWarningLeft.setVisibility(View.GONE); + mWarningRight.setVisibility(View.GONE); + mWarningBottom.setVisibility(View.GONE); + break; case ALERT_THE_FRONT_CRASH_WARNING_TOP: mWarningTop.setVisibility(View.VISIBLE); mWarningLeft.setVisibility(View.GONE); @@ -200,22 +207,36 @@ public class MainLauncherActivity extends MainActivity implements IMogoIntentLis startCountDownWithView(mWarningRight); break; case ALERT_THE_FRONT_CRASH_WARNING_BOTTOM: - case ALERT_THE_FRONT_CRASH_WARNING_BOTTOM_LEFT: - case ALERT_THE_FRONT_CRASH_WARNING_BOTTOM_RIGHT: mWarningBottom.setVisibility(View.VISIBLE); mWarningRight.setVisibility(View.GONE); mWarningTop.setVisibility(View.GONE); mWarningLeft.setVisibility(View.GONE); startCountDownWithView(mWarningBottom); break; + case ALERT_THE_FRONT_CRASH_WARNING_BOTTOM_LEFT: + mWarningBottom.setVisibility(View.VISIBLE); + mWarningRight.setVisibility(View.GONE); + mWarningTop.setVisibility(View.GONE); + mWarningLeft.setVisibility(View.VISIBLE); + startCountDownWithView(mWarningBottom); + startCountDownWithView(mWarningLeft); + break; + case ALERT_THE_FRONT_CRASH_WARNING_BOTTOM_RIGHT: + mWarningBottom.setVisibility(View.VISIBLE); + mWarningRight.setVisibility(View.VISIBLE); + mWarningTop.setVisibility(View.GONE); + mWarningLeft.setVisibility(View.GONE); + startCountDownWithView(mWarningBottom); + startCountDownWithView(mWarningRight); + break; default: break; } } - /* + /** * 预警蒙层显示时间为3秒 - * */ + */ private void startCountDownWithView(ImageView view) { if (runnableV2XEvent == null) { runnableV2XEvent = () -> { diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/V2XMessageEntity.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/V2XMessageEntity.java index a03fb2780c..8d40920263 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/V2XMessageEntity.java +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/V2XMessageEntity.java @@ -147,6 +147,8 @@ public class V2XMessageEntity implements Serializable { int ALERT_RECOMMEND_PARKING = 1_012; // 弱势交通参与者401018 int ALERT_THE_FRONT_WEAKNESS = 40_1018; + // 关闭红色边框预警 + int ALERT_THE_FRONT_CRASH_WARNING_NON = 0; // 前方行人碰撞预警 int ALERT_THE_FRONT_CRASH_WARNING_TOP = 1; // 后方碰撞预警 diff --git a/modules/mogo-module-obu-mogo/src/main/java/com/mogo/module/obu/mogo/MogoPrivateObuManager.kt b/modules/mogo-module-obu-mogo/src/main/java/com/mogo/module/obu/mogo/MogoPrivateObuManager.kt index 8c9820f5e1..03071858fb 100644 --- a/modules/mogo-module-obu-mogo/src/main/java/com/mogo/module/obu/mogo/MogoPrivateObuManager.kt +++ b/modules/mogo-module-obu-mogo/src/main/java/com/mogo/module/obu/mogo/MogoPrivateObuManager.kt @@ -263,6 +263,10 @@ class MogoPrivateObuManager private constructor() { } // 删除 ObuConstants.STATUS.DELETE -> { + //关闭警告红边 + mMogoServiceApis!!.v2XListenerManager.warningChangedForListenerWithDirection( + 0, "ACTION_V2X_FRONT_WARNING" + ) // 移除顶部弹窗 mIMoGoWaringProvider?.disableWarningV2X(appId.toString()) // 更新数据 @@ -274,6 +278,10 @@ class MogoPrivateObuManager private constructor() { } // 更新 else -> { + //显示警告红边 + mMogoServiceApis!!.v2XListenerManager.warningChangedForListenerWithDirection( + direction, "ACTION_V2X_FRONT_WARNING" + ) // 更新数据 TrafficDataConvertUtils.cvxRtiThreatIndInfo2TrafficData(info)?.let { TrafficMarkerDrawer.updateITrafficInfo(it) @@ -349,6 +357,10 @@ class MogoPrivateObuManager private constructor() { } // 删除 ObuConstants.STATUS.DELETE -> { + //关闭警告红边 + mMogoServiceApis!!.v2XListenerManager.warningChangedForListenerWithDirection( + 0, "ACTION_V2X_FRONT_WARNING" + ) // 更新数据 TrafficDataConvertUtils.cvxPtcThreatIndInfo2TrafficData(info)?.let { // 事件结束,还原交通参与者颜色 @@ -359,6 +371,12 @@ class MogoPrivateObuManager private constructor() { } // 更新 else -> { + val direction = 1 + //显示警告红边 + mMogoServiceApis!!.v2XListenerManager.warningChangedForListenerWithDirection( + direction, + "ACTION_V2X_FRONT_WARNING" + ) // 更新数据 TrafficDataConvertUtils.cvxPtcThreatIndInfo2TrafficData(info)?.let { TrafficMarkerDrawer.updateITrafficThreatLevelInfo(it) @@ -425,16 +443,31 @@ class MogoPrivateObuManager private constructor() { */ private fun getMessageDirection(targetClassification: Int): Int { return when (targetClassification) { - ObuConstants.TARGET_CLASSIFICATION.TC_ONCOMING_IN_LANE, ObuConstants.TARGET_CLASSIFICATION.TC_AHEAD_IN_LANE -> 1 //正前方 - ObuConstants.TARGET_CLASSIFICATION.TC_AHEAD_RIGHT, ObuConstants.TARGET_CLASSIFICATION.TC_AHEAD_FAR_RIGHT, ObuConstants.TARGET_CLASSIFICATION.TC_ONCOMING_FAR_RIGHT, + ObuConstants.TARGET_CLASSIFICATION.TC_ONCOMING_IN_LANE, + ObuConstants.TARGET_CLASSIFICATION.TC_AHEAD_IN_LANE -> 1 //正前方 + ObuConstants.TARGET_CLASSIFICATION.TC_BEHIND_IN_LANE -> 2 //正后方 - ObuConstants.TARGET_CLASSIFICATION.TC_AHEAD_FAR_LEFT, ObuConstants.TARGET_CLASSIFICATION.TC_AHEAD_LEFT, ObuConstants.TARGET_CLASSIFICATION.TC_ONCOMING_FAR_LEFT, - ObuConstants.TARGET_CLASSIFICATION.TC_ONCOMING_LEFT, ObuConstants.TARGET_CLASSIFICATION.TC_INTERSECTION_LEFT -> 3 //左前方 - ObuConstants.TARGET_CLASSIFICATION.TC_INTERSECTION_RIGHT, ObuConstants.TARGET_CLASSIFICATION.TC_ONCOMING_RIGHT -> 4 //右前方 - ObuConstants.TARGET_CLASSIFICATION.TC_BEHIND_LEFT, ObuConstants.TARGET_CLASSIFICATION.TC_BEHIND_FAR_LEFT -> 5 //左后方 弹框目前后方分为左后,右后,正后方 - ObuConstants.TARGET_CLASSIFICATION.TC_BEHIND_RIGHT, ObuConstants.TARGET_CLASSIFICATION.TC_BEHIND_FAR_RIGHT -> 6 //右后方 - ObuConstants.TARGET_CLASSIFICATION.TC_UNCLASSIFIED -> 0 //未知 - else -> 7 + + ObuConstants.TARGET_CLASSIFICATION.TC_AHEAD_LEFT, + ObuConstants.TARGET_CLASSIFICATION.TC_AHEAD_FAR_LEFT, + ObuConstants.TARGET_CLASSIFICATION.TC_ONCOMING_LEFT, + ObuConstants.TARGET_CLASSIFICATION.TC_ONCOMING_FAR_LEFT, + ObuConstants.TARGET_CLASSIFICATION.TC_INTERSECTION_LEFT -> 3 //左前方 + + ObuConstants.TARGET_CLASSIFICATION.TC_ONCOMING_FAR_RIGHT, + ObuConstants.TARGET_CLASSIFICATION.TC_AHEAD_FAR_RIGHT, + ObuConstants.TARGET_CLASSIFICATION.TC_AHEAD_RIGHT, + ObuConstants.TARGET_CLASSIFICATION.TC_INTERSECTION_RIGHT, + ObuConstants.TARGET_CLASSIFICATION.TC_ONCOMING_RIGHT -> 4 //右前方 + + ObuConstants.TARGET_CLASSIFICATION.TC_BEHIND_LEFT, + ObuConstants.TARGET_CLASSIFICATION.TC_BEHIND_FAR_LEFT -> 5 //左后方 弹框目前后方分为左后,右后,正后方 + + ObuConstants.TARGET_CLASSIFICATION.TC_BEHIND_RIGHT, + ObuConstants.TARGET_CLASSIFICATION.TC_BEHIND_FAR_RIGHT -> 6 //右后方 + + ObuConstants.TARGET_CLASSIFICATION.TC_UNCLASSIFIED -> -1 //未知 + else -> 0 } } @@ -448,7 +481,6 @@ class MogoPrivateObuManager private constructor() { 0x03 -> 4 //右侧 0x04 -> 1 //前方 0x05 -> 2 //后方 - else -> 7 } @@ -692,6 +724,10 @@ class MogoPrivateObuManager private constructor() { // 删除 ObuConstants.STATUS.DELETE -> { isStrikeTts = false + //关闭警告红边 + mMogoServiceApis!!.v2XListenerManager.warningChangedForListenerWithDirection( + 0, "ACTION_V2X_FRONT_WARNING" + ) // 移除顶部弹窗 mIMoGoWaringProvider?.disableWarningV2X(appId.toString()) //更新周边车辆进行预警颜色变换,车辆实时移动和变色 @@ -702,6 +738,10 @@ class MogoPrivateObuManager private constructor() { } // 更新 else -> { + //显示警告红边 + mMogoServiceApis!!.v2XListenerManager.warningChangedForListenerWithDirection( + direction, "ACTION_V2X_FRONT_WARNING" + ) if (!isStrikeTts) { AIAssist.getInstance(mContext).speakTTSVoice(ttsContent) isStrikeTts = true From d6c348f1c7bd41543083b124c316cac38c6ee34f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=A3=E5=AE=8F=E5=AE=87?= Date: Fri, 10 Sep 2021 16:42:24 +0800 Subject: [PATCH 08/47] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=BA=A2=E8=89=B2?= =?UTF-8?q?=E8=BE=B9=E6=A1=86=E7=9A=84=E5=B1=95=E7=A4=BA=E4=BD=8D=E7=BD=AE?= =?UTF-8?q?=E5=BC=82=E5=B8=B8=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/launcher/MainLauncherActivity.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/main-extensions/mogo-module-main-launcher/src/main/java/com/zhidao/mogo/module/main/launcher/MainLauncherActivity.java b/main-extensions/mogo-module-main-launcher/src/main/java/com/zhidao/mogo/module/main/launcher/MainLauncherActivity.java index b892b3df2d..ffc46c5fde 100644 --- a/main-extensions/mogo-module-main-launcher/src/main/java/com/zhidao/mogo/module/main/launcher/MainLauncherActivity.java +++ b/main-extensions/mogo-module-main-launcher/src/main/java/com/zhidao/mogo/module/main/launcher/MainLauncherActivity.java @@ -190,44 +190,44 @@ public class MainLauncherActivity extends MainActivity implements IMogoIntentLis mWarningLeft.setVisibility(View.GONE); mWarningRight.setVisibility(View.GONE); mWarningBottom.setVisibility(View.GONE); - startCountDownWithView(mWarningTop); +// startCountDownWithView(mWarningTop); break; case ALERT_THE_FRONT_CRASH_WARNING_LEFT: mWarningLeft.setVisibility(View.VISIBLE); mWarningTop.setVisibility(View.GONE); mWarningRight.setVisibility(View.GONE); mWarningBottom.setVisibility(View.GONE); - startCountDownWithView(mWarningLeft); +// startCountDownWithView(mWarningLeft); break; case ALERT_THE_FRONT_CRASH_WARNING_RIGHT: mWarningRight.setVisibility(View.VISIBLE); mWarningTop.setVisibility(View.GONE); mWarningLeft.setVisibility(View.GONE); mWarningBottom.setVisibility(View.GONE); - startCountDownWithView(mWarningRight); +// startCountDownWithView(mWarningRight); break; case ALERT_THE_FRONT_CRASH_WARNING_BOTTOM: mWarningBottom.setVisibility(View.VISIBLE); mWarningRight.setVisibility(View.GONE); mWarningTop.setVisibility(View.GONE); mWarningLeft.setVisibility(View.GONE); - startCountDownWithView(mWarningBottom); +// startCountDownWithView(mWarningBottom); break; case ALERT_THE_FRONT_CRASH_WARNING_BOTTOM_LEFT: mWarningBottom.setVisibility(View.VISIBLE); mWarningRight.setVisibility(View.GONE); mWarningTop.setVisibility(View.GONE); mWarningLeft.setVisibility(View.VISIBLE); - startCountDownWithView(mWarningBottom); - startCountDownWithView(mWarningLeft); +// startCountDownWithView(mWarningBottom); +// startCountDownWithView(mWarningLeft); break; case ALERT_THE_FRONT_CRASH_WARNING_BOTTOM_RIGHT: mWarningBottom.setVisibility(View.VISIBLE); mWarningRight.setVisibility(View.VISIBLE); mWarningTop.setVisibility(View.GONE); mWarningLeft.setVisibility(View.GONE); - startCountDownWithView(mWarningBottom); - startCountDownWithView(mWarningRight); +// startCountDownWithView(mWarningBottom); +// startCountDownWithView(mWarningRight); break; default: break; From 2efc04d1d19e2491c7c869286840b6787b956bb4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=A3=E5=AE=8F=E5=AE=87?= Date: Fri, 10 Sep 2021 22:02:24 +0800 Subject: [PATCH 09/47] =?UTF-8?q?=E5=AE=8C=E6=88=90=E4=BA=86=E9=A2=84?= =?UTF-8?q?=E8=AD=A6=E7=BA=A2=E8=BE=B9=E7=9A=84=E8=BF=81=E7=A7=BBHMI=20?= =?UTF-8?q?=E8=B0=83=E7=94=A8=E6=96=B9=E5=BC=8F=E4=B8=BA=20//=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E8=AD=A6=E5=91=8A=E7=BA=A2=E8=BE=B9=20mIMoGoWaringPro?= =?UTF-8?q?vider!!.showWarning(direction)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/gradle.xml | 1 + .idea/misc.xml | 2 + config.gradle | 1 + gradle.properties | 1 + .../main/launcher/MainLauncherActivity.java | 16 +- modules.txt | 1 + modules/mogo-module-data/.gitignore | 1 + modules/mogo-module-data/README.md | 1 + modules/mogo-module-data/build.gradle | 36 ++++ modules/mogo-module-data/consumer-rules.pro | 0 modules/mogo-module-data/gradle.properties | 3 + modules/mogo-module-data/proguard-rules.pro | 21 +++ .../src/main/AndroidManifest.xml | 5 + .../module/data/enums/WarningDirectionEnum.kt | 51 ++++++ modules/mogo-module-hmi/build.gradle | 2 + .../mogo/module/hmi/ui/MoGoWarningContract.kt | 20 ++- .../mogo/module/hmi/ui/MoGoWarningFragment.kt | 25 ++- .../com/mogo/module/hmi/ui/WaringPresenter.kt | 23 --- .../module/hmi/ui/widget/V2XWarningView.kt | 118 ++++++++++++ .../hmi/warning/MoGoWarningProvider.java | 10 ++ .../module_hmi_warning_bkg_bottom.xml | 8 + .../drawable/module_hmi_warning_bkg_left.xml | 8 + .../drawable/module_hmi_warning_bkg_right.xml | 8 + .../drawable/module_hmi_warning_bkg_top.xml | 8 + .../src/main/res/layout/fragment_warning.xml | 9 + .../res/layout/module_hmi_warning_v2x.xml | 40 +++++ modules/mogo-module-obu-mogo/build.gradle | 2 + .../module/obu/mogo/MogoPrivateObuManager.kt | 169 +++++++++--------- services/mogo-service-api/build.gradle | 2 + .../service/warning/IMoGoWaringProvider.kt | 16 ++ settings.gradle | 1 + 31 files changed, 487 insertions(+), 122 deletions(-) create mode 100644 modules/mogo-module-data/.gitignore create mode 100644 modules/mogo-module-data/README.md create mode 100644 modules/mogo-module-data/build.gradle create mode 100644 modules/mogo-module-data/consumer-rules.pro create mode 100644 modules/mogo-module-data/gradle.properties create mode 100644 modules/mogo-module-data/proguard-rules.pro create mode 100644 modules/mogo-module-data/src/main/AndroidManifest.xml create mode 100644 modules/mogo-module-data/src/main/java/com/mogo/module/data/enums/WarningDirectionEnum.kt create mode 100644 modules/mogo-module-hmi/src/main/java/com/mogo/module/hmi/ui/widget/V2XWarningView.kt create mode 100644 modules/mogo-module-hmi/src/main/res/drawable/module_hmi_warning_bkg_bottom.xml create mode 100644 modules/mogo-module-hmi/src/main/res/drawable/module_hmi_warning_bkg_left.xml create mode 100644 modules/mogo-module-hmi/src/main/res/drawable/module_hmi_warning_bkg_right.xml create mode 100644 modules/mogo-module-hmi/src/main/res/drawable/module_hmi_warning_bkg_top.xml create mode 100644 modules/mogo-module-hmi/src/main/res/layout/module_hmi_warning_v2x.xml diff --git a/.idea/gradle.xml b/.idea/gradle.xml index aa2562d834..12df6938f6 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -35,6 +35,7 @@