[6.10.0]FSM Status与美化模式的组合形式

This commit is contained in:
xuxinchao
2025-01-26 11:45:57 +08:00
parent 0fbcbe7632
commit 2414bba875
4 changed files with 56 additions and 14 deletions

View File

@@ -18,6 +18,7 @@ import com.mogo.eagle.core.function.hmi.R
import com.mogo.eagle.core.utilcode.kotlin.onClick
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.logger.Logger
import com.mogo.eagle.core.utilcode.util.SoundPoolUtils
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
import com.zhjt.mogo_core_function_devatools.status.StatusManager
import com.zhjt.mogo_core_function_devatools.status.entity.AcceleratorStatus
@@ -30,6 +31,7 @@ import com.zhjt.mogo_core_function_devatools.status.entity.IAutopilotBeforeLaunc
import com.zhjt.mogo_core_function_devatools.status.entity.Status
import com.zhjt.mogo_core_function_devatools.status.entity.SteerStatus
import kotlinx.android.synthetic.main.view_start_autopilot_status.view.fSMStatusLayout
import kotlinx.android.synthetic.main.view_start_autopilot_status.view.ivFsmDemoModeError
import kotlinx.android.synthetic.main.view_start_autopilot_status.view.iv_accelerator
import kotlinx.android.synthetic.main.view_start_autopilot_status.view.iv_brake
import kotlinx.android.synthetic.main.view_start_autopilot_status.view.iv_double_flash
@@ -68,7 +70,8 @@ class StartAutoPilotStatusView @JvmOverloads constructor(
}
private val hasFSM by lazy { AtomicBoolean(true) }
//是否进行了语音提示当开启美化模式后若fsm输出自车处于安全停车状态中提示音提示一次
private var isAlreadyPrompted: Boolean = false
init {
LayoutInflater.from(context).inflate(R.layout.view_start_autopilot_status, this, true)
@@ -87,9 +90,11 @@ class StartAutoPilotStatusView @JvmOverloads constructor(
CallerLogger.i(TAG, "changeStatusContainer 切换展示hasFSM=$hasFSMModule")
if (hasFSMModule) {
fSMStatusLayout?.visibility = View.VISIBLE
ivFsmDemoModeError?.visibility = View.GONE
withoutFSMStatusLayout?.visibility = View.GONE
} else {
fSMStatusLayout?.visibility = View.GONE
ivFsmDemoModeError?.visibility = View.GONE
withoutFSMStatusLayout?.visibility = View.VISIBLE
}
}
@@ -104,11 +109,6 @@ class StartAutoPilotStatusView @JvmOverloads constructor(
}
hasFSM.set(newHasFSM)
if (FunctionBuildConfig.isDemoMode && status.isException()) {
// 美化模式下如果是异常的,修改成正常的
status.state = FSMStateCode.ExistNormal
}
when (status.state) {
FSMStateCode.UnKnown -> {
fSMStatusLayout?.setOnClickListener(null)
@@ -118,6 +118,8 @@ class StartAutoPilotStatusView @JvmOverloads constructor(
R.drawable.icon_fsm_status_bg_unknown
)
)
ivFsmDemoModeError?.visibility = View.GONE
isAlreadyPrompted = false
}
FSMStateCode.NotExist -> {
@@ -128,6 +130,8 @@ class StartAutoPilotStatusView @JvmOverloads constructor(
R.drawable.icon_fsm_status_bg_unknown
)
)
ivFsmDemoModeError?.visibility = View.GONE
isAlreadyPrompted = false
}
FSMStateCode.ExistNormal -> {
@@ -138,18 +142,41 @@ class StartAutoPilotStatusView @JvmOverloads constructor(
R.drawable.icon_fsm_status_bg_normal
)
)
ivFsmDemoModeError?.visibility = View.GONE
isAlreadyPrompted = false
}
FSMStateCode.ExistError -> {
fSMStatusLayout?.onClick {
CallerHmiManager.showFSMExceptionStatusWindow(status.descList)
}
fSMStatusLayout?.setImageDrawable(
ContextCompat.getDrawable(
context,
R.drawable.icon_fsm_status_bg_error
if(FunctionBuildConfig.isDemoMode){
fSMStatusLayout?.setOnClickListener(null)
fSMStatusLayout?.setImageDrawable(
ContextCompat.getDrawable(
context,
R.drawable.icon_fsm_status_bg_normal
)
)
)
ivFsmDemoModeError?.visibility = View.VISIBLE
if(!isAlreadyPrompted){
try {
SoundPoolUtils.getSoundPool().playSoundWithRedId(context,R.raw.weak_net_tips)
}catch (e: Exception){
e.printStackTrace()
}
isAlreadyPrompted = true
}
}else{
fSMStatusLayout?.onClick {
CallerHmiManager.showFSMExceptionStatusWindow(status.descList)
}
fSMStatusLayout?.setImageDrawable(
ContextCompat.getDrawable(
context,
R.drawable.icon_fsm_status_bg_error
)
)
ivFsmDemoModeError?.visibility = View.GONE
isAlreadyPrompted = false
}
}
}
notifyStatus(status.isException())

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@@ -15,6 +15,19 @@
android:visibility="visible"
tools:visibility="visible"/>
<ImageView
android:id="@+id/ivFsmDemoModeError"
android:layout_width="@dimen/dp_30"
android:layout_height="@dimen/dp_30"
android:src="@drawable/icon_fsm_demo_mode_error"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_marginStart="@dimen/dp_19"
android:layout_marginBottom="@dimen/dp_34"
android:contentDescription="@string/fsm_demo_mode_error"
android:visibility="gone"
/>
<LinearLayout
android:id="@+id/withoutFSMStatusLayout"
android:layout_width="match_parent"

View File

@@ -267,4 +267,6 @@
<string name="ota_result_fail_tip">请联系管理员</string>
<string name="ota_result_close">关闭</string>
<string name="fsm_demo_mode_error">FSM美化模式状态下异常标识</string>
</resources>