[6.10.0]冷启动增加故障码显示
This commit is contained in:
@@ -30,14 +30,18 @@ import com.mogo.eagle.core.utilcode.util.UiThreadHandler
|
||||
import com.zhjt.mogo.adas.data.AdasConstants
|
||||
import com.zhjt.mogo_core_function_devatools.coldstart.ColdStartAnalyticsManager
|
||||
import com.zhjt.mogo_core_function_devatools.coldstart.ColdStartConfig
|
||||
import com.zhjt.mogo_core_function_devatools.coldstart.ColdStartFaultAdapter
|
||||
import com.zhjt.mogo_core_function_devatools.coldstart.ColdStartNodeAdapter
|
||||
import com.zhjt.mogo_core_function_devatools.ota.OTAUpgradeConfig
|
||||
import kotlinx.android.synthetic.main.view_cold_start.view.ivColdStartNow
|
||||
import kotlinx.android.synthetic.main.view_cold_start.view.ivColdStartStatus
|
||||
import kotlinx.android.synthetic.main.view_cold_start.view.ivFaultIcon
|
||||
import kotlinx.android.synthetic.main.view_cold_start.view.ivIpcConnectStatus
|
||||
import kotlinx.android.synthetic.main.view_cold_start.view.ivNodeListMask
|
||||
import kotlinx.android.synthetic.main.view_cold_start.view.ivSoftIcon
|
||||
import kotlinx.android.synthetic.main.view_cold_start.view.ivSsmConnectStatus
|
||||
import kotlinx.android.synthetic.main.view_cold_start.view.ivWifiConnectStatus
|
||||
import kotlinx.android.synthetic.main.view_cold_start.view.rvFaultList
|
||||
import kotlinx.android.synthetic.main.view_cold_start.view.rvNodeList
|
||||
import kotlinx.android.synthetic.main.view_cold_start.view.tvColdStartContent
|
||||
import kotlinx.android.synthetic.main.view_cold_start.view.tvColdStartNow
|
||||
@@ -45,6 +49,7 @@ import kotlinx.android.synthetic.main.view_cold_start.view.tvIpcConnectContent
|
||||
import kotlinx.android.synthetic.main.view_cold_start.view.tvSsmConnectContent
|
||||
import kotlinx.android.synthetic.main.view_cold_start.view.tvSystemStartupTitle
|
||||
import kotlinx.android.synthetic.main.view_cold_start.view.tvWifiConnectContent
|
||||
import kotlinx.android.synthetic.main.view_cold_start.view.viewFaultDivider
|
||||
import system_master.SsmInfo
|
||||
import system_master.SystemStatusInfo
|
||||
import java.util.Locale
|
||||
@@ -87,12 +92,14 @@ class ColdStartView @JvmOverloads constructor(
|
||||
private var connectColdStartTimer: CountDownTimer?= null //连接冷启动等待倒计时
|
||||
|
||||
private val nodeList = ArrayList<ColdStartNodeInfo>()
|
||||
private val faultList = ArrayList<String>()
|
||||
|
||||
private var coldStartResultListener: ColdStartResultListener ?= null
|
||||
|
||||
private var newColdStart: Boolean = false //SSM是否支持新版冷启动
|
||||
|
||||
private var coldStartNodeAdapter: ColdStartNodeAdapter ?= null
|
||||
private var coldStartFaultAdapter: ColdStartFaultAdapter ?= null
|
||||
|
||||
private var reason: String = "" //上报原因
|
||||
|
||||
@@ -102,11 +109,18 @@ class ColdStartView @JvmOverloads constructor(
|
||||
}
|
||||
|
||||
private fun initView(){
|
||||
//软件节点启动状态列表适配器设置
|
||||
val linearLayoutManager = LinearLayoutManager(context)
|
||||
linearLayoutManager.orientation = LinearLayoutManager.VERTICAL
|
||||
coldStartNodeAdapter = ColdStartNodeAdapter()
|
||||
rvNodeList.adapter =coldStartNodeAdapter
|
||||
rvNodeList.layoutManager = linearLayoutManager
|
||||
//故障码列表适配器设置
|
||||
val faultLinearLayoutManager = LinearLayoutManager(context)
|
||||
faultLinearLayoutManager.orientation = LinearLayoutManager.VERTICAL
|
||||
coldStartFaultAdapter = ColdStartFaultAdapter()
|
||||
rvFaultList.adapter = coldStartFaultAdapter
|
||||
rvFaultList.layoutManager = faultLinearLayoutManager
|
||||
//立即用车
|
||||
tvColdStartNow.setOnClickListener{
|
||||
hideColdStartView()
|
||||
@@ -302,13 +316,6 @@ class ColdStartView @JvmOverloads constructor(
|
||||
Log.i(TAG,"旧冷启动状态="+it.processStatus)
|
||||
Log.i(TAG,"旧冷启动超时原因="+it.processTimeoutReason)
|
||||
Log.i(TAG,"硬件故障Node数量="+it.hardwareNodeCount)
|
||||
it.hardwareNodeList.forEach {startFlt->
|
||||
Log.i(TAG,"硬件故障 startFlt.fltId="+ startFlt.fltId)
|
||||
}
|
||||
Log.i(TAG,"其他故障数量="+it.otherFltsCount)
|
||||
it.otherFltsList.forEach {startFlt->
|
||||
Log.i(TAG,"其他故障 startFlt.fltId="+startFlt.fltId)
|
||||
}
|
||||
ThreadUtils.runOnUiThread {
|
||||
tvColdStartContent.text = getColdStartEventStatus(it.eventStatus)
|
||||
if(it.eventStatus == SsmInfo.CSState.COLD_START_READY){
|
||||
@@ -355,12 +362,32 @@ class ColdStartView @JvmOverloads constructor(
|
||||
nodeList.add(nodeInfo)
|
||||
}
|
||||
}
|
||||
if(nodeList.size > 0){
|
||||
ivSoftIcon.visibility = View.VISIBLE
|
||||
}
|
||||
coldStartNodeAdapter?.setData(nodeList)
|
||||
if(nodeList.size > 12){
|
||||
ivNodeListMask.visibility = View.VISIBLE
|
||||
}else{
|
||||
ivNodeListMask.visibility = View.GONE
|
||||
}
|
||||
//故障码列表
|
||||
faultList.clear()
|
||||
it.hardwareNodeList.forEach {startFlt->
|
||||
Log.i(TAG,"硬件故障 startFlt.fltId="+ startFlt.fltId)
|
||||
faultList.add(startFlt.fltId)
|
||||
}
|
||||
Log.i(TAG,"其他故障数量="+it.otherFltsCount)
|
||||
it.otherFltsList.forEach {startFlt->
|
||||
Log.i(TAG,"其他故障 startFlt.fltId="+startFlt.fltId)
|
||||
faultList.add(startFlt.fltId)
|
||||
}
|
||||
if(faultList.size>0){
|
||||
viewFaultDivider.visibility = View.VISIBLE
|
||||
ivFaultIcon.visibility = View.VISIBLE
|
||||
rvFaultList.visibility = View.VISIBLE
|
||||
coldStartFaultAdapter?.setData(faultList)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -482,8 +509,13 @@ class ColdStartView @JvmOverloads constructor(
|
||||
tvColdStartContent.text = resources.getString(R.string.cold_start_wait)
|
||||
tvColdStartContent.setTextColor(ContextCompat.getColor(context, R.color.white))
|
||||
//隐藏冷启动相关视图
|
||||
ivSoftIcon.visibility = View.GONE
|
||||
rvNodeList.visibility = View.GONE
|
||||
ivNodeListMask.visibility = View.GONE
|
||||
viewFaultDivider.visibility = View.GONE
|
||||
ivFaultIcon.visibility = View.GONE
|
||||
rvFaultList.visibility = View.GONE
|
||||
|
||||
//域控连接成功埋点统计
|
||||
reason = "域控连接成功"
|
||||
ColdStartAnalyticsManager.coldStartStepAnalytics(ColdStartAnalyticsManager.ipcConnectSuccess,reason)
|
||||
@@ -524,8 +556,12 @@ class ColdStartView @JvmOverloads constructor(
|
||||
tvColdStartContent.text = resources.getString(R.string.cold_start_wait)
|
||||
tvColdStartContent.setTextColor(ContextCompat.getColor(context, R.color.white))
|
||||
//隐藏冷启动相关视图
|
||||
ivSoftIcon.visibility = View.GONE
|
||||
rvNodeList.visibility = View.GONE
|
||||
ivNodeListMask.visibility = View.GONE
|
||||
viewFaultDivider.visibility = View.GONE
|
||||
ivFaultIcon.visibility = View.GONE
|
||||
rvFaultList.visibility = View.GONE
|
||||
//域控连接失败埋点统计
|
||||
this.reason = "域控连接失败:$failReason"
|
||||
ColdStartAnalyticsManager.coldStartStepAnalytics(ColdStartAnalyticsManager.ipcConnectFail,reason)
|
||||
@@ -574,8 +610,12 @@ class ColdStartView @JvmOverloads constructor(
|
||||
tvColdStartContent.text = resources.getString(R.string.cold_start_wait)
|
||||
tvColdStartContent.setTextColor(ContextCompat.getColor(context, R.color.white))
|
||||
//隐藏Topic列表
|
||||
ivSoftIcon.visibility = View.GONE
|
||||
rvNodeList.visibility = View.GONE
|
||||
ivNodeListMask.visibility = View.GONE
|
||||
viewFaultDivider.visibility = View.GONE
|
||||
ivFaultIcon.visibility = View.GONE
|
||||
rvFaultList.visibility = View.GONE
|
||||
ipcConnectStatus = false
|
||||
ssmConnectStatus = false
|
||||
coldStartStatus = false
|
||||
@@ -619,8 +659,12 @@ class ColdStartView @JvmOverloads constructor(
|
||||
tvColdStartContent.text = resources.getString(R.string.cold_start_wait)
|
||||
tvColdStartContent.setTextColor(ContextCompat.getColor(context, R.color.white))
|
||||
//隐藏冷启动相关视图
|
||||
ivSoftIcon.visibility = View.GONE
|
||||
rvNodeList.visibility = View.GONE
|
||||
ivNodeListMask.visibility = View.GONE
|
||||
viewFaultDivider.visibility = View.GONE
|
||||
ivFaultIcon.visibility = View.GONE
|
||||
rvFaultList.visibility = View.GONE
|
||||
if(ipcConnectStatus){
|
||||
showIPCConnectSuccessView()
|
||||
}
|
||||
@@ -657,8 +701,12 @@ class ColdStartView @JvmOverloads constructor(
|
||||
tvColdStartContent.text = resources.getString(R.string.cold_start_wait)
|
||||
tvColdStartContent.setTextColor(ContextCompat.getColor(context, R.color.white))
|
||||
//隐藏冷启动相关视图
|
||||
ivSoftIcon.visibility = View.GONE
|
||||
rvNodeList.visibility = View.GONE
|
||||
ivNodeListMask.visibility = View.GONE
|
||||
viewFaultDivider.visibility = View.GONE
|
||||
ivFaultIcon.visibility = View.GONE
|
||||
rvFaultList.visibility = View.GONE
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 1.5 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 1.3 KiB |
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
|
||||
<gradient
|
||||
android:startColor="#B2FFFFFF"
|
||||
android:endColor="#1AFFFFFF"
|
||||
android:angle="270"
|
||||
/>
|
||||
<corners
|
||||
android:radius="@dimen/dp_0"/>
|
||||
</shape>
|
||||
@@ -142,9 +142,21 @@
|
||||
android:layout_marginStart="@dimen/dp_15"
|
||||
/>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/ivSoftIcon"
|
||||
android:layout_width="@dimen/dp_50"
|
||||
android:layout_height="@dimen/dp_50"
|
||||
app:layout_constraintTop_toBottomOf="@id/ivColdStartStatus"
|
||||
app:layout_constraintLeft_toLeftOf="@id/ivColdStartStatus"
|
||||
app:layout_constraintRight_toRightOf="@id/ivColdStartStatus"
|
||||
android:layout_marginTop="@dimen/dp_26"
|
||||
android:src="@drawable/icon_cold_start_soft"
|
||||
android:contentDescription="@string/cold_start_soft_icon"
|
||||
/>
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/rvNodeList"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_width="@dimen/dp_760"
|
||||
android:layout_height="@dimen/dp_550"
|
||||
app:layout_constraintTop_toBottomOf="@id/tvColdStartContent"
|
||||
app:layout_constraintLeft_toLeftOf="@id/tvColdStartContent"
|
||||
@@ -153,7 +165,7 @@
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/ivNodeListMask"
|
||||
android:layout_width="@dimen/dp_500"
|
||||
android:layout_width="@dimen/dp_760"
|
||||
android:layout_height="@dimen/dp_40"
|
||||
app:layout_constraintBottom_toBottomOf="@id/rvNodeList"
|
||||
app:layout_constraintLeft_toLeftOf="@id/rvNodeList"
|
||||
@@ -164,6 +176,35 @@
|
||||
android:paddingEnd="@dimen/dp_10"
|
||||
/>
|
||||
|
||||
<View
|
||||
android:id="@+id/viewFaultDivider"
|
||||
android:layout_width="@dimen/dp_1"
|
||||
android:layout_height="@dimen/dp_550"
|
||||
app:layout_constraintLeft_toRightOf="@id/rvNodeList"
|
||||
app:layout_constraintTop_toTopOf="@id/rvNodeList"
|
||||
android:background="@drawable/bg_cold_start_fault_divider"
|
||||
/>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/ivFaultIcon"
|
||||
android:layout_width="@dimen/dp_50"
|
||||
android:layout_height="@dimen/dp_50"
|
||||
app:layout_constraintTop_toTopOf="@id/viewFaultDivider"
|
||||
app:layout_constraintLeft_toRightOf="@id/viewFaultDivider"
|
||||
android:src="@drawable/icon_cold_start_fault"
|
||||
android:contentDescription="@string/cold_start_fault_icon"
|
||||
android:layout_marginStart="@dimen/dp_20"
|
||||
/>
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/rvFaultList"
|
||||
android:layout_width="@dimen/dp_900"
|
||||
android:layout_height="@dimen/dp_550"
|
||||
app:layout_constraintLeft_toRightOf="@id/ivFaultIcon"
|
||||
app:layout_constraintTop_toTopOf="@id/ivFaultIcon"
|
||||
android:layout_marginStart="@dimen/dp_10"
|
||||
/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvColdStartTip"
|
||||
android:layout_width="wrap_content"
|
||||
|
||||
@@ -248,7 +248,8 @@
|
||||
<string name="cold_start_title_sys_success">系统启动成功,即将进入主页</string>
|
||||
<string name="cold_start_title_sys_exception">系统启动异常</string>
|
||||
<string name="cold_start_list_mask">冷启动列表遮罩</string>
|
||||
|
||||
<string name="cold_start_soft_icon">冷启动软件节点启动状态图标</string>
|
||||
<string name="cold_start_fault_icon">冷启动软件硬件故障图标</string>
|
||||
<string name="cold_start_now">立即用车</string>
|
||||
<string name="cold_start_now_tip">跳过流程或启动失败,均可能会导致自动驾驶等功能无法使用</string>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user