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 new file mode 100644 index 0000000000..f64ea6cd66 --- /dev/null +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/AdvanceWarningBean.kt @@ -0,0 +1,27 @@ +package com.mogo.eagle.core.data.v2x + +import androidx.annotation.Keep + +/** + * 路口碰撞预警、盲区预警等通用Bean + */ +@Keep +data class AdvanceWarningBean( + var objectId: String, + var status: Int, + var typeId: Int, + var time: Long, + var level: Int, + var position: Position, + var heading: Int, + var speed: Double, + var distance: Double, + var roadId: String, + var laneId: String, + var laneNum: Int, + var gdLocusList: List, + var locusList: List +) + +@Keep +data class Position(var lat: Double, var lon: Double) diff --git a/foudations/mogo-aicloud-services-sdk/src/main/java/com/mogo/aicloud/services/socket/MogoAiCloudSocketManager.java b/foudations/mogo-aicloud-services-sdk/src/main/java/com/mogo/aicloud/services/socket/MogoAiCloudSocketManager.java index 2313dd529f..ac9f284b7a 100644 --- a/foudations/mogo-aicloud-services-sdk/src/main/java/com/mogo/aicloud/services/socket/MogoAiCloudSocketManager.java +++ b/foudations/mogo-aicloud-services-sdk/src/main/java/com/mogo/aicloud/services/socket/MogoAiCloudSocketManager.java @@ -167,6 +167,10 @@ public class MogoAiCloudSocketManager extends ConnectionLifecycleListener implem @Override public void onMsgReceived(int msgType, Object obj) { + if (obj == null) { + Logger.e(TAG,"Failed to parse the received message!"); + return; + } Logger.d(TAG,"onMsgReceived obj className : " + obj.getClass().getName()); List listeners = mListeners.get(msgType); if (listeners != null && !listeners.isEmpty()) { diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/V2XSocketManager.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/V2XSocketManager.java index 0dbad21eb8..7ab374d1f7 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/V2XSocketManager.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/V2XSocketManager.java @@ -11,6 +11,7 @@ import com.mogo.module.v2x.listener.V2XMessageListener_401011; import com.mogo.module.v2x.listener.V2XMessageListener_401012; import com.mogo.module.v2x.listener.V2XMessageListener_402000; import com.mogo.module.v2x.listener.V2XMessageListener_401018; +import com.mogo.module.v2x.listener.V2XMessageListener_404000; import com.mogo.utils.logger.Logger; import static com.mogo.module.v2x.V2XConst.MODULE_NAME; @@ -36,6 +37,7 @@ public class V2XSocketManager { private V2XMessageListener_401010 v2XMessageListener_401010; private V2XMessageListener_402000 mV2XMessageListener_402000; private V2XMessageListener_401018 mV2XMessageListener401018; + private V2XMessageListener_404000 mV2XMessageListener_404000; private V2XSocketManager() { } @@ -66,6 +68,7 @@ public class V2XSocketManager { register401007(); register401009(); register401020(); + register404000(); registerWarningMsg(); // TODO 这里是前瞻需求,量产版本需要注释 @@ -120,6 +123,11 @@ public class V2XSocketManager { .getMoGoSocketManager() .unregisterOnMessageListener(402000, mV2XMessageListener_402000); } + if (mV2XMessageListener_404000 != null) { + V2XServiceManager + .getMoGoSocketManager() + .unregisterOnMessageListener(404000, mV2XMessageListener_404000); + } } /** @@ -245,6 +253,17 @@ public class V2XSocketManager { ); } + public void register404000() { + mV2XMessageListener_404000 = new V2XMessageListener_404000(); + // 道路事件,在线车辆绘制 + V2XServiceManager + .getMoGoSocketManager() + .registerOnMessageListener( + 404000, + mV2XMessageListener_404000 + ); + } + /** * * 车路云—场景预警-V1.0 * * http://wiki.zhidaohulian.com/pages/viewpage.action?pageId=52829799 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 new file mode 100644 index 0000000000..9597b62f40 --- /dev/null +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/listener/V2XMessageListener_404000.java @@ -0,0 +1,26 @@ +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)); + } +}