From 5cc23fe3711dbd75a21526da6f37f4b025bb61f9 Mon Sep 17 00:00:00 2001 From: xinfengkun Date: Fri, 5 Jul 2024 17:31:58 +0800 Subject: [PATCH] =?UTF-8?q?[650][adas]=20=E5=90=8C=E6=AD=A5PB=E5=AD=97?= =?UTF-8?q?=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../zhjt/mogo/adas/common/MessageType.java | 8 ++ .../zhjt/mogo/adas/data/bean/AdasParam.java | 73 +++++++++++++++++++ .../src/main/proto/message_pad.proto | 6 +- .../main/proto/personal/adas_constants.proto | 1 + .../src/main/proto/ssm_info.proto | 2 +- 5 files changed, 86 insertions(+), 4 deletions(-) diff --git a/libraries/mogo-adas-data/src/main/java/com/zhjt/mogo/adas/common/MessageType.java b/libraries/mogo-adas-data/src/main/java/com/zhjt/mogo/adas/common/MessageType.java index 04f98f7de6..03f470f8d0 100644 --- a/libraries/mogo-adas-data/src/main/java/com/zhjt/mogo/adas/common/MessageType.java +++ b/libraries/mogo-adas-data/src/main/java/com/zhjt/mogo/adas/common/MessageType.java @@ -32,6 +32,7 @@ public enum MessageType { TYPE_RECEIVE_FM_STATE(MessagePad.MessageType.MsgTypeFMState, "FM状态"), TYPE_RECEIVE_FSM2024_STATE(MessagePad.MessageType.MsgTypeFSM2024State, "FSM状态"), TYPE_RECEIVE_LOC_STATE(MessagePad.MessageType.MsgTypeLocState, "定位状态"), + TYPE_RECEIVE_CLOUD_REGULATORY_WARNING(MessagePad.MessageType.MsgTypeCloudRegulatoryWarning, "云控监管预警"), TYPE_RECEIVE_BASIC_INFO_REQ(MessagePad.MessageType.MsgTypeBasicInfoReq, "自动驾驶设备基础信息请求"), TYPE_SEND_BASIC_INFO_RESP(MessagePad.MessageType.MsgTypeBasicInfoResp, "自动驾驶设备基础信息应答"), @@ -90,6 +91,13 @@ public enum MessageType { TYPE_RECEIVE_PLANNING_DECISION_STATE(MessagePad.MessageType.MsgTypePlanningDecisionState, "Planning决策状态"), TYPE_RECEIVE_SWEEPER_TASK_INDEX_DATA(MessagePad.MessageType.MsgTypeSweeperTaskIndexData, "清扫车指标数据"), TYPE_RECEIVE_OBU_WARNING_DATA(MessagePad.MessageType.MsgTypeObuWarningData, "OBU预警事件"), + //以下6个与标定相关 + TYPE_RECEIVE_CAMERA_CALIB_CHECK_DATA30(MessagePad.MessageType.MsgTypeCameraCalibCheckData30, "相机标定检查视频30"), + TYPE_RECEIVE_CAMERA_CALIB_CHECK_DATA60(MessagePad.MessageType.MsgTypeCameraCalibCheckData60, "相机标定检查视频60"), + TYPE_RECEIVE_CAMERA_CALIB_CHECK_DATA120_FRONT(MessagePad.MessageType.MsgTypeCameraCalibCheckData120Front, "相机标定检查视频120前"), + TYPE_RECEIVE_CAMERA_CALIB_CHECK_DATA120_BACK(MessagePad.MessageType.MsgTypeCameraCalibCheckData120Back, "相机标定检查视频120后"), + TYPE_RECEIVE_CAMERA_CALIB_CHECK_DATA120_LEFT(MessagePad.MessageType.MsgTypeCameraCalibCheckData120Left, "相机标定检查视频120左"), + TYPE_RECEIVE_CAMERA_CALIB_CHECK_DATA120_RIGHT(MessagePad.MessageType.MsgTypeCameraCalibCheckData120Right, "相机标定检查视频120右"), ; diff --git a/libraries/mogo-adas-data/src/main/java/com/zhjt/mogo/adas/data/bean/AdasParam.java b/libraries/mogo-adas-data/src/main/java/com/zhjt/mogo/adas/data/bean/AdasParam.java index b5faa8537e..acae9a5cd7 100644 --- a/libraries/mogo-adas-data/src/main/java/com/zhjt/mogo/adas/data/bean/AdasParam.java +++ b/libraries/mogo-adas-data/src/main/java/com/zhjt/mogo/adas/data/bean/AdasParam.java @@ -91,6 +91,18 @@ public class AdasParam { */ public final int fusionMode; + /** + * 座椅状态(座椅压力) + * 0:表示仅主驾位有人,1:表示仅副驾位有人,2:表示主驾和副驾同时有人,3:表示仅后排有人,4:表示主驾有人+后排有人,5:表示副驾有人+后排有人,6:表示主驾和副驾同时有人+后排有人,7: 所有座位都无人, 255:缺省 + */ + public final int seatState; + /** + * 座椅状态(座椅压力) + * 解析后的数据 + * 为空的原因:未查询此数据、工控机不存在此数据、解析失败 + */ + public final SeatState seatStateParse; + /** * 超车的最大速度阈值 * m/s, 范围[3, 12.5] @@ -113,6 +125,8 @@ public class AdasParam { int v2nToPnc = -1; int v2iToPnc = -1; int fusionMode = -1; + int seatState = -1; + SeatState seatStateParse = null; double overtakeMaxSpeed = -1.0; if (param != null) { @@ -185,6 +199,36 @@ public class AdasParam { if (!TextUtils.isEmpty(value)) { fusionMode = Integer.parseInt(value); } + } else if (type == AdasConstants.MapSystemParamType.SEAT_STATE_VALUE) { + if (!TextUtils.isEmpty(value)) { + seatState = Integer.parseInt(value); + switch (seatState) { + case 0: + seatStateParse = new SeatState(true, false, false); + break; + case 1: + seatStateParse = new SeatState(false, true, false); + break; + case 2: + seatStateParse = new SeatState(true, true, false); + break; + case 3: + seatStateParse = new SeatState(false, false, true); + break; + case 4: + seatStateParse = new SeatState(true, false, true); + break; + case 5: + seatStateParse = new SeatState(false, true, true); + break; + case 6: + seatStateParse = new SeatState(true, true, true); + break; + case 7: + seatStateParse = new SeatState(false, false, false); + break; + } + } } else if (type == AdasConstants.MapSystemParamType.OVERTAKE_MAX_SPEED_VALUE) { if (!TextUtils.isEmpty(value)) { overtakeMaxSpeed = Double.parseDouble(value); @@ -208,6 +252,8 @@ public class AdasParam { this.v2nToPnc = v2nToPnc; this.v2iToPnc = v2iToPnc; this.fusionMode = fusionMode; + this.seatState = seatState; + this.seatStateParse = seatStateParse; this.overtakeMaxSpeed = overtakeMaxSpeed; } @@ -227,6 +273,7 @@ public class AdasParam { "\n融合V2N开关=" + (v2nToPnc == -1 ? "未知" : v2nToPnc == 0 ? "不发给PnC" : "发给PnC") + "\n融合V2I开关=" + (v2iToPnc == -1 ? "未知" : v2iToPnc == 0 ? "不发给PnC和鹰眼" : "发给Pnc和鹰眼") + "\n融合模式=" + (fusionMode == -1 ? "未知" : fusionMode == 5 ? "纯路侧模式" : fusionMode == 4 ? "透传模式" : fusionMode == 3 ? "超视距模式" : fusionMode == 2 ? "盲区模式" : "全融合模式") + + "\n座椅状态(座椅压力)=" + (seatState == -1 ? "未知" : seatState + (seatStateParse == null ? "[此值无法解析]" : seatStateParse.toString())) + "\n超车最大速度阈值=" + (overtakeMaxSpeed == -1 ? "未知" : overtakeMaxSpeed + "m/s") ; } @@ -244,4 +291,30 @@ public class AdasParam { this.height = height; } } + + public static class SeatState { + /** + * 主驾是否有人 + */ + public final boolean driver; + /** + * 副驾是否有人 + */ + public final boolean copilot; + /** + * 后排是否有人 + */ + public final boolean backRow; + + public SeatState(boolean driver, boolean copilot, boolean backRow) { + this.driver = driver; + this.copilot = copilot; + this.backRow = backRow; + } + + @Override + public String toString() { + return "[主驾是否有人:" + driver + " 副驾是有人:" + copilot + " 后排是否有人:" + backRow + "]"; + } + } } 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 77c4c21e04..5db31720a1 100644 --- a/libraries/mogo-adas-data/src/main/proto/message_pad.proto +++ b/libraries/mogo-adas-data/src/main/proto/message_pad.proto @@ -201,7 +201,7 @@ message CongestionInfo double lon = 11; double lat = 12; // 视频地址 2024-06-03新增字段 - string video_url = 13; + string video_url = 13; // 来源ip 2024-06-03 新增字段 string camera_ip = 14; } @@ -251,7 +251,7 @@ message TrajectoryPoint // message definition for MsgTypeCloudRegulatoryWarning message CloudRegulatoryWarning { - repeated CloudRegulatoryWarningInner cloudRegulatoryWarnings = 1; + repeated CloudRegulatoryWarningInner cloudRegulatoryWarnings = 1; } message CloudRegulatoryWarningInner @@ -314,7 +314,7 @@ message TrackedObject AdditionalAttribute add_attribute = 17; //事件类型 double angle = 18; //相对于自车x轴的角度,左正右负 repeated string image_url = 19; //事件发生的原始照片 - string video_url = 20; //事件发生的原始视频 + string video_url = 20; //事件发生的原始视频 string camera_ip = 21; //来源IP uint64 detect_start_time = 22; //V2N事件生成UTC时间,单位毫秒 string v2x_uuid = 23; //V2X目标uuid diff --git a/libraries/mogo-adas-data/src/main/proto/personal/adas_constants.proto b/libraries/mogo-adas-data/src/main/proto/personal/adas_constants.proto index 3048898afc..31c77d18d7 100644 --- a/libraries/mogo-adas-data/src/main/proto/personal/adas_constants.proto +++ b/libraries/mogo-adas-data/src/main/proto/personal/adas_constants.proto @@ -22,6 +22,7 @@ enum MapSystemParamType{ SEAT_STATE = 15;//15: 座椅状态(int) 0:表示仅主驾位有人,1:表示仅副驾位有人,2:表示主驾和副驾同时有人,3:表示仅后排有人,4:表示主驾有人+后排有人,5:表示副驾有人+后排有人,6:表示主驾和副驾同时有人+后排有人,7: 所有座位都无人, 255:缺省 OVERTAKE_MAX_SPEED = 16;//16: 超车的最大速度阈值(double, m/s, 范围[3, 12.5]) FAULT_SIMULATION_CMD = 17;//17: 故障模拟指令(int) default:0(do nothing), 1:线控失效 + COLLISION_REPORTING = 18;//18: 碰撞上报(null) } /** diff --git a/libraries/mogo-adas-data/src/main/proto/ssm_info.proto b/libraries/mogo-adas-data/src/main/proto/ssm_info.proto index fe98ab23e0..1d9653c267 100644 --- a/libraries/mogo-adas-data/src/main/proto/ssm_info.proto +++ b/libraries/mogo-adas-data/src/main/proto/ssm_info.proto @@ -41,7 +41,7 @@ message SsmStatusInf { optional string master_version = 3; // SSM 版本信息 required bool auto_pilot_ready = 4; // 自动驾驶状态就绪 required bool remote_pilot_ready = 5; // 平行驾驶状态就绪 - repeated NodeInf auto_pilot_unready_list = 6; //自驾未就绪节点列表 + repeated NodeInf auto_pilot_unready_list = 6; //自驾关键节点(包含NodeState中各种状态) repeated NodeInf remote_pilot_unready_list = 7; //平行驾驶未就绪列表 optional string auto_pilot_unready_reason = 8; //自动驾驶状态未就绪原因描述 optional string remote_pilot_unready_reason = 9; //平行驾驶状态未就绪原因描述