diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/v2x/TrafficLightDispatcher.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/v2x/TrafficLightDispatcher.kt index e8e68d2532..8810dfa68a 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/v2x/TrafficLightDispatcher.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/v2x/TrafficLightDispatcher.kt @@ -179,9 +179,9 @@ class TrafficLightDispatcher : IMoGoAutopilotIdentifyListener, IMoGoTrafficLight lastLightTime = System.currentTimeMillis() if (lightCountDownTimer == null){ UiThreadHandler.post { - lightCountDownTimer = object : CountDownTimer(300000, 1000) { + lightCountDownTimer = object : CountDownTimer(300000, 500) { override fun onTick(millisUntilFinished: Long) { - if ((System.currentTimeMillis() - lastLightTime) > 1500) { + if ((System.currentTimeMillis() - lastLightTime) > 1000) { //隐藏红绿灯显示 hide("倒计时结束隐藏", DataSourceType.TELEMATIC_UNION_V2N) lightCountDownTimer?.cancel() diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/traffic/TrafficLightPromptView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/traffic/TrafficLightPromptView.kt index f4ac4d79e5..cfb13d0718 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/traffic/TrafficLightPromptView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/traffic/TrafficLightPromptView.kt @@ -55,24 +55,24 @@ class TrafficLightPromptView @JvmOverloads constructor( when(msg.what){ LIGHT_CHECK->{ if(startTime == 0L){ - sendEmptyMessageDelayed(LIGHT_CHECK, 1000L) + sendEmptyMessageDelayed(LIGHT_CHECK, 500L) return } val endTime = System.nanoTime() val internal = TimeUnit.NANOSECONDS.toMillis(endTime - startTime) - if(internal > 700){ + if(internal > 400){ UiThreadHandler.post { tvTrafficNum?.text = "0." tvTrafficNumDecimal?.text = "00" } } - if(internal>1500){ + if(internal>900){ UiThreadHandler.post{ this@TrafficLightPromptView.visibility = GONE } return } - sendEmptyMessageDelayed(LIGHT_CHECK, 1000L) + sendEmptyMessageDelayed(LIGHT_CHECK, 500L) } } } @@ -118,7 +118,7 @@ class TrafficLightPromptView @JvmOverloads constructor( when(currentState){ TrafficLightEnum.GREEN->{ if(this@TrafficLightPromptView.visibility == View.GONE){ - mLightHandler.sendEmptyMessageDelayed(LIGHT_CHECK, 1000L) + mLightHandler.sendEmptyMessageDelayed(LIGHT_CHECK, 500L) this@TrafficLightPromptView.visibility = View.VISIBLE } if(user == 0){ @@ -131,7 +131,7 @@ class TrafficLightPromptView @JvmOverloads constructor( } TrafficLightEnum.RED->{ if(this@TrafficLightPromptView.visibility == View.GONE){ - mLightHandler.sendEmptyMessageDelayed(LIGHT_CHECK, 1000L) + mLightHandler.sendEmptyMessageDelayed(LIGHT_CHECK, 500L) this@TrafficLightPromptView.visibility = View.VISIBLE } if(user == 0){ @@ -144,7 +144,7 @@ class TrafficLightPromptView @JvmOverloads constructor( } TrafficLightEnum.YELLOW->{ if(this@TrafficLightPromptView.visibility == View.GONE){ - mLightHandler.sendEmptyMessageDelayed(LIGHT_CHECK, 1000L) + mLightHandler.sendEmptyMessageDelayed(LIGHT_CHECK, 500L) this@TrafficLightPromptView.visibility = View.VISIBLE } if(user == 0){ diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/FusionTrafficLightView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/FusionTrafficLightView.kt index 9d4d157fa8..acc3ad1cc7 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/FusionTrafficLightView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/FusionTrafficLightView.kt @@ -2,7 +2,6 @@ package com.mogo.eagle.core.function.hmi.ui.widget import android.content.Context import android.util.AttributeSet -import android.util.Log import android.view.LayoutInflater import android.view.View import android.widget.ImageView @@ -46,6 +45,9 @@ class FusionTrafficLightView @JvmOverloads constructor( private var fusionTrafficLightPointer: ImageView ?= null //融合红绿灯指针 private var fusionTrafficLightProportion: ProportionChartView ?= null //占比进度条 + private var currentLightState = TrafficLightEnum.BLACK //当前灯态 + private var currentLightDuration = 0 //当前灯态倒计时 + init { val typedArray = context.obtainStyledAttributes(attrs, R.styleable.FusionTrafficLightView) @@ -103,6 +105,11 @@ class FusionTrafficLightView @JvmOverloads constructor( ) { super.showFusionTrafficLight(currentState, currentDuration, nextState, nextDuration, nextTwoState, nextTwoDuration, lightSource) + if(currentLightState == currentState && currentLightDuration == currentDuration){ + return + } + currentLightState = currentState + currentLightDuration = currentDuration ThreadUtils.runOnUiThread { //如果当前红绿灯视图为隐藏状态则设置为显示状态 if(this@FusionTrafficLightView.visibility == View.GONE){