[6.5.0]红绿灯优化

This commit is contained in:
xuxinchao
2024-07-17 12:15:42 +08:00
parent 66ef542f19
commit 0d2f1797cf
3 changed files with 17 additions and 10 deletions

View File

@@ -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()

View File

@@ -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){

View File

@@ -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){