[2.13.2] 添加rsi30s间隔,红绿灯跳变处理
This commit is contained in:
@@ -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)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user