[6.2.0]消息盒子司机端FM信息

This commit is contained in:
xuxinchao
2023-11-14 18:33:00 +08:00
parent 8837105db6
commit d465b4e875
19 changed files with 722 additions and 53 deletions

View File

@@ -8,38 +8,36 @@ import com.mogo.eagle.core.utilcode.util.SPUtils
* @description 消息盒子配置
* @since: 2022/12/1
*/
class MsgBoxConfig {
object MsgBoxConfig {
companion object{
//当前用户的Tab选择记录
private const val userRecord = "USER_RECORD"
//当前用户的Tab选择记录
private const val userRecord = "USER_RECORD"
/**
* 获取当前用户Tab选择记录
*/
fun getUserRecord(): Int{
return SPUtils.getInstance().getInt(userRecord,0)
}
/**
* 设置当前用户Tab选择记录
*/
fun setUserRecord(record: Int){
SPUtils.getInstance().put(userRecord,record)
}
//通知消息缓存列表
@JvmField
var noticeList: ArrayList<MsgBoxBean> = ArrayList()
//车辆系统信息缓存列表
@JvmField
var systemInfoList: ArrayList<MsgBoxBean> = ArrayList()
//录包信息缓存列表
@JvmField
var recordBagList: ArrayList<MsgBoxBean> = ArrayList()
//播放小智语音消息时的未播放消息缓存列表
@JvmField
var unPlayList: ArrayList<MsgBoxBean> = ArrayList()
/**
* 获取当前用户Tab选择记录
*/
fun getUserRecord(): Int{
return SPUtils.getInstance().getInt(userRecord,0)
}
/**
* 设置当前用户Tab选择记录
*/
fun setUserRecord(record: Int){
SPUtils.getInstance().put(userRecord,record)
}
//通知消息缓存列表
@JvmField
var noticeList: ArrayList<MsgBoxBean> = ArrayList()
//车辆系统信息缓存列表
@JvmField
var systemInfoList: ArrayList<MsgBoxBean> = ArrayList()
//录包信息缓存列表
@JvmField
var recordBagList: ArrayList<MsgBoxBean> = ArrayList()
//播放小智语音消息时的未播放消息缓存列表
@JvmField
var unPlayList: ArrayList<MsgBoxBean> = ArrayList()
}

View File

@@ -0,0 +1,164 @@
package com.mogo.eagle.core.function.msgbox
import com.zhjt.mogo.adas.data.bean.MogoReport
/**
* FM信息对照表
*/
class MsgFmData{
/**
* 当出现多个建议操作时,按照整车下电重启、请求人工驾驶接管、请求平行驾驶接管、系统重启、联系硬件工程师、联系运维工程师、联系软件工程师优先级递减的顺序,只展示最高优先级的内容
*/
enum class FaultAction(
val faultType: String,//故障处理类别
val faultAction: String,//故障处理行为定义
val faultActionCode: String,//故障处理行为标识
val faultActionDesc: String,//故障处理行为描述
val faultLevel: Int//故障处理级别
){
//请求平行驾驶接管
FM_ACT_NEED_PARALLEL_DERVING_TAKEOVER("恢复策略","请求平行驾驶接管","FM_ACT_NEED_PARALLEL_DERVING_TAKEOVER","如planing出站时规划失败",5),
//请求人工驾驶接管
FM_ACT_NEED_MANNUAL_DERVING("恢复策略","请求人工驾驶接管","FM_ACT_NEED_MANNUAL_DERVING","如planing规划失败且存在弱网判断",6),
//系统重启
FM_ACT_NEED_RESTART_SYSTEM("恢复策略","系统重启","FM_ACT_NEED_RESTART_SYSTEM","如检测到出现多个节点奔溃",4),
//整车下电重启
FM_ACT_MUST_VEHICLE_POWER_RESET("恢复策略","整车下电重启","FM_ACT_MUST_VEHICLE_POWER_RESET","如底盘无数据,需要下电重启",7),
//请联系硬件工程师
FM_ACT_CONTACT_HARDWARE_ENGINEER("人工处理","请联系硬件工程师","FM_ACT_CONTACT_HARDWARE_ENGINEER","硬件接线,域控启动等故障",3),
//请联系运维工程师
FM_ACT_CONTACT_OPERATIONS_ENGINEER("人工处理","请联系运维工程师","FM_ACT_CONTACT_OPERATIONS_ENGINEER","系统配置不对,网络等故障",2),
//请联系软件工程师
FM_ACT_CONTACT_SOFTWARE_ENGINEER("人工处理","请联系软件工程师","FM_ACT_CONTACT_SOFTWARE_ENGINEER","节点挂掉,无法启动等故障",1);
companion object{
//获取故障建议操作级别
fun getFaultLevel(faultActionCode: String): Int{
return when(faultActionCode){
//请求平行驾驶接管
FM_ACT_NEED_PARALLEL_DERVING_TAKEOVER.faultActionCode -> FM_ACT_NEED_PARALLEL_DERVING_TAKEOVER.faultLevel
//请求人工驾驶接管
FM_ACT_NEED_MANNUAL_DERVING.faultActionCode -> FM_ACT_NEED_MANNUAL_DERVING.faultLevel
//系统重启
FM_ACT_NEED_RESTART_SYSTEM.faultActionCode -> FM_ACT_NEED_RESTART_SYSTEM.faultLevel
//整车下电重启
FM_ACT_MUST_VEHICLE_POWER_RESET.faultActionCode -> FM_ACT_MUST_VEHICLE_POWER_RESET.faultLevel
//请联系硬件工程师
FM_ACT_CONTACT_HARDWARE_ENGINEER.faultActionCode -> FM_ACT_CONTACT_HARDWARE_ENGINEER.faultLevel
//请联系运维工程师
FM_ACT_CONTACT_OPERATIONS_ENGINEER.faultActionCode ->FM_ACT_CONTACT_OPERATIONS_ENGINEER.faultLevel
//请联系软件工程师
FM_ACT_CONTACT_SOFTWARE_ENGINEER.faultActionCode -> FM_ACT_CONTACT_SOFTWARE_ENGINEER.faultLevel
else -> 0
}
}
//获取故障建议操作
fun getFaultAction(faultActionLevel: Int): String{
return when(faultActionLevel){
//请求平行驾驶接管
FM_ACT_NEED_PARALLEL_DERVING_TAKEOVER.faultLevel -> FM_ACT_NEED_PARALLEL_DERVING_TAKEOVER.faultAction
//请求人工驾驶接管
FM_ACT_NEED_MANNUAL_DERVING.faultLevel -> FM_ACT_NEED_MANNUAL_DERVING.faultAction
//系统重启
FM_ACT_NEED_RESTART_SYSTEM.faultLevel -> FM_ACT_NEED_RESTART_SYSTEM.faultAction
//整车下电重启
FM_ACT_MUST_VEHICLE_POWER_RESET.faultLevel -> FM_ACT_MUST_VEHICLE_POWER_RESET.faultAction
//请联系硬件工程师
FM_ACT_CONTACT_HARDWARE_ENGINEER.faultLevel -> FM_ACT_CONTACT_HARDWARE_ENGINEER.faultAction
//请联系运维工程师
FM_ACT_CONTACT_OPERATIONS_ENGINEER.faultLevel ->FM_ACT_CONTACT_OPERATIONS_ENGINEER.faultAction
//请联系软件工程师
FM_ACT_CONTACT_SOFTWARE_ENGINEER.faultLevel -> FM_ACT_CONTACT_SOFTWARE_ENGINEER.faultAction
else -> "暂无"
}
}
//获取故障建议操作Code值
fun getFaultActionCode(faultActionLevel: Int): String{
return when(faultActionLevel){
//请求平行驾驶接管
FM_ACT_NEED_PARALLEL_DERVING_TAKEOVER.faultLevel -> FM_ACT_NEED_PARALLEL_DERVING_TAKEOVER.faultActionCode
//请求人工驾驶接管
FM_ACT_NEED_MANNUAL_DERVING.faultLevel -> FM_ACT_NEED_MANNUAL_DERVING.faultActionCode
//系统重启
FM_ACT_NEED_RESTART_SYSTEM.faultLevel -> FM_ACT_NEED_RESTART_SYSTEM.faultActionCode
//整车下电重启
FM_ACT_MUST_VEHICLE_POWER_RESET.faultLevel -> FM_ACT_MUST_VEHICLE_POWER_RESET.faultActionCode
//请联系硬件工程师
FM_ACT_CONTACT_HARDWARE_ENGINEER.faultLevel -> FM_ACT_CONTACT_HARDWARE_ENGINEER.faultActionCode
//请联系运维工程师
FM_ACT_CONTACT_OPERATIONS_ENGINEER.faultLevel ->FM_ACT_CONTACT_OPERATIONS_ENGINEER.faultActionCode
//请联系软件工程师
FM_ACT_CONTACT_SOFTWARE_ENGINEER.faultLevel -> FM_ACT_CONTACT_SOFTWARE_ENGINEER.faultActionCode
else -> ""
}
}
}
}
enum class FaultResult(
val resultType: String,//影响类别
val resultDefine: String,//故障影响定义
val resultCode: String,//故障影响的标识
val resultDesc: String//后果对应的处理描述
){
//无法作业
FM_RST_FUNCTION_LOST("功能影响","无法作业","FM_RST_FUNCTION_LOST","需要禁止作业,如扫盘故障,清扫车无法清扫作业"),
//无法开放运营
FM_RST_FORBID_OPEN_WORK("功能影响","无法开放运营","FM_RST_FORBID_OPEN_WORK","需要禁止运营,如安全带故障,可以自驾,不能载人"),
//无法平行驾驶
FM_RST_FORBID_PARALLEL_DERVING("驾驶影响","无法平行驾驶","FM_RST_FORBID_PARALLEL_DERVING","需要禁止平行驾驶"),
//无法自动驾驶
FM_RST_FORBID_AUTOPILOT_DERVING("驾驶影响","无法自动驾驶","FM_RST_FORBID_AUTOPILOT_DERVING","需要禁止自驾"),
//无法手动驾驶
FM_RST_FORBID_MANNUAL_DERVING("驾驶影响","无法手动驾驶","FM_RST_FORBID_MANNUAL_DERVING","需要禁止行车,如底盘存在故障,需要通知出来"),
//失控,无法策略停车
FM_RST_OUT_OF_CONTROL("安全影响","失控,无法策略停车","FM_RST_OUT_OF_CONTROL","需要立即紧急通知到人车辆失控如驾驶中controller挂掉发送102重启");
companion object{
//获取结果原因描述
fun getResultDefine(resultCode: String): String{
return when(resultCode){
//无法作业
FM_RST_FUNCTION_LOST.resultCode -> FM_RST_FUNCTION_LOST.resultDefine
//无法开放运营
FM_RST_FORBID_OPEN_WORK.resultCode -> FM_RST_FORBID_OPEN_WORK.resultDefine
//无法平行驾驶
FM_RST_FORBID_PARALLEL_DERVING.resultCode -> FM_RST_FORBID_PARALLEL_DERVING.resultDefine
//无法自动驾驶
FM_RST_FORBID_AUTOPILOT_DERVING.resultCode -> FM_RST_FORBID_AUTOPILOT_DERVING.resultDefine
//无法手动驾驶
FM_RST_FORBID_MANNUAL_DERVING.resultCode -> FM_RST_FORBID_MANNUAL_DERVING.resultDefine
//失控,无法策略停车
FM_RST_OUT_OF_CONTROL.resultCode -> FM_RST_OUT_OF_CONTROL.resultDefine
else -> "暂无"
}
}
}
}
companion object{
@JvmStatic
fun getFmPolicyName(policyCode: String?): String{
return when(policyCode){
"FM_DP_NO_ACTION" -> "报告"
"FM_DP_ONLY_WARNING" -> "警示"
"FM_DP_SPEED_LIMIT1" -> "一级降速"
"FM_DP_SPEED_LIMIT2" -> "二级降速"
"FM_DP_SPEED_LIMIT3" -> "三级降速"
"FM_DP_PNC_CHOOSE_STOP" -> "择机靠边停车"
"FM_DP_COMFORTABLE_STOP" -> "立刻舒适停车"
"FM_DP_EMERGENCY_STOP" -> "就地紧急停车"
else -> "暂无"
}
}
}
}