[change] pb 添加透传Planning决策状态

This commit is contained in:
xinfengkun
2022-08-09 12:32:04 +08:00
parent fa1e5ed21f
commit 9345eabbdb
12 changed files with 131 additions and 24 deletions

View File

@@ -11,9 +11,9 @@ import com.zhidao.adas.client.bean.ErrorData;
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.MyPointCloud;
import com.zhidao.adas.client.bean.OriginalPointCloudData;
import com.zhidao.adas.client.bean.PerceptionTrafficLight;
import com.zhidao.adas.client.bean.PlanningDecisionState;
import com.zhidao.adas.client.bean.PlanningObjects;
import com.zhidao.adas.client.bean.PredictionObstacleTrajectory;
import com.zhidao.adas.client.bean.RecordDataConfig;
@@ -116,6 +116,7 @@ public class DataDistribution {
public final List<String> listErrorData = new ArrayList<>();
public final List<String> listOriginalPointCloud = new ArrayList<>();
public final List<String> listPlanningObjects = new ArrayList<>();
public final List<String> listPlanningDecisionState = new ArrayList<>();
public String cutDown(String str) {
if (isCutDown && str.length() > 650) {
@@ -159,6 +160,14 @@ public class DataDistribution {
if (listener != null && Constants.TITLE.RECEIVE_PLANNING_OBJECTS.equals(listener.first)) {
listener.second.onRefresh();
}
} else if (data instanceof PlanningDecisionState) {
listPlanningDecisionState.add(0, time + str);
if (listPlanningDecisionState.size() > LIST_SIZE) {
listPlanningDecisionState.remove(listPlanningDecisionState.size() - 1);
}
if (listener != null && Constants.TITLE.RECEIVE_PLANNING_DECISION_STATE.equals(listener.first)) {
listener.second.onRefresh();
}
} else if (data instanceof GnssInfo) {
listGnssInfo.add(0, time + str);
if (listGnssInfo.size() > LIST_SIZE) {

View File

@@ -0,0 +1,23 @@
package com.zhidao.adas.client.bean;
import com.google.protobuf.TextFormat;
import java.text.SimpleDateFormat;
import mogo.telematics.pad.MessagePad;
public class PlanningDecisionState extends BaseInfo {
public final MessagePad.PlanningActionMsg bean;
public PlanningDecisionState(MessagePad.Header header, MessagePad.PlanningActionMsg bean, SimpleDateFormat sdf) {
super("接收", bean.getSerializedSize(), header, sdf);
this.bean = bean;
}
@Override
public String toString() {
return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean);
}
}

View File

@@ -133,6 +133,8 @@ public class InfoFragment extends BaseFragment {
adapter.setData(DataDistribution.getInstance().listOriginalPointCloud);
} else if (Constants.TITLE.RECEIVE_PLANNING_OBJECTS.equals(title)) {
adapter.setData(DataDistribution.getInstance().listPlanningObjects);
} else if (Constants.TITLE.RECEIVE_PLANNING_DECISION_STATE.equals(title)) {
adapter.setData(DataDistribution.getInstance().listPlanningDecisionState);
} else {
adapter.setData(DataDistribution.getInstance().listErrorData);
}

View File

@@ -65,6 +65,7 @@ import com.zhidao.adas.client.bean.IPCConnectState;
import com.zhidao.adas.client.bean.MogoReportMessage;
import com.zhidao.adas.client.bean.OriginalPointCloudData;
import com.zhidao.adas.client.bean.PerceptionTrafficLight;
import com.zhidao.adas.client.bean.PlanningDecisionState;
import com.zhidao.adas.client.bean.PlanningObjects;
import com.zhidao.adas.client.bean.PredictionObstacleTrajectory;
import com.zhidao.adas.client.bean.RecordDataConfig;
@@ -615,6 +616,7 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas
titleFragmentData.add(Constants.TITLE.RECEIVE_PREDICTION_OBSTACLE_TRAJECTORY);
titleFragmentData.add(Constants.TITLE.RECEIVE_POINT_CLOUD_ORIGINAL);
titleFragmentData.add(Constants.TITLE.RECEIVE_PLANNING_OBJECTS);
titleFragmentData.add(Constants.TITLE.RECEIVE_PLANNING_DECISION_STATE);
titleFragmentData.add(Constants.TITLE.RECEIVE_CAR_CONFIG_RESP);
titleFragmentData.add(Constants.TITLE.RECEIVE_RECORD_DATA_CONFIG_RESP);
titleFragmentData.add(Constants.TITLE.RECEIVE_RECORD_RESULT);
@@ -929,6 +931,12 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas
DataDistribution.getInstance().addData(base);
}
@Override
public void onPlanningActionMsg(MessagePad.Header header, MessagePad.PlanningActionMsg planningActionMsg) {
PlanningDecisionState base = new PlanningDecisionState(header, planningActionMsg, sdf);
DataDistribution.getInstance().addData(base);
}
private void initAdas() {
CupidLogUtils.e(TAG, "--->初始化");

View File

@@ -157,6 +157,7 @@ public class Constants {
String RECEIVE_PREDICTION_OBSTACLE_TRAJECTORY = MessageType.TYPE_RECEIVE_PREDICTION_OBSTACLE_TRAJECTORY.desc;
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_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配置";

View File

@@ -1,6 +1,5 @@
package com.mogo.eagle.core.function.autopilot.adapter
import android.util.*
import chassis.VehicleStateOuterClass
import com.mogo.eagle.core.data.config.FunctionBuildConfig
import com.mogo.eagle.core.data.config.HdMapBuildConfig
@@ -45,7 +44,6 @@ import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotPointCloudList
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotRecordListenerManager.invokeAutopilotRecordResult
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotVehicleStateListenerManager
import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager
import com.mogo.eagle.core.network.utils.*
import com.zhidao.support.adas.high.AdasManager
import com.zhidao.support.adas.high.OnAdasListener
import com.zhidao.support.adas.high.common.ProtocolStatus
@@ -57,7 +55,6 @@ import mogo_msg.MogoReportMsg
import perception.TrafficLightOuterClass
import prediction.Prediction
import record_cache.RecordPanelOuterClass
import rule_segement.MogoPointCloudOuterClass
import system_master.SystemStatusInfo
/**
@@ -401,6 +398,15 @@ class MoGoAdasListenerImpl : OnAdasListener {
}
/**
* planning决策状态, 透传
*/
override fun onPlanningActionMsg(
header: MessagePad.Header?,
planningActionMsg: MessagePad.PlanningActionMsg?
) {
}
override fun onError(status: ProtocolStatus, bytes: ByteArray) {

View File

@@ -3,13 +3,15 @@ package mogo.telematics.pad;
enum ProtocolVersion{
Defaultver = 0;
CurrentVersion = 6; //每次修改proto文件增加1
CurrentVersion = 7; //每次修改proto文件增加1
}
enum MessageType
{
MsgTypeDefault = 0;
MsgTypePlanningDecisionState = 0x00001; //planning决策状态, 透传
MsgTypeTrajectory = 0x10000; //局部轨迹,车前引导线
MsgTypeTrackedObjects = 0x10001; //障碍物信息
MsgTypeGnssInfo = 0x10002; //惯导信息
@@ -403,5 +405,38 @@ message OperatorCmdReq
//OPERATOR_CMD_SET_HORN: 1: honk 2: stop honking
}
//message definition for MsgTypePlanningDecisionState
enum DrivingState{
NO_AUTODRIVING = 0; //不在自动驾驶状态
LANKE_KEEP = 1; //车道保持状态
TRAFFIC_LIGHT = 2; //红绿灯通行状态: driving_action1 表示停止动作driving_action:2 表示通行动作
FOLLOW_LANE_CHANGE_LEFT = 3; //follow全局择机向左变道状态: driving_action1 表示触发变道driving_action:2 表示择机保持driving_action:3 表示变道完成
FOLLOW_LANE_CHANGE_RIGHT = 4; //follow全局择机向右变道状态: driving_action1 表示触发变道driving_action:2 表示择机保持driving_action:3 表示变道完成
AUTO_LANE_CHANGE_LEFT = 5; //主动向左变道状态: driving_action1 表示触发变道driving_action:2 表示执行变道driving_action:3 表示变道取消driving_action:4 表示变道完成
AUTO_LANE_CHANGE_RIGHT = 6; //主动向左变道状态: driving_action1 表示触发变道driving_action:2 表示执行变道driving_action:3 表示变道取消driving_action:4 表示变道完成
LANE_AVOID_LEFT = 7; //主动向左绕行状态: driving_action1 表示触发绕行driving_action:2 表示执行绕行driving_action:3 表示绕行取消driving_action:4 表示绕行完成
LANE_AVOID_RIGHT = 8; //主动向右绕行状态: driving_action1 表示触发绕行driving_action:2 表示执行绕行driving_action:3 表示绕行取消driving_action:4 表示绕行完成
START_UP = 9; //起步状态: driving_action1 表示正常启动driving_action:2 表示择机起步;
PULL_OVER = 10; //靠边停车状态: driving_action1 表示正常靠边停车driving_action:2 表示择机靠边停车;
UN_PROTECTED_INTERSECTION = 11; //路口预测响应状态: driving_action1 表示触发了预测响应;
}
enum DrivingAction{
DRIVING_Action_STATE_NONE = 0;
DRIVING_ACTION_STATE_ONE = 1;
DRIVING_ACTION_STATE_TWO = 2;
DRIVING_ACTION_STATE_THREE = 3;
DRIVING_ACTION_STATE_FOUR = 4;
}
message DrivingActionMsg
{
DrivingState driving_state = 1;
DrivingAction driving_action = 2;
}
message PlanningActionMsg
{
DrivingActionMsg action_msg = 1;
double destination_acc = 2; //驾驶的意图(规划期望的加速或者减速值)
}

View File

@@ -170,6 +170,14 @@ public interface OnAdasListener {
*/
void onRecordDataConfigResp(MessagePad.Header header, MessagePad.RecordDataConfig config);
/**
* planning决策状态, 透传
*
* @param header 头
* @param planningActionMsg 数据
*/
void onPlanningActionMsg(MessagePad.Header header, MessagePad.PlanningActionMsg planningActionMsg);
/**
* 数据错误
*

View File

@@ -47,7 +47,10 @@ public enum MessageType {
TYPE_SEND_SET_RAIN_MODE_REQ(MessagePad.MessageType.MsgTypeSetRainModeReq, "设置雨天模式"),
TYPE_SEND_RECORD_DATA_CONFIG_REQ(MessagePad.MessageType.MsgTypeRecordDataConfigReq, "数据采集配置查询"),
TYPE_RECEIVE_RECORD_DATA_CONFIG_RESP(MessagePad.MessageType.MsgTypeRecordDataConfigResp, "数据采集配置"),
TYPE_SEND_SUBSCRIBE_DATA_REQ(MessagePad.MessageType.MsgTypeSubscribeDataReq, "数据订阅、取消订阅请求");
TYPE_SEND_SUBSCRIBE_DATA_REQ(MessagePad.MessageType.MsgTypeSubscribeDataReq, "数据订阅、取消订阅请求"),
//透传 原始pb文件中不存在以下type。由于Java中无法强转所以在ADAS_DATA message_pad.proto中放开注释
TYPE_RECEIVE_PLANNING_DECISION_STATE(MessagePad.MessageType.MsgTypePlanningDecisionState, "Planning决策状态");
/**
* 消息action code

View File

@@ -29,6 +29,7 @@ public class MyMessageFactory implements IMyMessageFactory {
private IMsg arrivalNotificationMessage;//到站提醒
private IMsg statusQueryRespMessage;//状态查询应答
private IMsg recordDataConfigRespMessage;//数据采集配置应答
private IMsg planningDecisionStateMessage;//planning决策状态
@Override
@@ -135,6 +136,12 @@ public class MyMessageFactory implements IMyMessageFactory {
recordDataConfigRespMessage = new RecordDataConfigRespMessage();
}
return recordDataConfigRespMessage;
} else if (messageType == MessageType.TYPE_RECEIVE_PLANNING_DECISION_STATE.typeCode) {
//planning决策状态
if (planningDecisionStateMessage == null) {
planningDecisionStateMessage = new PlanningDecisionStateMessage();
}
return planningDecisionStateMessage;
} else {
//MessageType.TYPE_DEFAULT.typeCode
return null;

View File

@@ -0,0 +1,23 @@
package com.zhidao.support.adas.high.msg;
import com.google.protobuf.InvalidProtocolBufferException;
import com.zhidao.support.adas.high.AdasManager;
import com.zhidao.support.adas.high.OnAdasListener;
import com.zhidao.support.adas.high.common.CupidLogUtils;
import com.zhidao.support.adas.high.protocol.RawData;
import mogo.telematics.pad.MessagePad;
/**
* planning决策状态, 透传
*/
public class PlanningDecisionStateMessage extends MyAbstractMessageHandler {
@Override
public void handlerMsg(RawData raw, OnAdasListener adasListener) throws InvalidProtocolBufferException {
MessagePad.PlanningActionMsg planningActionMsg = MessagePad.PlanningActionMsg.parser().parseFrom(raw.originalData.toByteArray(), raw.getOffsetValue(), raw.getPackageLengthValue() - raw.getOffsetValue());
if (adasListener != null) {
adasListener.onPlanningActionMsg(raw.getHeader(), planningActionMsg);
}
}
}

View File

@@ -143,24 +143,6 @@ public class SubscribeInterface {
}
}
}
// subscribedInterface.put(MessageType.TYPE_RECEIVE_TRAJECTORY, MessageType.TYPE_RECEIVE_TRAJECTORY.typeCode.getNumber());
// subscribedInterface.put(MessageType.TYPE_RECEIVE_TRACKED_OBJECTS, MessageType.TYPE_RECEIVE_TRACKED_OBJECTS.typeCode.getNumber());
// subscribedInterface.put(MessageType.TYPE_RECEIVE_GNSS_INFO, MessageType.TYPE_RECEIVE_GNSS_INFO.typeCode.getNumber());
// subscribedInterface.put(MessageType.TYPE_RECEIVE_VEHICLE_STATE, MessageType.TYPE_RECEIVE_VEHICLE_STATE.typeCode.getNumber());
// subscribedInterface.put(MessageType.TYPE_RECEIVE_AUTOPILOT_STATE, MessageType.TYPE_RECEIVE_AUTOPILOT_STATE.typeCode.getNumber());
// subscribedInterface.put(MessageType.TYPE_RECEIVE_REPORT_MESSAGE, MessageType.TYPE_RECEIVE_REPORT_MESSAGE.typeCode.getNumber());
// subscribedInterface.put(MessageType.TYPE_RECEIVE_PERCEPTION_TRAFFIC_LIGHT, MessageType.TYPE_RECEIVE_PERCEPTION_TRAFFIC_LIGHT.typeCode.getNumber());
// subscribedInterface.put(MessageType.TYPE_RECEIVE_PREDICTION_OBSTACLE_TRAJECTORY, MessageType.TYPE_RECEIVE_PREDICTION_OBSTACLE_TRAJECTORY.typeCode.getNumber());
// subscribedInterface.put(MessageType.TYPE_RECEIVE_POINT_CLOUD, MessageType.TYPE_RECEIVE_POINT_CLOUD.typeCode.getNumber());
// subscribedInterface.put(MessageType.TYPE_RECEIVE_PLANNING_OBJECTS, MessageType.TYPE_RECEIVE_PLANNING_OBJECTS.typeCode.getNumber());
// subscribedInterface.put(MessageType.TYPE_RECEIVE_BASIC_INFO_REQ, MessageType.TYPE_RECEIVE_BASIC_INFO_REQ.typeCode.getNumber());
// subscribedInterface.put(MessageType.TYPE_RECEIVE_CAR_CONFIG_RESP, MessageType.TYPE_RECEIVE_CAR_CONFIG_RESP.typeCode.getNumber());
// subscribedInterface.put(MessageType.TYPE_RECEIVE_RECORD_RESULT, MessageType.TYPE_RECEIVE_RECORD_RESULT.typeCode.getNumber());
// subscribedInterface.put(MessageType.TYPE_RECEIVE_GLOBAL_PATH_RESP, MessageType.TYPE_RECEIVE_GLOBAL_PATH_RESP.typeCode.getNumber());
// subscribedInterface.put(MessageType.TYPE_RECEIVE_WARN, MessageType.TYPE_RECEIVE_WARN.typeCode.getNumber());
// subscribedInterface.put(MessageType.TYPE_RECEIVE_ARRIVAL_NOTIFICATION, MessageType.TYPE_RECEIVE_ARRIVAL_NOTIFICATION.typeCode.getNumber());
// subscribedInterface.put(MessageType.TYPE_RECEIVE_STATUS_QUERY_RESP, MessageType.TYPE_RECEIVE_STATUS_QUERY_RESP.typeCode.getNumber());
// subscribedInterface.put(MessageType.TYPE_RECEIVE_RECORD_DATA_CONFIG_RESP, MessageType.TYPE_RECEIVE_RECORD_DATA_CONFIG_RESP.typeCode.getNumber());
}
}