[6.7.0]冷启动
This commit is contained in:
@@ -3,7 +3,9 @@ package com.mogo.eagle.core.function.hmi.ui.widget
|
||||
import android.animation.ObjectAnimator
|
||||
import android.animation.ValueAnimator
|
||||
import android.content.Context
|
||||
import android.os.Build
|
||||
import android.os.CountDownTimer
|
||||
import android.text.Html
|
||||
import android.util.AttributeSet
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
@@ -70,128 +72,7 @@ class ColdStartView @JvmOverloads constructor(
|
||||
}
|
||||
|
||||
private fun initView(){
|
||||
var num = 1
|
||||
|
||||
tvSystemStartupTitle.setOnClickListener {
|
||||
if(num == 1){
|
||||
val state = SsmInfo.ModeState.MODE_RUN_READY
|
||||
val info = SsmInfo.SsmStatusInf
|
||||
.newBuilder()
|
||||
.setModeState(state)
|
||||
.setAutoPilotReady(false)
|
||||
.setRemotePilotReady(false)
|
||||
.build()
|
||||
|
||||
CallerAutoPilotStatusListenerManager.invokeSystemStatus(info)
|
||||
num = 2
|
||||
}
|
||||
else if(num == 2){
|
||||
val nodeOne = SsmInfo.ColdStartNode
|
||||
.newBuilder()
|
||||
.setNodeName("毫米波融合")
|
||||
.setDesc("")
|
||||
.setStatus(SsmInfo.NodeStatus.NODE_FINISH)
|
||||
.setEventCode("")
|
||||
.build()
|
||||
|
||||
val nodeTwo = SsmInfo.ColdStartNode
|
||||
.newBuilder()
|
||||
.setNodeName("后融合")
|
||||
.setDesc("")
|
||||
.setStatus(SsmInfo.NodeStatus.NODE_STARTING)
|
||||
.setEventCode("")
|
||||
.build()
|
||||
|
||||
val nodeThree = SsmInfo.ColdStartNode
|
||||
.newBuilder()
|
||||
.setNodeName("控制节点")
|
||||
.setDesc("")
|
||||
.setStatus(SsmInfo.NodeStatus.NODE_STARTING)
|
||||
.setEventCode("")
|
||||
.build()
|
||||
|
||||
val nodeFour = SsmInfo.ColdStartNode
|
||||
.newBuilder()
|
||||
.setNodeName("地图引擎")
|
||||
.setDesc("")
|
||||
.setStatus(SsmInfo.NodeStatus.NODE_STARTING)
|
||||
.setEventCode("")
|
||||
.build()
|
||||
|
||||
val list = ArrayList<SsmInfo.ColdStartNode>()
|
||||
list.add(nodeOne)
|
||||
list.add(nodeTwo)
|
||||
list.add(nodeThree)
|
||||
list.add(nodeFour)
|
||||
|
||||
val coldStartState = SsmInfo.ColdStartState
|
||||
.newBuilder()
|
||||
.setEventStatus(SsmInfo.CSState.COLD_START_STARTING)
|
||||
.setProcessStatus(SsmInfo.CSState.COLD_START_STARTING)
|
||||
.addAllNode(list)
|
||||
.build()
|
||||
|
||||
CallerColdStartStateListenerManager.invokeColdStartState(
|
||||
123,
|
||||
System.currentTimeMillis(),
|
||||
false,
|
||||
coldStartState
|
||||
)
|
||||
num = 3
|
||||
}else if(num == 3){
|
||||
val nodeOne = SsmInfo.ColdStartNode
|
||||
.newBuilder()
|
||||
.setNodeName("毫米波融合")
|
||||
.setDesc("")
|
||||
.setStatus(SsmInfo.NodeStatus.NODE_FINISH)
|
||||
.setEventCode("")
|
||||
.build()
|
||||
|
||||
val nodeTwo = SsmInfo.ColdStartNode
|
||||
.newBuilder()
|
||||
.setNodeName("后融合")
|
||||
.setDesc("")
|
||||
.setStatus(SsmInfo.NodeStatus.NODE_FINISH)
|
||||
.setEventCode("")
|
||||
.build()
|
||||
|
||||
val nodeThree = SsmInfo.ColdStartNode
|
||||
.newBuilder()
|
||||
.setNodeName("控制节点")
|
||||
.setDesc("")
|
||||
.setStatus(SsmInfo.NodeStatus.NODE_FINISH)
|
||||
.setEventCode("")
|
||||
.build()
|
||||
|
||||
val nodeFour = SsmInfo.ColdStartNode
|
||||
.newBuilder()
|
||||
.setNodeName("地图引擎")
|
||||
.setDesc("")
|
||||
.setStatus(SsmInfo.NodeStatus.NODE_FINISH)
|
||||
.setEventCode("")
|
||||
.build()
|
||||
|
||||
val list = ArrayList<SsmInfo.ColdStartNode>()
|
||||
list.add(nodeOne)
|
||||
list.add(nodeTwo)
|
||||
list.add(nodeThree)
|
||||
list.add(nodeFour)
|
||||
|
||||
val coldStartState = SsmInfo.ColdStartState
|
||||
.newBuilder()
|
||||
.setEventStatus(SsmInfo.CSState.COLD_START_READY)
|
||||
.setProcessStatus(SsmInfo.CSState.COLD_START_READY)
|
||||
.addAllNode(list)
|
||||
.build()
|
||||
|
||||
CallerColdStartStateListenerManager.invokeColdStartState(
|
||||
123,
|
||||
System.currentTimeMillis(),
|
||||
false,
|
||||
coldStartState
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun onAttachedToWindow() {
|
||||
@@ -213,7 +94,9 @@ class ColdStartView @JvmOverloads constructor(
|
||||
ThreadUtils.runOnUiThread {
|
||||
ipcConnectStatus = if(status == AdasConstants.IpcConnectionStatus.CONNECTED){
|
||||
//域控连接成功
|
||||
showIPCConnectSuccessView()
|
||||
if(!ipcConnectStatus){
|
||||
showIPCConnectSuccessView()
|
||||
}
|
||||
true
|
||||
}else{
|
||||
//域控连接失败
|
||||
@@ -272,13 +155,19 @@ class ColdStartView @JvmOverloads constructor(
|
||||
tvColdStartContent.text = getColdStartEventStatus(it.eventStatus)
|
||||
nodeStatusSb.clear()
|
||||
it.nodeList.forEach {node->
|
||||
nodeStatusSb.append("【")
|
||||
nodeStatusSb.append(node.nodeName)
|
||||
nodeStatusSb.append(" ")
|
||||
nodeStatusSb.append(getColdStartNodeStatus(node.status))
|
||||
nodeStatusSb.append("】\n")
|
||||
val nodeDetail = node.nodeName+ " " + getColdStartNodeStatus(node.status)
|
||||
if(node.status == SsmInfo.NodeStatus.NODE_FAILED || node.status ==SsmInfo.NodeStatus.NODE_TIMEOUT){
|
||||
nodeStatusSb.append("<font color=\"#FFCD3D\">${nodeDetail}</font>")
|
||||
}else{
|
||||
nodeStatusSb.append("<font color=\"#B2FFFFFF\">${nodeDetail}</font>")
|
||||
}
|
||||
nodeStatusSb.append("<br>")
|
||||
}
|
||||
tvColdStartNodeState.text = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
||||
Html.fromHtml(nodeStatusSb.toString(), Html.FROM_HTML_MODE_LEGACY)
|
||||
} else {
|
||||
Html.fromHtml(nodeStatusSb.toString())
|
||||
}
|
||||
tvColdStartNodeState.text = nodeStatusSb.toString()
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -318,7 +207,7 @@ class ColdStartView @JvmOverloads constructor(
|
||||
return when(nodeStatus){
|
||||
// 启动中
|
||||
SsmInfo.NodeStatus.NODE_STARTING->{
|
||||
"启动中"
|
||||
"启动中…"
|
||||
}
|
||||
// 启动成功
|
||||
SsmInfo.NodeStatus.NODE_FINISH->{
|
||||
@@ -341,6 +230,7 @@ class ColdStartView @JvmOverloads constructor(
|
||||
* 展示域控连接成功视图
|
||||
*/
|
||||
private fun showIPCConnectSuccessView(){
|
||||
tvSystemStartupTitle.text = resources.getString(R.string.cold_start_in_progress_title)
|
||||
ivIpcConnectStatus.setImageDrawable(ResourceUtils.getDrawable(R.drawable.icon_cold_start_success))
|
||||
tvIpcConnectContent.text = resources.getString(R.string.ipc_connect_success)
|
||||
//开启连接SSM倒计时
|
||||
@@ -358,6 +248,9 @@ class ColdStartView @JvmOverloads constructor(
|
||||
//设置SSM连接文案为连接中
|
||||
tvSsmConnectContent.text = resources.getString(R.string.ssm_connect_loading)
|
||||
tvSsmConnectContent.setTextColor(ContextCompat.getColor(context, android.R.color.white))
|
||||
viewSsmConnectDivider.visibility = View.VISIBLE
|
||||
ivSsmConnectStatus.visibility = View.VISIBLE
|
||||
tvSsmConnectContent.visibility = View.VISIBLE
|
||||
//隐藏冷启动相关视图
|
||||
viewColdStartDivider.visibility = View.GONE
|
||||
ivColdStartStatus.visibility = View.GONE
|
||||
@@ -402,6 +295,7 @@ class ColdStartView @JvmOverloads constructor(
|
||||
* 展示SSM连接成功视图
|
||||
*/
|
||||
private fun showSSMConnectSuccessView(){
|
||||
tvSystemStartupTitle.text = resources.getString(R.string.cold_start_in_progress_title)
|
||||
//取消旋转动画
|
||||
ssmRotationAnim?.cancel()
|
||||
//取消连接SSM超时等待倒计时
|
||||
@@ -430,6 +324,7 @@ class ColdStartView @JvmOverloads constructor(
|
||||
* 展示SSM连接失败视图
|
||||
*/
|
||||
private fun showSSMConnectFailView(){
|
||||
tvSystemStartupTitle.text = resources.getString(R.string.cold_start_fail_title)
|
||||
//取消旋转动画
|
||||
ssmRotationAnim?.cancel()
|
||||
ivSsmConnectStatus.rotation = 0f
|
||||
@@ -486,6 +381,7 @@ class ColdStartView @JvmOverloads constructor(
|
||||
* 冷启动失败视图
|
||||
*/
|
||||
private fun showColdStartFailView(){
|
||||
tvSystemStartupTitle.text = resources.getString(R.string.cold_start_fail_title)
|
||||
coldStartRotationAnim?.cancel()
|
||||
ivColdStartStatus.rotation = 0f
|
||||
ivColdStartStatus.setImageDrawable(ResourceUtils.getDrawable(R.drawable.icon_cold_start_fail))
|
||||
|
||||
@@ -115,9 +115,9 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintTop_toBottomOf="@id/tvColdStartContent"
|
||||
app:layout_constraintLeft_toRightOf="@id/ivColdStartStatus"
|
||||
android:textSize="@dimen/sp_36"
|
||||
android:textColor="@color/white"
|
||||
app:layout_constraintLeft_toLeftOf="@id/tvColdStartContent"
|
||||
android:textSize="@dimen/sp_32"
|
||||
android:textColor="#B2FFFFFF"
|
||||
/>
|
||||
|
||||
|
||||
|
||||
@@ -219,6 +219,7 @@
|
||||
<string name="ipc_connect_success">已连接域控</string>
|
||||
<string name="cold_start_in_progress_title">系统启动中…</string>
|
||||
<string name="cold_start_success_title">系统启动成功</string>
|
||||
<string name="cold_start_fail_title">系统启动失败</string>
|
||||
<string name="ssm_connect_loading">正在连接SSM…</string>
|
||||
<string name="ssm_connect_success">已连接SSM</string>
|
||||
<string name="ssm_connect_fail">SSM连接异常,建议重启车辆并上报问题</string>
|
||||
|
||||
Reference in New Issue
Block a user