From 0d2f1797cfa5028e439fd42406fa76304a32ae17 Mon Sep 17 00:00:00 2001 From: xuxinchao Date: Wed, 17 Jul 2024 12:15:42 +0800 Subject: [PATCH] =?UTF-8?q?[6.5.0]=E7=BA=A2=E7=BB=BF=E7=81=AF=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../datacenter/v2x/TrafficLightDispatcher.kt | 4 ++-- .../ui/notice/traffic/TrafficLightPromptView.kt | 14 +++++++------- .../hmi/ui/widget/FusionTrafficLightView.kt | 9 ++++++++- 3 files changed, 17 insertions(+), 10 deletions(-) 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){