[6.6.0][FSM] feat: 状态栏增加 FSM 状态,增加 FSM 异常时消息弹框;
This commit is contained in:
@@ -8,6 +8,8 @@ import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListener
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerFsm2024ListenerManager
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_DEVA
|
||||
import com.mogo.eagle.core.utilcode.util.DateTimeUtils
|
||||
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
|
||||
import com.zhjt.mogo.adas.data.AdasConstants
|
||||
import com.zhjt.mogo_core_function_devatools.status.entity.FSMStateCode
|
||||
import com.zhjt.mogo_core_function_devatools.status.entity.FSMStatus
|
||||
@@ -16,6 +18,7 @@ import fsm.Fsm2024
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.launch
|
||||
import java.util.concurrent.atomic.AtomicReference
|
||||
import kotlin.random.Random
|
||||
|
||||
internal class FSMImpl(ctx: Context) : IFlow<FSMStatus>(ctx), IMoGoAutopilotStatusListener,
|
||||
IMoGoFsm2024Listener {
|
||||
@@ -49,6 +52,24 @@ internal class FSMImpl(ctx: Context) : IFlow<FSMStatus>(ctx), IMoGoAutopilotStat
|
||||
CallerLogger.d("$M_DEVA$TAG", "-- onCreate --")
|
||||
CallerAutoPilotStatusListenerManager.addListener(TAG, this)
|
||||
CallerFsm2024ListenerManager.addListener(TAG, this)
|
||||
|
||||
//TODO
|
||||
test()
|
||||
test1()
|
||||
}
|
||||
|
||||
fun test() {
|
||||
send(FSMStatus(FSMStateCode.Error, "检查到异常,不能启动自驾,time=${DateTimeUtils.getCurrentDateTime()}"))
|
||||
UiThreadHandler.postDelayed({
|
||||
test()
|
||||
},3000L)
|
||||
}
|
||||
|
||||
fun test1() {
|
||||
send(FSMStatus(FSMStateCode.Normal, "状态正常"))
|
||||
UiThreadHandler.postDelayed({
|
||||
test1()
|
||||
}, Random.nextInt(1,10) * 1000L)
|
||||
}
|
||||
|
||||
override fun onAutopilotIpcConnectStatusChanged(
|
||||
@@ -56,15 +77,15 @@ internal class FSMImpl(ctx: Context) : IFlow<FSMStatus>(ctx), IMoGoAutopilotStat
|
||||
reason: String?
|
||||
) {
|
||||
super.onAutopilotIpcConnectStatusChanged(status, reason)
|
||||
if (!CallerAutoPilotStatusListenerManager.isConnect()) {
|
||||
CallerLogger.d("$M_DEVA$TAG", "工控机断开了....")
|
||||
fsmStateMsg.set(null)
|
||||
send(FSMStatus(FSMStateCode.IpcNotConnected, "工控机断开了"))
|
||||
} else {
|
||||
CallerLogger.d("$M_DEVA$TAG", "工控机已连接....")
|
||||
if (CallerAutoPilotStatusListenerManager.isConnect()) {
|
||||
CallerLogger.d("$M_DEVA$TAG", "工控机已连接")
|
||||
launch(Dispatchers.Default) {
|
||||
CallerAutoPilotControlManager.sendStatusQueryReq()
|
||||
}
|
||||
} else {
|
||||
CallerLogger.d("$M_DEVA$TAG", "工控机断开了....")
|
||||
fsmStateMsg.set(null)
|
||||
send(FSMStatus(FSMStateCode.IpcNotConnected, "工控机断开了"))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -137,15 +137,19 @@ internal class StatusAdapter(val ctx: Context, var data: List<Status>): Recycler
|
||||
when (status.state) {
|
||||
FSMStateCode.IpcNotConnected -> {
|
||||
iv.setImageDrawable(null)
|
||||
CallerHmiManager.dismissFSMStatusDetailWindow()
|
||||
}
|
||||
FSMStateCode.NoneExist -> {
|
||||
iv.background = ContextCompat.getDrawable(itemView.context, drawable.icon_dev_status_fsm_not_exist)
|
||||
CallerHmiManager.dismissFSMStatusDetailWindow()
|
||||
}
|
||||
FSMStateCode.Normal -> {
|
||||
iv.background = ContextCompat.getDrawable(itemView.context, drawable.icon_dev_status_fsm_normal)
|
||||
CallerHmiManager.dismissFSMStatusDetailWindow()
|
||||
}
|
||||
FSMStateCode.Error -> {
|
||||
iv.background = ContextCompat.getDrawable(itemView.context, drawable.icon_dev_status_fsm_error)
|
||||
CallerHmiManager.showFSMStatusDetailWindow("FSM异常:", "#FF3B3B", status.desc)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user