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