213 添加obu 的标牌

This commit is contained in:
lixiaopeng
2022-11-22 22:59:51 +08:00
parent b5f41184da
commit e91fa29b16
4 changed files with 408 additions and 193 deletions

View File

@@ -237,76 +237,133 @@ class MogoPrivateObuNewManager private constructor() {
"$M_OBU${MogoObuConst.TAG_MOGO_OBU}",
"onMogoObuRsiWarning ------> $data"
)
if (data != null && data.warning_Msg != null && data.warning_Msg.size > 0) {
if (data != null && data.warningMsg != null && data.warningMsg.size > 0) {
var alertContent = ""
var ttsContent = ""
var appId = data.warning_Msg[0].sceneType.toString()
var appId = data.warningMsg[0].sceneType.toString()
val status = data.status
val level = data.warning_Msg[0].warningLevel
val direction = getMessageDirection(data.warning_Msg[0].targetPosition)
val level = data.warningMsg[0].warningLevel
val direction = getMessageDirection(data.warningMsg[0].targetPosition)
CallerLogger.d(
"$M_OBU${MogoObuConst.TAG_MOGO_OBU}",
"onCvxRtiThreatIndInfo appId = $appId --status = $status --level = $level -- eventSerialNum = ${data.warning_Msg[0].eventSerialNum} -- direction = $direction -- targetPosition = ${data.warning_Msg[0].targetPosition}"
"onCvxRtiThreatIndInfo appId = $appId --status = $status --level = $level -- eventSerialNum = ${data.warningMsg[0].eventSerialNum} -- direction = $direction -- targetPosition = ${data.warningMsg[0].targetPosition}"
)
when (appId) {
// 道路危险情况预警
V2iEventTypeEnum.TYPE_USECASE_ID_HLW.poiType
-> {
when (data.warning_Msg[0].eventSerialNum) {
MogoObuConstants.RTE.RTI_TYPE_RETRIGRADE -> { //车辆逆行
appId =
V2iEventTypeEnum.TYPE_USECASE_ID_ROAD_VEHICLE_RETROGRADE.poiType
}
MogoObuConstants.RTE.RTI_TYPE_SPEEDING -> { //超速行驶
appId = V2iEventTypeEnum.TYPE_USECASE_ID_SLW.poiType
}
when (data.warningMsg[0].eventSerialNum) {
MogoObuConstants.RTE.RTI_TYPE_BREAKDOWN -> {//车辆故障
appId = V2iEventTypeEnum.TYPE_USECASE_ID_BREAKDOWN_WARNING.poiType
}
MogoObuConstants.RTE.RTI_TYPE_CONSTRUCTION_RTE -> { //施工占道
appId = V2iEventTypeEnum.FOURS_ROAD_WORK.poiType
}
MogoObuConstants.RTE.RTI_TYPE_PARKING_VIOLATION -> { //异常停车
appId = V2iEventTypeEnum.TYPE_USECASE_ID_ROAD_PARKING.poiType
}
MogoObuConstants.RTE.RTI_TYPE_ROAD_WATER -> { //道路积水
appId = V2iEventTypeEnum.FOURS_PONDING.poiType
}
MogoObuConstants.RTE.RTI_TYPE_PARKING_VIOLATION -> { //异常停车
appId = V2iEventTypeEnum.TYPE_USECASE_ID_ROAD_PARKING.poiType
}
// MogoObuConstants.RTE.RTI_TYPE_CONSTRUCTION_RTE -> { //施工占道 TODO
// appId = V2iEventTypeEnum.FOURS_ROAD_WORK.poiType
// }
MogoObuConstants.RTE.RTI_TYPE_TJW -> { // 拥堵
appId = V2iEventTypeEnum.TYPE_USECASE_ID_TJW.poiType
}
MogoObuConstants.RTE.RTI_TYPE_SPEEDING -> { //超速行驶
appId = V2iEventTypeEnum.TYPE_USECASE_ID_SLW.poiType
}
MogoObuConstants.RTE.RTI_TYPE_RETRIGRADE -> { //车辆逆行
appId = V2iEventTypeEnum.TYPE_USECASE_ID_ROAD_VEHICLE_RETROGRADE.poiType
}
}
alertContent = V2iEventTypeEnum.getWarningContent(appId)
ttsContent = V2iEventTypeEnum.getWarningTts(appId)
}
V2iEventTypeEnum.TYPE_USECASE_ID_IVS.poiType -> { //车内标牌
when (data.warning_Msg[0].eventSerialNum) {
//车内标牌
V2iEventTypeEnum.TYPE_USECASE_ID_IVS.poiType -> {
when (data.warningMsg[0].eventSerialNum) {
MogoObuConstants.RTS.RTI_TYPE_INTERSECTION -> { //十字路口
appId = V2iEventTypeEnum.TYPE_ID_NTERSECTION.poiType
}
MogoObuConstants.RTS.RTI_TYPE_SHAPR_TURNS -> { //急转弯
appId = V2iEventTypeEnum.TYPE_ID_SHAPR_TURNS.poiType
}
MogoObuConstants.RTS.RTI_TYPE_BRIDGE -> { //桥梁
appId = V2iEventTypeEnum.TYPE_ID_BRIDGE.poiType
}
MogoObuConstants.RTS.RTI_TYPE_PEDESTRIAN -> { //行人
appId = V2iEventTypeEnum.TYPE_ID_PEDESTRIAN.poiType
}
MogoObuConstants.RTS.RTI_TYPE_SLIPPERY_ROAD -> { //路滑
appId = V2iEventTypeEnum.TYPE_ID_SLIPPERY_ROAD.poiType
}
MogoObuConstants.RTS.RTI_TYPE_TUNNEL -> { //隧道
appId = V2iEventTypeEnum.TYPE_ID_TUNNEL.poiType
}
MogoObuConstants.RTS.RTI_TYPE_FERRY -> { //渡轮
appId = V2iEventTypeEnum.TYPE_ID_FERRY.poiType
}
MogoObuConstants.RTS.RTI_TYPE_UNEVEN_ROAD -> { //路面不平
appId = V2iEventTypeEnum.TYPE_ID_UNEVEN_ROAD.poiType
}
MogoObuConstants.RTS.RTI_TYPE_NON_MOTOR_VEHICLE -> { //非机动车
appId = V2iEventTypeEnum.TYPE_ID_NON_MOTOR_VEHICLE.poiType
}
MogoObuConstants.RTS.RTI_TYPE_OBSTACLE -> { //障碍
appId = V2iEventTypeEnum.TYPE_ID_OBSTACLE.poiType
}
MogoObuConstants.RTS.RTI_TYPE_CONSTRUCTION -> { //施工
appId = V2iEventTypeEnum.TYPE_FOURS_ROAD_WORK.poiType
}
MogoObuConstants.RTS.RTI_TYPE_VEHICLE_QUEUE -> { //车队
appId = V2iEventTypeEnum.TYPE_VEHICLE_QUEUE.poiType
}
MogoObuConstants.RTS.RTI_TYPE_NO_PASSING -> { //不通
appId = V2iEventTypeEnum.TYPE_NO_PASSING.poiType
}
MogoObuConstants.RTS.RTI_TYPE_NO_TURNING_AROUND -> { //禁止掉头
appId = V2iEventTypeEnum.TYPE_NO_TURNING_AROUND.poiType
}
MogoObuConstants.RTS.RTI_TYPE_NO_STOPPING -> { //禁止停车
appId = V2iEventTypeEnum.TYPE_USECASE_ID_ROAD_NO_PARKING.poiType
}
MogoObuConstants.RTS.RTI_TYPE_NO_TOOTING -> { //禁止鸣笛
appId = V2iEventTypeEnum.TYPE_USECASE_ID_ROAD_NO_TOOTING.poiType
}
MogoObuConstants.RTS.RTI_TYPE_SPEED_LIMIT -> { //限速
appId = V2iEventTypeEnum.TYPE_USECASE_ID_ROAD_SPEED_LIMIT.poiType
}
MogoObuConstants.RTS.RTI_TYPE_GO_STRAIGHT_TURN_RIGHT -> { //直行或右转
appId = V2iEventTypeEnum.TYPE_USECASE_ID_GO_STRAIGHT_TURN_RIGHT.poiType
}
MogoObuConstants.RTS.RTI_TYPE_BUS_WARNING -> { //公交提醒
appId = V2iEventTypeEnum.TYPE_USECASE_ID_BUS_WARNING.poiType
}
MogoObuConstants.RTS.RTI_TYPE_NARROW_RIGHT -> { //右侧变窄/车道数减少
appId = V2iEventTypeEnum.TYPE_USECASE_ID_NARROW_RIGHT.poiType
}
MogoObuConstants.RTS.RTI_TYPE_GAS_STATION -> { //加油站
appId = V2iEventTypeEnum.TYPE_USECASE_ID_GAS_STATION.poiType
}
MogoObuConstants.RTS.RTI_TYPE_SCHOOL -> { //学校
appId =
V2iEventTypeEnum.TYPE_USECASE_ID_ROAD_PEDESTRIAN_SCHOOL.poiType
appId = V2iEventTypeEnum.TYPE_USECASE_ID_ROAD_PEDESTRIAN_SCHOOL.poiType
}
}
alertContent = V2iEventTypeEnum.getWarningContent(appId)
ttsContent = V2iEventTypeEnum.getWarningTts(appId)
}
// 前方拥堵提醒 TODO
V2iEventTypeEnum.TYPE_USECASE_ID_TJW.poiType -> {
ttsContent = V2iEventTypeEnum.getWarningTts(appId)
alertContent = if (data.warning_Msg[0].distance.toInt() != 0) {
String.format(
V2iEventTypeEnum.getWarningContent(appId),
data.warning_Msg[0].distance.toInt()
)
} else {
"前方拥堵,减速慢行"
MogoObuConstants.RTS.RTI_TYPE_ACCIDENT -> { //事故
appId = V2iEventTypeEnum.TYPE_USECASE_ID_ACCIDENT.poiType
}
}
}
//限速预警 TODO 参考之前的
}
alertContent = V2iEventTypeEnum.getWarningContent(appId)
ttsContent = V2iEventTypeEnum.getWarningTts(appId)
alertContent = String.format(alertContent, data.warningMsg[0].distance.toString(), data.warningMsg[0].eventRadius.toString())
ttsContent = String.format(ttsContent, data.warningMsg[0].distance.toString(), data.warningMsg[0].eventRadius.toString())
CallerLogger.d(
"$M_OBU${MogoObuConst.TAG_MOGO_OBU}",
"ttsContent = $ttsContent --alertContent = $alertContent --appId = $appId ---direction = ${direction.direction} "
@@ -319,7 +376,7 @@ class MogoPrivateObuNewManager private constructor() {
-> {
//显示警告红边
// CallerHmiManager.showWarning(direction)
//显示弹框,语音提示
//显示弹框,语音提示,数据在消息盒子里面展示,此处不在处理弹框
CallerHmiManager.showWarningV2X(
appId,
alertContent,
@@ -342,9 +399,9 @@ class MogoPrivateObuNewManager private constructor() {
// 删除
MogoObuConstants.STATUS.DELETE -> {
// 关闭警告红边
CallerHmiManager.showWarning(WarningDirectionEnum.ALERT_WARNING_NON)
// CallerHmiManager.showWarning(WarningDirectionEnum.ALERT_WARNING_NON)
// 移除顶部弹窗
CallerHmiManager.disableWarningV2X((appId + direction.direction))
// CallerHmiManager.disableWarningV2X((appId + direction.direction))
// 更新数据
TrafficDataConvertUtilsNew.cvxRtiThreatIndInfo2TrafficData(data)?.let {
// 事件结束,还原车辆颜色
@@ -382,8 +439,8 @@ class MogoPrivateObuNewManager private constructor() {
val alertContent = EventTypeEnumNew.getWarningContent(v2xType)
var level = -1
val direction = getMessageDirection(data.participant.targetPosition)
if (data.m_warning_msg != null && data.m_warning_msg.warningData != null && data.m_warning_msg.warningData.size > 0) {
level = data.m_warning_msg.warningData[0].warningLevel
if (data.warningMsg != null && data.warningMsg.warningData != null && data.warningMsg.warningData.size > 0) {
level = data.warningMsg.warningData[0].warningLevel
}
when (data.status) {

View File

@@ -19,11 +19,10 @@ object TrafficDataConvertUtilsNew {
val TAG = "TrafficDataConvertUtilsNew"
/**
* OBU 远车 转换交通元素数据,是否需要 TODO
* OBU 远车 转换交通元素数据,是否需要
*/
fun cvxRvInfoIndInfo2TrafficData(info: MogoObuRvWarningData): TrafficData? {
if (info.vehBasicsMsg == null) {
Log.e("liyz", "cvxRvInfoIndInfo2TrafficData info.vehBasicsMsg == null ")
CallerLogger.e("$M_OBU$TAG", "cvxRvInfoIndInfo2TrafficData 数据转换异常,请检查参数是否齐全")
return null
}
@@ -42,18 +41,16 @@ object TrafficDataConvertUtilsNew {
* OBU RSU道路事件预警信息 转换交通元素数据 标牌 为何要显示level
*/
fun cvxRtiThreatIndInfo2TrafficData(info: MogoObuRsiWarningData): TrafficData? {
if (info.warning_Msg == null || info.warning_Msg.size < 1 || info.warning_Msg[0].position == null) {
if (info.warningMsg == null || info.warningMsg.size < 1 || info.warningMsg[0].position == null) {
CallerLogger.e("$M_OBU$TAG", "数据转换异常,请检查参数是否齐全")
Log.e("liyz", "cvxRtiThreatIndInfo2TrafficData info.warning_Msg == null ")
return null
}
val trafficData = TrafficData()
trafficData.type = TrafficTypeEnum.TYPE_TRAFFIC_ID_DAO_LU_SHI_GONG
trafficData.uuid = info.warning_Msg[0].signSerialNum.toString()
trafficData.lat = info.warning_Msg[0].position.latitude
trafficData.lon = info.warning_Msg[0].position.longitude
trafficData.threatLevel = info.warning_Msg[0].warningLevel
Log.e("liyz", "cvxRtiThreatIndInfo2TrafficData trafficData -- ${trafficData.toString()}")
trafficData.uuid = info.warningMsg[0].signSerialNum.toString()
trafficData.lat = info.warningMsg[0].position.latitude
trafficData.lon = info.warningMsg[0].position.longitude
trafficData.threatLevel = info.warningMsg[0].warningLevel
return trafficData
}
@@ -63,7 +60,6 @@ object TrafficDataConvertUtilsNew {
fun cvxV2vThreatIndInfo2TrafficData(info: MogoObuRvWarningData): TrafficData? {
if (info == null || info.vehBasicsMsg == null || info.warningMsg == null) {
CallerLogger.e("$M_OBU$TAG", "数据转换异常,请检查参数是否齐全")
Log.e("liyz", "cvxV2vThreatIndInfo2TrafficData info == null ")
return null
}
val trafficData = TrafficData()
@@ -80,8 +76,6 @@ object TrafficDataConvertUtilsNew {
}
trafficData.type = TrafficTypeEnum.TYPE_TRAFFIC_ID_TA_CHE
Log.e("liyz", "cvxV2vThreatIndInfo2TrafficData trafficData = ${trafficData.toString()} ")
return trafficData
}
@@ -91,7 +85,6 @@ object TrafficDataConvertUtilsNew {
fun cvxPtcThreatIndInfo2TrafficData(info: MogoObuRsmWarningData): TrafficData? {
if (info.participant == null) {
CallerLogger.e("$M_OBU$TAG", "数据转换异常,请检查参数是否齐全")
Log.e("liyz", "cvxPtcThreatIndInfo2TrafficData info.participant ")
return null
}
val trafficData = TrafficData()
@@ -131,12 +124,11 @@ object TrafficDataConvertUtilsNew {
val ptcType = 0
// 判断车辆V2X预警级别调整车辆颜色
if (info.m_warning_msg != null && info.m_warning_msg.warningData != null) {
trafficData.threatLevel = info.m_warning_msg.warningData[0].warningLevel
if (info.warningMsg != null && info.warningMsg.warningData != null) {
trafficData.threatLevel = info.warningMsg.warningData[0].warningLevel
} else {
trafficData.threatLevel = 1
}
Log.e("liyz", "cvxPtcThreatIndInfo2TrafficData trafficData = ${trafficData.toString()} ")
return trafficData
}