From d57a6d9188c70a7e4011e6631a96808478c43a8f Mon Sep 17 00:00:00 2001 From: chenfufeng Date: Sat, 27 Nov 2021 10:48:55 +0800 Subject: [PATCH] =?UTF-8?q?[Fix]=E9=97=AF=E7=BA=A2=E7=81=AF=E9=A2=84?= =?UTF-8?q?=E8=AD=A6=E5=88=A4=E6=96=AD=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../redlightwarning/RedLightWarningManager.kt | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) 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 ecd0f849f0..fafd9c6d4e 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 @@ -20,7 +20,10 @@ import kotlin.math.floor class RedLightWarningManager : IMoGoTrafficLightListener, IMoGoVipSetListener { private var vip: Boolean = false - private var isFirst = false + // 是否第一次进入道路100m处 + private var isFirst = true + // 是否已进入到路口(停止线处) + private var isEnter = false companion object { @@ -32,8 +35,8 @@ class RedLightWarningManager : IMoGoTrafficLightListener, IMoGoVipSetListener { } override fun onTrafficLightStatus(trafficLightResult: TrafficLightResult) { - Logger.d(TAG, "处理路口交通数据。isFirst为:${isFirst}") - if (isFirst) { + Logger.d(TAG, "处理路口交通数据:是否是第一次处理:${isFirst}是否进入路口:${isEnter}") + if (isFirst && !isEnter) { getCurrentRoadTrafficLight(trafficLightResult)?.let { handleRedLightWarning(it, trafficLightResult.flashYellow) } @@ -41,9 +44,12 @@ class RedLightWarningManager : IMoGoTrafficLightListener, IMoGoVipSetListener { } } - override fun onEnterCrossRoad() { - Logger.d(TAG, "进入路口") - isFirst = true + override fun onEnterCrossRoad(enter: Boolean) { + Logger.d(TAG, "回调是否进入路口:$enter") + isEnter = enter + if (enter) { + isFirst = true + } } override fun onVipSet(status: Boolean) {