[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

@@ -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());
}
}