diff --git a/core/function-impl/mogo-core-function-check/src/main/res/values/dimens.xml b/core/function-impl/mogo-core-function-check/src/main/res/values/dimens.xml index 883f2e5611..b74d43a0a7 100644 --- a/core/function-impl/mogo-core-function-check/src/main/res/values/dimens.xml +++ b/core/function-impl/mogo-core-function-check/src/main/res/values/dimens.xml @@ -1,5 +1,5 @@ 1900px - 770px + 730px diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/TrafficTypeEnum.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/TrafficTypeEnum.kt index 812d6e42b3..6a3a50eb7f 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/TrafficTypeEnum.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/TrafficTypeEnum.kt @@ -57,6 +57,12 @@ enum class TrafficTypeEnum( R.raw.daba, R.raw.daba ), + TYPE_TRAFFIC_ID_CAMERA( + 9, + "摄像头", + R.raw.shexiangtou, + R.raw.shexiangtou + ), TYPE_TRAFFIC_ID_SPECIAL_VEHICLE( 11, "特殊车辆", diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/AdvanceWarningBean.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/AdvanceWarningBean.kt index f64ea6cd66..f82ea8fbfe 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/AdvanceWarningBean.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/AdvanceWarningBean.kt @@ -7,20 +7,22 @@ import androidx.annotation.Keep */ @Keep data class AdvanceWarningBean( - var objectId: String, - var status: Int, - var typeId: Int, + var objectId: String,// 物体唯一标识 + var objectType: Int,// 物体类型 1-人 2-自行车 3-小轿车 4-摩托车 5-红绿灯 6-bus 8-truck 9-路边摄像头 + var status: Int,// 1.add 2.update 3.delete + var typeId: Int,// 首位大类标识 1预警 2规划 3拥堵 4事故 var time: Long, - var level: Int, + var level: Int,// 预警等级 + var threatLevel: Int,// 危险等级:0保留,1模型原始颜色,2通知--黄,3警告--红 var position: Position, - var heading: Int, + var heading: Double, var speed: Double, var distance: Double, - var roadId: String, - var laneId: String, - var laneNum: Int, - var gdLocusList: List, - var locusList: List + var roadId: String,// 道路id + var laneId: String,// 车道id + var laneNum: Int,// 车道号:中心线编号为0, 中心线右侧编号为负数,3车道通行Road的车道编号,0,-1,-2,-3 + var gdLocusList: List,// 线性经纬度轨迹列表(高德) + var locusList: List// 轨迹列表(Wgs84坐标系) ) @Keep diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/listener/V2XMessageListener_404000.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/listener/V2XMessageListener_404000.java deleted file mode 100644 index 9597b62f40..0000000000 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/listener/V2XMessageListener_404000.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.mogo.module.v2x.listener; - -import static com.mogo.module.v2x.V2XConst.MODULE_NAME; - -import com.mogo.eagle.core.data.v2x.AdvanceWarningBean; -import com.mogo.service.cloud.socket.IMogoOnMessageListener; -import com.mogo.utils.logger.Logger; -import com.mogo.utils.network.utils.GsonUtil; - -/** - * @author chenfufeng - * @description 路口碰撞预警、盲区预警等 - * @since: 2021/9/23 - */ -public class V2XMessageListener_404000 implements IMogoOnMessageListener { - @Override - public Class target() { - return AdvanceWarningBean.class; - } - - @Override - public void onMsgReceived(AdvanceWarningBean message) { - // 将接收到的数据转换成最优车道推荐的场景数据 - Logger.i(MODULE_NAME, "V2XMessageListener_404000:" + GsonUtil.jsonFromObject(message)); - } -} diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/listener/V2XMessageListener_404000.kt b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/listener/V2XMessageListener_404000.kt new file mode 100644 index 0000000000..40f54df0bb --- /dev/null +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/listener/V2XMessageListener_404000.kt @@ -0,0 +1,117 @@ +package com.mogo.module.v2x.listener + +import com.mogo.eagle.core.data.enums.TrafficTypeEnum +import com.mogo.eagle.core.data.traffic.TrafficData +import com.mogo.service.cloud.socket.IMogoOnMessageListener +import com.mogo.eagle.core.data.v2x.AdvanceWarningBean +import com.mogo.module.v2x.V2XConst +import com.mogo.eagle.core.function.call.hmi.CallerHmiManager +import com.mogo.eagle.core.function.api.hmi.warning.WarningStatusListener +import com.mogo.module.common.drawer.TrafficMarkerDrawer +import com.mogo.module.common.enums.EventTypeEnum +import com.mogo.module.v2x.utils.V2XUtils +import com.mogo.utils.logger.Logger + +/** + * @author chenfufeng + * @description 路口碰撞预警、盲区预警等 + * @since: 2021/9/23 + */ +class V2XMessageListener_404000 : IMogoOnMessageListener { + override fun target(): Class { + return AdvanceWarningBean::class.java + } + + override fun onMsgReceived(message: AdvanceWarningBean?) { + if (message == null) { + Logger.i(V2XConst.MODULE_NAME, "V2XMessageListener_404000:message is null!") + return + } + Logger.i( + V2XConst.MODULE_NAME, + "V2XMessageListener_404000:" + com.mogo.utils.network.utils.GsonUtil.jsonFromObject( + message + ) + ) + V2XUtils.runOnUiThread { + var trafficData = buildTrafficData(message) + when (message.status) { + 1 -> { + var tts = "" + var content = "" + var appId = 0 + when (message.typeId) { + // 弱势交通碰撞预警 + 1001 -> { + appId = EventTypeEnum.TYPE_USECASE_ID_VRUCW_PERSON.poiType.toInt() + tts = EventTypeEnum.TYPE_USECASE_ID_VRUCW_PERSON.tts + content = EventTypeEnum.TYPE_USECASE_ID_VRUCW_PERSON.content + } + // 弱势交通逆行预警 + 1002 -> { + appId = EventTypeEnum.TYPE_USECASE_ID_VRUCW_PERSON.poiType.toInt() + tts = "行人逆行预警" + content = "行人逆行预警" + } + // 交叉路口碰撞预警 + 1003 -> { + appId = EventTypeEnum.TYPE_USECASE_ID_ICW.poiType.toInt() + tts = EventTypeEnum.TYPE_USECASE_ID_ICW.tts + content = EventTypeEnum.TYPE_USECASE_ID_ICW.content + } + // 盲区预警 + 1004 -> { + appId = EventTypeEnum.TYPE_USECASE_ID_BSW.poiType.toInt() + tts = String.format(EventTypeEnum.TYPE_USECASE_ID_BSW.tts, getWarningDirection()) + content = EventTypeEnum.TYPE_USECASE_ID_BSW.content + } + // 逆向超车预警 + 1005 -> { + appId = EventTypeEnum.TYPE_USECASE_ID_DNPW.poiType.toInt() + tts = EventTypeEnum.TYPE_USECASE_ID_DNPW.tts + content = EventTypeEnum.TYPE_USECASE_ID_DNPW.content + } + } + // 显示弹框,语音提示 + CallerHmiManager.showWarningV2X(appId, content, tts, + "$appId", object : WarningStatusListener { + override fun onShow() {} + override fun onDismiss() { + } + }) + TrafficMarkerDrawer.updateITrafficInfo(trafficData) + } + 2 -> { + TrafficMarkerDrawer.updateITrafficInfo(trafficData) + } + 3 -> { + TrafficMarkerDrawer.removeCvxRvInfoIndInfo(trafficData.uuid) + } + } + } + } + + private fun buildTrafficData(message: AdvanceWarningBean): TrafficData { + return TrafficData().apply { + type = when (message.objectType) { + 1 -> TrafficTypeEnum.TYPE_TRAFFIC_ID_PEOPLE + 2 -> TrafficTypeEnum.TYPE_TRAFFIC_ID_BICYCLE + 3 -> TrafficTypeEnum.TYPE_TRAFFIC_ID_TA_CHE + 4 -> TrafficTypeEnum.TYPE_TRAFFIC_ID_MOTO + 6 -> TrafficTypeEnum.TYPE_TRAFFIC_ID_BUS + 8 -> TrafficTypeEnum.TYPE_TRAFFIC_ID_TRUCK + 9 -> TrafficTypeEnum.TYPE_TRAFFIC_ID_CAMERA + else -> TrafficTypeEnum.TYPE_TRAFFIC_ID_WEI_ZHI + } + uuid = message.objectId + lat = message.position.lat + lon = message.position.lon + heading = message.heading + threatLevel = message.threatLevel + } + } + + private fun getWarningDirection(): String { + return "右" + } +} \ No newline at end of file