diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/enums/WarningTypeEnum.kt b/modules/mogo-module-common/src/main/java/com/mogo/module/common/enums/WarningTypeEnum.kt index c707ec6f8a..0004e23e35 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/enums/WarningTypeEnum.kt +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/enums/WarningTypeEnum.kt @@ -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// 学校 } } \ No newline at end of file diff --git a/modules/mogo-module-obu-mogo/src/main/java/com/mogo/module/obu/mogo/MogoPrivateObuManager.kt b/modules/mogo-module-obu-mogo/src/main/java/com/mogo/module/obu/mogo/MogoPrivateObuManager.kt index 3fc763f3ae..c7c525dc25 100644 --- a/modules/mogo-module-obu-mogo/src/main/java/com/mogo/module/obu/mogo/MogoPrivateObuManager.kt +++ b/modules/mogo-module-obu-mogo/src/main/java/com/mogo/module/obu/mogo/MogoPrivateObuManager.kt @@ -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 -> { + + } + } + } + } }