[Fix]由于多个变量有误差,减少绿灯时间

This commit is contained in:
chenfufeng
2021-12-01 12:33:09 +08:00
parent f775fcf80e
commit bc445a4282

View File

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