From 33e86a79cf9f041282411aca57006808bff6a6df Mon Sep 17 00:00:00 2001 From: xuxinchao Date: Wed, 20 Nov 2024 10:51:29 +0800 Subject: [PATCH] =?UTF-8?q?[6.8.0]=E5=86=B7=E5=90=AF=E5=8A=A8=E4=B8=89?= =?UTF-8?q?=E6=9C=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../function/hmi/ui/widget/ColdStartView.kt | 150 ++++++++++++++---- .../drawable-xhdpi/icon_cold_start_fail.png | Bin 939 -> 954 bytes .../drawable-xhdpi/icon_cold_start_wait.png | Bin 0 -> 1294 bytes .../src/main/res/layout/view_cold_start.xml | 40 ++++- .../src/main/res/values/color.xml | 2 +- .../src/main/res/values/strings.xml | 8 + 6 files changed, 164 insertions(+), 36 deletions(-) create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_cold_start_wait.png diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/ColdStartView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/ColdStartView.kt index 4ccbe398d2..1f28ff91d8 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/ColdStartView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/ColdStartView.kt @@ -2,7 +2,11 @@ package com.mogo.eagle.core.function.hmi.ui.widget import android.animation.ObjectAnimator import android.animation.ValueAnimator +import android.content.BroadcastReceiver import android.content.Context +import android.content.Intent +import android.content.IntentFilter +import android.net.ConnectivityManager import android.os.CountDownTimer import android.text.TextUtils import android.util.AttributeSet @@ -32,20 +36,21 @@ import kotlinx.android.synthetic.main.view_cold_start.view.ivColdStartStatus 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.ivSsmConnectStatus +import kotlinx.android.synthetic.main.view_cold_start.view.ivWifiConnectStatus 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 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.viewColdStartDivider -import kotlinx.android.synthetic.main.view_cold_start.view.viewSsmConnectDivider +import kotlinx.android.synthetic.main.view_cold_start.view.tvWifiConnectContent import system_master.SsmInfo import system_master.SystemStatusInfo import java.util.Locale import java.util.regex.Matcher import java.util.regex.Pattern + /** * 冷启动呈现二期 * 前置展示冷启动过程和结果 @@ -63,12 +68,15 @@ class ColdStartView @JvmOverloads constructor( const val COLD_START_WAITING_TIME = 600000L //冷启动超时等待时间 } + private var wifiConnectStatus = false //WIFI连接状态,默认是未连接 private var ipcConnectStatus = false //连接域控状态,默认是未连接 private var ssmConnectStatus = false //SSM连接状态,默认是未连接 private var coldStartStatus = false //冷启动状态,默认是未冷启动成功 private var currentColdStartSuccess = false //冷启动成功状态,也是成功后动画完成状态 + private var wifiRotationAnim: ObjectAnimator?= null //WIFI连接状态动画 + private var ipcRotationAnim: ObjectAnimator?= null //域控连接状态动画 private var ssmRotationAnim: ObjectAnimator?= null //SSM连接状态动画 @@ -117,6 +125,11 @@ class ColdStartView @JvmOverloads constructor( override fun onAttachedToWindow() { super.onAttachedToWindow() + // 注册广播接收器 + val intentFilter = IntentFilter() + intentFilter.addAction(ConnectivityManager.CONNECTIVITY_ACTION) + context.applicationContext.registerReceiver(networkStateReceiver, intentFilter) + showWifiConnecting() CallerAutoPilotStatusListenerManager.addListener(TAG, this) CallerColdStartStateListenerManager.addListener(TAG,this) } @@ -125,24 +138,30 @@ class ColdStartView @JvmOverloads constructor( super.onDetachedFromWindow() CallerAutoPilotStatusListenerManager.removeListener(TAG) CallerColdStartStateListenerManager.removeListener(TAG) + wifiRotationAnim?.cancel() ipcRotationAnim?.cancel() ssmRotationAnim?.cancel() connectSSMTimer?.cancel() coldStartRotationAnim?.cancel() connectColdStartTimer?.cancel() + // 取消注册广播接收器 + context.applicationContext.unregisterReceiver(networkStateReceiver) } override fun onAutopilotIpcConnectStatusChanged( status: AdasConstants.IpcConnectionStatus, reason: String? ){ + ipcConnectStatus = status == AdasConstants.IpcConnectionStatus.CONNECTED + if(!wifiConnectStatus){ + return + } ThreadUtils.runOnUiThread { - ipcConnectStatus = if(status == AdasConstants.IpcConnectionStatus.CONNECTED){ + if(status == AdasConstants.IpcConnectionStatus.CONNECTED){ //域控连接成功 - if(!ipcConnectStatus){ + if(ipcConnectStatus){ showIPCConnectSuccessView() } - true }else{ //域控连接失败 when(status){ @@ -206,8 +225,6 @@ class ColdStartView @JvmOverloads constructor( - - /** * 状态查询应答 * @param status 数据 @@ -331,6 +348,28 @@ class ColdStartView @JvmOverloads constructor( } } + private val networkStateReceiver: BroadcastReceiver = object: BroadcastReceiver(){ + override fun onReceive(context: Context?, intent: Intent?) { + if (intent!!.action.equals(ConnectivityManager.CONNECTIVITY_ACTION)) { + val connectivityManager = + context!!.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager + val networkInfo = connectivityManager.activeNetworkInfo + ThreadUtils.runOnUiThread { + if (networkInfo != null && networkInfo.isConnected) { + // 网络连接可用 + connectWifiSuccess() + } else { + // 网络连接不可用 + showWifiConnecting() + } + } + + } + } + + } + + /** * 冷启动状态 */ @@ -392,12 +431,12 @@ class ColdStartView @JvmOverloads constructor( ipcRotationAnim?.cancel() ivIpcConnectStatus.rotation = 0f tvSystemStartupTitle.text = resources.getString(R.string.cold_start_title_ssm_wait) + tvSystemStartupTitle.setTextColor(ContextCompat.getColor(context, R.color.white)) ivIpcConnectStatus.setImageDrawable(ResourceUtils.getDrawable(R.drawable.icon_cold_start_success)) tvIpcConnectContent.text = resources.getString(R.string.ipc_connect_success) //开启连接SSM倒计时 connectSSMProcess() //域控连接成功后开始展示SSM连接状态 - viewSsmConnectDivider.visibility = View.VISIBLE ivSsmConnectStatus.setImageDrawable(ResourceUtils.getDrawable(R.drawable.icon_cold_start_process)) //旋转动画 if(ssmRotationAnim == null){ @@ -411,13 +450,7 @@ 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 - tvColdStartContent.visibility = View.GONE rvNodeList.visibility = View.GONE ivNodeListMask.visibility = View.GONE //域控连接成功埋点统计 @@ -434,6 +467,7 @@ class ColdStartView @JvmOverloads constructor( */ private fun showIPCConnectFailView(failReason: String?){ tvSystemStartupTitle.text = resources.getString(R.string.cold_start_title_tel_exception) + tvSystemStartupTitle.setTextColor(ContextCompat.getColor(context, R.color.cold_start_fail)) if(tvIpcConnectContent.text.isNotEmpty() && tvIpcConnectContent.text.equals(failReason)){ return } @@ -443,14 +477,7 @@ class ColdStartView @JvmOverloads constructor( failReason?.let { tvIpcConnectContent.text = it } - //隐藏SSM相关视图 - viewSsmConnectDivider.visibility = View.GONE - ivSsmConnectStatus.visibility = View.GONE - tvSsmConnectContent.visibility = View.GONE //隐藏冷启动相关视图 - viewColdStartDivider.visibility = View.GONE - ivColdStartStatus.visibility = View.GONE - tvColdStartContent.visibility = View.GONE rvNodeList.visibility = View.GONE ivNodeListMask.visibility = View.GONE //域控连接失败埋点统计 @@ -462,8 +489,75 @@ class ColdStartView @JvmOverloads constructor( newColdStart = false } + /** + * 等待网络连接 + */ + private fun showWifiConnecting(){ + wifiConnectStatus = false + tvSystemStartupTitle.text = resources.getString(R.string.cold_start_title_wifi_wait) + tvSystemStartupTitle.setTextColor(ContextCompat.getColor(context, R.color.white)) + ivWifiConnectStatus.setImageDrawable(ResourceUtils.getDrawable(R.drawable.icon_cold_start_process)) + tvWifiConnectContent.text = resources.getString(R.string.wifi_connect_loading) + if(wifiRotationAnim == null){ + wifiRotationAnim = ObjectAnimator.ofFloat(ivWifiConnectStatus, "rotation", 0f, 360f) + } + wifiRotationAnim?.repeatCount = ValueAnimator.INFINITE + wifiRotationAnim?.repeatMode = ValueAnimator.RESTART + wifiRotationAnim?.duration = 1500 + wifiRotationAnim?.interpolator = LinearInterpolator() + wifiRotationAnim?.start() + //动画和计时器重置 + ipcRotationAnim?.cancel() + ivIpcConnectStatus.rotation = 0f + ssmRotationAnim?.cancel() + ivSsmConnectStatus.rotation = 0f + connectSSMTimer?.cancel() + coldStartRotationAnim?.cancel() + ivColdStartStatus.rotation = 0f + connectColdStartTimer?.cancel() + //域控连接状态展示 + ivIpcConnectStatus.setImageDrawable(ResourceUtils.getDrawable(R.drawable.icon_cold_start_wait)) + tvIpcConnectContent.text = resources.getString(R.string.ipc_connect_wait) + //SSM连接状态展示 + ivSsmConnectStatus.setImageDrawable(ResourceUtils.getDrawable(R.drawable.icon_cold_start_wait)) + tvSsmConnectContent.text = resources.getString(R.string.ssm_connect_wait) + //冷启动节点状态展示 + ivColdStartStatus.setImageDrawable(ResourceUtils.getDrawable(R.drawable.icon_cold_start_wait)) + tvColdStartContent.text = resources.getString(R.string.cold_start_wait) + //隐藏Topic列表 + rvNodeList.visibility = View.GONE + ivNodeListMask.visibility = View.GONE + ipcConnectStatus = false + } + + private fun connectWifiSuccess(){ + wifiConnectStatus = true + wifiRotationAnim?.cancel() + ivWifiConnectStatus.rotation = 0f + ivWifiConnectStatus.setImageDrawable(ResourceUtils.getDrawable(R.drawable.icon_cold_start_success)) + tvWifiConnectContent.text = resources.getString(R.string.wifi_connect_success) + //开始连接域控 + tvIpcConnectContent.text = resources.getString(R.string.ipc_connect_loading) + ivIpcConnectStatus.setImageDrawable(ResourceUtils.getDrawable(R.drawable.icon_cold_start_process)) + if(ipcRotationAnim == null){ + ipcRotationAnim = ObjectAnimator.ofFloat(ivIpcConnectStatus, "rotation", 0f, 360f) + } + ipcRotationAnim?.repeatCount = ValueAnimator.INFINITE + ipcRotationAnim?.repeatMode = ValueAnimator.RESTART + ipcRotationAnim?.duration = 1500 + ipcRotationAnim?.interpolator = LinearInterpolator() + ipcRotationAnim?.start() + //隐藏冷启动相关视图 + rvNodeList.visibility = View.GONE + ivNodeListMask.visibility = View.GONE + if(ipcConnectStatus){ + showIPCConnectSuccessView() + } + } + private fun showIPCConnecting(){ tvSystemStartupTitle.text = resources.getString(R.string.cold_start_title_tel_wait) + tvSystemStartupTitle.setTextColor(ContextCompat.getColor(context, R.color.white)) ivIpcConnectStatus.setImageDrawable(ResourceUtils.getDrawable(R.drawable.icon_cold_start_process)) tvIpcConnectContent.text = "正在重连域控..." if(ipcRotationAnim == null){ @@ -474,14 +568,7 @@ class ColdStartView @JvmOverloads constructor( ipcRotationAnim?.duration = 1500 ipcRotationAnim?.interpolator = LinearInterpolator() ipcRotationAnim?.start() - //隐藏SSM相关视图 - viewSsmConnectDivider.visibility = View.GONE - ivSsmConnectStatus.visibility = View.GONE - tvSsmConnectContent.visibility = View.GONE //隐藏冷启动相关视图 - viewColdStartDivider.visibility = View.GONE - ivColdStartStatus.visibility = View.GONE - tvColdStartContent.visibility = View.GONE rvNodeList.visibility = View.GONE ivNodeListMask.visibility = View.GONE } @@ -508,6 +595,7 @@ class ColdStartView @JvmOverloads constructor( */ private fun showSSMConnectSuccessView(){ tvSystemStartupTitle.text = resources.getString(R.string.cold_start_title_sys_wait) + tvSystemStartupTitle.setTextColor(ContextCompat.getColor(context, R.color.white)) //取消旋转动画 ssmRotationAnim?.cancel() //取消连接SSM超时等待倒计时 @@ -518,9 +606,6 @@ class ColdStartView @JvmOverloads constructor( tvSsmConnectContent.text = resources.getString(R.string.ssm_connect_success) tvSsmConnectContent.setTextColor(ContextCompat.getColor(context, R.color.white)) //展示冷启动连接过程视图 - viewColdStartDivider.visibility = View.VISIBLE - ivColdStartStatus.visibility = View.VISIBLE - tvColdStartContent.visibility = View.VISIBLE rvNodeList.visibility = View.VISIBLE ivNodeListMask.visibility = View.VISIBLE tvColdStartContent.text = "启动中…" @@ -541,6 +626,7 @@ class ColdStartView @JvmOverloads constructor( */ private fun showSSMConnectFailView(){ tvSystemStartupTitle.text = resources.getString(R.string.cold_start_title_ssm_exception) + tvSystemStartupTitle.setTextColor(ContextCompat.getColor(context, R.color.cold_start_fail)) //取消旋转动画 ssmRotationAnim?.cancel() ivSsmConnectStatus.rotation = 0f @@ -606,6 +692,7 @@ class ColdStartView @JvmOverloads constructor( */ private fun showColdStartFailView(){ tvSystemStartupTitle.text = resources.getString(R.string.cold_start_title_sys_exception) + tvSystemStartupTitle.setTextColor(ContextCompat.getColor(context, R.color.cold_start_fail)) coldStartRotationAnim?.cancel() ivColdStartStatus.rotation = 0f ivColdStartStatus.setImageDrawable(ResourceUtils.getDrawable(R.drawable.icon_cold_start_fail)) @@ -619,6 +706,7 @@ class ColdStartView @JvmOverloads constructor( private fun showColdStartSuccessView(){ if(coldStartStatus){ tvSystemStartupTitle.text = resources.getString(R.string.cold_start_title_sys_success) + tvSystemStartupTitle.setTextColor(ContextCompat.getColor(context, R.color.white)) coldStartRotationAnim?.cancel() ivColdStartStatus.rotation = 0f ivColdStartStatus.setImageDrawable(ResourceUtils.getDrawable(R.drawable.icon_cold_start_success)) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_cold_start_fail.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_cold_start_fail.png index e469e824d27c5a66c719951c54ba2be0bfda12dc..f4191de57bf00d4da1a7f4e90e975c96102ef057 100644 GIT binary patch delta 838 zcmV-M1G)UG2f7E4fqx`PL_t(o3DsFmXcJKop0_Gdh#oCeJX!G)QSjs~5%HL|;^NV> zq9E9d7i&GIH_@|4Noj13B27@if|efiBGhY2z38E!TdB`)-rLRYrb#w$H(j0s+nvmt zpKoX1&(2g(N|G~I&d^^uO_DCb#Uu$_eAm>0yaToa`8qjbMSr|n{pODu-Gqs@oV|9E z_Ws;O&{+T|nb^YS3v3#6=*Uyic>R4;+mQfDw_GHT9uSE+I4+Lre1P5#k*raH7Dc@c zemErpl-0_0xOj$ZVz?{g(QR1V5zW@}FiU69phUW4wLFjUC0yeM$6?v$635_JEa*pl z2c&!X7(idVL@66{x4l7aT)ykr1pQx`~Y87SjG#TrEFR z2BA(~oJ%@(EMDvt`wN2STudIbIM^SYy&KVm(*>fp60r$|bPGbjRr#uh-+qG^6?;=A zkF`w&ITdU{;T%-^TuN{p{vr;P`wumcpFfB;KAC`u>VHn?J(m_(sOF$LA@n93RW##I zoeuS*d?+>G#GJ54F3o(;ulD7h%_Y6>dm6#s%p@3EIET)mVt`G z+2U2q)qj_r1ZRt)j5m~5ofoSR+(OF!~XChe(`hPcJO@dwtYJuDEo33cu_(=42Rl{OF zJ)vj<7N5FR9sjnm?9_8GK&u)#QdLvFDCe78h}Og$JeENgpqdp_t-J)AS6_z1GS#Ws zN^X4svE)XMGEjE8{L#%Lm7jRLeHjdfbtbt_BjzC+s2Av`ydw;zRI~j=C8m#)#K6`z zFh7HbQIi(E59t9cjdHoyWA7NGW0ku9v QVE_OC07*qoM6N<$f~BpOiU0rr delta 823 zcmV-71IYZk2df8=fqxZAL_t(o3C)>3XcSQp$7ePtiE^Z{P`E+_EdoaTxHKLiSlRl4 zVreg0nNCn*9XqkGvy_BLTCtEboS>c}MzGLUiAB^9^g=E>{^z~j`^?_m?jFw_c-gnN z@6G()?7okgFeMauTRK9XcOKn~L|h=B3dATXLf^%?h*n5AT^{w4W@fU5oH>_FC^;R;(x zL}&MC?r69K(SO-(SZGfBnQzeS5OxucrK_#+ z=%MCqYrXkvj2h2crT~z(y_@Krc87=o(6?#cY^i8wXED=-zFk~5F#A0K&8Z~z#_xib zCzZ_$j!Z5r#b|bPQqCQ#3|jwrj}g~f=$1{gnN<`w~Gh7 z?@ml5F@FL!EHfH?WmLe1S8PJVj1r0hB5oaq$W~K}Uu)LW)v8!#{N;2yg5JN%M1MZp z^84jbRGNTaH6gP4hy^=lAU+(1Xf3kJ#g*gwiou46KWh>&SwN&Cz}Gj*?>UCtIMKu- zTeO}|HZ?_}Dh!~_l^`9FM)D_#_D$HL^;9DBVSoO{dQg=iSAtx^T4KE$uZey>w?*qo zMH!SOkVaIe_gM@(n;rz9jYq{qQ^5cnUu3Q|CRXEZ9@HO9`r-Y|6X)3l&Ci@FUuAAT zytH}H5NiV@afw_*y>hS9bD_RS zz%a1E|4v}`1ys;Xr+`CG8qlmJ(OV(Ix~qRf`~z82A06hcnc4sV002ovPDHLkV1k$y BnP>n2 diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_cold_start_wait.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_cold_start_wait.png new file mode 100644 index 0000000000000000000000000000000000000000..e26a905ea397a0afcd8383160bd5f72145301a18 GIT binary patch literal 1294 zcmV+p1@ZccP)Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91D4+uX1ONa40RR91C;$Ke0D9(TtN;K6cu7P-R9FecnA>kuRTPJrA{J5P zRxUBdPLp~8`a(it^nrK&a-$Im50WAnoRUyL!d0c9GJM}*ufytedU{T0%B*C~zOD7! zzq9szdi!=M!{P8Su4howgGJ{_U!xo7%aT4Kz2EEgEO(Y(7Y|5%g#8jKu|r*av3-oL zqXWqP-`2MkL5Ljy@JqCh&Y|OENaZWkcI~$lBl#P;22p()Wk-UL`vQb>=m#T6&nVwR z|3v>mUqy%bNYY{d7(I;|am!i$qHqpB9mn`< z^h9!UsIP%_H`Q&*jwJ|~(YlB(BmQsD{F zFO@o6FZs5Kj>Kao>{)@rQWONoz6;4EOiN?s^!J+F`(wS5u6WIZozf0j$(rOn8 zQttF2U4}M%CQi#x|DJ#0B8cY?NXBgefT!{ zp`o9=CN^XnXP~&b(Q;eaDJmJ~7=_q(bA9A9hnEq-X!H%So0WVUKks&Vcmi`YT_<`? zN2we_HYDh~_488W?w$9cQr(=;;Tjg|G$h}$ANj@k^vI{mG&<{q!Tj{lhzLI8!(X^4 zoP$nW#pA`-*R15T)bTy@F=y6OgLCP<3xWBNPQCVpRGfmKcd=N_Con!0R_`(WioRSE ziVNwvnTj9Et3B zxAFl2i<@;l2lr7a^Q)-QR8Hgk&D-qW{DNe#Ul;vn$zWXo&CDD>w@>v4HQK%aL>Regr?>$8{fL z3EB$CGKoaP##QdqZ~%~iodry{5?AXY8n}M6AHRhh^|g`tEdrp&j*BI)XeY3*uhxI- zg5wF{CcK1ZEa#lVy6yQNUxD3t0o)b6f-a0$7)2jAp50#4y|$^&Yi}f~$Ce)%#~0a3 z^c|r7qqS+yy={K?yCcCcg{Xf=oJD<9Pa^9$ORU~Xn!s8U6apb0 zPlz^7+H@i~3JT$))H%OmNZmTTyt<%b$R9V&G3*-U4U>ac_5ZbI4gdfE07*qoM6N<$ Ef?!El5C8xG literal 0 HcmV?d00001 diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_cold_start.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_cold_start.xml index cdfd7a10f0..3eb4d5705b 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_cold_start.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_cold_start.xml @@ -20,15 +20,49 @@ /> + + + + + + #131415 - #FFCD3D + #FF4E41 \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/values/strings.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/values/strings.xml index 7ed0580a39..8e9714dd69 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/values/strings.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/values/strings.xml @@ -213,19 +213,27 @@ 红绿灯信号来源 已发起上报 + Wifi连接状态图标 域控连接状态图标 SSM连接状态图标 冷启动状态图标 + 等待连接车辆WiFi… + 已连接车辆Wi-Fi + 待连接域控 + 连接域控… 已连接域控 系统启动中… 系统启动成功 系统启动失败 + 待连接SSM 正在等待SSM信息 与SSM通信正常 超时未收到SSM信息,建议重启车辆并上报问题 + 待启动 系统启动成功,即将进入主页 系统启动异常,建议上报问题,可尝试重启车辆 + 等待车辆上电 等待连接域控 连接域控异常,持续重试中 等待SSM信息