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) {