[6.5.0]feat: 通用事件弹框,增加支持 文本/图片/直播拉流 三种形式展示;

refactor: 优化 通过公交站点 计算逻辑;
feat: 通过公交站点,增加调式面板按钮 动态控制是否展示 计算范围边界点在高精地图绘制;
feat: 增加定义 事件类型 通过公交站点 他车逆行;
This commit is contained in:
aibingbing
2024-07-02 16:27:30 +08:00
parent 9b5a965fc2
commit 1df3e6637e
16 changed files with 299 additions and 69 deletions

View File

@@ -100,4 +100,11 @@ object HmiBuildConfig {
@Volatile
var isShowTurnLightView = true
/**
* 是否展示 通过公交站 计算时的范围边界点
*/
@JvmField
@Volatile
var isShowBusStationStrategyBorderPoint = false
}

View File

@@ -457,6 +457,13 @@ enum class EventTypeEnumNew(
content = "前方%s米交通事故",
tts = "蘑菇路侧提醒您,前方%s米交通事故"
),
TYPE_USECASE_ROAD_BUS_STATION(
245.toString(),
"通过公交站",
poiTypeSrcVr = R.drawable.icon_v2x_bus_station_driver,
content = "前方%s米有公交站蘑菇提醒您小心右侧行人及来车",
tts = "前方%s米有公交站蘑菇提醒您小心右侧行人及来车"
),
TYPE_ATTENTION_CONFLUENCE(
44.toString(),
"前方车辆汇流",
@@ -504,7 +511,13 @@ enum class EventTypeEnumNew(
content = "前方%s米道路施工",
tts = "前方%s米道路施工"
),
TYPE_SOCKET_ROAD_WRONG_DIRECTION_CAR(
"100062",
"他车逆行",
poiTypeSrcVr = R.drawable.icon_v2x_wrong_direction_car_driver,
content = "前方%s米有车辆异常倒车/逆行,蘑菇提醒您注意观察小心通过",
tts = "前方%s米有车辆异常倒车/逆行,蘑菇提醒您注意观察小心通过"
),
TYPE_ERROR(
0.toString(),
"未知/错误/异常",
@@ -691,6 +704,7 @@ enum class EventTypeEnumNew(
FOURS_PONDING.poiType, FOURS_ICE.poiType, FOURS_ACCIDENT.poiType,
FOURS_ACCIDENT_01.poiType, FOURS_ACCIDENT_02.poiType, FOURS_ACCIDENT_03.poiType,
FOURS_ACCIDENT_04.poiType, FOURS_ACCIDENT_05.poiType -> if (isVrMode) R.drawable.bg_v2x_event_type_red_vr else R.drawable.bg_v2x_event_type_read
TYPE_USECASE_ROAD_BUS_STATION.poiType -> R.drawable.bg_v2x_bus_station
else -> {
if (isVrMode) R.drawable.bg_v2x_event_type_red_vr else R.drawable.bg_v2x_event_type_read
}
@@ -729,6 +743,7 @@ enum class EventTypeEnumNew(
TYPE_SOCKET_ROAD_SHIGONG.poiType,
TYPE_SOCKET_ROAD_JINGZHI.poiType,
TYPE_SOCKET_ROAD_SHIGU.poiType,
TYPE_SOCKET_ROAD_WRONG_DIRECTION_CAR.poiType,
TYPE_SOCKET_ROAD_CONGESTION.poiType -> true
else -> false
}
@@ -749,6 +764,8 @@ enum class EventTypeEnumNew(
TYPE_SOCKET_ROAD_JINGZHI.poiType -> TYPE_SOCKET_ROAD_JINGZHI.tts
TYPE_SOCKET_ROAD_SHIGU.poiType -> TYPE_SOCKET_ROAD_SHIGU.tts
TYPE_SOCKET_ROAD_CONGESTION.poiType -> TYPE_SOCKET_ROAD_CONGESTION.tts
TYPE_SOCKET_ROAD_WRONG_DIRECTION_CAR.poiType -> TYPE_SOCKET_ROAD_WRONG_DIRECTION_CAR.tts
TYPE_USECASE_ROAD_BUS_STATION.poiType -> TYPE_USECASE_ROAD_BUS_STATION.tts
else -> "道路事件"
}
}
@@ -770,6 +787,8 @@ enum class EventTypeEnumNew(
TYPE_SOCKET_ROAD_JINGZHI.poiType -> TYPE_SOCKET_ROAD_JINGZHI.content
TYPE_SOCKET_ROAD_SHIGU.poiType -> TYPE_SOCKET_ROAD_SHIGU.content
TYPE_SOCKET_ROAD_CONGESTION.poiType -> TYPE_SOCKET_ROAD_CONGESTION.content
TYPE_SOCKET_ROAD_WRONG_DIRECTION_CAR.poiType -> TYPE_SOCKET_ROAD_WRONG_DIRECTION_CAR.content
TYPE_USECASE_ROAD_BUS_STATION.poiType -> TYPE_USECASE_ROAD_BUS_STATION.content
else -> "道路事件"
}
}
@@ -1131,6 +1150,14 @@ enum class EventTypeEnumNew(
TYPE_IPC_DISCONNECT_FOR_MO_FANG.poiType -> {
TYPE_IPC_DISCONNECT_FOR_MO_FANG.poiTypeStr
}
// 通过公交站
TYPE_USECASE_ROAD_BUS_STATION.poiType -> {
TYPE_USECASE_ROAD_BUS_STATION.poiTypeStr
}
// 他车逆行
TYPE_SOCKET_ROAD_WRONG_DIRECTION_CAR.poiType -> {
TYPE_SOCKET_ROAD_WRONG_DIRECTION_CAR.poiTypeStr
}
else ->{
"事件通知"
}
@@ -1157,6 +1184,10 @@ enum class EventTypeEnumNew(
TYPE_SOCKET_ROAD_JINGZHI.poiType -> R.drawable.v2x_icon_jingzhi_zhangai
TYPE_SOCKET_ROAD_SHIGU.poiType -> if (AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode)) R.drawable.icon_shigu_passenger else R.drawable.icon_shigu_driver
TYPE_SOCKET_ROAD_CONGESTION.poiType -> R.drawable.v2x_icon_yongdu_vr
// 他车逆行/倒车
TYPE_SOCKET_ROAD_WRONG_DIRECTION_CAR.poiType -> if (AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode)) R.drawable.icon_v2x_wrong_direction_car_passenger else R.drawable.icon_v2x_wrong_direction_car_driver
// 通过公交站
TYPE_USECASE_ROAD_BUS_STATION.poiType -> if (AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode)) R.drawable.icon_v2x_bus_station_passenger else R.drawable.icon_v2x_bus_station_driver
//拥堵
FOURS_BLOCK_UP.poiType -> {
R.drawable.icon_warning_v2x_congestion
@@ -1400,7 +1431,8 @@ enum class EventTypeEnumNew(
TYPE_USECASE_ID_ACCIDENT.poiType -> TYPE_USECASE_ID_ACCIDENT.content
TYPE_ATTENTION_CONFLUENCE.poiType -> TYPE_ATTENTION_CONFLUENCE.content
TYPE_PEDESTRIAN_CROSSING.poiType -> TYPE_PEDESTRIAN_CROSSING.content
TYPE_SOCKET_ROAD_WRONG_DIRECTION_CAR.poiType -> TYPE_SOCKET_ROAD_WRONG_DIRECTION_CAR.content
TYPE_USECASE_ROAD_BUS_STATION.poiType -> TYPE_USECASE_ROAD_BUS_STATION.content
else -> TYPE_ERROR.content
}
}
@@ -1463,7 +1495,8 @@ enum class EventTypeEnumNew(
TYPE_USECASE_ID_ACCIDENT.poiType -> TYPE_USECASE_ID_ACCIDENT.tts
TYPE_ATTENTION_CONFLUENCE.poiType -> TYPE_ATTENTION_CONFLUENCE.tts
TYPE_PEDESTRIAN_CROSSING.poiType -> TYPE_PEDESTRIAN_CROSSING.tts
TYPE_SOCKET_ROAD_WRONG_DIRECTION_CAR.poiType -> TYPE_SOCKET_ROAD_WRONG_DIRECTION_CAR.tts
TYPE_USECASE_ROAD_BUS_STATION.poiType -> TYPE_USECASE_ROAD_BUS_STATION.tts
else -> TYPE_ERROR.tts
}
}

View File

@@ -4,16 +4,20 @@ package com.mogo.eagle.core.data.v2x
* 路侧道路事件 弹框
*/
data class RoadV2NEventWindowBean(
var eventType: RoadV2NEventType, //事件弹框类型
var eventId: String, //当前事件弹框 ID show时生成用于dismiss时使用
var timestamp: Long = 0, //事件发生事件戳
var iconResId: Int, //事件icon resource id
var iconResId: Int, //事件icon res id
var hintStr: String, //事件提示文案
var isNeedTTS: Boolean = false, //事件文案是否需要同步tts
var contentImageUrl: String, // Image 类型时图片 url
var cameraIp: String, // 路侧camera ip,用于请求获取拉流地址
var lon: Double, //事件坐标-经度
var lat: Double, //事件坐标-纬度
) {
override fun toString(): String {
return "RoadV2NEventWindowBean(eventId='$eventId', timestamp=$timestamp, iconResId=$iconResId, hintStr='$hintStr', isNeedTTS=$isNeedTTS, cameraIp='$cameraIp', lon=$lon, lat=$lat)"
return "RoadV2NEventWindowBean(eventType=$eventType, eventId='$eventId', timestamp=$timestamp, iconResId='$iconResId', hintStr='$hintStr', isNeedTTS=$isNeedTTS, contentImageUrl='$contentImageUrl', cameraIp='$cameraIp', lon=$lon, lat=$lat)"
}
}
}
enum class RoadV2NEventType { TEXT, IMAGE, LIVE_VIDEO }