[650][adas] 同步PB字段

This commit is contained in:
xinfengkun
2024-07-05 17:31:58 +08:00
parent cbcaf8fe7b
commit 5cc23fe371
5 changed files with 86 additions and 4 deletions

View File

@@ -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右"),
;

View File

@@ -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 + "]";
}
}
}