From 22b41082a045e58419b7f9f12f07a3055ccd3d1a Mon Sep 17 00:00:00 2001 From: xinfengkun Date: Mon, 25 Apr 2022 10:12:35 +0800 Subject: [PATCH] =?UTF-8?q?[add]=E6=9B=B4=E6=96=B0PB=EF=BC=8C=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E4=BB=96=E8=BD=A6=E8=BD=A8=E8=BF=B9=E9=A2=84=E6=B5=8B?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../zhidao/adas/client/DataDistribution.java | 15 ++++ .../bean/PredictionObstacleTrajectory.java | 22 +++++ .../zhidao/adas/client/ui/InfoFragment.java | 3 + .../zhidao/adas/client/ui/MainActivity.java | 18 ++++ .../adas/client/ui/VersionFragment.java | 2 +- .../zhidao/adas/client/utils/Constants.java | 1 + .../src/main/res/layout/layout_float.xml | 4 +- .../autopilot/adapter/MoGoAdasListenerImpl.kt | 8 ++ .../src/main/proto/geometry.proto | 84 +++++++++++++++++++ .../src/main/proto/message_pad.proto | 6 +- .../src/main/proto/prediction.proto | 33 ++++++++ .../support/adas/high/OnAdasListener.java | 9 ++ .../support/adas/high/common/MessageType.java | 1 + .../adas/high/msg/MyMessageFactory.java | 7 ++ .../PredictionObstacleTrajectoryMessage.java | 28 +++++++ 15 files changed, 238 insertions(+), 3 deletions(-) create mode 100644 app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/PredictionObstacleTrajectory.java create mode 100644 libraries/mogo-adas-data/src/main/proto/geometry.proto create mode 100644 libraries/mogo-adas-data/src/main/proto/prediction.proto create mode 100644 libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/PredictionObstacleTrajectoryMessage.java diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/DataDistribution.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/DataDistribution.java index 4a2eb6705f..879dca8156 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/DataDistribution.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/DataDistribution.java @@ -10,6 +10,7 @@ import com.zhidao.adas.client.bean.GlobalPathResp; import com.zhidao.adas.client.bean.GnssInfo; import com.zhidao.adas.client.bean.MogoReportMessage; import com.zhidao.adas.client.bean.PerceptionTrafficLight; +import com.zhidao.adas.client.bean.PredictionObstacleTrajectory; import com.zhidao.adas.client.bean.RecordPanel; import com.zhidao.adas.client.bean.TrackedObjects; import com.zhidao.adas.client.bean.Trajectory; @@ -98,6 +99,7 @@ public class DataDistribution { public final List listAutopilotState = new ArrayList<>(); public final List listMogoReportMessage = new ArrayList<>(); public final List listPerceptionTrafficLight = new ArrayList<>(); + public final List listPredictionObstacleTrajectory = new ArrayList<>(); public final List listBasicInfoReq = new ArrayList<>(); public final List listRecordPanel = new ArrayList<>(); public final List listGlobalPathResp = new ArrayList<>(); @@ -205,6 +207,19 @@ public class DataDistribution { // for (OnAdasClientListener listener : listeners) { // listener.onPerceptionTrafficLight((PerceptionTrafficLight) data); // } +// } + } else if (data instanceof PredictionObstacleTrajectory) { + listPredictionObstacleTrajectory.add(0, time + str); + if (listPredictionObstacleTrajectory.size() > LIST_SIZE) { + listPredictionObstacleTrajectory.remove(listPredictionObstacleTrajectory.size() - 1); + } + if (listener != null) { + listener.onRefresh(); + } +// if (!listeners.isEmpty()) { +// for (OnAdasClientListener listener : listeners) { +// listener.onRefresh(); +// } // } } else if (data instanceof BasicInfoReq) { listBasicInfoReq.add(0, time + str); diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/PredictionObstacleTrajectory.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/PredictionObstacleTrajectory.java new file mode 100644 index 0000000000..5ea6472a70 --- /dev/null +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/PredictionObstacleTrajectory.java @@ -0,0 +1,22 @@ +package com.zhidao.adas.client.bean; + +import com.google.protobuf.TextFormat; + +import mogo.telematics.pad.MessagePad; +import prediction.Prediction; + +public class PredictionObstacleTrajectory extends BaseInfo { + public final Prediction.mPredictionObjects bean; + + public PredictionObstacleTrajectory(MessagePad.Header header, Prediction.mPredictionObjects bean) { + super("接收", bean.getSerializedSize(), header); + this.bean = bean; + } + + + @Override + public String toString() { + return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean); + } + +} diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/InfoFragment.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/InfoFragment.java index 0efabf141b..4ea018b8ea 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/InfoFragment.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/InfoFragment.java @@ -146,6 +146,9 @@ public class InfoFragment extends BaseFragment { case Constants.TITLE.RECEIVE_PERCEPTION_TRAFFIC_LIGHT: adapter.setData(DataDistribution.getInstance().listPerceptionTrafficLight); break; + case Constants.TITLE.RECEIVE_PREDICTION_OBSTACLE_TRAJECTORY: + adapter.setData(DataDistribution.getInstance().listPredictionObstacleTrajectory); + break; case Constants.TITLE.RECEIVE_ERROR: adapter.setData(DataDistribution.getInstance().listErrorData); break; diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/MainActivity.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/MainActivity.java index b112608253..8906ff70f3 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/MainActivity.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/MainActivity.java @@ -57,6 +57,7 @@ import com.zhidao.adas.client.bean.IPCConnectState; import com.zhidao.adas.client.bean.MogoReportMessage; import com.zhidao.adas.client.bean.MySSHResult; import com.zhidao.adas.client.bean.PerceptionTrafficLight; +import com.zhidao.adas.client.bean.PredictionObstacleTrajectory; import com.zhidao.adas.client.bean.RecordPanel; import com.zhidao.adas.client.bean.TrackedObjects; import com.zhidao.adas.client.bean.Trajectory; @@ -91,6 +92,7 @@ import io.netty.channel.Channel; import mogo.telematics.pad.MessagePad; import mogo_msg.MogoReportMsg; import perception.TrafficLightOuterClass; +import prediction.Prediction; import record_cache.RecordPanelOuterClass; public class MainActivity extends BaseActivity implements OnAdasListener, OnAdasConnectStatusListener, BaseAdapter.OnItemClickListener { @@ -140,6 +142,7 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas private InfoFragment errorFragment; private InfoFragment reportMessageFragment; private InfoFragment perceptionTrafficLightFragment; + private InfoFragment predictionObstacleTrajectoryFragment; private VersionFragment versionFragment; private FragmentManager manager; private FragmentTransaction transaction; @@ -443,6 +446,7 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas titleFragmentData.add(Constants.TITLE.RECEIVE_AUTOPILOT_STATE); titleFragmentData.add(Constants.TITLE.RECEIVE_REPORT_MESSAGE); titleFragmentData.add(Constants.TITLE.RECEIVE_PERCEPTION_TRAFFIC_LIGHT); + titleFragmentData.add(Constants.TITLE.RECEIVE_PREDICTION_OBSTACLE_TRAJECTORY); titleFragmentData.add(Constants.TITLE.RECEIVE_CAR_CONFIG_RESP); titleFragmentData.add(Constants.TITLE.RECEIVE_RECORD_RESULT); titleFragmentData.add(Constants.TITLE.RECEIVE_GLOBAL_PATH_RESP); @@ -599,6 +603,14 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas transaction.commit(); } break; + case Constants.TITLE.RECEIVE_PREDICTION_OBSTACLE_TRAJECTORY: + if (predictionObstacleTrajectoryFragment == null) + predictionObstacleTrajectoryFragment = new InfoFragment(data); + if (!predictionObstacleTrajectoryFragment.isVisible()) { + transaction.replace(R.id.fl_info, predictionObstacleTrajectoryFragment); + transaction.commit(); + } + break; case Constants.TITLE.RECEIVE_CAR_CONFIG_RESP: AdasManager.getInstance().sendCarConfigReq(); if (versionFragment == null) @@ -747,6 +759,12 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas DataDistribution.getInstance().addData(base); } + @Override + public void onPredictionObstacleTrajectory(MessagePad.Header header, Prediction.mPredictionObjects predictionObjects) { + PredictionObstacleTrajectory base = new PredictionObstacleTrajectory(header, predictionObjects); + DataDistribution.getInstance().addData(base); + } + @Override public void onBasicInfoReq(MessagePad.Header header, MessagePad.BasicInfoReq basicInfoReq) { BasicInfoReq info = new BasicInfoReq(header, basicInfoReq); diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/VersionFragment.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/VersionFragment.java index 9eb89345e7..af14d7378f 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/VersionFragment.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/VersionFragment.java @@ -167,7 +167,7 @@ public class VersionFragment extends BaseFragment { list.add(new Config("最大自动驾驶限速:", adasConfig == null ? null : adasConfig.getMaxSpeedLimit() + "m/s")); list.add(new Config("最小加速度:", adasConfig == null ? null : adasConfig.getMinAcceleration() + "m/s²")); list.add(new Config("最大加速度:", adasConfig == null ? null : adasConfig.getMaxAcceleration() + "m/s²")); - list.add(new Config("IPC通信协议版本:", adasConfig == null ? null : String.valueOf(adasConfig.getProtocolVersion().getNumber()))); + list.add(new Config("IPC通信协议版本:", adasConfig == null ? null : String.valueOf(adasConfig.getProtocolVersionValue()))); list.add(new Config("APP通信协议版本:", String.valueOf(AdasManager.getInstance().getProtocolVersion()))); } list.add(new Config("ADAS LIB版本:", AdasManager.getInstance().getAdasVersion())); diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/utils/Constants.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/utils/Constants.java index cc1308c998..2b4d91388a 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/utils/Constants.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/utils/Constants.java @@ -150,6 +150,7 @@ public class Constants { String RECEIVE_AUTOPILOT_STATE = "自动驾驶状态"; String RECEIVE_REPORT_MESSAGE = "监控事件"; String RECEIVE_PERCEPTION_TRAFFIC_LIGHT = "感知红绿灯"; + String RECEIVE_PREDICTION_OBSTACLE_TRAJECTORY = "他车轨迹预测"; // String RECEIVE_BASIC_INFO_REQ = "自动驾驶设备基础信息请求"; String RECEIVE_CAR_CONFIG_RESP = "信息与配置"; diff --git a/app_ipc_monitoring/src/main/res/layout/layout_float.xml b/app_ipc_monitoring/src/main/res/layout/layout_float.xml index 7abc108fc0..9cbebe07f8 100644 --- a/app_ipc_monitoring/src/main/res/layout/layout_float.xml +++ b/app_ipc_monitoring/src/main/res/layout/layout_float.xml @@ -9,7 +9,9 @@ + android:layout_height="280dp" + android:layout_marginTop="2dp" + android:layout_marginBottom="2dp" /> \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/adapter/MoGoAdasListenerImpl.kt b/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/adapter/MoGoAdasListenerImpl.kt index c414762e87..ee736d0533 100644 --- a/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/adapter/MoGoAdasListenerImpl.kt +++ b/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/adapter/MoGoAdasListenerImpl.kt @@ -47,6 +47,7 @@ import mogo.telematics.pad.MessagePad import mogo.telematics.pad.MessagePad.TrackedObject import mogo_msg.MogoReportMsg import perception.TrafficLightOuterClass +import prediction.Prediction import record_cache.RecordPanelOuterClass /** @@ -214,6 +215,13 @@ class MoGoAdasListenerImpl : OnAdasListener { } + override fun onPredictionObstacleTrajectory( + header: MessagePad.Header?, + predictionObjects: Prediction.mPredictionObjects? + ) { + //他车轨迹预测 + } + override fun onBasicInfoReq( header: MessagePad.Header, basicInfoReq: MessagePad.BasicInfoReq? diff --git a/libraries/mogo-adas-data/src/main/proto/geometry.proto b/libraries/mogo-adas-data/src/main/proto/geometry.proto new file mode 100644 index 0000000000..9910b32a10 --- /dev/null +++ b/libraries/mogo-adas-data/src/main/proto/geometry.proto @@ -0,0 +1,84 @@ +syntax = "proto2"; +package geometry; + +message Vector3 { + optional double x = 1; + optional double y = 2; + optional double z = 3; +} + +message Vector3f { + optional float x = 1; + optional float y = 2; + optional float z = 3; +} + +message Point2D { + optional double x = 1 [default = nan]; + optional double y = 2 [default = nan]; +} + +message Point3D { + optional double x = 1 [default = nan]; + optional double y = 2 [default = nan]; + optional double z = 3 [default = nan]; +} + +message Trace { + optional double timestamp = 1; + optional Point3D position = 2; + optional Point3D velocity = 3; + optional Point3D acceleration = 4; + optional Point3D heading = 5; +} + +message PointLLH { + // Longitude in degrees, ranging from -180 to 180. + optional double lon = 1 [default = nan]; + // Latitude in degrees, ranging from -90 to 90. + optional double lat = 2 [default = nan]; + // WGS-84 ellipsoid height in meters. + optional double height = 3 [default = 0.0]; +} + +message Point { + optional double x = 1; + optional double y = 2; + optional double z = 3; +} + +message Quaternion { + optional double x = 1 [default = nan]; + optional double y = 2 [default = nan]; + optional double z = 3 [default = nan];; + optional double w = 4 [default = nan]; +} + +message Polygon { + repeated Point points = 1; +} + +message Transform { + optional Vector3 translation = 1; + optional Quaternion rotation = 2; +} + +//pose in free space, composed of position and orientation +message Pose { + optional Point position = 1; + optional Quaternion orientation = 2; +} + +//acceleration in free space broken into its linear and angular parts +message Accel { + optional Vector3 linear = 1; + optional Vector3 angular = 2; +} + +//velocity in free space broken into its linear and angular parts +message Twist { + optional Vector3 linear = 1; + optional Vector3 angular = 2; +} + + diff --git a/libraries/mogo-adas-data/src/main/proto/message_pad.proto b/libraries/mogo-adas-data/src/main/proto/message_pad.proto index 99f2f73bea..469a2bc780 100644 --- a/libraries/mogo-adas-data/src/main/proto/message_pad.proto +++ b/libraries/mogo-adas-data/src/main/proto/message_pad.proto @@ -3,7 +3,7 @@ package mogo.telematics.pad; enum ProtocolVersion{ Defaultver = 0; - CurrentVersion = 1; //每次修改proto文件增加1 + CurrentVersion = 2; //每次修改proto文件增加1 } enum MessageType @@ -17,6 +17,7 @@ enum MessageType MsgTypeAutopilotState = 0x10004; //自动驾驶状态 MsgTypeReportMessage = 0x10005; //监控事件报告 MsgTypePerceptionTrafficLight = 0x10006; //感知红绿灯 + MsgTypePredictionObstacleTrajectory = 0x10007; //他车轨迹预测 MsgTypeBasicInfoReq = 0x10100; //自动驾驶设备基础信息请求 MsgTypeBasicInfoResp = 0x10101; //自动驾驶设备基础信息应答 @@ -124,6 +125,9 @@ message AutopilotState // message definition for MessageType: MsgTypePerceptionTrafficLight // refer to traffic_light.proto +// message definition for MessageType: MsgTypePredictionObstacleTrajectory +// refer to prediction.proto + // message definition for MessageType: MsgTypeBasicInfoReq message BasicInfoReq { diff --git a/libraries/mogo-adas-data/src/main/proto/prediction.proto b/libraries/mogo-adas-data/src/main/proto/prediction.proto new file mode 100644 index 0000000000..a7bb52d0bc --- /dev/null +++ b/libraries/mogo-adas-data/src/main/proto/prediction.proto @@ -0,0 +1,33 @@ +syntax = "proto2"; + +package prediction; + +// common +import "header.proto"; +import "geometry.proto"; + + +// estimated obstacle intent + +message mPredictionObject { + optional int64 m_nid =1; //target id + optional int32 m_nquality =2; //target tracking life quality + optional int32 classtype =3; //target classtype + optional int32 m_preconfidence=4; //target predciton confidence + + repeated geometry.Point prediction_trajectory = 5; //target prediction trajectory :vector : meter + repeated geometry.Point prediction_pose = 6; //targe prediciton pose vector angle:° + optional geometry.Vector3 objsize = 7; //length width height :meter + +} + +message mPredictionObjects { + optional common.Header header = 1; + optional int32 m_nnum0 =2; // all target number + optional int64 allcyclenum =3;//process cycle number + optional double m_ftime=4; //time stamp + optional double fdeltat=5; // deltatime prediciton time stamp default:0.1s + repeated mPredictionObject objs=6; //obj capcity + +} + diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/OnAdasListener.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/OnAdasListener.java index c4ca9126b8..47a336e015 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/OnAdasListener.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/OnAdasListener.java @@ -8,6 +8,7 @@ import chassis.VehicleStateOuterClass; import mogo.telematics.pad.MessagePad; import mogo_msg.MogoReportMsg; import perception.TrafficLightOuterClass; +import prediction.Prediction; import record_cache.RecordPanelOuterClass; /** @@ -80,6 +81,14 @@ public interface OnAdasListener { */ void onPerceptionTrafficLight(MessagePad.Header header, TrafficLightOuterClass.TrafficLights trafficLights); + /** + * 他车轨迹预测 + * + * @param header 头 + * @param predictionObjects 他车轨迹预测数据 + */ + void onPredictionObstacleTrajectory(MessagePad.Header header, Prediction.mPredictionObjects predictionObjects); + /** * 自动驾驶设备基础信息请求 * diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/MessageType.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/MessageType.java index 10e10a75a3..69feea61a9 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/MessageType.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/MessageType.java @@ -19,6 +19,7 @@ public enum MessageType { TYPE_RECEIVE_AUTOPILOT_STATE(MessagePad.MessageType.MsgTypeAutopilotState, "自动驾驶状态"), TYPE_RECEIVE_REPORT_MESSAGE(MessagePad.MessageType.MsgTypeReportMessage, "监控事件报告"), TYPE_RECEIVE_PERCEPTION_TRAFFIC_LIGHT(MessagePad.MessageType.MsgTypePerceptionTrafficLight, "感知红绿灯"), + TYPE_RECEIVE_PREDICTION_OBSTACLE_TRAJECTORY(MessagePad.MessageType.MsgTypePredictionObstacleTrajectory, "他车轨迹预测"), TYPE_RECEIVE_BASIC_INFO_REQ(MessagePad.MessageType.MsgTypeBasicInfoReq, "自动驾驶设备基础信息请求"), TYPE_SEND_BASIC_INFO_RESP(MessagePad.MessageType.MsgTypeBasicInfoResp, "自动驾驶设备基础信息应答"), diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/MyMessageFactory.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/MyMessageFactory.java index b644e64bae..9a786d3c8d 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/MyMessageFactory.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/MyMessageFactory.java @@ -18,6 +18,7 @@ public class MyMessageFactory implements IMyMessageFactory { private IMsg autopilotStateMessage;//自动驾驶状态 private IMsg reportMessage;//监控事件报告 private IMsg perceptionTrafficLightMessage;//感知红绿灯 + private IMsg predictionObstacleTrajectory;//他车轨迹预测 private IMsg basicInfoReqMessage;//自动驾驶设备基础信息请求 private IMsg carConfigRespMessage;//车机基础信息应答 @@ -91,6 +92,12 @@ public class MyMessageFactory implements IMyMessageFactory { perceptionTrafficLightMessage = new PerceptionTrafficLightMessage(); } return perceptionTrafficLightMessage; + } else if (messageType == MessageType.TYPE_RECEIVE_PREDICTION_OBSTACLE_TRAJECTORY.typeCode) { + //他车轨迹预测 + if (predictionObstacleTrajectory == null) { + predictionObstacleTrajectory = new PredictionObstacleTrajectoryMessage(); + } + return predictionObstacleTrajectory; } else if (messageType == MessageType.TYPE_RECEIVE_BASIC_INFO_REQ.typeCode) { //自动驾驶设备基础信息请求 if (basicInfoReqMessage == null) { diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/PredictionObstacleTrajectoryMessage.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/PredictionObstacleTrajectoryMessage.java new file mode 100644 index 0000000000..3872f73c0b --- /dev/null +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/PredictionObstacleTrajectoryMessage.java @@ -0,0 +1,28 @@ +package com.zhidao.support.adas.high.msg; + +import com.google.gson.Gson; +import com.google.protobuf.InvalidProtocolBufferException; +import com.zhidao.support.adas.high.OnAdasListener; + +import mogo.telematics.pad.MessagePad; +import prediction.Prediction; + +/** + * 他车轨迹预测 + */ +public class PredictionObstacleTrajectoryMessage extends MyAbstractMessageHandler { + + @Override + public void handlerMsg(Gson gson, OnAdasListener adasListener, String msg) { + } + + @Override + public void handlerMsg(MessagePad.Header header, byte[] msg, OnAdasListener adasListener) throws InvalidProtocolBufferException { + Prediction.mPredictionObjects objects = Prediction.mPredictionObjects.parseFrom(msg); + if (adasListener != null) { + adasListener.onPredictionObstacleTrajectory(header, objects); + } + } + + +}