From c4876e612f2fbcab306dc831f62a12eaa6d4b924 Mon Sep 17 00:00:00 2001 From: xinfengkun Date: Tue, 10 Jan 2023 14:44:35 +0800 Subject: [PATCH] =?UTF-8?q?[pb12][=E6=B8=85=E6=89=AB=E8=BD=A6=E6=8C=87?= =?UTF-8?q?=E6=A0=87=E6=95=B0=E6=8D=AE]=E6=B7=BB=E5=8A=A0=E6=B8=85?= =?UTF-8?q?=E6=89=AB=E8=BD=A6=E6=8C=87=E6=A0=87=E6=95=B0=E6=8D=AE,?= =?UTF-8?q?=E4=BB=A5=E5=8F=8A=E7=A7=BB=E9=99=A4=E8=80=81=E5=BA=95=E7=9B=98?= =?UTF-8?q?=E5=9B=9E=E8=B0=83=EF=BC=8C=E6=B7=BB=E5=8A=A0int=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E7=94=A8=E4=BA=8E=E5=88=A4=E6=96=AD=E6=96=B0=E8=80=81?= =?UTF-8?q?=E5=BA=95=E7=9B=98=E6=9D=A5=E6=BA=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../zhidao/adas/client/DataDistribution.java | 20 ++++++------ ...leState.java => RoboSweeperTaskIndex.java} | 10 +++--- .../zhidao/adas/client/ui/InfoFragment.java | 21 +++++++++++-- .../zhidao/adas/client/ui/MainActivity.java | 29 ++++++++++++----- .../zhidao/adas/client/utils/Constants.java | 2 +- .../zhidao/adas/magic/ui/MainActivity.java | 14 ++++++--- .../autopilot/adapter/MoGoAdasListenerImpl.kt | 21 +++++++------ .../zhidao/support/adas/high/AdasChannel.java | 18 +++++++++-- .../zhidao/support/adas/high/AdasManager.java | 10 ++++++ .../support/adas/high/IAdasNetCommApi.java | 7 +++++ .../support/adas/high/OnAdasListener.java | 20 ++++++------ .../support/adas/high/common/Constants.java | 9 ++++++ .../support/adas/high/common/MessageType.java | 4 ++- .../adas/high/msg/MyMessageFactory.java | 7 +++++ .../high/msg/SweeperTaskIndexDataMessage.java | 31 +++++++++++++++++++ .../adas/high/msg/VehicleStateMessage.java | 1 - 16 files changed, 168 insertions(+), 56 deletions(-) rename app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/{VehicleState.java => RoboSweeperTaskIndex.java} (56%) create mode 100644 libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/SweeperTaskIndexDataMessage.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 3c97a47bd9..bf71552e83 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 @@ -20,10 +20,10 @@ import com.zhidao.adas.client.bean.PlanningObjects; import com.zhidao.adas.client.bean.PredictionObstacleTrajectory; import com.zhidao.adas.client.bean.RecordDataConfig; import com.zhidao.adas.client.bean.RecordPanel; +import com.zhidao.adas.client.bean.RoboSweeperTaskIndex; import com.zhidao.adas.client.bean.StatusInfo; import com.zhidao.adas.client.bean.TrackedObjects; import com.zhidao.adas.client.bean.Trajectory; -import com.zhidao.adas.client.bean.VehicleState; import com.zhidao.adas.client.bean.Warn; import com.zhidao.adas.client.log.LogSave; import com.zhidao.adas.client.utils.Constants; @@ -104,7 +104,6 @@ public class DataDistribution { public final List listTrajectory = new ArrayList<>(); public final List listTrackedObjects = new ArrayList<>(); public final List listGnssInfo = new ArrayList<>(); - public final List listVehicleState = new ArrayList<>(); public final List listAutopilotState = new ArrayList<>(); public final List listMogoReportMessage = new ArrayList<>(); public final List listPerceptionTrafficLight = new ArrayList<>(); @@ -121,6 +120,7 @@ public class DataDistribution { public final List listPlanningDecisionState = new ArrayList<>(); public final List listChassisStates = new ArrayList<>(); public final List listFSMFunctionStates = new ArrayList<>(); + public final List listRoboSweeperTaskIndex = new ArrayList<>(); public String cutDown(String str) { if (isCutDown && str.length() > 650) { @@ -180,14 +180,6 @@ public class DataDistribution { if (listener != null && Constants.TITLE.RECEIVE_GNSS_INFO.equals(listener.first)) { listener.second.onRefresh(); } - } else if (data instanceof VehicleState) { - listVehicleState.add(0, time + str); - if (listVehicleState.size() > LIST_SIZE) { - listVehicleState.remove(listVehicleState.size() - 1); - } - if (listener != null && Constants.TITLE.RECEIVE_VEHICLE_STATE.equals(listener.first)) { - listener.second.onRefresh(); - } } else if (data instanceof ChassisStates) { listChassisStates.add(0, time + str); if (listChassisStates.size() > LIST_SIZE) { @@ -282,6 +274,14 @@ public class DataDistribution { if (listener != null && Constants.TITLE.RECEIVE_RECORD_DATA_CONFIG_RESP.equals(listener.first)) { listener.second.onRefresh(); } + } else if (data instanceof RoboSweeperTaskIndex) { + listRoboSweeperTaskIndex.add(0, time + str); + if (listRoboSweeperTaskIndex.size() > LIST_SIZE) { + listRoboSweeperTaskIndex.remove(listRoboSweeperTaskIndex.size() - 1); + } + if (listener != null && Constants.TITLE.RECEIVE_SWEEPER_TASK_INDEX_DATA.equals(listener.first)) { + listener.second.onRefresh(); + } } else if (data instanceof FSMFunctionStates) { listFSMFunctionStates.add(0, time + str); if (listFSMFunctionStates.size() > LIST_SIZE) { diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/VehicleState.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/RoboSweeperTaskIndex.java similarity index 56% rename from app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/VehicleState.java rename to app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/RoboSweeperTaskIndex.java index aabab1571e..86eaedbb6c 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/VehicleState.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/RoboSweeperTaskIndex.java @@ -4,19 +4,21 @@ import com.google.protobuf.TextFormat; import java.text.SimpleDateFormat; -import chassis.VehicleStateOuterClass; import mogo.telematics.pad.MessagePad; +import planning.RoboSweeperTaskIndexOuterClass; -public class VehicleState extends BaseInfo { - public final VehicleStateOuterClass.VehicleState bean; +public class RoboSweeperTaskIndex extends BaseInfo { + public final RoboSweeperTaskIndexOuterClass.RoboSweeperTaskIndex bean; - public VehicleState(MessagePad.Header header, VehicleStateOuterClass.VehicleState bean, SimpleDateFormat sdf) { + public RoboSweeperTaskIndex(MessagePad.Header header, RoboSweeperTaskIndexOuterClass.RoboSweeperTaskIndex bean, SimpleDateFormat sdf) { super("接收", bean.getSerializedSize(), header, sdf); 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 6cd6a1e277..50d8153af0 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 @@ -2,6 +2,7 @@ package com.zhidao.adas.client.ui; import android.os.Bundle; import android.os.Message; +import android.text.TextUtils; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; @@ -30,6 +31,7 @@ public class InfoFragment extends BaseFragment { private DataShowAdapter adapter; private TextView tvTitle; + private String subTitle; public InfoFragment() { } @@ -55,11 +57,24 @@ public class InfoFragment extends BaseFragment { private View layout_update; + public void setTitle(String title) { + if (tvTitle != null) { + tvTitle.setText(title); + } else { + subTitle = title; + } + } + private void initView(View view) { tvTitle = view.findViewById(R.id.tv_title); RecyclerView rvInfo = view.findViewById(R.id.rv_info); layout_update = view.findViewById(R.id.layout_update); - tvTitle.setText(title); + if (TextUtils.isEmpty(subTitle)) { + tvTitle.setText(title); + } else { + tvTitle.setText(subTitle); + subTitle = null; + } tvTitle.setGravity(Gravity.CENTER); //创建默认的线性LayoutManager 横向的GridLayoutManager MyLinearLayoutManager linearLayoutManager = new MyLinearLayoutManager(this.getContext()); @@ -103,8 +118,6 @@ public class InfoFragment extends BaseFragment { private void setData() { if (Constants.TITLE.RECEIVE_GNSS_INFO.equals(title)) { adapter.setData(DataDistribution.getInstance().listGnssInfo); - } else if (Constants.TITLE.RECEIVE_VEHICLE_STATE.equals(title)) { - adapter.setData(DataDistribution.getInstance().listVehicleState); } else if (Constants.TITLE.RECEIVE_CHASSIS_STATES.equals(title)) { adapter.setData(DataDistribution.getInstance().listChassisStates); } else if (Constants.TITLE.RECEIVE_TRACKED_OBJECTS.equals(title)) { @@ -139,6 +152,8 @@ public class InfoFragment extends BaseFragment { adapter.setData(DataDistribution.getInstance().listPlanningDecisionState); } else if (Constants.TITLE.RECEIVE_FUNCTION_STATES.equals(title)) { adapter.setData(DataDistribution.getInstance().listFSMFunctionStates); + } else if (Constants.TITLE.RECEIVE_SWEEPER_TASK_INDEX_DATA.equals(title)) { + adapter.setData(DataDistribution.getInstance().listRoboSweeperTaskIndex); } else { adapter.setData(DataDistribution.getInstance().listErrorData); } 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 55dfc50e5d..8f648acffc 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 @@ -73,11 +73,11 @@ import com.zhidao.adas.client.bean.PlanningObjects; import com.zhidao.adas.client.bean.PredictionObstacleTrajectory; import com.zhidao.adas.client.bean.RecordDataConfig; import com.zhidao.adas.client.bean.RecordPanel; +import com.zhidao.adas.client.bean.RoboSweeperTaskIndex; import com.zhidao.adas.client.bean.SpecialVehicleBean; import com.zhidao.adas.client.bean.StatusInfo; import com.zhidao.adas.client.bean.TrackedObjects; import com.zhidao.adas.client.bean.Trajectory; -import com.zhidao.adas.client.bean.VehicleState; import com.zhidao.adas.client.bean.Warn; import com.zhidao.adas.client.log.ConnectStatusSave; import com.zhidao.adas.client.log.LogSave; @@ -116,12 +116,12 @@ import java.util.concurrent.ScheduledExecutorService; import chassis.Chassis; import chassis.ChassisStatesOuterClass; -import chassis.VehicleStateOuterClass; import function_state_management.FunctionStates; import io.netty.channel.Channel; import mogo.telematics.pad.MessagePad; import mogo_msg.MogoReportMsg; import perception.TrafficLightOuterClass; +import planning.RoboSweeperTaskIndexOuterClass; import prediction.Prediction; import record_cache.RecordPanelOuterClass; import system_master.SystemStatusInfo; @@ -632,7 +632,6 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas titleFragmentData.add(Constants.TITLE.RECEIVE_GNSS_INFO); titleFragmentData.add(Constants.TITLE.RECEIVE_TRAJECTORY); titleFragmentData.add(Constants.TITLE.RECEIVE_TRACKED_OBJECTS); - titleFragmentData.add(Constants.TITLE.RECEIVE_VEHICLE_STATE); titleFragmentData.add(Constants.TITLE.RECEIVE_CHASSIS_STATES); titleFragmentData.add(Constants.TITLE.RECEIVE_AUTOPILOT_STATE); titleFragmentData.add(Constants.TITLE.RECEIVE_FUNCTION_STATES); @@ -648,6 +647,7 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas titleFragmentData.add(Constants.TITLE.RECEIVE_GLOBAL_PATH_RESP); titleFragmentData.add(Constants.TITLE.RECEIVE_ARRIVAL_NOTIFICATION); titleFragmentData.add(Constants.TITLE.RECEIVE_STATUS_QUERY_RESP); + titleFragmentData.add(Constants.TITLE.RECEIVE_SWEEPER_TASK_INDEX_DATA); titleFragmentData.add(Constants.TITLE.RECEIVE_WARN); titleFragmentData.add(Constants.TITLE.RECEIVE_ERROR); @@ -895,11 +895,6 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas DataDistribution.getInstance().addData(base); } - @Override - public void onVehicleState(MessagePad.Header header, VehicleStateOuterClass.VehicleState vehicleState) { - VehicleState base = new VehicleState(header, vehicleState, sdf); - DataDistribution.getInstance().addData(base); - } @Override public void onChassisStates(MessagePad.Header header, ChassisStatesOuterClass.ChassisStates chassisStates) { @@ -1034,6 +1029,12 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas DataDistribution.getInstance().addData(base); } + @Override + public void onSweeperTaskIndexData(MessagePad.Header header, RoboSweeperTaskIndexOuterClass.RoboSweeperTaskIndex roboSweeperTaskIndex) { + RoboSweeperTaskIndex base = new RoboSweeperTaskIndex(header, roboSweeperTaskIndex, sdf); + DataDistribution.getInstance().addData(base); + } + private void initAdas() { CupidLogUtils.e(TAG, "--->初始化"); @@ -1224,6 +1225,18 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas } if (Constants.TITLE.RECEIVE_CAR_CONFIG_RESP.equals(title)) { AdasManager.getInstance().sendCarConfigReq(); + } else if (Constants.TITLE.RECEIVE_CHASSIS_STATES.equals(title)) { + InfoFragment fragment = (InfoFragment) to; + int type = AdasManager.getInstance().getUsedChassisType(); + String source; + if (type == com.zhidao.support.adas.high.common.Constants.CHASSIS_TYPE.NEW_CHASSIS) { + source = "ChassisStates"; + } else if (type == com.zhidao.support.adas.high.common.Constants.CHASSIS_TYPE.OLD_CHASSIS) { + source = "VehicleState"; + } else { + source = "Unknown"; + } + fragment.setTitle(Constants.TITLE.RECEIVE_CHASSIS_STATES + "\t来源:" + source); } fromFragment = to; } 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 1d22d00398..cc63012c33 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,7 +150,6 @@ public class Constants { String RECEIVE_TRAJECTORY = MessageType.TYPE_RECEIVE_TRAJECTORY.desc; String RECEIVE_TRACKED_OBJECTS = MessageType.TYPE_RECEIVE_TRACKED_OBJECTS.desc; String RECEIVE_GNSS_INFO = MessageType.TYPE_RECEIVE_GNSS_INFO.desc; - String RECEIVE_VEHICLE_STATE = MessageType.TYPE_RECEIVE_VEHICLE_STATE.desc; String RECEIVE_CHASSIS_STATES = MessageType.TYPE_RECEIVE_CHASSIS_STATES.desc; String RECEIVE_AUTOPILOT_STATE = MessageType.TYPE_RECEIVE_AUTOPILOT_STATE.desc; String RECEIVE_FUNCTION_STATES = MessageType.TYPE_RECEIVE_FUNCTION_STATES.desc; @@ -160,6 +159,7 @@ public class Constants { String RECEIVE_POINT_CLOUD_ORIGINAL = MessageType.TYPE_RECEIVE_POINT_CLOUD.desc; String RECEIVE_PLANNING_OBJECTS = MessageType.TYPE_RECEIVE_PLANNING_OBJECTS.desc; String RECEIVE_PLANNING_DECISION_STATE = MessageType.TYPE_RECEIVE_PLANNING_DECISION_STATE.desc; + String RECEIVE_SWEEPER_TASK_INDEX_DATA = MessageType.TYPE_RECEIVE_SWEEPER_TASK_INDEX_DATA.desc; // String RECEIVE_BASIC_INFO_REQ = "自动驾驶设备基础信息请求"; String TITLE_CAR_CONFIG_RESP = "工控机版本\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\t\t\t配置"; diff --git a/app_mogo_magic_ring/src/main/java/com/zhidao/adas/magic/ui/MainActivity.java b/app_mogo_magic_ring/src/main/java/com/zhidao/adas/magic/ui/MainActivity.java index c995bae83d..2791e7f8c6 100644 --- a/app_mogo_magic_ring/src/main/java/com/zhidao/adas/magic/ui/MainActivity.java +++ b/app_mogo_magic_ring/src/main/java/com/zhidao/adas/magic/ui/MainActivity.java @@ -64,13 +64,13 @@ import java.util.Locale; import java.util.Timer; import java.util.TimerTask; -import chassis.VehicleStateOuterClass; +import chassis.ChassisStatesOuterClass; +import function_state_management.FunctionStates; import mogo.telematics.pad.MessagePad; import mogo_msg.MogoReportMsg; import perception.TrafficLightOuterClass; import prediction.Prediction; import record_cache.RecordPanelOuterClass; -import rule_segement.MogoPointCloudOuterClass; import system_master.SystemStatusInfo; public class MainActivity extends BaseActivity implements OnAdasListener, OnAdasConnectStatusListener, BaseAdapter.OnItemClickListener { @@ -468,7 +468,8 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas } @Override - public void onVehicleState(MessagePad.Header header, VehicleStateOuterClass.VehicleState vehicleState) { + public void onChassisStates(MessagePad.Header header, ChassisStatesOuterClass.ChassisStates chassisStates) { + } @Override @@ -488,8 +489,6 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas } - - @Override public void onPointCloud(byte[] pointCloud) { } @@ -538,6 +537,11 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas } + @Override + public void onFunctionStates(MessagePad.Header header, FunctionStates.FSMFunctionStates functionStates) { + + } + private void initAdas() { CupidLogUtils.e(TAG, "--->初始化"); diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/adapter/MoGoAdasListenerImpl.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/adapter/MoGoAdasListenerImpl.kt index 228afa235a..c5dcb22b48 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/adapter/MoGoAdasListenerImpl.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/adapter/MoGoAdasListenerImpl.kt @@ -64,6 +64,7 @@ import mogo.telematics.pad.MessagePad import mogo.telematics.pad.MessagePad.TrackedObject import mogo_msg.MogoReportMsg import perception.TrafficLightOuterClass +import planning.RoboSweeperTaskIndexOuterClass import prediction.Prediction import record_cache.RecordPanelOuterClass import system_master.SystemStatusInfo @@ -142,20 +143,11 @@ class MoGoAdasListenerImpl : OnAdasListener { } /** - * 老底盘 - * TODO 老地盘数据会转发到新地盘 - * TODO 鹰眼不要用此接口展示页面相关,可以用来记录链路日志 + * 底盘数据 * * @param header 头 * @param vehicleState 数据 */ - override fun onVehicleState( - header: MessagePad.Header, - vehicleState: VehicleStateOuterClass.VehicleState? - ) { - - } - @ChainLog( linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_VEHICLE, linkCode = CHAIN_LINK_ADAS, @@ -472,6 +464,15 @@ class MoGoAdasListenerImpl : OnAdasListener { */ override fun onFunctionStates(header: MessagePad.Header?, functionStates: FunctionStates.FSMFunctionStates?) { + } + /** + * 清扫车指标数据 + * + * @param header 头 + * @param roboSweeperTaskIndex 数据 + */ + override fun onSweeperTaskIndexData(header: MessagePad.Header?, roboSweeperTaskIndex: RoboSweeperTaskIndexOuterClass.RoboSweeperTaskIndex?) { + } /** diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasChannel.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasChannel.java index ea191071e4..6e5d318b8d 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasChannel.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasChannel.java @@ -81,7 +81,7 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec private final Map dispatchHandlers = new HashMap<>();//其他分发线程 private Timer checkCompatibilityTimer;//检查版本兼容性定时器 连接成功后5秒内等待工控机发送配置信息 private int seqSpecialVehicle = 0;//特种车辆命令发送次数 - + private int usedChassisType = Constants.CHASSIS_TYPE.UNKNOWN;//使用的底盘类型 新老 /** * 与工控机链接状态 */ @@ -288,6 +288,11 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec return ipcConnectedPort; } + @Override + public int getUsedChassisType() { + return usedChassisType; + } + /** * 发送ws消息 * @@ -362,13 +367,21 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec if (!adasOptions.isClient()) ReceiveTimeoutManager.getInstance().refreshLast(header.getTimestamp()); // CupidLogUtils.w("--->websocket byte read header = " + messageType.toString()); - DispatchHandler handler = dispatchHandlers.get(header.getMsgType()); + MessagePad.MessageType messageType = header.getMsgType(); + DispatchHandler handler = dispatchHandlers.get(messageType); if (handler != null) { handler.sendRawMessage(raw); } else { if (defaultDispatchHandler != null) defaultDispatchHandler.sendRawMessage(raw); } + if (messageType == MessagePad.MessageType.MsgTypeVehicleState) { + //老底盘接口 + usedChassisType = Constants.CHASSIS_TYPE.OLD_CHASSIS; + } else if (messageType == MessagePad.MessageType.MsgTypeChassisStates) { + //新底盘接口 + usedChassisType = Constants.CHASSIS_TYPE.NEW_CHASSIS; + } } else { callError(raw.getProtocolStatus(), byteString.toByteArray()); } @@ -514,6 +527,7 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec ipcConnectedIp = null; ipcConnectedPort = Constants.DEFAULT_PORT; subscribeInterface = null; + usedChassisType = Constants.CHASSIS_TYPE.UNKNOWN; updateConnectStatus(Constants.IPC_CONNECTION_STATUS.DISCONNECTED, t); } diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasManager.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasManager.java index 52a2c2c294..41b1aeeb01 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasManager.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasManager.java @@ -257,6 +257,16 @@ public class AdasManager implements IAdasNetCommApi { return mChannel == null ? Constants.DEFAULT_PORT : mChannel.getIpcConnectedPort(); } + /** + * 获取使用底盘的类型 + * + * @return {@link Constants.CHASSIS_TYPE} + */ + @Override + public int getUsedChassisType() { + return mChannel == null ? Constants.CHASSIS_TYPE.UNKNOWN : mChannel.getUsedChassisType(); + } + /** * 自动驾驶设备基础信息应答 * diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/IAdasNetCommApi.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/IAdasNetCommApi.java index ccc6a0acf9..9dba573cb5 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/IAdasNetCommApi.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/IAdasNetCommApi.java @@ -59,6 +59,13 @@ public interface IAdasNetCommApi { */ int getIpcConnectedPort(); + /** + * 获取使用底盘的类型 + * + * @return {@link Constants.CHASSIS_TYPE} + */ + int getUsedChassisType(); + /** * 自动驾驶设备基础信息应答 * 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 9c2201ff38..5ac748cee9 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 @@ -5,11 +5,11 @@ import com.zhidao.support.adas.high.bean.AutopilotStatistics; import com.zhidao.support.adas.high.common.ProtocolStatus; import chassis.ChassisStatesOuterClass; -import chassis.VehicleStateOuterClass; import function_state_management.FunctionStates; import mogo.telematics.pad.MessagePad; import mogo_msg.MogoReportMsg; import perception.TrafficLightOuterClass; +import planning.RoboSweeperTaskIndexOuterClass; import prediction.Prediction; import record_cache.RecordPanelOuterClass; import system_master.SystemStatusInfo; @@ -52,16 +52,6 @@ public interface OnAdasListener { */ void onGnssInfo(MessagePad.Header header, MessagePad.GnssInfo gnssInfo); - /** - * 老底盘信息,透传底盘状态,pb参考底盘 - * TODO 老地盘数据会转发到新地盘 - * TODO 鹰眼不要用此接口展示页面相关,可以用来记录链路日志 - * TODO 后期可能会优化掉 - * - * @param header 头 - * @param vehicleState 数据 - */ - void onVehicleState(MessagePad.Header header, VehicleStateOuterClass.VehicleState vehicleState); /** * 底盘状态 @@ -201,6 +191,14 @@ public interface OnAdasListener { */ void onFunctionStates(MessagePad.Header header, FunctionStates.FSMFunctionStates functionStates); + /** + * 清扫车指标数据 + * + * @param header 头 + * @param roboSweeperTaskIndex 数据 + */ + void onSweeperTaskIndexData(MessagePad.Header header, RoboSweeperTaskIndexOuterClass.RoboSweeperTaskIndex roboSweeperTaskIndex); + /** * 是否有能力启动自动驾驶 * diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/Constants.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/Constants.java index 55b42ed75a..2063e46474 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/Constants.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/Constants.java @@ -132,4 +132,13 @@ public class Constants { int TIMEOUT = 3; } + /** + * 使用底盘数据类型 + */ + public interface CHASSIS_TYPE { + int UNKNOWN = -1;//未知 + int NEW_CHASSIS = 0;//新底盘 + int OLD_CHASSIS = 1;//老底盘 + } + } 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 7f1f7ff1bc..60c923d883 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 @@ -55,7 +55,9 @@ public enum MessageType { TYPE_SEND_TRIP_INFO_REQ(MessagePad.MessageType.MsgTypeTripInfoEvent, "行程信息"), TYPE_SEND_SPECIAL_VEHICLE_TASK_CMD(MessagePad.MessageType.MsgTypeSpecialVehicleTaskCmd, "特种车辆命令"), //TODO 透传原始pb文件中不存在以下type。由于Java中无法强转,所以在mogo-adas-data/message_pad.proto中放开注释 - TYPE_RECEIVE_PLANNING_DECISION_STATE(MessagePad.MessageType.MsgTypePlanningDecisionState, "Planning决策状态"); + TYPE_RECEIVE_PLANNING_DECISION_STATE(MessagePad.MessageType.MsgTypePlanningDecisionState, "Planning决策状态"), + TYPE_RECEIVE_SWEEPER_TASK_INDEX_DATA(MessagePad.MessageType.MsgTypeSweeperTaskIndexData, "清扫车指标数据"), + ; /** 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 ac12d84be8..2aa0afe7f0 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 @@ -33,6 +33,7 @@ public class MyMessageFactory implements IMyMessageFactory { private IMsg recordDataConfigRespMessage;//数据采集配置应答 private IMsg planningDecisionStateMessage;//planning决策状态 private IMsg functionStatesMessage;//重构后的功能状态 + private IMsg sweeperTaskIndexDataMessage;//清扫车指标数据 private final AutopilotReview autopilotReview; @@ -156,6 +157,12 @@ public class MyMessageFactory implements IMyMessageFactory { planningDecisionStateMessage = new PlanningDecisionStateMessage(); } return planningDecisionStateMessage; + } else if (messageType == MessageType.TYPE_RECEIVE_SWEEPER_TASK_INDEX_DATA.typeCode) { + //清扫车指标数据 + if (sweeperTaskIndexDataMessage == null) { + sweeperTaskIndexDataMessage = new SweeperTaskIndexDataMessage(); + } + return sweeperTaskIndexDataMessage; } else if (messageType == MessageType.TYPE_RECEIVE_FUNCTION_STATES.typeCode) { //重构后的功能状态 if (functionStatesMessage == null) { diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/SweeperTaskIndexDataMessage.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/SweeperTaskIndexDataMessage.java new file mode 100644 index 0000000000..459ddabdf3 --- /dev/null +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/SweeperTaskIndexDataMessage.java @@ -0,0 +1,31 @@ +package com.zhidao.support.adas.high.msg; + +import android.os.SystemClock; + +import com.google.protobuf.InvalidProtocolBufferException; +import com.zhidao.support.adas.high.AdasChannel; +import com.zhidao.support.adas.high.OnAdasListener; +import com.zhidao.support.adas.high.common.CupidLogUtils; +import com.zhidao.support.adas.high.protocol.RawData; + +import planning.RoboSweeperTaskIndexOuterClass; + +/** + * 清扫车指标数据 + */ +public class SweeperTaskIndexDataMessage extends MyAbstractMessageHandler { + + @Override + public void handlerMsg(RawData raw, OnAdasListener adasListener) throws InvalidProtocolBufferException { + RoboSweeperTaskIndexOuterClass.RoboSweeperTaskIndex roboSweeperTaskIndex = RoboSweeperTaskIndexOuterClass.RoboSweeperTaskIndex.parser().parseFrom(raw.originalData.toByteArray(), raw.getOffsetValue(), raw.getPackageLengthValue() - raw.getOffsetValue()); + AdasChannel.calculateTimeConsumingOnDispatchRaw("清扫车指标数据", raw.receiveTime); + long nowTime = 0; + if (CupidLogUtils.isEnableLog()) + nowTime = SystemClock.elapsedRealtime(); + if (adasListener != null) { + adasListener.onSweeperTaskIndexData(raw.getHeader(), roboSweeperTaskIndex); + } + AdasChannel.calculateTimeConsumingBusiness("清扫车指标数据", nowTime); + } + +} diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/VehicleStateMessage.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/VehicleStateMessage.java index 24512ac952..c84c6859a8 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/VehicleStateMessage.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/VehicleStateMessage.java @@ -29,7 +29,6 @@ public class VehicleStateMessage extends MyAbstractMessageHandler { nowTime = SystemClock.elapsedRealtime(); if (adasListener != null) { compatibility(adasListener, raw, vehicleState); - adasListener.onVehicleState(raw.getHeader(), vehicleState); } AdasChannel.calculateTimeConsumingBusiness("底盘信息", nowTime); // CupidLogUtils.e("底盘信息--->" + vehicleState.toString());