[2.13.2] 添加rsi30s间隔,红绿灯跳变处理

This commit is contained in:
lixiaopeng
2023-01-16 18:30:49 +08:00
parent baa4bdd01c
commit 00cdf059fa

View File

@@ -195,11 +195,11 @@ class MogoPrivateObuNewManager private constructor() {
appId = data.warningMsg.warningData[0].warningType.toString() appId = data.warningMsg.warningData[0].warningType.toString()
status = data.warningMsg.warningData[0].status status = data.warningMsg.warningData[0].status
//15秒内同一个事件只出现一次 //30秒内同一个事件只出现一次
if (rvMap.containsKey(appId)) { if (rvMap.containsKey(appId)) {
var oldTime = rvMap[appId] var oldTime = rvMap[appId]
var timeDiff = (System.currentTimeMillis() - oldTime!!) / 1000 var timeDiff = (System.currentTimeMillis() - oldTime!!) / 1000
if (timeDiff < 15) { if (timeDiff < 30) {
return return
} }
rvMap.remove(appId) rvMap.remove(appId)
@@ -421,11 +421,11 @@ class MogoPrivateObuNewManager private constructor() {
} }
} }
//15秒内同一个事件只出现一次 //30秒内同一个事件只出现一次
if (rsiMap.containsKey(appId)) { if (rsiMap.containsKey(appId)) {
var oldTime = rsiMap[appId] var oldTime = rsiMap[appId]
var timeDiff = (System.currentTimeMillis() - oldTime!!) / 1000 var timeDiff = (System.currentTimeMillis() - oldTime!!) / 1000
if (timeDiff < 15) { if (timeDiff < 30) {
return return
} }
rsiMap.remove(appId) rsiMap.remove(appId)
@@ -603,11 +603,11 @@ class MogoPrivateObuNewManager private constructor() {
when (data.warningMsg.warningData[0].status) { when (data.warningMsg.warningData[0].status) {
MogoObuConstants.STATUS.ADD -> { // 添加 MogoObuConstants.STATUS.ADD -> { // 添加
//更新模型的颜色 //更新模型的颜色
//15秒内同一个事件只出现一次 //30秒内同一个事件只出现一次
if (rsmMap.containsKey(v2xType)) { if (rsmMap.containsKey(v2xType)) {
var oldTime = rsmMap[v2xType] var oldTime = rsmMap[v2xType]
var timeDiff = (System.currentTimeMillis() - oldTime!!) / 1000 var timeDiff = (System.currentTimeMillis() - oldTime!!) / 1000
if (timeDiff < 15) { if (timeDiff < 30) {
return return
} }
rsmMap.remove(v2xType) rsmMap.remove(v2xType)
@@ -965,6 +965,7 @@ class MogoPrivateObuNewManager private constructor() {
isShowGreenWave = false isShowGreenWave = false
isShowRunRedLight = false isShowRunRedLight = false
isYellowLight = false isYellowLight = false
lightCountDownTemp = 0
} }
} }
} }
@@ -975,6 +976,9 @@ class MogoPrivateObuNewManager private constructor() {
private var isShowGreenWave = false private var isShowGreenWave = false
private var isShowRunRedLight = false private var isShowRunRedLight = false
private var lightCountDownTemp : Int = 0
/** /**
* 修改红绿灯 * 修改红绿灯
*/ */
@@ -1095,64 +1099,85 @@ class MogoPrivateObuNewManager private constructor() {
when (currentLight.light) { when (currentLight.light) {
// 灯光不可用 // 灯光不可用
0 -> { 0 -> {
// CallerHmiManager.showWarningTrafficLight(0, 3)
CallerObuTrafficLightListenerManager.invokeObuTrafficLight(0) CallerObuTrafficLightListenerManager.invokeObuTrafficLight(0)
} }
// 红灯 // 红灯
2, 3 -> { 2, 3 -> {
if (!isRedLight) { if (!isGreenLight) { //只有不是是绿灯,才能展示跳转到红灯
CallerHmiManager.disableWarningV2X(appId.toString()) if (!isRedLight) {
isRedLight = true CallerHmiManager.disableWarningV2X(appId.toString())
} isRedLight = true
isGreenLight = false }
isYellowLight = false isGreenLight = false
// CallerHmiManager.showWarningTrafficLight(1, 3) isYellowLight = false
CallerObuTrafficLightListenerManager.invokeObuTrafficLight(1) CallerObuTrafficLightListenerManager.invokeObuTrafficLight(1)
val red = currentLight.countDown.toInt() val red = currentLight.countDown.toInt()
CallerHmiManager.changeCountdownRed(red) Log.e("lixp", " ----11--- red --------- = $red ----lightCountDownTemp = $lightCountDownTemp ----isGreenLight = $isGreenLight")
Log.d("lixp", " ------- red --------- = $red ----isGreenLight = $isGreenLight") //记录当前红灯的上一帧的值 10,9,10
if (red == 1) { if (lightCountDownTemp < red) {
//延迟3秒 红 绿 黄 return
UiThreadHandler.postDelayed({ }
if (!isGreenLight) { //如果3s后没有变绿灯删除红绿灯显示 lightCountDownTemp = red
CallerHmiManager.disableWarningTrafficLight()
} CallerHmiManager.changeCountdownRed(red)
}, 3000) if (red == 1) {
//延迟3秒 红 绿 黄
Log.d("lixp", " ----22--- red --------- = $red ----lightCountDownTemp = $lightCountDownTemp ----isGreenLight = $isGreenLight")
UiThreadHandler.postDelayed({
if (!isGreenLight) { //如果3s后没有变绿灯删除红绿灯显示
CallerHmiManager.disableWarningTrafficLight()
}
}, 3000)
}
} }
} }
// 绿灯 // 绿灯
4, 5, 6 -> { 4, 5, 6 -> {
if (!isGreenLight) { if (!isYellowLight) { //只有不是黄灯的时候,才能跳转到绿灯
CallerHmiManager.disableWarningV2X(appId.toString()) if (!isGreenLight) {
isGreenLight = true CallerHmiManager.disableWarningV2X(appId.toString())
} isGreenLight = true
isRedLight = false }
isYellowLight = false isRedLight = false
// CallerHmiManager.showWarningTrafficLight(3, 3) isYellowLight = false
CallerObuTrafficLightListenerManager.invokeObuTrafficLight(3) CallerObuTrafficLightListenerManager.invokeObuTrafficLight(3)
val green = currentLight.countDown.toInt() val green = currentLight.countDown.toInt()
CallerHmiManager.changeCountdownGreen(green) Log.e("lixp", " ----11--- green --------- = $green ---lightCountDownTemp = $lightCountDownTemp ----isYellowLight = $isYellowLight")
if (green == 1) { if (lightCountDownTemp < green) {
Log.d("lixp", " ------- green --------- = $green ----isYellowLight = $isYellowLight") return
UiThreadHandler.postDelayed({ }
if (!isYellowLight) { //如果3s后没有变黄灯删除红绿灯显示 lightCountDownTemp = green
CallerHmiManager.disableWarningTrafficLight()
} CallerHmiManager.changeCountdownGreen(green)
}, 3000) if (green == 1) {
Log.d("lixp", " ----22--- green --------- = $green ---lightCountDownTemp = $lightCountDownTemp ----isYellowLight = $isYellowLight")
UiThreadHandler.postDelayed({
if (!isYellowLight) { //如果3s后没有变黄灯删除红绿灯显示
CallerHmiManager.disableWarningTrafficLight()
}
}, 3000)
}
} }
} }
// 黄灯 // 黄灯
7, 8 -> { 7, 8 -> {
if (!isYellowLight) { if (!isRedLight) {
isYellowLight = true if (!isYellowLight) {
isYellowLight = true
}
CallerHmiManager.disableWarningV2X(appId.toString())
CallerObuTrafficLightListenerManager.invokeObuTrafficLight(2)
val yellow = currentLight.countDown.toInt()
Log.d("lixp", " ------- yellow --------- = $yellow ---lightCountDownTemp = $lightCountDownTemp ----isYellowLight = $isYellowLight")
if (lightCountDownTemp < yellow) {
return
}
lightCountDownTemp = yellow
CallerHmiManager.changeCountdownYellow(yellow)
} }
CallerHmiManager.disableWarningV2X(appId.toString())
// CallerHmiManager.showWarningTrafficLight(2, 3)
CallerObuTrafficLightListenerManager.invokeObuTrafficLight(2)
val yellow = currentLight.countDown.toInt()
CallerHmiManager.changeCountdownYellow(yellow)
} }
} }
} }