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] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=BA=A2=E8=89=B2=E8=BE=B9?= =?UTF-8?q?=E6=A1=86=E7=9A=84=E5=B1=95=E7=A4=BA=E4=BD=8D=E7=BD=AE=E5=BC=82?= =?UTF-8?q?=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