[Fix]仅右转过去不处理红灯预警和绿灯通行的逻辑

This commit is contained in:
chenfufeng
2021-12-01 18:44:43 +08:00
parent 1c1eba9bca
commit ebe4d8b133
4 changed files with 17 additions and 0 deletions

View File

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

View File

@@ -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
}
}
}

View File

@@ -4,6 +4,10 @@ fun TrafficLightResult.currentRoadTrafficLight(): TrafficLightStatus? {
return TrafficLightStatusHelper.getCurrentRoadTrafficLight(this)
}
fun TrafficLightResult.currentRoadIsRight():Boolean{
return TrafficLightStatusHelper.currentRoadIsRight(this)
}
/**
* 路口红绿灯请求返回数据
*/

View File

@@ -16,5 +16,10 @@ object TrafficLightStatusHelper {
return null
}
fun currentRoadIsRight(trafficLightResult: TrafficLightResult) : Boolean{
val arrowNo = trafficLightResult.arrowNo
return RoadArrow.isOnlyRight(arrowNo)
}
}