[Fix]去掉红绿灯误差时间的过渡优化

This commit is contained in:
chenfufeng
2021-12-02 16:57:30 +08:00
parent 81924e176c
commit d27d654334

View File

@@ -115,13 +115,13 @@ class RedLightWarningManager : IMoGoTrafficLightListener, IMoGoVipSetListener,
when {
trafficLightStatus.isRed() -> {
Logger.d(TAG, "=====当前为红灯=====")
// 到达路口时红灯还没走完(由于多个数据有偏差红灯预警延长1s绿灯提示延长3s多报出错不如少报且准)
// 到达路口时红灯还没走完(由于多个数据有偏差红灯预警延长1s绿灯提示条件延长1.5s多报出错不如少报且准)
if (arriveTime <= remainTime + 1) {
redLightWarning()
} else if (arriveTime > remainTime + trafficLightResult.flashYellow + 3) {// 到达时红、黄灯都走完
} else if (arriveTime > remainTime + trafficLightResult.flashYellow + 1.5) {// 到达时红、黄灯都走完
// 单位Km/h当前为红灯推荐速度越慢越容易绿灯通过且要满足[10,50]
val originRemainSpeed =
floor(distance / (remainTime + trafficLightResult.flashYellow + 3) * 3.6).toInt()
floor(distance / (remainTime + trafficLightResult.flashYellow + 1.5) * 3.6).toInt()
when {
originRemainSpeed > 50 -> greenLightWarning("10到50")
originRemainSpeed in 10..50 -> greenLightWarning("10到$originRemainSpeed")
@@ -130,12 +130,12 @@ class RedLightWarningManager : IMoGoTrafficLightListener, IMoGoVipSetListener,
}
trafficLightStatus.isYellow() -> {
Logger.d(TAG, "=====当前为黄灯=====")
// 到达路口时黄灯还没走完(由于多个数据有偏差红灯预警延长1s绿灯提示延长3s多报出错不如少报且准)
// 到达路口时黄灯还没走完(由于多个数据有偏差红灯预警延长1s绿灯提示延长1.5s多报出错不如少报且准)
if (arriveTime <= remainTime + 1) {
redLightWarning()
} else if (arriveTime > remainTime + 3) {
} else if (arriveTime > remainTime + 1.5) {
// 单位Km/h当前为黄灯推荐速度越慢越容易绿灯通过且要满足[10,50]
val originRemainSpeed = floor(distance / (remainTime + 3) * 3.6).toInt()
val originRemainSpeed = floor(distance / (remainTime + 1.5) * 3.6).toInt()
when {
originRemainSpeed > 50 -> greenLightWarning("10到50")
originRemainSpeed in 10..50 -> greenLightWarning("10到$originRemainSpeed")
@@ -147,9 +147,9 @@ class RedLightWarningManager : IMoGoTrafficLightListener, IMoGoVipSetListener,
// 到达路口时绿灯已经走完(由于多个数据有偏差,多报出错不如少报且准,绿灯时间减少一点)
if (arriveTime >= remainTime - 1) {
redLightWarning()
} else if (arriveTime < remainTime - 3) {
} else if (arriveTime < remainTime - 1.5) {
// 单位Km/h当前为绿灯推荐速度越快越容易绿灯通过且要满足[10,50]
val originRemainSpeed = ceil(distance / (remainTime - 3) * 3.6).toInt()
val originRemainSpeed = ceil(distance / (remainTime - 1.5) * 3.6).toInt()
when {
originRemainSpeed < 10 -> greenLightWarning("10到50")
originRemainSpeed in 10..50 -> greenLightWarning("${originRemainSpeed}到50")