From c2de7226a608bba74c3f65a3fd55b7c14916237a Mon Sep 17 00:00:00 2001 From: xinfengkun Date: Tue, 7 Jun 2022 10:44:48 +0800 Subject: [PATCH] =?UTF-8?q?[change]pb=E6=B7=BB=E5=8A=A0planning=E9=9A=9C?= =?UTF-8?q?=E7=A2=8D=E7=89=A9=E6=8E=A5=E5=8F=A3=E5=92=8C=E5=8F=91=E9=80=81?= =?UTF-8?q?=E8=BD=A8=E8=BF=B9=E4=B8=8B=E8=BD=BD=E8=AF=B7=E6=B1=82=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=EF=BC=8C=E4=BB=A5=E5=8F=8A=E5=90=AF=E5=8A=A8=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E9=A9=BE=E9=A9=B6=E6=8E=A5=E5=8F=A3=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E6=96=B0=E5=AD=97=E6=AE=B5=EF=BC=9B=E6=B7=BB=E5=8A=A0=E5=8F=91?= =?UTF-8?q?=E9=80=81=E8=BD=A8=E8=BF=B9=E4=B8=8B=E8=BD=BD=E8=AF=B7=E6=B1=82?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E8=A7=A3=E6=9E=90=E5=92=8C=E5=8F=91=E9=80=81?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../zhidao/adas/client/ui/MainActivity.java | 11 ++++- .../src/main/proto/message_pad.proto | 49 ++++++++++++++++--- .../zhidao/support/adas/high/AdasChannel.java | 17 +++++-- .../zhidao/support/adas/high/AdasManager.java | 11 +++++ .../support/adas/high/IAdasNetCommApi.java | 8 +++ .../support/adas/high/common/MessageType.java | 3 +- 6 files changed, 87 insertions(+), 12 deletions(-) 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 9434e4b24d..a3818867e7 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 @@ -537,7 +537,7 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas titleFragmentData.add(Constants.TITLE.RECEIVE_ERROR); - titleBtnData.add("启动自动驾驶"); + titleBtnData.add("自动驾驶模式"); titleBtnData.add("自动驾驶路径查询"); titleBtnData.add("下发SN"); titleBtnData.add("数据采集5秒"); @@ -1104,6 +1104,15 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas } switch (position) { case 0: +// MessagePad.Line.Builder line = MessagePad.Line.newBuilder(); +// line.setLineId(10); +// line.setTrajUrl("我是TrajUrl"); +// line.setTrajMd5("我是TrajMd5"); +// line.setStopUrl("我是StopUrl"); +// line.setStopMd5("我是StopMd5"); +// line.setTimestamp(60); +// line.setVehicleModel("我是VehicleModel"); +// AdasManager.getInstance().sendTrajectoryDownloadReq(line.build()); if (autoPilotModeDialog == null) { autoPilotModeDialog = new AutoPilotModeDialog(this); } 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 dffde14f88..b563f7367e 100644 --- a/libraries/mogo-adas-data/src/main/proto/message_pad.proto +++ b/libraries/mogo-adas-data/src/main/proto/message_pad.proto @@ -19,6 +19,7 @@ enum MessageType MsgTypePerceptionTrafficLight = 0x10006; //感知红绿灯 MsgTypePredictionObstacleTrajectory = 0x10007; //他车轨迹预测 MsgTypePointCloud = 0x10008; //点云透传 + MsgTypePlanningObjects = 0x10009; //planning障碍物 MsgTypeBasicInfoReq = 0x10100; //自动驾驶设备基础信息请求 MsgTypeBasicInfoResp = 0x10101; //自动驾驶设备基础信息应答 @@ -36,6 +37,7 @@ enum MessageType MsgTypeWarn = 0x1010d; //预警数据 MsgTypeArrivalNotification = 0x1010e; //到站提醒 MsgTypeSystemCmdReq = 0x1010f; //系统命令请求, 比如系统重启,启用新镜像 + MsgTypeTrajectoryDownloadReq = 0x10110; //轨迹下载请求 } message Header @@ -83,7 +85,7 @@ message TrackedObject double heading = 10; //车辆朝向 double speed = 11; //车辆速度 uint32 drawLevel = 12; //危险等级 1 绿,2 黄,3 红 - double driverTime = 13; //驱动感知时间 + double driverTime = 13; //驱动感知时间, abandoned } message TrackedObjects @@ -112,13 +114,13 @@ message GnssInfo // message definition for MessageType: MsgTypeAutopilotState message AutopilotState { - uint32 state = 1; //0: 不可用, 1:ready, 2:自动驾驶中 + uint32 state = 1; //0: 不可用(abandoned), 1:ready, 2:自动驾驶中 uint32 camera = 2; //camera节点状态 1:开启,0:关闭 uint32 radar = 3; //雷达节点状态 1:开启,0:关闭 uint32 rtk = 4; //RTK节点状态 1:开启,0:关闭 uint32 autopilotMode = 5; //自动驾驶状态 0: 非自动驾驶,1: 自动驾驶 double speed = 6; //惯导车速 m/s - string reason = 7; //不可用原因 + string reason = 7; //不可用原因(abandoned) } // message definition for MessageType: MsgTypeReportMessage @@ -131,7 +133,36 @@ message AutopilotState // refer to prediction.proto // message definition for MessageType: MsgTypePointCloud -// refer to point_cloud.proto +// refer to mogo_point_cloud.proto + +// message definition for MessageType: MsgTypePlanningObjects +message PlanningObject +{ + uint32 uuid = 1; + uint32 type = 2; //影响自车决策的类型, 和感知的障碍物类型不是一回事 +} + +message PlanningObjects +{ + repeated PlanningObject objs = 1; +} + +// message definition for MsgTypeTrajectoryDownloadReq +message Line +{ + uint64 lineId = 1; //路线id,默认-1 + string trajUrl = 2; //轨迹文件下载的cos url,默认“” + string trajMd5 = 3; //轨迹文件md5,默认“” + string stopUrl = 4; //打点文件下载的cos url,默认“” + string stopMd5 = 5; //轨迹文件md5,默认“” + uint64 timestamp = 6; //上传轨迹完成时间戳(ms):用于MEC本地手动导入轨迹验证时不会被云端轨迹覆盖 + string vehicleModel = 7; //车型号(如红旗H9),默认“”,暂不加入校验逻辑、用于人工排查问题 +} + +message TrajectoryDownloadReq +{ + Line line = 1; //路线 +} // message definition for MessageType: MsgTypeBasicInfoReq message BasicInfoReq @@ -162,9 +193,10 @@ message RouteInfo{ repeated Location wayPoints = 5; double speedLimit = 6; //单位: km/h uint32 vehicleType = 7; - bool isSpeakVoice = 8; + bool isSpeakVoice = 8; //abandoned uint32 routeID = 9; string routeName = 10; + Line line = 11; //路线信息 } message SetAutopilotModeReq @@ -280,7 +312,7 @@ message Warn // message definition for MsgTypeArrivalNotification message ArrivalNotification { - uint32 carType = 1; //deserted + uint32 carType = 1; //abandoned Location endLocation = 2; } @@ -292,7 +324,7 @@ enum SystemCmdType { message SystemCmdReq { - SystemCmdType cmdType = 1; + SystemCmdType cmdType = 1; // } @@ -301,3 +333,6 @@ message SystemCmdReq + + + 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 1b10213717..eb90964934 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 @@ -16,7 +16,6 @@ import android.text.TextUtils; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import com.google.gson.Gson; import com.google.protobuf.InvalidProtocolBufferException; import com.zhidao.support.adas.high.bean.VersionCompatibility; import com.zhidao.support.adas.high.common.ByteUtil; @@ -40,8 +39,6 @@ import com.zhidao.support.adas.high.thread.DispatchHandler; import com.zhjt.service.chain.ChainLog; import com.zhjt.service.chain.TracingConstants; -import org.json.JSONObject; - import java.util.HashSet; import java.util.Timer; import java.util.TimerTask; @@ -851,5 +848,19 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec MessagePad.SystemCmdReq req = builder.build(); return sendWsMessage(MessageType.TYPE_SEND_SYSTEM_CMD_REQ.typeCode, req.toByteArray()); } + + /** + * 发送 轨迹下载请求 + * + * @param line 线路相关参数详情见PB message_pad.proto -> Line + * @return boolean + */ + @Override + public boolean sendTrajectoryDownloadReq(MessagePad.Line line) { + MessagePad.TrajectoryDownloadReq.Builder builder = MessagePad.TrajectoryDownloadReq.newBuilder(); + builder.setLine(line); + MessagePad.TrajectoryDownloadReq req = builder.build(); + return sendWsMessage(MessageType.TYPE_SEND_TRAJECTORY_DOWNLOAD_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 6e5bb21f67..d1a0b7772b 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 @@ -395,6 +395,17 @@ public class AdasManager implements IAdasNetCommApi { return mChannel != null && mChannel.sendSystemCmdReq(type); } + /** + * 发送 轨迹下载请求 + * + * @param line 线路相关参数详情见PB message_pad.proto -> Line + * @return boolean + */ + @Override + public boolean sendTrajectoryDownloadReq(MessagePad.Line line) { + return mChannel != null && mChannel.sendTrajectoryDownloadReq(line); + } + /** * 获取工控机固定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 334316bf03..9581e2173e 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 @@ -180,6 +180,14 @@ public interface IAdasNetCommApi { */ boolean sendSystemCmdReq(@NonNull MessagePad.SystemCmdType type); + /** + * 发送 轨迹下载请求 + * + * @param line 线路相关参数详情见PB message_pad.proto -> Line + * @return boolean + */ + boolean sendTrajectoryDownloadReq(MessagePad.Line line); + // TODO 需求暂停 待讨论 // boolean getRoutes(); 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 4a00d3ed7e..7ad0ca0a45 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 @@ -38,7 +38,8 @@ public enum MessageType { @Deprecated TYPE_RECEIVE_WARN(MessagePad.MessageType.MsgTypeWarn, "预警数据"), TYPE_RECEIVE_ARRIVAL_NOTIFICATION(MessagePad.MessageType.MsgTypeArrivalNotification, "到站提醒"), - TYPE_SEND_SYSTEM_CMD_REQ(MessagePad.MessageType.MsgTypeSystemCmdReq, "系统命令请求, 比如系统重启,启用新镜像"); + TYPE_SEND_SYSTEM_CMD_REQ(MessagePad.MessageType.MsgTypeSystemCmdReq, "系统命令请求, 比如系统重启,启用新镜像"), + TYPE_SEND_TRAJECTORY_DOWNLOAD_REQ(MessagePad.MessageType.MsgTypeTrajectoryDownloadReq, "轨迹下载请求"); /** * 消息action code