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 1f267f14df..964be8caf0 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 @@ -45,6 +45,10 @@ class RedLightWarningManager : IMoGoTrafficLightListener, IMoGoVipSetListener, override fun onTrafficLightStatus(trafficLightResult: TrafficLightResult) { // 到路口100m时回调 Logger.d(TAG, "处理路口交通数据:是否是第一次处理:${isFirst}是否进入路口:${isEnter}") + if (trafficLightResult.currentRoadIsRight()) { + Logger.d(TAG,"当前道路右转,不处理") + return + } if (isFirst && !isEnter) { getCurrentRoadTrafficLight(trafficLightResult)?.let { handleRedLightWarning(it, trafficLightResult) diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/trafficlight/RoadArrow.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/trafficlight/RoadArrow.kt index c63ba750d1..d2dc51943c 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/trafficlight/RoadArrow.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/trafficlight/RoadArrow.kt @@ -25,6 +25,10 @@ class RoadArrow { fun isRight(arrowId: Int): Boolean { return arrowId == TURN_RIGHT || arrowId == STRAIGHT_OR_RIGHT || arrowId == TURN_LEFT_OR_RIGHT } + + fun isOnlyRight(arrowId: Int): Boolean { + return arrowId == TURN_RIGHT + } } } \ No newline at end of file diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/trafficlight/TrafficLightResult.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/trafficlight/TrafficLightResult.kt index 66bf66feb4..78d6158db9 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/trafficlight/TrafficLightResult.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/trafficlight/TrafficLightResult.kt @@ -4,6 +4,10 @@ fun TrafficLightResult.currentRoadTrafficLight(): TrafficLightStatus? { return TrafficLightStatusHelper.getCurrentRoadTrafficLight(this) } +fun TrafficLightResult.currentRoadIsRight():Boolean{ + return TrafficLightStatusHelper.currentRoadIsRight(this) +} + /** * 路口红绿灯请求返回数据 */ diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/trafficlight/TrafficLightStatusHelper.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/trafficlight/TrafficLightStatusHelper.kt index 56214d173d..3b6f9ac6ef 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/trafficlight/TrafficLightStatusHelper.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/trafficlight/TrafficLightStatusHelper.kt @@ -16,5 +16,10 @@ object TrafficLightStatusHelper { return null } + fun currentRoadIsRight(trafficLightResult: TrafficLightResult) : Boolean{ + val arrowNo = trafficLightResult.arrowNo + return RoadArrow.isOnlyRight(arrowNo) + } + } \ No newline at end of file