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 0249693a3f..65babeb785 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 @@ -16,6 +16,7 @@ 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.StatusInfo; import com.zhidao.adas.client.bean.TrackedObjects; import com.zhidao.adas.client.bean.Trajectory; import com.zhidao.adas.client.bean.VehicleState; @@ -108,6 +109,7 @@ public class DataDistribution { public final List listGlobalPathResp = new ArrayList<>(); public final List listWarn = new ArrayList<>(); public final List listArrivalNotification = new ArrayList<>(); + public final List listStatusInfo = new ArrayList<>(); public final List listErrorData = new ArrayList<>(); public final List listPointCloud = new ArrayList<>(); public final List listPlanningObjects = new ArrayList<>(); @@ -240,6 +242,14 @@ public class DataDistribution { if (listener != null && Constants.TITLE.RECEIVE_ARRIVAL_NOTIFICATION.equals(listener.first)) { listener.second.onRefresh(); } + } else if (data instanceof StatusInfo) { + listStatusInfo.add(0, time + str); + if (listStatusInfo.size() > LIST_SIZE) { + listStatusInfo.remove(listStatusInfo.size() - 1); + } + if (listener != null && Constants.TITLE.RECEIVE_STATUS_QUERY_RESP.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/StatusInfo.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/StatusInfo.java new file mode 100644 index 0000000000..e0f6c419a7 --- /dev/null +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/StatusInfo.java @@ -0,0 +1,22 @@ +package com.zhidao.adas.client.bean; + +import com.google.protobuf.TextFormat; + +import mogo.telematics.pad.MessagePad; +import system_master.SystemStatusInfo; + +public class StatusInfo extends BaseInfo { + public final SystemStatusInfo.StatusInfo bean; + + public StatusInfo(MessagePad.Header header, SystemStatusInfo.StatusInfo 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 484b743dc3..148f773758 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 @@ -101,52 +101,38 @@ public class InfoFragment extends BaseFragment { } private void setData() { - switch (title) { - case Constants.TITLE.RECEIVE_GNSS_INFO: - adapter.setData(DataDistribution.getInstance().listGnssInfo); - break; - case Constants.TITLE.RECEIVE_VEHICLE_STATE: - adapter.setData(DataDistribution.getInstance().listVehicleState); - break; - case Constants.TITLE.RECEIVE_TRACKED_OBJECTS: - adapter.setData(DataDistribution.getInstance().listTrackedObjects); - break; - case Constants.TITLE.RECEIVE_AUTOPILOT_STATE: - adapter.setData(DataDistribution.getInstance().listAutopilotState); - break; - case Constants.TITLE.RECEIVE_WARN: - adapter.setData(DataDistribution.getInstance().listWarn); - break; - case Constants.TITLE.RECEIVE_TRAJECTORY: - adapter.setData(DataDistribution.getInstance().listTrajectory); - break; - case Constants.TITLE.RECEIVE_ARRIVAL_NOTIFICATION: - adapter.setData(DataDistribution.getInstance().listArrivalNotification); - break; - case Constants.TITLE.RECEIVE_GLOBAL_PATH_RESP: - adapter.setData(DataDistribution.getInstance().listGlobalPathResp); - break; - case Constants.TITLE.RECEIVE_RECORD_RESULT: - adapter.setData(DataDistribution.getInstance().listRecordPanel); - break; - case Constants.TITLE.RECEIVE_REPORT_MESSAGE: - adapter.setData(DataDistribution.getInstance().listMogoReportMessage); - break; - 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_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; + 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_TRACKED_OBJECTS.equals(title)) { + adapter.setData(DataDistribution.getInstance().listTrackedObjects); + } else if (Constants.TITLE.RECEIVE_AUTOPILOT_STATE.equals(title)) { + adapter.setData(DataDistribution.getInstance().listAutopilotState); + } else if (Constants.TITLE.RECEIVE_WARN.equals(title)) { + adapter.setData(DataDistribution.getInstance().listWarn); + } else if (Constants.TITLE.RECEIVE_TRAJECTORY.equals(title)) { + adapter.setData(DataDistribution.getInstance().listTrajectory); + } else if (Constants.TITLE.RECEIVE_ARRIVAL_NOTIFICATION.equals(title)) { + adapter.setData(DataDistribution.getInstance().listArrivalNotification); + } else if (Constants.TITLE.RECEIVE_STATUS_QUERY_RESP.equals(title)){ + adapter.setData(DataDistribution.getInstance().listStatusInfo); + } else if (Constants.TITLE.RECEIVE_GLOBAL_PATH_RESP.equals(title)) { + adapter.setData(DataDistribution.getInstance().listGlobalPathResp); + } else if (Constants.TITLE.RECEIVE_RECORD_RESULT.equals(title)) { + adapter.setData(DataDistribution.getInstance().listRecordPanel); + } else if (Constants.TITLE.RECEIVE_REPORT_MESSAGE.equals(title)) { + adapter.setData(DataDistribution.getInstance().listMogoReportMessage); + } else if (Constants.TITLE.RECEIVE_PERCEPTION_TRAFFIC_LIGHT.equals(title)) { + adapter.setData(DataDistribution.getInstance().listPerceptionTrafficLight); + } else if (Constants.TITLE.RECEIVE_PREDICTION_OBSTACLE_TRAJECTORY.equals(title)) { + adapter.setData(DataDistribution.getInstance().listPredictionObstacleTrajectory); + } else if (Constants.TITLE.RECEIVE_POINT_CLOUD.equals(title)) { + adapter.setData(DataDistribution.getInstance().listPointCloud); + } else if (Constants.TITLE.RECEIVE_PLANNING_OBJECTS.equals(title)) { + adapter.setData(DataDistribution.getInstance().listPlanningObjects); + }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 1268018481..e634012900 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 @@ -66,6 +66,7 @@ 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.StatusInfo; import com.zhidao.adas.client.bean.TrackedObjects; import com.zhidao.adas.client.bean.Trajectory; import com.zhidao.adas.client.bean.VehicleState; @@ -102,6 +103,7 @@ 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 { private final static String TAG = MainActivity.class.getSimpleName(); @@ -520,6 +522,7 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas titleFragmentData.add(Constants.TITLE.RECEIVE_RECORD_RESULT); 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_WARN); titleFragmentData.add(Constants.TITLE.RECEIVE_ERROR); @@ -790,6 +793,12 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas DataDistribution.getInstance().addData(base); } + @Override + public void onStatusQueryResp(MessagePad.Header header, SystemStatusInfo.StatusInfo statusInfo) { + StatusInfo base = new StatusInfo(header, statusInfo); + 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 190534fcc3..16c93a6ac7 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 @@ -6,6 +6,7 @@ import android.text.TextUtils; import com.google.gson.reflect.TypeToken; import com.zhidao.adas.client.bean.AutoPilotMode; import com.zhidao.support.adas.high.common.JsonUtil; +import com.zhidao.support.adas.high.common.MessageType; import java.util.ArrayList; import java.util.List; @@ -140,39 +141,28 @@ public class Constants { } - - public interface TITLE { - String RECEIVE_TRAJECTORY = "车前引导线"; - String RECEIVE_TRACKED_OBJECTS = "障碍物信息"; - String RECEIVE_GNSS_INFO = "惯导信息"; - String RECEIVE_VEHICLE_STATE = "底盘信息"; - String RECEIVE_AUTOPILOT_STATE = "自动驾驶状态"; - String RECEIVE_REPORT_MESSAGE = "监控事件"; - String RECEIVE_PERCEPTION_TRAFFIC_LIGHT = "感知红绿灯"; - String RECEIVE_PREDICTION_OBSTACLE_TRAJECTORY = "他车轨迹预测"; - String RECEIVE_POINT_CLOUD = "点云透传"; - String RECEIVE_PLANNING_OBJECTS = "Planning障碍物"; + 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_AUTOPILOT_STATE = MessageType.TYPE_RECEIVE_AUTOPILOT_STATE.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; + String RECEIVE_POINT_CLOUD = MessageType.TYPE_RECEIVE_POINT_CLOUD.desc; + String RECEIVE_PLANNING_OBJECTS = MessageType.TYPE_RECEIVE_PLANNING_OBJECTS.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固定IP配置"; String RECEIVE_CAR_CONFIG_RESP = "信息与配置"; - String RECEIVE_RECORD_RESULT = "数据采集结果"; - String RECEIVE_GLOBAL_PATH_RESP = "自动驾驶路径"; - String RECEIVE_WARN = "预警数据"; - String RECEIVE_ARRIVAL_NOTIFICATION = "到站提醒"; + String RECEIVE_RECORD_RESULT = MessageType.TYPE_RECEIVE_RECORD_RESULT.desc; + String RECEIVE_GLOBAL_PATH_RESP = MessageType.TYPE_RECEIVE_GLOBAL_PATH_RESP.desc; + String RECEIVE_WARN = MessageType.TYPE_RECEIVE_WARN.desc; + String RECEIVE_ARRIVAL_NOTIFICATION = MessageType.TYPE_RECEIVE_ARRIVAL_NOTIFICATION.desc; + String RECEIVE_STATUS_QUERY_RESP = MessageType.TYPE_RECEIVE_STATUS_QUERY_RESP.desc; String RECEIVE_ERROR = "错误数据"; - String SEND_BASIC_INFO_RESP = "自动驾驶设备基础信息应答"; - String SEND_SET_AUTOPILOT_MODE_REQ = "设置自动驾驶模式 启动自动驾驶"; - String SEND_SET_DEMO_MODE_REQ = "设置演示模式"; - String SEND_CAR_CONFIG_REQ = "车机基础信息请求"; - String SEND_RECORD_CAUSE = "记录人工接管原因"; - String SEND_RECORD_DATA = "数据采集请求"; - String SEND_SET_AUTOPILOT_SPEED_REQ = "设置自动驾驶最大速度"; - String SEND_GLOBAL_PATH_REQ = "自动驾驶路径请求"; - String SEND_TRAFFIC_LIGHT_DATA = "发送红绿灯数据到工控机"; - } } 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 64ec6de46d..87c21dfdf2 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 @@ -52,6 +52,7 @@ import perception.TrafficLightOuterClass import prediction.Prediction import record_cache.RecordPanelOuterClass import rule_segement.MogoPointCloudOuterClass +import system_master.SystemStatusInfo /** * @author emArrow @@ -346,6 +347,13 @@ class MoGoAdasListenerImpl : OnAdasListener { } } + override fun onStatusQueryResp( + header: MessagePad.Header?, + statusInfo: SystemStatusInfo.StatusInfo? + ) { + //状态查询应答 + } + override fun onError(status: ProtocolStatus, bytes: ByteArray) { 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 b563f7367e..443c7589ea 100644 --- a/libraries/mogo-adas-data/src/main/proto/message_pad.proto +++ b/libraries/mogo-adas-data/src/main/proto/message_pad.proto @@ -38,6 +38,8 @@ enum MessageType MsgTypeArrivalNotification = 0x1010e; //到站提醒 MsgTypeSystemCmdReq = 0x1010f; //系统命令请求, 比如系统重启,启用新镜像 MsgTypeTrajectoryDownloadReq = 0x10110; //轨迹下载请求 + MsgTypeStatusQueryReq = 0x10111; //状态查询请求 + MsgTypeStatusQueryResp = 0x10112; //状态查询应答 } message Header @@ -327,12 +329,13 @@ message SystemCmdReq SystemCmdType cmdType = 1; // } - - - - - - +// message definition for MsgTypeStatusQueryReq +message StatusQueryReq +{ +} + +// message definition for MsgTypeStatusQueryResp +// refer to system_status_info.proto diff --git a/libraries/mogo-adas-data/src/main/proto/system_status_info.proto b/libraries/mogo-adas-data/src/main/proto/system_status_info.proto new file mode 100644 index 0000000000..d5fb5363e1 --- /dev/null +++ b/libraries/mogo-adas-data/src/main/proto/system_status_info.proto @@ -0,0 +1,47 @@ +syntax = "proto2"; + +package system_master; + +enum SystemState { + SYS_STARTING = 0; + SYS_RUNNING = 1; + SYS_EXITING = 2; + SYS_FAULT = 3; + PILOT_READY = 4; + AUTO_PILOT_STARTING = 5; + AUTO_PILOT_RUNNING = 6; + REMOTE_PILOT_STARTING = 7; + REMOTE_PILOT_RUNNING = 8; +} + +enum HealthState { + NORMAL = 0; + FAULT = 1; + UNKNOW = 2; +} + +message HealthInfo{ + required string name = 1; //node name + required HealthState state = 2; //health state + optional string code = 3; //code 与系统事件错误码对应,如有该错误填写,没有不填 + optional string desc = 4; //补充描述,用于未知情况 +} + +message TopicInfo{ + optional string name = 1; //topic name + optional int32 hz = 2; + // optional int32 max_delay = 3; //unit: msec +} + +message DropTopic{ + required int32 sum = 1; //dropped topic sum + repeated TopicInfo topic = 2; +} + + +message StatusInfo { + required SystemState sys_state=1; // 当前消息状态 + repeated HealthInfo health_info=2; // 健康检查状态信息 + optional DropTopic topic_drop_info=3; // topic 掉频信息, 如有掉频添加没有不添加 + optional string reserved = 4; // 预留可选字段,用于接口扩充或者,其他信息补充 +} 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 eb90964934..9183294300 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 @@ -862,5 +862,18 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec MessagePad.TrajectoryDownloadReq req = builder.build(); return sendWsMessage(MessageType.TYPE_SEND_TRAJECTORY_DOWNLOAD_REQ.typeCode, req.toByteArray()); } + + /** + * 发送 状态查询请求 + * + * @return boolean + */ + @Override + public boolean sendStatusQueryReq() { + MessagePad.StatusQueryReq req = MessagePad.StatusQueryReq + .newBuilder() + .build(); + return sendWsMessage(MessageType.TYPE_SEND_STATUS_QUERY_REQ.typeCode, req.toByteArray()); + } } 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 d1a0b7772b..2a62193118 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 @@ -406,6 +406,16 @@ public class AdasManager implements IAdasNetCommApi { return mChannel != null && mChannel.sendTrajectoryDownloadReq(line); } + /** + * 发送 状态查询请求 + * + * @return boolean + */ + @Override + public boolean sendStatusQueryReq() { + return mChannel != null && mChannel.sendStatusQueryReq(); + } + /** * 获取工控机固定IP列表 * 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 9581e2173e..1ddceda5c3 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 @@ -188,6 +188,13 @@ public interface IAdasNetCommApi { */ boolean sendTrajectoryDownloadReq(MessagePad.Line line); + /** + * 发送 状态查询请求 + * + * @return boolean + */ + boolean sendStatusQueryReq(); + // TODO 需求暂停 待讨论 // boolean getRoutes(); 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 02c343889b..8525cae391 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 @@ -9,6 +9,7 @@ import perception.TrafficLightOuterClass; import prediction.Prediction; import record_cache.RecordPanelOuterClass; import rule_segement.MogoPointCloudOuterClass; +import system_master.SystemStatusInfo; /** * @ProjectName: lib-adas-fpga @@ -155,6 +156,14 @@ public interface OnAdasListener { */ void onArrivalNotification(MessagePad.Header header, MessagePad.ArrivalNotification arrivalNotification); + /** + * 状态查询应答 + * + * @param header 头 + * @param statusInfo 数据 + */ + void onStatusQueryResp(MessagePad.Header header, SystemStatusInfo.StatusInfo statusInfo); + /** * 数据错误 * 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 4fb48cfc1a..e26edeaa0d 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 @@ -12,16 +12,16 @@ import mogo.telematics.pad.MessagePad; public enum MessageType { TYPE_DEFAULT(MessagePad.MessageType.MsgTypeDefault, "默认"), - TYPE_RECEIVE_TRAJECTORY(MessagePad.MessageType.MsgTypeTrajectory, "局部轨迹,车前引导线"), + TYPE_RECEIVE_TRAJECTORY(MessagePad.MessageType.MsgTypeTrajectory, "车前引导线"), TYPE_RECEIVE_TRACKED_OBJECTS(MessagePad.MessageType.MsgTypeTrackedObjects, "障碍物信息"), TYPE_RECEIVE_GNSS_INFO(MessagePad.MessageType.MsgTypeGnssInfo, "惯导信息"), - TYPE_RECEIVE_VEHICLE_STATE(MessagePad.MessageType.MsgTypeVehicleState, "底盘信息, 透传底盘状态,pb参考底盘"), + TYPE_RECEIVE_VEHICLE_STATE(MessagePad.MessageType.MsgTypeVehicleState, "底盘信息"), 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_POINT_CLOUD(MessagePad.MessageType.MsgTypePointCloud, "点云透传"), - TYPE_RECEIVE_PLANNING_OBJECTS(MessagePad.MessageType.MsgTypePlanningObjects, "planning障碍物"), + TYPE_RECEIVE_PLANNING_OBJECTS(MessagePad.MessageType.MsgTypePlanningObjects, "Planning障碍物"), TYPE_RECEIVE_BASIC_INFO_REQ(MessagePad.MessageType.MsgTypeBasicInfoReq, "自动驾驶设备基础信息请求"), TYPE_SEND_BASIC_INFO_RESP(MessagePad.MessageType.MsgTypeBasicInfoResp, "自动驾驶设备基础信息应答"), @@ -40,7 +40,9 @@ public enum MessageType { TYPE_RECEIVE_WARN(MessagePad.MessageType.MsgTypeWarn, "预警数据"), TYPE_RECEIVE_ARRIVAL_NOTIFICATION(MessagePad.MessageType.MsgTypeArrivalNotification, "到站提醒"), TYPE_SEND_SYSTEM_CMD_REQ(MessagePad.MessageType.MsgTypeSystemCmdReq, "系统命令请求, 比如系统重启,启用新镜像"), - TYPE_SEND_TRAJECTORY_DOWNLOAD_REQ(MessagePad.MessageType.MsgTypeTrajectoryDownloadReq, "轨迹下载请求"); + TYPE_SEND_TRAJECTORY_DOWNLOAD_REQ(MessagePad.MessageType.MsgTypeTrajectoryDownloadReq, "轨迹下载请求"), + TYPE_SEND_STATUS_QUERY_REQ(MessagePad.MessageType.MsgTypeStatusQueryReq, "状态查询请求"), + TYPE_RECEIVE_STATUS_QUERY_RESP(MessagePad.MessageType.MsgTypeStatusQueryResp, "状态查询应答"); /** * 消息action code 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 3c4ddfcd04..022a779435 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 @@ -28,6 +28,7 @@ public class MyMessageFactory implements IMyMessageFactory { private IMsg globalPathRespMessage;//自动驾驶路径应答 private IMsg warnMessage;//预警数据 private IMsg arrivalNotificationMessage;//到站提醒 + private IMsg statusQueryRespMessage;//状态查询应答 @Override @@ -128,6 +129,12 @@ public class MyMessageFactory implements IMyMessageFactory { arrivalNotificationMessage = new ArrivalNotificationMessage(); } return arrivalNotificationMessage; + } else if (messageType == MessageType.TYPE_RECEIVE_STATUS_QUERY_RESP.typeCode) { + //状态查询应答 + if (statusQueryRespMessage == null) { + statusQueryRespMessage = new StatusQueryRespMessage(); + } + return statusQueryRespMessage; } else { //MessageType.TYPE_DEFAULT.typeCode return null; diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/StatusQueryRespMessage.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/StatusQueryRespMessage.java new file mode 100644 index 0000000000..ddf101b865 --- /dev/null +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/StatusQueryRespMessage.java @@ -0,0 +1,24 @@ +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; +import system_master.SystemStatusInfo; + +/** + * 状态查询应答 + */ +public class StatusQueryRespMessage extends MyAbstractMessageHandler { + + @Override + public void handlerMsg(RawData raw, OnAdasListener adasListener) throws InvalidProtocolBufferException { + SystemStatusInfo.StatusInfo statusInfo= SystemStatusInfo.StatusInfo.parser().parseFrom(raw.originalData.toByteArray(), raw.getOffsetValue(), raw.getPackageLengthValue() - raw.getOffsetValue()); + if (adasListener != null) { + adasListener.onStatusQueryResp(raw.getHeader(), statusInfo); + } +// CupidLogUtils.e("状态查询应答--->" + statusInfo.toString()); + } + +}