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 e773b590a3..6562a3a72b 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 @@ -11,6 +11,7 @@ import com.zhidao.adas.client.bean.GnssInfo; import com.zhidao.adas.client.bean.MogoReportMessage; import com.zhidao.adas.client.bean.MyPointCloud; import com.zhidao.adas.client.bean.PerceptionTrafficLight; +import com.zhidao.adas.client.bean.PlanningObjects; import com.zhidao.adas.client.bean.PredictionObstacleTrajectory; import com.zhidao.adas.client.bean.RecordPanel; import com.zhidao.adas.client.bean.TrackedObjects; @@ -109,6 +110,7 @@ public class DataDistribution { public final List listArrivalNotification = new ArrayList<>(); public final List listErrorData = new ArrayList<>(); public final List listPointCloud = new ArrayList<>(); + public final List listPlanningObjects = new ArrayList<>(); public String cutDown(String str) { if (isCutDown && str.length() > 650) { @@ -158,6 +160,19 @@ public class DataDistribution { // for (OnAdasClientListener listener : listeners) { // listener.onRefresh(); // } +// } + } else if (data instanceof PlanningObjects) { + listPlanningObjects.add(0, time + str); + if (listPlanningObjects.size() > LIST_SIZE) { + listPlanningObjects.remove(listPlanningObjects.size() - 1); + } + if (listener != null) { + listener.onRefresh(); + } +// if (!listeners.isEmpty()) { +// for (OnAdasClientListener listener : listeners) { +// listener.onRefresh(); +// } // } } else if (data instanceof GnssInfo) { listGnssInfo.add(0, time + str); diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/PlanningObjects.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/PlanningObjects.java new file mode 100644 index 0000000000..cc124d82c9 --- /dev/null +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/PlanningObjects.java @@ -0,0 +1,21 @@ +package com.zhidao.adas.client.bean; + +import com.google.protobuf.TextFormat; + +import mogo.telematics.pad.MessagePad; + +public class PlanningObjects extends BaseInfo { + public final MessagePad.PlanningObjects bean; + + public PlanningObjects(MessagePad.Header header, MessagePad.PlanningObjects 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 228d323015..484b743dc3 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 @@ -20,7 +20,6 @@ import com.zhidao.adas.client.adapter.DataShowAdapter; import com.zhidao.adas.client.base.BaseFragment; import com.zhidao.adas.client.utils.Constants; import com.zhidao.adas.client.utils.MyLinearLayoutManager; -import com.zhidao.support.adas.high.AdasManager; /** * @author song kenan @@ -142,7 +141,9 @@ public class InfoFragment extends BaseFragment { case Constants.TITLE.RECEIVE_POINT_CLOUD: adapter.setData(DataDistribution.getInstance().listPointCloud); break; - + case Constants.TITLE.RECEIVE_PLANNING_OBJECTS: + adapter.setData(DataDistribution.getInstance().listPlanningObjects); + 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 a3818867e7..6f6c44239f 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 @@ -50,6 +50,7 @@ import com.zhidao.adas.client.R; import com.zhidao.adas.client.adapter.InfoTitleAdapter; import com.zhidao.adas.client.base.BaseActivity; import com.zhidao.adas.client.base.BaseAdapter; +import com.zhidao.adas.client.base.BaseFragment; import com.zhidao.adas.client.bean.ArrivalNotification; import com.zhidao.adas.client.bean.AutopilotState; import com.zhidao.adas.client.bean.BasicInfoReq; @@ -61,6 +62,7 @@ import com.zhidao.adas.client.bean.IPCConnectState; import com.zhidao.adas.client.bean.MogoReportMessage; import com.zhidao.adas.client.bean.MyPointCloud; import com.zhidao.adas.client.bean.PerceptionTrafficLight; +import com.zhidao.adas.client.bean.PlanningObjects; import com.zhidao.adas.client.bean.PredictionObstacleTrajectory; import com.zhidao.adas.client.bean.RecordPanel; import com.zhidao.adas.client.bean.TrackedObjects; @@ -86,7 +88,9 @@ import java.net.NetworkInterface; import java.net.SocketException; import java.util.ArrayList; import java.util.Enumeration; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.concurrent.ScheduledExecutorService; import chassis.VehicleStateOuterClass; @@ -129,26 +133,9 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas private final List titleFragmentData = new ArrayList<>(); private final List titleBtnData = new ArrayList<>(); private final List connectStatusList = new ArrayList<>(); - private InfoTitleAdapter btnAdapter; private InfoTitleAdapter fragmentAdapter; - - private InfoFragment carFragment; - private InfoFragment viewFragment; - private InfoFragment canFragment; - private InfoFragment autoFragment; - private InfoFragment warnFragment; - private InfoFragment trajectoryFragment; - private InfoFragment autopilotWayArriveFragment; - private InfoFragment autopilotRouteFragment; - private InfoFragment badcseFragment; - private InfoFragment errorFragment; - private InfoFragment reportMessageFragment; - private InfoFragment perceptionTrafficLightFragment; - private InfoFragment predictionObstacleTrajectoryFragment; - private InfoFragment pointCloudFragment; - private VersionFragment versionFragment; + private final Map fragmentList = new HashMap<>(); private FragmentManager manager; - private FragmentTransaction transaction; private String ftpTime; private boolean isPad; private long recordKey; @@ -181,8 +168,7 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas if (!isPad) getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); initView(); - firstFragment(); - + showFragment(Constants.TITLE.RECEIVE_GNSS_INFO); initAdas(); connectStatus = AdasManager.getInstance().getIpcConnectionStatus(); onUpdateConnectStateView(); @@ -331,7 +317,6 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas //初始化fragment manager = getSupportFragmentManager(); - transaction = manager.beginTransaction(); cb_print.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override @@ -524,6 +509,7 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas titleFragmentData.add(Constants.TITLE.RECEIVE_TRAJECTORY); titleFragmentData.add(Constants.TITLE.RECEIVE_TRACKED_OBJECTS); titleFragmentData.add(Constants.TITLE.RECEIVE_POINT_CLOUD); + titleFragmentData.add(Constants.TITLE.RECEIVE_PLANNING_OBJECTS); titleFragmentData.add(Constants.TITLE.RECEIVE_VEHICLE_STATE); titleFragmentData.add(Constants.TITLE.RECEIVE_AUTOPILOT_STATE); titleFragmentData.add(Constants.TITLE.RECEIVE_REPORT_MESSAGE); @@ -563,7 +549,7 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas if (animatorInfo != null) animatorInfo.setSupportsChangeAnimations(false); //创建并设置Adapter - btnAdapter = new InfoTitleAdapter(titleBtnData, false); + InfoTitleAdapter btnAdapter = new InfoTitleAdapter(titleBtnData, false); infoBtn.setAdapter(btnAdapter); btnAdapter.setOnItemClickListener(this); } @@ -603,128 +589,7 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas @Override public void onItemClick(int position, String data) { fragmentAdapter.setSelectedPosition(position); - manager = getSupportFragmentManager(); - transaction = manager.beginTransaction(); - switch (data) { - case Constants.TITLE.RECEIVE_GNSS_INFO: - firstFragment(); - break; - case Constants.TITLE.RECEIVE_VEHICLE_STATE: - if (canFragment == null) - canFragment = new InfoFragment(data); - if (!canFragment.isVisible()) { - transaction.replace(R.id.fl_info, canFragment); - transaction.commit(); - } - break; - case Constants.TITLE.RECEIVE_TRACKED_OBJECTS: -// hintTrackedObjects(false); - if (viewFragment == null) - viewFragment = new InfoFragment(data); - if (!viewFragment.isVisible()) { - transaction.replace(R.id.fl_info, viewFragment); - transaction.commit(); - } - break; - case Constants.TITLE.RECEIVE_AUTOPILOT_STATE: - if (autoFragment == null) - autoFragment = new InfoFragment(data); - if (!autoFragment.isVisible()) { - transaction.replace(R.id.fl_info, autoFragment); - transaction.commit(); - } - break; - case Constants.TITLE.RECEIVE_WARN: - if (warnFragment == null) - warnFragment = new InfoFragment(data); - if (!warnFragment.isVisible()) { - transaction.replace(R.id.fl_info, warnFragment); - transaction.commit(); - } - break; - case Constants.TITLE.RECEIVE_TRAJECTORY: - if (trajectoryFragment == null) - trajectoryFragment = new InfoFragment(data); - if (!trajectoryFragment.isVisible()) { - transaction.replace(R.id.fl_info, trajectoryFragment); - transaction.commit(); - } - break; - case Constants.TITLE.RECEIVE_ARRIVAL_NOTIFICATION: - if (autopilotWayArriveFragment == null) - autopilotWayArriveFragment = new InfoFragment(data); - if (!autopilotWayArriveFragment.isVisible()) { - transaction.replace(R.id.fl_info, autopilotWayArriveFragment); - transaction.commit(); - } - break; - case Constants.TITLE.RECEIVE_GLOBAL_PATH_RESP: - if (autopilotRouteFragment == null) - autopilotRouteFragment = new InfoFragment(data); - if (!autopilotRouteFragment.isVisible()) { - transaction.replace(R.id.fl_info, autopilotRouteFragment); - transaction.commit(); - } - break; - case Constants.TITLE.RECEIVE_RECORD_RESULT: - if (badcseFragment == null) - badcseFragment = new InfoFragment(data); - if (!badcseFragment.isVisible()) { - transaction.replace(R.id.fl_info, badcseFragment); - transaction.commit(); - } - break; - case Constants.TITLE.RECEIVE_REPORT_MESSAGE: - if (reportMessageFragment == null) - reportMessageFragment = new InfoFragment(data); - if (!reportMessageFragment.isVisible()) { - transaction.replace(R.id.fl_info, reportMessageFragment); - transaction.commit(); - } - break; - case Constants.TITLE.RECEIVE_PERCEPTION_TRAFFIC_LIGHT: - if (perceptionTrafficLightFragment == null) - perceptionTrafficLightFragment = new InfoFragment(data); - if (!perceptionTrafficLightFragment.isVisible()) { - transaction.replace(R.id.fl_info, perceptionTrafficLightFragment); - 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_POINT_CLOUD: - if (pointCloudFragment == null) - pointCloudFragment = new InfoFragment(data); - if (!pointCloudFragment.isVisible()) { - transaction.replace(R.id.fl_info, pointCloudFragment); - transaction.commit(); - } - break; - case Constants.TITLE.RECEIVE_CAR_CONFIG_RESP: - AdasManager.getInstance().sendCarConfigReq(); - if (versionFragment == null) - versionFragment = new VersionFragment("工控机版本\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t固定IP配置"); - if (!versionFragment.isVisible()) { - transaction.replace(R.id.fl_info, versionFragment); - transaction.commit(); - } - break; - - case Constants.TITLE.RECEIVE_ERROR: - if (errorFragment == null) - errorFragment = new InfoFragment(data); - if (!errorFragment.isVisible()) { - transaction.replace(R.id.fl_info, errorFragment); - transaction.commit(); - } - break; - } + showFragment(data); } }); } @@ -878,11 +743,17 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas // LogSave.getInstance().saveLog("转换数据=" + data); } + @Override + public void onPlanningObjects(MessagePad.Header header, MessagePad.PlanningObjects planningObjects) { + PlanningObjects base = new PlanningObjects(header, planningObjects); + DataDistribution.getInstance().addData(base); + } + @Override public void onBasicInfoReq(MessagePad.Header header, MessagePad.BasicInfoReq basicInfoReq) { BasicInfoReq info = new BasicInfoReq(header, basicInfoReq); DataDistribution.getInstance().addData(info); - AdasManager.getInstance().sendBasicInfoResp("X202021111192N41VY", 1); + AdasManager.getInstance().sendBasicInfoResp("X202021111192N41VY", 0); showToastCenter("收到车机基础信息请求:" + info.toString()); } @@ -1087,11 +958,20 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas >= Configuration.SCREENLAYOUT_SIZE_LARGE; } - private void firstFragment() { - if (carFragment == null) - carFragment = new InfoFragment(Constants.TITLE.RECEIVE_GNSS_INFO); - if (!carFragment.isVisible()) { - transaction.replace(R.id.fl_info, carFragment); + private void showFragment(String title) { + BaseFragment fragment = fragmentList.get(title); + if (fragment == null) { + if (Constants.TITLE.RECEIVE_CAR_CONFIG_RESP.equals(title)) { + AdasManager.getInstance().sendCarConfigReq(); + fragment = new VersionFragment("工控机版本\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t固定IP配置"); + } else { + fragment = new InfoFragment(title); + } + fragmentList.put(title, fragment); + } + if (!fragment.isVisible()) { + FragmentTransaction transaction = manager.beginTransaction(); + transaction.replace(R.id.fl_info, fragment); transaction.commit(); } } 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 deaaab40ac..8c99e0ad58 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 @@ -27,9 +27,12 @@ import com.zhidao.support.adas.high.AdasManager; import com.zhidao.support.adas.high.bean.VersionCompatibility; import com.zhidao.support.adas.high.common.CupidLogUtils; +import java.text.SimpleDateFormat; import java.util.ArrayList; +import java.util.Date; import java.util.HashSet; import java.util.List; +import java.util.Locale; import mogo.telematics.pad.MessagePad; @@ -37,6 +40,7 @@ import mogo.telematics.pad.MessagePad; * @des 升级页面 */ public class VersionFragment extends BaseFragment { + private final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS ", Locale.getDefault()); public VersionFragment() { } @@ -159,6 +163,7 @@ public class VersionFragment extends BaseFragment { temp = ip + ":" + AdasManager.getInstance().getIpcConnectedPort(); } MessagePad.CarConfigResp adasConfig = AdasManager.getInstance().getCarConfig(); + list.add(new Config("更新时间:", sdf.format(new Date()))); list.add(new Config("工控机IP:", temp)); list.add(new Config("工控机版本:", adasConfig == null ? null : adasConfig.getDockVersion())); list.add(new Config("车牌号:", adasConfig == null ? null : adasConfig.getPlateNumber())); 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 0a3c5498fa..0392d46974 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 @@ -152,6 +152,7 @@ public class Constants { String RECEIVE_PERCEPTION_TRAFFIC_LIGHT = "感知红绿灯"; String RECEIVE_PREDICTION_OBSTACLE_TRAJECTORY = "他车轨迹预测"; String RECEIVE_POINT_CLOUD = "点云透传"; + String RECEIVE_PLANNING_OBJECTS = "Planning障碍物"; // String RECEIVE_BASIC_INFO_REQ = "自动驾驶设备基础信息请求"; String RECEIVE_CAR_CONFIG_RESP = "信息与配置"; 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 1f04dccb81..64ec6de46d 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 @@ -247,6 +247,13 @@ class MoGoAdasListenerImpl : OnAdasListener { CallerAutopilotPointCloudListenerManager.invokeAutopilotPointCloudDataUpdate(header,pointCloud) } + override fun onPlanningObjects( + header: MessagePad.Header?, + planningObjects: MessagePad.PlanningObjects? + ) { + //planning障碍物 + } + override fun onBasicInfoReq( header: MessagePad.Header, basicInfoReq: MessagePad.BasicInfoReq? 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 2a1c161a74..02c343889b 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 @@ -96,6 +96,14 @@ public interface OnAdasListener { */ void onPointCloud(MessagePad.Header header, MogoPointCloudOuterClass.MogoPointCloud pointCloud); + /** + * planning障碍物 + * + * @param header 头 + * @param planningObjects 数据 + */ + void onPlanningObjects(MessagePad.Header header, MessagePad.PlanningObjects planningObjects); + /** * 自动驾驶设备基础信息请求 * 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 7ad0ca0a45..4fb48cfc1a 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 @@ -21,6 +21,7 @@ public enum MessageType { TYPE_RECEIVE_PERCEPTION_TRAFFIC_LIGHT(MessagePad.MessageType.MsgTypePerceptionTrafficLight, "感知红绿灯"), TYPE_RECEIVE_PREDICTION_OBSTACLE_TRAJECTORY(MessagePad.MessageType.MsgTypePredictionObstacleTrajectory, "他车轨迹预测"), TYPE_RECEIVE_POINT_CLOUD(MessagePad.MessageType.MsgTypePointCloud, "点云透传"), + TYPE_RECEIVE_PLANNING_OBJECTS(MessagePad.MessageType.MsgTypePlanningObjects, "planning障碍物"), 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 97a16016fd..3c4ddfcd04 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 @@ -20,6 +20,7 @@ public class MyMessageFactory implements IMyMessageFactory { private IMsg perceptionTrafficLightMessage;//感知红绿灯 private IMsg predictionObstacleTrajectoryMessage;//他车轨迹预测 private IMsg pointCloudMessage;//透传点云数据 + private IMsg planningObjectsMessage;//planning障碍物 private IMsg basicInfoReqMessage;//自动驾驶设备基础信息请求 private IMsg carConfigRespMessage;//车机基础信息应答 @@ -80,11 +81,17 @@ public class MyMessageFactory implements IMyMessageFactory { } return predictionObstacleTrajectoryMessage; } else if (messageType == MessageType.TYPE_RECEIVE_POINT_CLOUD.typeCode) { - //他车轨迹预测 + //点云透传 if (pointCloudMessage == null) { pointCloudMessage = new PointCloudMessage(); } return pointCloudMessage; + } else if (messageType == MessageType.TYPE_RECEIVE_PLANNING_OBJECTS.typeCode) { + //planning障碍物 + if (planningObjectsMessage == null) { + planningObjectsMessage = new PlanningObjectsMessage(); + } + return planningObjectsMessage; } 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/PlanningObjectsMessage.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/PlanningObjectsMessage.java new file mode 100644 index 0000000000..5011a6a83e --- /dev/null +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/PlanningObjectsMessage.java @@ -0,0 +1,22 @@ +package com.zhidao.support.adas.high.msg; + + +import com.google.protobuf.InvalidProtocolBufferException; +import com.zhidao.support.adas.high.OnAdasListener; +import com.zhidao.support.adas.high.protocol.RawData; + +import mogo.telematics.pad.MessagePad; + +/** + * planning障碍物 + */ +public class PlanningObjectsMessage extends MyAbstractMessageHandler { + + @Override + public void handlerMsg(RawData raw, OnAdasListener adasListener) throws InvalidProtocolBufferException { + MessagePad.PlanningObjects planningObjects = MessagePad.PlanningObjects.parser().parseFrom(raw.originalData.toByteArray(), raw.getOffsetValue(), raw.getPackageLengthValue() - raw.getOffsetValue()); + if (adasListener != null) { + adasListener.onPlanningObjects(raw.getHeader(), planningObjects); + } + } +}