处理OBU提示信息获取

This commit is contained in:
董宏宇
2021-08-09 19:42:32 +08:00
parent a7bbce3e88
commit 77d08e2132
5 changed files with 373 additions and 278 deletions

View File

@@ -1,5 +1,8 @@
package com.mogo.module.common.enum
import com.mogo.module.common.R
import com.zhidao.support.obu.constants.ObuConstants
/**
* author : donghongyu
* e-mail : 1358506549@qq.com
@@ -7,9 +10,242 @@ package com.mogo.module.common.enum
* desc : 车机启动状态
* version: 1.0
*/
interface WarningTypeEnum {
enum class WarningTypeEnum(
var useCaseId: Int,
var desc: String,
var warningContent: String,
var warningTts: String,
var warningIconId: Int
) {
TYPE_USECASE_ID_EBW(
ObuConstants.USE_CASE_ID.EBW,
"紧急制动预警",
"前车急刹车",
"前车急刹车",
R.drawable.icon_warning_v2x_emergency_brake
),
TYPE_USECASE_ID_FCW(
ObuConstants.USE_CASE_ID.FCW,
"前向碰撞预警",
"前车碰撞预警",
"前车碰撞预警",
R.drawable.icon_warning_v2x_collision_warning
),
TYPE_USECASE_ID_ICW(
ObuConstants.USE_CASE_ID.ICW,
"交叉路口碰撞预警",
"交叉路口碰撞预警",
"注意交叉路口车辆",
R.drawable.icon_warning_v2x_collision_warning
),
TYPE_USECASE_ID_CLW(
ObuConstants.USE_CASE_ID.CLW,
"车辆失控预警",
"前车失控预警",
"前车失控预警",
R.drawable.icon_warning_v2x_vehicle_control
),
TYPE_USECASE_ID_DNPW(
ObuConstants.USE_CASE_ID.DNPW,
"逆向超车预警",
"逆向超车预警",
"注意逆向车道车辆",
R.drawable.icon_warning_v2x_blind_area_collision
),
TYPE_USECASE_ID_AVW(
ObuConstants.USE_CASE_ID.AVW,
"异常车辆提醒",
"前车异常",
"前车异常",
R.drawable.icon_warning_v2x_abnormal_vehicle
),
TYPE_USECASE_ID_BSW(
ObuConstants.USE_CASE_ID.BSW,
"盲区预警",
"盲区碰撞预警",
"",
R.drawable.icon_warning_v2x_blind_area_collision
),
TYPE_USECASE_ID_LCW(
ObuConstants.USE_CASE_ID.LCW,
"变道预警",
"盲区碰撞预警",
"注意%s后车辆",
R.drawable.icon_warning_v2x_blind_area_collision
),//注意左后车辆/注意右后车辆
TYPE_USECASE_ID_EVW(
ObuConstants.USE_CASE_ID.EVW,
"紧急车辆提醒",
"请避让特种车辆",
"后方存在特殊车辆,请安排避让",
R.drawable.icon_warning_v2x_special_vehicle_access
),
TYPE_USECASE_ID_VRUCW(
ObuConstants.USE_CASE_ID.VRUCW,
"弱势交通参与者碰撞预警",
"%s碰撞预警",
"%s碰撞预警",
R.drawable.icon_warning_v2x_pedestrian_crossing
),//行人/摩托车碰撞预警
TYPE_USECASE_ID_SLW(
ObuConstants.USE_CASE_ID.SLW,
"限速预警",
"已超速",
"已超速",
R.drawable.icon_warning_v2x_over_speed
),
TYPE_USECASE_ID_LTA(
ObuConstants.USE_CASE_ID.LTA,
"左转辅助",
"左转碰撞预警",
"注意左前车辆",
R.drawable.icon_warning_v2x_collision_warning
),
TYPE_USECASE_ID_HLW(
ObuConstants.USE_CASE_ID.HLW,
"道路危险情况预警",
"道路危险情况预警",
"前方路况危险",
R.drawable.icon_warning_v2x_road_dangerous
),//(如果能给出具体的类别,则播报具体危险类别)
TYPE_USECASE_ID_IVS(
ObuConstants.USE_CASE_ID.IVS,
"车内标牌",
"前方施工",
"前方施工",
R.drawable.icon_warning_v2x_road_construction
),
TYPE_USECASE_ID_TJW(
ObuConstants.USE_CASE_ID.TJW,
"前方拥堵提醒",
"前方道路拥堵",
"前方%d米道路拥堵请减速慢行",
R.drawable.icon_warning_v2x_congestion
),
TYPE_USECASE_ID_IVP(
ObuConstants.USE_CASE_ID.IVP,
"闯红灯预警",
"路口红灯,禁止通行",
"路口红灯,禁止通行",
R.drawable.icon_warning_v2x_traffic_lights_red
),
TYPE_USECASE_ID_COC(
ObuConstants.USE_CASE_ID.COC,
"预留",
"路况预警",
"路况预警",
R.drawable.icon_warning_v2x_abnormal_vehicle
),
TYPE_ERROR(
ObuConstants.USE_CASE_ID.ERROR,
"未知/错误/异常",
"",
"",
R.drawable.icon_warning_v2x_abnormal_vehicle
);
companion object {
fun getWarningType(useCaseId: Int): WarningTypeEnum {
return when (useCaseId) {
ObuConstants.USE_CASE_ID.EBW -> TYPE_USECASE_ID_EBW
ObuConstants.USE_CASE_ID.FCW -> TYPE_USECASE_ID_FCW
ObuConstants.USE_CASE_ID.ICW -> TYPE_USECASE_ID_ICW
ObuConstants.USE_CASE_ID.CLW -> TYPE_USECASE_ID_CLW
ObuConstants.USE_CASE_ID.DNPW -> TYPE_USECASE_ID_DNPW
ObuConstants.USE_CASE_ID.AVW -> TYPE_USECASE_ID_AVW
ObuConstants.USE_CASE_ID.BSW -> TYPE_USECASE_ID_BSW
ObuConstants.USE_CASE_ID.LCW -> TYPE_USECASE_ID_LCW
ObuConstants.USE_CASE_ID.EVW -> TYPE_USECASE_ID_EVW
ObuConstants.USE_CASE_ID.VRUCW -> TYPE_USECASE_ID_VRUCW
ObuConstants.USE_CASE_ID.SLW -> TYPE_USECASE_ID_SLW
ObuConstants.USE_CASE_ID.LTA -> TYPE_USECASE_ID_LTA
ObuConstants.USE_CASE_ID.HLW -> TYPE_USECASE_ID_HLW
ObuConstants.USE_CASE_ID.IVS -> TYPE_USECASE_ID_IVS
ObuConstants.USE_CASE_ID.TJW -> TYPE_USECASE_ID_TJW
ObuConstants.USE_CASE_ID.IVP -> TYPE_USECASE_ID_IVP
ObuConstants.USE_CASE_ID.COC -> TYPE_USECASE_ID_COC
ObuConstants.USE_CASE_ID.ERROR -> TYPE_ERROR
else -> TYPE_USECASE_ID_AVW
}
}
fun getWarningIcon(useCaseId: Int): Int {
return when (useCaseId) {
ObuConstants.USE_CASE_ID.EBW -> TYPE_USECASE_ID_EBW.warningIconId
ObuConstants.USE_CASE_ID.FCW -> TYPE_USECASE_ID_FCW.warningIconId
ObuConstants.USE_CASE_ID.ICW -> TYPE_USECASE_ID_ICW.warningIconId
ObuConstants.USE_CASE_ID.CLW -> TYPE_USECASE_ID_CLW.warningIconId
ObuConstants.USE_CASE_ID.DNPW -> TYPE_USECASE_ID_DNPW.warningIconId
ObuConstants.USE_CASE_ID.AVW -> TYPE_USECASE_ID_AVW.warningIconId
ObuConstants.USE_CASE_ID.BSW -> TYPE_USECASE_ID_BSW.warningIconId
ObuConstants.USE_CASE_ID.LCW -> TYPE_USECASE_ID_LCW.warningIconId
ObuConstants.USE_CASE_ID.EVW -> TYPE_USECASE_ID_EVW.warningIconId
ObuConstants.USE_CASE_ID.VRUCW -> TYPE_USECASE_ID_VRUCW.warningIconId
ObuConstants.USE_CASE_ID.SLW -> TYPE_USECASE_ID_SLW.warningIconId
ObuConstants.USE_CASE_ID.LTA -> TYPE_USECASE_ID_LTA.warningIconId
ObuConstants.USE_CASE_ID.HLW -> TYPE_USECASE_ID_HLW.warningIconId
ObuConstants.USE_CASE_ID.IVS -> TYPE_USECASE_ID_IVS.warningIconId
ObuConstants.USE_CASE_ID.TJW -> TYPE_USECASE_ID_TJW.warningIconId
ObuConstants.USE_CASE_ID.IVP -> TYPE_USECASE_ID_IVP.warningIconId
ObuConstants.USE_CASE_ID.COC -> TYPE_USECASE_ID_COC.warningIconId
ObuConstants.USE_CASE_ID.ERROR -> TYPE_ERROR.warningIconId
else -> TYPE_USECASE_ID_AVW.warningIconId
}
}
fun getWarningContent(useCaseId: Int): String {
return when (useCaseId) {
ObuConstants.USE_CASE_ID.EBW -> TYPE_USECASE_ID_EBW.warningContent
ObuConstants.USE_CASE_ID.FCW -> TYPE_USECASE_ID_FCW.warningContent
ObuConstants.USE_CASE_ID.ICW -> TYPE_USECASE_ID_ICW.warningContent
ObuConstants.USE_CASE_ID.CLW -> TYPE_USECASE_ID_CLW.warningContent
ObuConstants.USE_CASE_ID.DNPW -> TYPE_USECASE_ID_DNPW.warningContent
ObuConstants.USE_CASE_ID.AVW -> TYPE_USECASE_ID_AVW.warningContent
ObuConstants.USE_CASE_ID.BSW -> TYPE_USECASE_ID_BSW.warningContent
ObuConstants.USE_CASE_ID.LCW -> TYPE_USECASE_ID_LCW.warningContent
ObuConstants.USE_CASE_ID.EVW -> TYPE_USECASE_ID_EVW.warningContent
ObuConstants.USE_CASE_ID.VRUCW -> TYPE_USECASE_ID_VRUCW.warningContent
ObuConstants.USE_CASE_ID.SLW -> TYPE_USECASE_ID_SLW.warningContent
ObuConstants.USE_CASE_ID.LTA -> TYPE_USECASE_ID_LTA.warningContent
ObuConstants.USE_CASE_ID.HLW -> TYPE_USECASE_ID_HLW.warningContent
ObuConstants.USE_CASE_ID.IVS -> TYPE_USECASE_ID_IVS.warningContent
ObuConstants.USE_CASE_ID.TJW -> TYPE_USECASE_ID_TJW.warningContent
ObuConstants.USE_CASE_ID.IVP -> TYPE_USECASE_ID_IVP.warningContent
ObuConstants.USE_CASE_ID.COC -> TYPE_USECASE_ID_COC.warningContent
ObuConstants.USE_CASE_ID.ERROR -> TYPE_ERROR.warningContent
else -> TYPE_USECASE_ID_AVW.warningContent
}
}
fun getWarningTts(useCaseId: Int): String {
return when (useCaseId) {
ObuConstants.USE_CASE_ID.EBW -> TYPE_USECASE_ID_EBW.warningTts
ObuConstants.USE_CASE_ID.FCW -> TYPE_USECASE_ID_FCW.warningTts
ObuConstants.USE_CASE_ID.ICW -> TYPE_USECASE_ID_ICW.warningTts
ObuConstants.USE_CASE_ID.CLW -> TYPE_USECASE_ID_CLW.warningTts
ObuConstants.USE_CASE_ID.DNPW -> TYPE_USECASE_ID_DNPW.warningTts
ObuConstants.USE_CASE_ID.AVW -> TYPE_USECASE_ID_AVW.warningTts
ObuConstants.USE_CASE_ID.BSW -> TYPE_USECASE_ID_BSW.warningTts
ObuConstants.USE_CASE_ID.LCW -> TYPE_USECASE_ID_LCW.warningTts
ObuConstants.USE_CASE_ID.EVW -> TYPE_USECASE_ID_EVW.warningTts
ObuConstants.USE_CASE_ID.VRUCW -> TYPE_USECASE_ID_VRUCW.warningTts
ObuConstants.USE_CASE_ID.SLW -> TYPE_USECASE_ID_SLW.warningTts
ObuConstants.USE_CASE_ID.LTA -> TYPE_USECASE_ID_LTA.warningTts
ObuConstants.USE_CASE_ID.HLW -> TYPE_USECASE_ID_HLW.warningTts
ObuConstants.USE_CASE_ID.IVS -> TYPE_USECASE_ID_IVS.warningTts
ObuConstants.USE_CASE_ID.TJW -> TYPE_USECASE_ID_TJW.warningTts
ObuConstants.USE_CASE_ID.IVP -> TYPE_USECASE_ID_IVP.warningTts
ObuConstants.USE_CASE_ID.COC -> TYPE_USECASE_ID_COC.warningTts
ObuConstants.USE_CASE_ID.ERROR -> TYPE_ERROR.warningTts
else -> TYPE_USECASE_ID_AVW.warningTts
}
}
const val WARNING_PRIOR_COLLISION = 20001//前向碰撞
const val WARNING_INTERSECTION_COLLISION = 20002//交叉路口碰撞
const val WARNING_LEFT_AUXILIARY = 20003//左转辅助
@@ -37,6 +273,6 @@ interface WarningTypeEnum {
const val WARNING_ACCIDENT_PRONE_ROAD_SECTION = 20025//事故易发路段
const val WARNING_HUMP_BRIDGE = 20026//驼峰桥
const val WARNING_SCHOOL = 20027// 学校
}
}

View File

@@ -1,156 +0,0 @@
package com.mogo.module.common.utils
import com.mogo.module.common.enum.WarningTypeEnum
import com.mogo.module.common.R
/**
* @author xiaoyuzhoukeyi
* @date 2021/8/6 11:04 上午
*/
object WarningUtils {
fun getWarningIcon(v2xType: Int): Array<Any> {
var warningIconId = R.drawable.icon_warning_v2x_abnormal_vehicle
var warningContent = "注意周边环境"
var warningTts = "注意周边环境"
when (v2xType) {
WarningTypeEnum.WARNING_PRIOR_COLLISION -> {
warningIconId = R.drawable.icon_warning_v2x_collision_warning
warningContent = "前车碰撞预警"
warningTts = "前车碰撞预警"
}//前向碰撞
WarningTypeEnum.WARNING_INTERSECTION_COLLISION -> {
warningIconId = R.drawable.icon_warning_v2x_collision_warning
warningContent = "注意交叉路口车辆"
warningTts = "注意交叉路口车辆"
}//交叉路口碰撞
WarningTypeEnum.WARNING_LEFT_AUXILIARY -> {
warningIconId = R.drawable.icon_warning_v2x_collision_warning
warningContent = "注意左前车辆"
warningTts = "注意左前车辆"
}//左转辅助
WarningTypeEnum.WARNING_BLIND_AREA_COLLISION -> {
warningIconId = R.drawable.icon_warning_v2x_blind_area_collision
warningContent = "注意后方来车"
warningTts = "注意后方来车"
}//盲区/变道辅助
WarningTypeEnum.WARNING_REVERSE_OVERTAKING -> {
warningIconId = R.drawable.icon_warning_v2x_blind_area_collision
warningContent = "注意逆向车道车辆"
warningTts = "注意逆向车道车辆"
}//逆向超车
WarningTypeEnum.WARNING_VEHICLE_BRAKES -> {
warningIconId = R.drawable.icon_warning_v2x_emergency_brake
warningContent = "前车急刹车"
warningTts = "前车急刹车"
}//紧急制动-前车急刹
WarningTypeEnum.WARNING_ABNORMAL_VEHICLE -> {
warningIconId = R.drawable.icon_warning_v2x_abnormal_vehicle
warningContent = "前车异常"
warningTts = "前车异常"
}//异常车辆提醒
WarningTypeEnum.WARNING_VEHICLE_CONTROL -> {
warningIconId = R.drawable.icon_warning_v2x_vehicle_control
warningContent = "前车失控预警"
warningTts = "前车失控预警"
}//车辆失控预警
WarningTypeEnum.WARNING_SPECIAL_VEHICLE_ACCESS -> {
warningIconId = R.drawable.icon_warning_v2x_special_vehicle_access
warningContent = "请避让特种车辆"
warningTts = "后方存在特殊车辆,请安排避让"
}//特种车辆通行
WarningTypeEnum.WARNING_SPEED_LIMIT -> {
warningIconId = R.drawable.icon_warning_v2x_over_speed
warningContent = "减速慢行"
warningTts = "请减速慢行"
}// 限速预警
WarningTypeEnum.WARNING_RED_LIGHT -> {
warningIconId = R.drawable.icon_warning_v2x_traffic_lights_red
warningContent = "路口红灯,禁止通行"
warningTts = "路口红灯,禁止通行"
}//闯红灯预警
WarningTypeEnum.WARNING_VULNERABLE_TRANSPORT_PARTICIPANT -> {
warningIconId = R.drawable.icon_warning_v2x_pedestrian_crossing
warningContent = "行人碰撞预警"
warningTts = "行人碰撞预警"
}//弱势交通参与者碰撞预警
WarningTypeEnum.WARNING_TRAFFIC_SPEED_GUIDE -> {
warningIconId = R.drawable.icon_warning_v2x_traffic_lights_green
warningContent = "绿波通行"
warningTts = "绿波通行"
}//绿波通行车速引导
WarningTypeEnum.WARNING_CAR_PLATE -> {
warningIconId = R.drawable.icon_warning_v2x_road_construction
warningContent = "前方施工"
warningTts = "前方施工"
}//车内标牌
WarningTypeEnum.warning_congestion -> {
warningIconId = R.drawable.icon_warning_v2x_congestion
warningContent = "前方道路拥堵"
warningTts = "前方道路拥堵"
}//前方道路拥堵
WarningTypeEnum.WARNING_OVER_SPEED -> {
warningIconId = R.drawable.icon_warning_v2x_over_speed
warningContent = "您已超速"
warningTts = "您已超速"
}//超速预警
WarningTypeEnum.WARNING_ROAD_HAZARDS -> {
warningIconId = R.drawable.icon_warning_v2x_road_dangerous
warningContent = "道路危险情况预警"
warningTts = "道路危险情况预警"
}//道路危险情况预警
WarningTypeEnum.WARNING_ROUNDABOUT -> {
warningIconId = R.drawable.icon_warning_v2x_roundaboutpng
warningContent = "前方驶入环岛"
warningTts = "前方驶入环岛"
}//环岛
WarningTypeEnum.WARNING_GIVE_WAY -> {
warningIconId = R.drawable.icon_warning_v2x_over_speed
warningContent = "有车出入,减速慢行"
warningTts = "有车出入,减速慢行"
}//减速让行
WarningTypeEnum.WARNING_BAN_ASTERN -> {
warningIconId = R.drawable.icon_warning_v2x_ban_astern
warningContent = "当前路段禁止停车"
warningTts = "当前路段禁止停车"
}//禁止停车
WarningTypeEnum.WARNING_TURN_LEFT_SHARP -> {
warningIconId = R.drawable.icon_warning_v2x_turn_left_sharp
warningContent = "前方左转急弯"
warningTts = "前方路口左转急弯,请减速慢行"
}//左转急弯
WarningTypeEnum.WARNING_TURN_RIGHT_SHARP -> {
warningIconId = R.drawable.icon_warning_v2x_turn_right_sharp
warningContent = "前方右转急弯"
warningTts = "前方路口右转急弯,请减速慢行"
}//右转急弯
WarningTypeEnum.WARNING_TRAMCAR -> {
warningIconId = R.drawable.icon_warning_v2x_tramcar
warningContent = "前方有轨电车提醒"
warningTts = "前方有轨电车经过,请注意行驶安全"
}//有轨电车
WarningTypeEnum.WARNING_TEST_SECTION -> {
warningIconId = R.drawable.icon_warning_v2x_test_section
warningContent = "前方考试路段"
warningTts = "前方考试路段,减速慢行"
}//考试路段
WarningTypeEnum.WARNING_ACCIDENT_PRONE_ROAD_SECTION -> {
warningIconId = R.drawable.icon_warning_v2x_accident_prone_road_section
warningContent = "当前路段事故多发"
warningTts = "当前路段事故多发,请谨慎行驶"
}//事故易发路段
WarningTypeEnum.WARNING_HUMP_BRIDGE -> {
warningIconId = R.drawable.icon_warning_v2x_hump_bridge
warningContent = "前方驼峰桥"
warningTts = "即将驶入桥梁,请减速慢行"
}//驼峰桥
WarningTypeEnum.WARNING_SCHOOL -> {
warningIconId = R.drawable.icon_warning_v2x_school
warningContent = "前方学校,减速慢行"
warningTts = "前方人行横道,请减速慢"
}// 学校
}
return arrayOf(warningIconId, warningContent, warningTts)
}
}