From 019f50705de64567d0fbf1640a8c1aca22350f38 Mon Sep 17 00:00:00 2001 From: xinfengkun Date: Mon, 9 Jan 2023 17:47:59 +0800 Subject: [PATCH] =?UTF-8?q?[pb12][=E9=87=8D=E6=9E=84=E5=90=8E=E7=9A=84?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E7=8A=B6=E6=80=81]=20=E6=B8=85=E6=89=AB?= =?UTF-8?q?=E8=BD=A6=E5=88=86=E6=94=AF=20=E6=B7=BB=E5=8A=A0=E9=87=8D?= =?UTF-8?q?=E6=9E=84=E5=90=8E=E7=9A=84=E5=8A=9F=E8=83=BD=E7=8A=B6=E6=80=81?= =?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 | 10 ++++++ .../adas/client/bean/FSMFunctionStates.java | 24 ++++++++++++++ .../zhidao/adas/client/ui/InfoFragment.java | 4 ++- .../zhidao/adas/client/ui/MainActivity.java | 9 ++++++ .../zhidao/adas/client/utils/Constants.java | 1 + .../autopilot/adapter/MoGoAdasListenerImpl.kt | 9 ++++++ .../support/adas/high/OnAdasListener.java | 8 +++++ .../support/adas/high/common/MessageType.java | 1 + .../adas/high/msg/FunctionStatesMessage.java | 31 +++++++++++++++++++ .../adas/high/msg/MyMessageFactory.java | 7 +++++ 10 files changed, 103 insertions(+), 1 deletion(-) create mode 100644 app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/FSMFunctionStates.java create mode 100644 libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/FunctionStatesMessage.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 f5d3a779d7..3c97a47bd9 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 @@ -9,6 +9,7 @@ import com.zhidao.adas.client.bean.BasicInfoReq; import com.zhidao.adas.client.bean.CarConfigResp; import com.zhidao.adas.client.bean.ChassisStates; import com.zhidao.adas.client.bean.ErrorData; +import com.zhidao.adas.client.bean.FSMFunctionStates; import com.zhidao.adas.client.bean.GlobalPathResp; import com.zhidao.adas.client.bean.GnssInfo; import com.zhidao.adas.client.bean.MogoReportMessage; @@ -119,6 +120,7 @@ public class DataDistribution { public final List listPlanningObjects = new ArrayList<>(); public final List listPlanningDecisionState = new ArrayList<>(); public final List listChassisStates = new ArrayList<>(); + public final List listFSMFunctionStates = new ArrayList<>(); public String cutDown(String str) { if (isCutDown && str.length() > 650) { @@ -280,6 +282,14 @@ public class DataDistribution { if (listener != null && Constants.TITLE.RECEIVE_RECORD_DATA_CONFIG_RESP.equals(listener.first)) { listener.second.onRefresh(); } + } else if (data instanceof FSMFunctionStates) { + listFSMFunctionStates.add(0, time + str); + if (listFSMFunctionStates.size() > LIST_SIZE) { + listFSMFunctionStates.remove(listFSMFunctionStates.size() - 1); + } + if (listener != null && Constants.TITLE.RECEIVE_FUNCTION_STATES.equals(listener.first)) { + listener.second.onRefresh(); + } } else if (data instanceof ErrorData) { listErrorData.add(0, time + str); if (listErrorData.size() > 100) { diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/FSMFunctionStates.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/FSMFunctionStates.java new file mode 100644 index 0000000000..1d672127ae --- /dev/null +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/FSMFunctionStates.java @@ -0,0 +1,24 @@ +package com.zhidao.adas.client.bean; + +import com.google.protobuf.TextFormat; + +import java.text.SimpleDateFormat; + +import function_state_management.FunctionStates; +import mogo.telematics.pad.MessagePad; + +public class FSMFunctionStates extends BaseInfo { + public final FunctionStates.FSMFunctionStates bean; + + public FSMFunctionStates(MessagePad.Header header, FunctionStates.FSMFunctionStates 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 c37d161df6..6cd6a1e277 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 @@ -107,7 +107,7 @@ public class InfoFragment extends BaseFragment { 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)) { + } else if (Constants.TITLE.RECEIVE_TRACKED_OBJECTS.equals(title)) { adapter.setData(DataDistribution.getInstance().listTrackedObjects); } else if (Constants.TITLE.RECEIVE_AUTOPILOT_STATE.equals(title)) { adapter.setData(DataDistribution.getInstance().listAutopilotState); @@ -137,6 +137,8 @@ public class InfoFragment extends BaseFragment { adapter.setData(DataDistribution.getInstance().listPlanningObjects); } else if (Constants.TITLE.RECEIVE_PLANNING_DECISION_STATE.equals(title)) { adapter.setData(DataDistribution.getInstance().listPlanningDecisionState); + } else if (Constants.TITLE.RECEIVE_FUNCTION_STATES.equals(title)) { + adapter.setData(DataDistribution.getInstance().listFSMFunctionStates); } 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 e062ff1db2..fec0bebc69 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 @@ -61,6 +61,7 @@ import com.zhidao.adas.client.bean.BasicInfoReq; import com.zhidao.adas.client.bean.CarConfigResp; import com.zhidao.adas.client.bean.ChassisStates; import com.zhidao.adas.client.bean.ErrorData; +import com.zhidao.adas.client.bean.FSMFunctionStates; import com.zhidao.adas.client.bean.GlobalPathResp; import com.zhidao.adas.client.bean.GnssInfo; import com.zhidao.adas.client.bean.IPCConnectState; @@ -116,6 +117,7 @@ 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; @@ -633,6 +635,7 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas 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); titleFragmentData.add(Constants.TITLE.RECEIVE_REPORT_MESSAGE); titleFragmentData.add(Constants.TITLE.RECEIVE_PERCEPTION_TRAFFIC_LIGHT); titleFragmentData.add(Constants.TITLE.RECEIVE_PREDICTION_OBSTACLE_TRAJECTORY); @@ -1025,6 +1028,12 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas DataDistribution.getInstance().addData(base); } + @Override + public void onFunctionStates(MessagePad.Header header, FunctionStates.FSMFunctionStates functionStates) { + FSMFunctionStates base = new FSMFunctionStates(header, functionStates, sdf); + DataDistribution.getInstance().addData(base); + } + private void initAdas() { CupidLogUtils.e(TAG, "--->初始化"); 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 c2c121a5fb..1d22d00398 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 @@ -153,6 +153,7 @@ public class Constants { 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; String RECEIVE_REPORT_MESSAGE = MessageType.TYPE_RECEIVE_REPORT_MESSAGE.desc; String RECEIVE_PERCEPTION_TRAFFIC_LIGHT = MessageType.TYPE_RECEIVE_PERCEPTION_TRAFFIC_LIGHT.desc; String RECEIVE_PREDICTION_OBSTACLE_TRAJECTORY = MessageType.TYPE_RECEIVE_PREDICTION_OBSTACLE_TRAJECTORY.desc; 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 aa5a1d3326..621e2f9281 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 @@ -61,6 +61,7 @@ import com.zhidao.support.adas.high.bean.AutopilotStatistics import com.zhidao.support.adas.high.common.ProtocolStatus import com.zhjt.service.chain.ChainLog import com.zhjt.service.chain.TracingConstants.Endpoint.Companion.PAD +import function_state_management.FunctionStates import mogo.telematics.pad.MessagePad import mogo.telematics.pad.MessagePad.TrackedObject import mogo_msg.MogoReportMsg @@ -469,7 +470,15 @@ class MoGoAdasListenerImpl : OnAdasListener { invokePNCActions(it) } } + /** + * 重构后的功能状态 + * + * @param header 头 + * @param functionStates 头 + */ + override fun onFunctionStates(header: MessagePad.Header?, functionStates: FunctionStates.FSMFunctionStates?) { + } /** 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 c7f12a0607..9c2201ff38 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 @@ -6,6 +6,7 @@ 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; @@ -192,6 +193,13 @@ public interface OnAdasListener { */ void onPlanningActionMsg(MessagePad.Header header, MessagePad.PlanningActionMsg planningActionMsg); + /** + * 重构后的功能状态 + * + * @param header 头 + * @param functionStates 头 + */ + void onFunctionStates(MessagePad.Header header, FunctionStates.FSMFunctionStates functionStates); /** * 是否有能力启动自动驾驶 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 bba5e81ba8..7f1f7ff1bc 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 @@ -24,6 +24,7 @@ public enum MessageType { TYPE_RECEIVE_POINT_CLOUD(MessagePad.MessageType.MsgTypePointCloud, "点云透传"), TYPE_RECEIVE_PLANNING_OBJECTS(MessagePad.MessageType.MsgTypePlanningObjects, "Planning障碍物"), TYPE_RECEIVE_CHASSIS_STATES(MessagePad.MessageType.MsgTypeChassisStates, "底盘状态"), + TYPE_RECEIVE_FUNCTION_STATES(MessagePad.MessageType.MsgTypeFunctionStates, "重构后功能状态"), 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/FunctionStatesMessage.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/FunctionStatesMessage.java new file mode 100644 index 0000000000..ff734645a7 --- /dev/null +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/FunctionStatesMessage.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 function_state_management.FunctionStates; + +/** + * 重构后的功能状态 + */ +public class FunctionStatesMessage extends MyAbstractMessageHandler { + + @Override + public void handlerMsg(RawData raw, OnAdasListener adasListener) throws InvalidProtocolBufferException { + FunctionStates.FSMFunctionStates functionStates = FunctionStates.FSMFunctionStates.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.onFunctionStates(raw.getHeader(), functionStates); + } + AdasChannel.calculateTimeConsumingBusiness("重构后的功能状态", nowTime); + } + +} 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 81db876d97..ac12d84be8 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 @@ -32,6 +32,7 @@ public class MyMessageFactory implements IMyMessageFactory { private IMsg statusQueryRespMessage;//状态查询应答 private IMsg recordDataConfigRespMessage;//数据采集配置应答 private IMsg planningDecisionStateMessage;//planning决策状态 + private IMsg functionStatesMessage;//重构后的功能状态 private final AutopilotReview autopilotReview; @@ -155,6 +156,12 @@ public class MyMessageFactory implements IMyMessageFactory { planningDecisionStateMessage = new PlanningDecisionStateMessage(); } return planningDecisionStateMessage; + } else if (messageType == MessageType.TYPE_RECEIVE_FUNCTION_STATES.typeCode) { + //重构后的功能状态 + if (functionStatesMessage == null) { + functionStatesMessage = new FunctionStatesMessage(); + } + return functionStatesMessage; } else { //MessageType.TYPE_DEFAULT.typeCode return null;