完成了 5.9、【道路危险情况预警】代码

This commit is contained in:
董宏宇
2021-08-18 19:44:13 +08:00
parent c14b71abfe
commit 6505de42c0
2 changed files with 192 additions and 29 deletions

View File

@@ -145,6 +145,83 @@ enum class WarningTypeEnum(
"路况预警",
R.drawable.icon_warning_v2x_abnormal_vehicle
),
TYPE_USECASE_ID_ROAD_TRAMCAR(
0x2C01,
"前方有轨电车提醒",
"前方有轨电车提醒",
"前方有轨电车经过,请注意行驶安全",
R.drawable.icon_warning_v2x_tramcar
),
TYPE_USECASE_ID_ROAD_TURN_LEFT_SHARP(
0x2C02,
"前方左转急弯",
"前方左转急弯",
"前方路口左转急弯,请减速慢行",
R.drawable.icon_warning_v2x_turn_left_sharp
),
TYPE_USECASE_ID_ROAD_TURN_RIGHT_SHARP(
0x2C03,
"前方右转急弯",
"前方右转急弯",
"前方路口右转急弯,请减速慢行",
R.drawable.icon_warning_v2x_turn_right_sharp
),
TYPE_USECASE_ID_ROAD_PEDESTRIAN_CROSSING(
0x2C04,
"人行横道",
"前方人行横道",
"前方人行横道",
R.drawable.icon_warning_v2x_pedestrian_crossing
),
TYPE_USECASE_ID_ROAD_PEDESTRIAN_SCHOOL(
0x2C05,
"学校",
"前方学校,减速慢行",
"前方人行横道,请减速慢行",
R.drawable.icon_warning_v2x_school
),
TYPE_USECASE_ID_ROAD_COLLISION_WARNING(
0x2C06,
"事故易发路段",
"当前路段事故多发",
"当前路段事故多发,请谨慎行驶",
R.drawable.icon_warning_v2x_collision_warning
),
TYPE_USECASE_ID_ROAD_ROUNDABOUTPNG(
0x2C07,
"环岛行驶",
"前方驶入环岛",
"前方驶入环岛,请谨慎行驶",
R.drawable.icon_warning_v2x_roundaboutpng
),
TYPE_USECASE_ID_ROAD_TEST_SECTION(
0x2C08,
"驾校考试路段",
"前方考试路段",
"前方考试路段,减速慢行",
R.drawable.icon_warning_v2x_test_section
),
TYPE_USECASE_ID_ROAD_HUMP_BRIDGE(
0x2C09,
"驼峰桥",
"前方驼峰桥",
"即将驶入桥梁,请减速慢行",
R.drawable.icon_warning_v2x_hump_bridge
),
TYPE_USECASE_ID_ROAD_NO_PARKING(
0x2C10,
"禁止停车",
"当前路段禁止停车",
"当前路段,禁止停车",
R.drawable.icon_warning_v2x_no_parking
),
TYPE_USECASE_ID_ROAD_GIVE_WAY(
0x2C11,
"减速慢行",
"有车出入,减速慢行",
"有车出入,减速慢行",
R.drawable.icon_warning_v2x_give_way
),
TYPE_ERROR(
ObuConstants.USE_CASE_ID.ERROR,
"未知/错误/异常",
@@ -175,6 +252,17 @@ enum class WarningTypeEnum(
ObuConstants.USE_CASE_ID.IVP -> TYPE_USECASE_ID_IVP
0x2B091 -> TYPE_USECASE_ID_IVP_GREEN
ObuConstants.USE_CASE_ID.COC -> TYPE_USECASE_ID_COC
0x2C01 -> TYPE_USECASE_ID_ROAD_TRAMCAR
0x2C02 -> TYPE_USECASE_ID_ROAD_TURN_LEFT_SHARP
0x2C03 -> TYPE_USECASE_ID_ROAD_TURN_RIGHT_SHARP
0x2C04 -> TYPE_USECASE_ID_ROAD_PEDESTRIAN_CROSSING
0x2C05 -> TYPE_USECASE_ID_ROAD_PEDESTRIAN_SCHOOL
0x2C06 -> TYPE_USECASE_ID_ROAD_COLLISION_WARNING
0x2C07 -> TYPE_USECASE_ID_ROAD_ROUNDABOUTPNG
0x2C08 -> TYPE_USECASE_ID_ROAD_TEST_SECTION
0x2C09 -> TYPE_USECASE_ID_ROAD_HUMP_BRIDGE
0x2C0A -> TYPE_USECASE_ID_ROAD_NO_PARKING
0x2C11 -> TYPE_USECASE_ID_ROAD_GIVE_WAY
ObuConstants.USE_CASE_ID.ERROR -> TYPE_ERROR
else -> TYPE_USECASE_ID_AVW
}
@@ -201,6 +289,17 @@ enum class WarningTypeEnum(
ObuConstants.USE_CASE_ID.IVP -> TYPE_USECASE_ID_IVP.warningIconId
0x2B091 -> TYPE_USECASE_ID_IVP_GREEN.warningIconId
ObuConstants.USE_CASE_ID.COC -> TYPE_USECASE_ID_COC.warningIconId
0x2C01 -> TYPE_USECASE_ID_ROAD_TRAMCAR.warningIconId
0x2C02 -> TYPE_USECASE_ID_ROAD_TURN_LEFT_SHARP.warningIconId
0x2C03 -> TYPE_USECASE_ID_ROAD_TURN_RIGHT_SHARP.warningIconId
0x2C04 -> TYPE_USECASE_ID_ROAD_PEDESTRIAN_CROSSING.warningIconId
0x2C05 -> TYPE_USECASE_ID_ROAD_PEDESTRIAN_SCHOOL.warningIconId
0x2C06 -> TYPE_USECASE_ID_ROAD_COLLISION_WARNING.warningIconId
0x2C07 -> TYPE_USECASE_ID_ROAD_ROUNDABOUTPNG.warningIconId
0x2C08 -> TYPE_USECASE_ID_ROAD_TEST_SECTION.warningIconId
0x2C09 -> TYPE_USECASE_ID_ROAD_HUMP_BRIDGE.warningIconId
0x2C0A -> TYPE_USECASE_ID_ROAD_NO_PARKING.warningIconId
0x2C11 -> TYPE_USECASE_ID_ROAD_GIVE_WAY.warningIconId
ObuConstants.USE_CASE_ID.ERROR -> TYPE_ERROR.warningIconId
else -> TYPE_USECASE_ID_AVW.warningIconId
}
@@ -226,6 +325,17 @@ enum class WarningTypeEnum(
ObuConstants.USE_CASE_ID.IVP -> TYPE_USECASE_ID_IVP.warningContent
0x2B091 -> TYPE_USECASE_ID_IVP_GREEN.warningContent
ObuConstants.USE_CASE_ID.COC -> TYPE_USECASE_ID_COC.warningContent
0x2C01 -> TYPE_USECASE_ID_ROAD_TRAMCAR.warningContent
0x2C02 -> TYPE_USECASE_ID_ROAD_TURN_LEFT_SHARP.warningContent
0x2C03 -> TYPE_USECASE_ID_ROAD_TURN_RIGHT_SHARP.warningContent
0x2C04 -> TYPE_USECASE_ID_ROAD_PEDESTRIAN_CROSSING.warningContent
0x2C05 -> TYPE_USECASE_ID_ROAD_PEDESTRIAN_SCHOOL.warningContent
0x2C06 -> TYPE_USECASE_ID_ROAD_COLLISION_WARNING.warningContent
0x2C07 -> TYPE_USECASE_ID_ROAD_ROUNDABOUTPNG.warningContent
0x2C08 -> TYPE_USECASE_ID_ROAD_TEST_SECTION.warningContent
0x2C09 -> TYPE_USECASE_ID_ROAD_HUMP_BRIDGE.warningContent
0x2C0A -> TYPE_USECASE_ID_ROAD_NO_PARKING.warningContent
0x2C11 -> TYPE_USECASE_ID_ROAD_GIVE_WAY.warningContent
ObuConstants.USE_CASE_ID.ERROR -> TYPE_ERROR.warningContent
else -> TYPE_USECASE_ID_AVW.warningContent
}
@@ -251,39 +361,21 @@ enum class WarningTypeEnum(
ObuConstants.USE_CASE_ID.IVP -> TYPE_USECASE_ID_IVP.warningTts
0x2B091 -> TYPE_USECASE_ID_IVP_GREEN.warningTts
ObuConstants.USE_CASE_ID.COC -> TYPE_USECASE_ID_COC.warningTts
0x2C01 -> TYPE_USECASE_ID_ROAD_TRAMCAR.warningTts
0x2C02 -> TYPE_USECASE_ID_ROAD_TURN_LEFT_SHARP.warningTts
0x2C03 -> TYPE_USECASE_ID_ROAD_TURN_RIGHT_SHARP.warningTts
0x2C04 -> TYPE_USECASE_ID_ROAD_PEDESTRIAN_CROSSING.warningTts
0x2C05 -> TYPE_USECASE_ID_ROAD_PEDESTRIAN_SCHOOL.warningTts
0x2C06 -> TYPE_USECASE_ID_ROAD_COLLISION_WARNING.warningTts
0x2C07 -> TYPE_USECASE_ID_ROAD_ROUNDABOUTPNG.warningTts
0x2C08 -> TYPE_USECASE_ID_ROAD_TEST_SECTION.warningTts
0x2C09 -> TYPE_USECASE_ID_ROAD_HUMP_BRIDGE.warningTts
0x2C0A -> TYPE_USECASE_ID_ROAD_NO_PARKING.warningTts
0x2C11 -> TYPE_USECASE_ID_ROAD_GIVE_WAY.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//左转辅助
const val WARNING_BLIND_AREA_COLLISION = 20004//盲区/变道辅助
const val WARNING_REVERSE_OVERTAKING = 20005//逆向超车
const val WARNING_VEHICLE_BRAKES = 20006//紧急制动-前车急刹
const val WARNING_ABNORMAL_VEHICLE = 20007//异常车辆提醒
const val WARNING_VEHICLE_CONTROL = 20008//车辆失控预警
const val WARNING_SPECIAL_VEHICLE_ACCESS = 20009//特种车辆通行
const val WARNING_SPEED_LIMIT = 20010//限速预警
const val WARNING_RED_LIGHT = 20011//闯红灯预警
const val warning_congestion = 20012//前方道路拥堵
const val WARNING_TRAFFIC_SPEED_GUIDE = 20013//绿波通行车速引导
const val WARNING_CAR_PLATE = 20014//车内标牌
const val WARNING_VULNERABLE_TRANSPORT_PARTICIPANT = 20015//弱势交通参与者预警
const val WARNING_ROAD_HAZARDS = 20016//道路危险情况预警
const val WARNING_OVER_SPEED = 20017//超速预警
const val WARNING_ROUNDABOUT = 20018//环岛
const val WARNING_GIVE_WAY = 20019//减速让行
const val WARNING_BAN_ASTERN = 20020//禁止倒车
const val WARNING_TURN_LEFT_SHARP = 20021//左转急弯
const val WARNING_TURN_RIGHT_SHARP = 20022//左转急弯
const val WARNING_TRAMCAR = 20023//有轨电车
const val WARNING_TEST_SECTION = 20024//考试路段
const val WARNING_ACCIDENT_PRONE_ROAD_SECTION = 20025//事故易发路段
const val WARNING_HUMP_BRIDGE = 20026//驼峰桥
const val WARNING_SCHOOL = 20027// 学校
}
}

View File

@@ -176,7 +176,78 @@ class MogoPrivateObuManager private constructor() {
// CVX_ROAD_TRAFFIC_INFO_IND 道路交通事件信息:十字路口、限速、人行道
override fun onCvxRoadTrafficInfoIndInfo(info: CvxRoadTrafficInfoIndInfo?) {
Logger.d(MogoObuConst.TAG_MOGO_OBU, "onCvxRoadTrafficInfoIndInfo ------> $info")
info?.let {
var appId = 0
when (info.rti_type) {
//急转弯
0x2 -> {
appId = ObuConstants.USE_CASE_ID.IVS
}
//施工
0x7 -> {
appId = ObuConstants.USE_CASE_ID.IVS
}
//限速
0xA -> {
appId = ObuConstants.USE_CASE_ID.SLW
}
//事故
0xC -> {
appId = 0x2C06
}
//拥堵
0xD -> {
appId = ObuConstants.USE_CASE_ID.TJW
}
//行人
0xF -> {
appId = 0x2C04
}
//禁止停车
0x13 -> {
appId = 0x2C10
}
//学校
0x14 -> {
appId = 0x2C05
}
//桥梁
0x17 -> {
appId = 0x2C09
}
}
// 只处理需要的场景
if (appId > 0) {
when (info.status) {
// 添加
ObuConstants.STATUS.ADD -> {
//显示警告红边
mMogoServiceApis!!.v2XListenerManager.warningChangedForListenerWithDirection(
getMessageDirection(5),
"ACTION_V2X_FRONT_WARNING"
)
val ttsContent = WarningTypeEnum.getWarningTts(appId)
val alertContent = WarningTypeEnum.getWarningContent(appId)
mIMoGoWaringProvider!!.showWarningV2X(
appId,
alertContent,
ttsContent,
appId.toString()
)
}
// 删除
ObuConstants.STATUS.DELETE -> {
// 移除顶部弹窗
mIMoGoWaringProvider?.disableWarningV2X(appId.toString())
}
// 更新
else -> {
}
}
}
}
}