[8.1.0][adas] 多链路数据控制接口开发

This commit is contained in:
xinfengkun
2025-05-28 16:25:52 +08:00
parent 092d248d64
commit e11db10d67
9 changed files with 445 additions and 41 deletions

View File

@@ -1587,6 +1587,15 @@ class MoGoAdasListenerImpl : OnAdasListener {
) {
}
/**
* 域控上报OBU开关状态响应
*
* @param header 头
* @param enable 数据
*/
override fun onObuUploadStatus(header: MessagePad.Header, enable: MessagePad.SetEnableReq) {
}
/**
* 是否可以启动自动驾驶
* 使用方法查看app_ipc_monitoring/uiMainActivity/onAutopilotAbility

View File

@@ -105,6 +105,10 @@ public enum MessageType {
TYPE_SEND_IMG_UPLOAD_CLOUD_ENABLE(MessagePad.MessageType.MsgTypeImgUploadCloudEnable, "摄像头上传NDE云开关"),
TYPE_SEND_IMG_UPLOAD_CLOUD_STATUS_QUERY(MessagePad.MessageType.MsgTypeImgUploadCloudStatusQuery, "摄像头上传NDE云状态查询"),
TYPE_RECEIVE_IMG_UPLOAD_CLOUD_STATUS_QUERY(MessagePad.MessageType.MsgTypeImgUploadCloudStatusQuery, "摄像头上传NDE云状态响应"),
TYPE_SEND_FORCE_STOP_OR_START_CLOUD_REQ(MessagePad.MessageType.MsgTypeForceStopOrStartCloudReq, "云端配置控制"),
TYPE_SEND_SET_OBU_UPLOAD_REQ(MessagePad.MessageType.MsgTypeSetObuUploadReq, "域控上报OBU开关控制"),
TYPE_SEND_OBU_UPLOAD_STATUS(MessagePad.MessageType.MsgTypeObuUploadStatus, "域控上报OBU开关状态查询"),
TYPE_RECEIVE_OBU_UPLOAD_STATUS(MessagePad.MessageType.MsgTypeObuUploadStatus, "域控上报OBU开关状态响应"),
//TODO 透传原始pb文件中不存在以下type。由于Java中无法强转,所以在mogo-adas-data/message_pad.proto中放开注释
TYPE_RECEIVE_PLANNING_DECISION_STATE(MessagePad.MessageType.MsgTypePlanningDecisionState, "Planning决策状态"),

View File

@@ -76,12 +76,12 @@ public class AdasParam {
*/
public final int blindArea;
/**
* 融合v2n开关
* 融合v2n开关 NDE下行事件数据进pnc
* 0:不发给PnC 1:发给Pnc
*/
public final int v2nToPnc;
/**
* 融合v2i开关
* 融合v2i开关 V2I下行感知数据进pnc
* 0:不发给PnC和鹰眼 1:发给Pnc和鹰眼默认0
*/
public final int v2iToPnc;
@@ -108,6 +108,26 @@ public class AdasParam {
* m/s, 范围[3, 12.5]
*/
public final double overtakeMaxSpeed;
/**
* 故障模拟指令
* 0:无模拟 1:线控失效
*/
public final int faultSimulationCmd;
/**
* 会车开关
* 0:关 1:开
*/
public final int parkVehCross;
/**
* 超车开关
* 0:关 1:开
*/
public final int parkVehOvertake;
/**
* NDE下行感知数据进pnc
* 0:不发给PnC 1:发给Pnc
*/
public final int perceptionToPnc;
public AdasParam(MessagePad.SetParamReq param) {
int detouringCmd = -1;
@@ -128,7 +148,10 @@ public class AdasParam {
int seatState = -1;
SeatState seatStateParse = null;
double overtakeMaxSpeed = -1.0;
int faultSimulationCmd = -1;
int parkVehCross = -1;
int parkVehOvertake = -1;
int perceptionToPnc = -1;
if (param != null) {
int size = param.getReqsCount();
if (size > 0) {
@@ -233,6 +256,22 @@ public class AdasParam {
if (!TextUtils.isEmpty(value)) {
overtakeMaxSpeed = Double.parseDouble(value);
}
} else if (type == AdasConstants.MapSystemParamType.FAULT_SIMULATION_CMD_VALUE) {
if (!TextUtils.isEmpty(value)) {
faultSimulationCmd = Integer.parseInt(value);
}
} else if (type == AdasConstants.MapSystemParamType.PARK_VEH_CROSS_VALUE) {
if (!TextUtils.isEmpty(value)) {
parkVehCross = Integer.parseInt(value);
}
} else if (type == AdasConstants.MapSystemParamType.PARK_VEH_OVERTAKE_VALUE) {
if (!TextUtils.isEmpty(value)) {
parkVehOvertake = Integer.parseInt(value);
}
} else if (type == AdasConstants.MapSystemParamType.PERCEPTION_TO_PNC_VALUE) {
if (!TextUtils.isEmpty(value)) {
perceptionToPnc = Integer.parseInt(value);
}
}
}
}
@@ -255,27 +294,99 @@ public class AdasParam {
this.seatState = seatState;
this.seatStateParse = seatStateParse;
this.overtakeMaxSpeed = overtakeMaxSpeed;
this.faultSimulationCmd = faultSimulationCmd;
this.parkVehCross = parkVehCross;
this.parkVehOvertake = parkVehOvertake;
this.perceptionToPnc = perceptionToPnc;
}
@Override
public String toString() {
return "绕障类功能开关=" + (detouringCmd == -1 ? "未知" : detouringCmd == 0 ? "" : "") +
"\n变道绕障的目标障碍物速度阈值=" + (detouringSpeed == -1 ? "未知" : detouringSpeed + "m/s") +
"\nAEB开关=" + (aebCmd == -1 ? "未知" : aebCmd == 0 ? "" : "") +
"\n限制绕障开关=" + (laneChangeRestrainValid == -1 ? "未知" : laneChangeRestrainValid == 0 ? "正常绕障" : "限制绕障") +
"\n停车让行线前避让等待开关=" + (stopYieldValid == -1 ? "未知" : stopYieldValid == 0 ? "停车让行线前无需避让等待" : "停车让行线前需要避让等待") +
"\n地图限速功能开关=" + (hadmapSpeedLimitValid == -1 ? "未知" : hadmapSpeedLimitValid == 0 ? "不使用地图限速功能" : "使用地图限速功能") +
"\n环岛模式开关=" + (rampThetaValid == -1 ? "未知" : rampThetaValid == 0 ? "普通模式" : "环岛模式") +
"\n弱网减速停车策略开关=" + (weakNetSlowDown == -1 ? "未知" : weakNetSlowDown == 0 ? "关闭弱网减速停车策略" : "使用弱网减速停车策略") +
"\nm1拼接视频自车位置参数=" + (m1StitchedVideoSelfVehicleParam == null ? "未知" : m1StitchedVideoSelfVehicleParam) +
"\n故障减速停车策路开关=" + (breakdownSlowDown == -1 ? "未知" : breakdownSlowDown == 0 ? "闭故障减速停车策略" : "使用故障减速停车策略") +
"\n盲区开关=" + (blindArea == -1 ? "未知" : blindArea == 0 ? "" : "") +
"\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")
;
String msg = "";
if (detouringCmd != -1) {
msg += "绕障类功能开关=" + (detouringCmd == 0 ? "" : "") + '\n';
}
if (detouringSpeed != -1) {
msg += "变道绕障的目标障碍物速度阈值=" + detouringSpeed + "m/s\n";
}
if (aebCmd != -1) {
msg += "AEB开关=" + (aebCmd == 0 ? "" : "") + '\n';
}
if (laneChangeRestrainValid != -1) {
msg += "限制绕障开关=" + (laneChangeRestrainValid == 0 ? "正常绕障" : "限制绕障") + '\n';
}
if (stopYieldValid != -1) {
msg += "停车让行线前避让等待开关=" + (stopYieldValid == 0 ? "停车让行线前无需避让等待" : "停车让行线前需要避让等待") + '\n';
}
if (hadmapSpeedLimitValid != -1) {
msg += "地图限速功能开关=" + (hadmapSpeedLimitValid == 0 ? "不使用地图限速功能" : "使用地图限速功能") + '\n';
}
if (rampThetaValid != -1) {
msg += "环岛模式开关=" + (rampThetaValid == 0 ? "普通模式" : "环岛模式") + '\n';
}
if (weakNetSlowDown != -1) {
msg += "弱网减速停车策略开关=" + (weakNetSlowDown == 0 ? "关闭弱网减速停车策略" : "使用弱网减速停车策略") + '\n';
}
if (m1StitchedVideoSelfVehicleParam != null) {
msg += "m1拼接视频自车位置参数=" + m1StitchedVideoSelfVehicleParam + '\n';
}
if (breakdownSlowDown != -1) {
msg += "故障减速停车策路开关=" + (breakdownSlowDown == 0 ? "关闭故障减速停车策略" : "使用故障减速停车策略") + '\n';
}
if (blindArea != -1) {
msg += "盲区开关=" + (blindArea == 0 ? "" : "") + '\n';
}
if (v2nToPnc != -1) {
msg += "融合V2N开关NDE下行事件数据进pnc=" + (v2nToPnc == 0 ? "不发给PnC" : "发给PnC") + '\n';
}
if (v2iToPnc != -1) {
msg += "融合V2I开关V2I下行感知数据进PNC=" + (v2iToPnc == 0 ? "不发给PnC和鹰眼" : "发给Pnc和鹰眼") + '\n';
}
if (fusionMode != -1) {
msg += "融合模式=" + (fusionMode == 5 ? "纯路侧模式" : fusionMode == 4 ? "透传模式" : fusionMode == 3 ? "超视距模式" : fusionMode == 2 ? "盲区模式" : "全融合模式") + '\n';
}
if (seatState != -1) {
msg += "座椅状态(座椅压力)=" + (seatState + (seatStateParse == null ? "[此值无法解析]" : seatStateParse.toString())) + '\n';
}
if (overtakeMaxSpeed != -1) {
msg += "超车最大速度阈值=" + overtakeMaxSpeed + "m/s\n";
}
if (faultSimulationCmd != -1) {
msg += "故障模拟指令=" + (faultSimulationCmd == 0 ? "无模拟" : "线控失效") + '\n';
}
if (parkVehCross != -1) {
msg += "会车开关=" + (parkVehCross == 0 ? "" : "") + '\n';
}
if (parkVehOvertake != -1) {
msg += "超车开关=" + (parkVehOvertake == 0 ? "" : "") + '\n';
}
if (perceptionToPnc != -1) {
msg += "NDE下行感知数据进PNC=" + (perceptionToPnc == 0 ? "不发给PnC" : "发给PnC");
}
return msg;
// return "绕障类功能开关=" + (detouringCmd == -1 ? "未知" : detouringCmd == 0 ? "关" : "开") +
// "\n变道绕障的目标障碍物速度阈值=" + (detouringSpeed == -1 ? "未知" : detouringSpeed + "m/s") +
// "\nAEB开关=" + (aebCmd == -1 ? "未知" : aebCmd == 0 ? "关" : "开") +
// "\n限制绕障开关=" + (laneChangeRestrainValid == -1 ? "未知" : laneChangeRestrainValid == 0 ? "正常绕障" : "限制绕障") +
// "\n停车让行线前避让等待开关=" + (stopYieldValid == -1 ? "未知" : stopYieldValid == 0 ? "停车让行线前无需避让等待" : "停车让行线前需要避让等待") +
// "\n地图限速功能开关=" + (hadmapSpeedLimitValid == -1 ? "未知" : hadmapSpeedLimitValid == 0 ? "不使用地图限速功能" : "使用地图限速功能") +
// "\n环岛模式开关=" + (rampThetaValid == -1 ? "未知" : rampThetaValid == 0 ? "普通模式" : "环岛模式") +
// "\n弱网减速停车策略开关=" + (weakNetSlowDown == -1 ? "未知" : weakNetSlowDown == 0 ? "关闭弱网减速停车策略" : "使用弱网减速停车策略") +
// "\nm1拼接视频自车位置参数=" + (m1StitchedVideoSelfVehicleParam == null ? "未知" : m1StitchedVideoSelfVehicleParam) +
// "\n故障减速停车策路开关=" + (breakdownSlowDown == -1 ? "未知" : breakdownSlowDown == 0 ? "关闭故障减速停车策略" : "使用故障减速停车策略") +
// "\n盲区开关=" + (blindArea == -1 ? "未知" : blindArea == 0 ? "关" : "开") +
// "\n融合V2N开关NDE下行事件数据进PNC=" + (v2nToPnc == -1 ? "未知" : v2nToPnc == 0 ? "不发给PnC" : "发给PnC") +
// "\n融合V2I开关V2I下行感知数据进PNC=" + (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") +
// "\n故障模拟指令=" + (faultSimulationCmd == -1 ? "未知" : faultSimulationCmd == 0 ? "无模拟" : "线控失效") +
// "\n会车开关=" + (parkVehCross == -1 ? "未知" : parkVehCross == 0 ? "关" : "开") +
// "\n超车开关=" + (parkVehOvertake == -1 ? "未知" : parkVehOvertake == 0 ? "关" : "开") +
// "\nNDE下行感知数据进pnc=" + (eventToPnc == -1 ? "未知" : eventToPnc == 0 ? "不发给PnC" : "发给PnC")
// ;
}
public static class M1StitchedVideoSelfVehicleParam {

View File

@@ -107,6 +107,9 @@ enum MessageType
MsgTypeCloudConfig = 0x10135;//云端配置查询和返回(上下行)
MsgTypeImgUploadCloudEnable = 0x10136;//摄像头上传NDE云开关
MsgTypeImgUploadCloudStatusQuery = 0x10137;//查询摄像头上传NDE云状态
MsgTypeForceStopOrStartCloudReq = 0x10138;//关闭或打开云链接
MsgTypeSetObuUploadReq = 0x10139;//关闭或打开域控上报自车数据到OBU
MsgTypeObuUploadStatus = 0x1013A;//obu上报状态查询以结果(上下行)
}
message Header
@@ -856,8 +859,8 @@ message SetOneParam
// 9:m1拼接视频自车位置参数(string), 格式:x,y,width,height
// 10:故障减速停车策略开关(bool) 0:关闭故障减速停车策略 1:使用故障减速停车策略 默认1
// 11: 盲区开关(bool) 0: off 1:on /telematics/sensor/blindarea_flag
// 12: 融合v2n开关(bool) 0:不发给PnC 1:发给Pnc /telematics/fusion/v2n_flag
// 13: 融合v2i开关(bool) 0:不发给PnC和鹰眼 1:发给Pnc和鹰眼默认0 /telematics/fusion/v2i_flag
// 12: 融合v2n开关 NDE下行事件数据进pnc (bool) 0:不发给PnC 1:发给Pnc /telematics/fusion/v2n_flag
// 13: 融合v2i开关 V2I下行感知数据进pnc (bool) 0:不发给PnC和鹰眼 1:发给Pnc和鹰眼默认0 /telematics/fusion/v2i_flag
// 14: 融合模式(int) 1:全融合模式 2:盲区模式 3:超视距模式 4:透传模式 5:纯路侧模式默认1 /telematics/fusion/fusion_mode
// 15座椅状态(int) 0:表示仅主驾位有人,1:表示仅副驾位有人,2:表示主驾和副驾同时有人,3:表示仅后排有人,4:表示主驾有人+后排有人,5:表示副驾有人+后排有人,6:表示主驾和副驾同时有人+后排有人,7: 所有座位都无人, 255:缺省
// 16: 超车的最大速度阈值(double, m/s) T1/T2: 范围[3, 12.5], 默认值10
@@ -865,6 +868,7 @@ message SetOneParam
// 18: 碰撞上报(null) TODO 废弃使用message CollisionReport
// 19: 会车开关(bool) 0: off 1:on 默认0
// 20: 超车开关(bool) 0: off 1:on 默认0
// 21: NDE下行感知数据进pnc(bool) 0:不发给PnC 1:发给Pnc /telematics/fusion/v2n_perception_flag
string value = 2; // 转成字符串的值
}
@@ -998,6 +1002,15 @@ message EZhouCloud
bytes data = 1;
}
//message definition for MsgTypeForceStopOrStartCloudReq
//云连接地址
message ForceStopOrStartReq
{
uint32 type = 1;//0:蘑菇云 1:NDE云 2:基础平台云
uint32 direction = 2;//0:上行和下行 1:上行 2:下行
bool enable = 3;//连接使能开关, true:开 false:关闭
}
//message definition for MsgTypeCloudConfig
//云连接地址
message CloudLinkAddr
@@ -1007,6 +1020,7 @@ message CloudLinkAddr
string domain = 3;//域名
uint32 port = 4;//端口 0xFFFFFFFF 无效值
bool enable = 5;//连接使能开关, true:开 false:关闭
string ip = 6;//ip
}
//域控连接的云端配置
@@ -1024,4 +1038,10 @@ message ImgUploadCloudCmd {
//查询摄像头上传NDE云状态返回
message ImgUploadCloudStatusResp {
bool enable = 1; //false: 关闭, true: 打开
}
}
//message definition for MsgTypeSetObuUploadReq
message SetEnableReq
{
uint32 enable = 1; //1: enable, 0: disable
}

View File

@@ -16,8 +16,8 @@ enum MapSystemParamType{
M1_STITCHED_VIDEO_SELF_VEHICLE_PARAM = 9;//9:m1拼接视频自车位置参数(string), 格式:x,y,width,height
BREAKDOWN_SLOW_DOWN = 10;//10:故障减速停车策略开关(bool) 0:关闭故障减速停车策略 1:使用故障减速停车策略 默认1
BLIND_AREA = 11;//11: 盲区开关(bool) 0: off 1:on /telematics/sensor/blindarea_flag
V2N_TO_PNC = 12;//12: 融合v2n开关(bool) 0:不发给PnC 1:发给Pnc /telematics/fusion/v2n_flag
V2I_TO_PNC = 13;//13: 融合v2i开关(bool) 0:不发给PnC和鹰眼 1:发给Pnc和鹰眼默认0 /telematics/fusion/v2i_flag
V2N_TO_PNC = 12;//12: 融合v2n开关 NDE下行事件数据进pnc (bool) 0:不发给PnC 1:发给Pnc /telematics/fusion/v2n_flag
V2I_TO_PNC = 13;//13: 融合v2i开关 V2I下行感知数据进pnc (bool) 0:不发给PnC和鹰眼 1:发给Pnc和鹰眼默认0 /telematics/fusion/v2i_flag
FUSION_MODE = 14;//14: 融合模式(int) 1:全融合模式 2:盲区模式 3:超视距模式 4:透传模式 5:纯路侧模式默认1 /telematics/fusion/fusion_mode
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])
@@ -25,6 +25,7 @@ enum MapSystemParamType{
COLLISION_REPORTING = 18;//18: 碰撞上报(null) TODO 废弃使用message CollisionReport
PARK_VEH_CROSS = 19;//19: 会车开关(bool) 0: off 1:on 默认0
PARK_VEH_OVERTAKE = 20;//20: 超车开关(bool) 0: off 1:on 默认0
PERCEPTION_TO_PNC = 21;//21: NDE下行感知数据进pnc(bool) 0:不发给PnC 1:发给Pnc /telematics/fusion/v2n_perception_flag
}
/**

View File

@@ -2311,9 +2311,9 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
* {@link AdasConstants.MapSystemParamType#SEAT_STATE Value类型int或int类型String}
* {@link AdasConstants.MapSystemParamType#OVERTAKE_MAX_SPEED Value类型double或double类型String}
* {@link AdasConstants.MapSystemParamType#FAULT_SIMULATION_CMD Value类型int或int类型String}
* {@link AdasConstants.MapSystemParamType#COLLISION_REPORTING Value类型null}
* {@link AdasConstants.MapSystemParamType#PARK_VEH_CROSS Value类型int或int类型String}
* {@link AdasConstants.MapSystemParamType#PARK_VEH_OVERTAKE Value类型int或int类型String}
* {@link AdasConstants.MapSystemParamType#PARK_VEH_CROSS Value类型int或int类型String} TODO 域控暂时未实现查询
* {@link AdasConstants.MapSystemParamType#PARK_VEH_OVERTAKE Value类型int或int类型String} TODO 域控暂时未实现查询
* {@link AdasConstants.MapSystemParamType#PERCEPTION_TO_PNC Value类型boolean或boolean类型String}
* @return 消息是否添加到WS消息发送队列。由于批量设置参数调用的域控接口存在不同实际调用域控最多2个接口调用次数最多4次所以最多返回4条ID数据
* * 返回值为非0的正整数时表示下发消息的消息ID
* * >=0表示添加到WS发送消息队列
@@ -2338,7 +2338,11 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
long isV2V2NI = sendSetParamReqV2(ParamSetCmdOuterClass.ParamSetType.ParamSetTypeV2I, (Boolean) value);
result.add(isV2V2NI);
} else {
builder.addReqs(MessagePad.SetOneParam.newBuilder().setType(key.getNumber()).setValue(String.valueOf(value)));
MessagePad.SetOneParam.Builder oneParamBuilder = MessagePad.SetOneParam.newBuilder().setType(key.getNumber());
if (value != null) {
oneParamBuilder.setValue(String.valueOf(value));
}
builder.addReqs(oneParamBuilder);
}
}
}
@@ -2600,6 +2604,51 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
return sendSetParamReq(AdasConstants.MapSystemParamType.PARK_VEH_OVERTAKE_VALUE, String.valueOf(enable));
}
/**
* NDE下行感知进PNC开关
* 此方法存在域控回执,监听{@link OnAdasListener#onReceiveReceivedAck(ReceivedAck)}回调.使用方法:将此方法的返回值与{@link ReceivedAck#getMsgId()}进行比较,如果相同判断{@link ReceivedAck#getStatus()}是否等于{@link ReceivedAck.Status#NORMAL}详情参见CheckSystemView中的onReceiveReceivedAck
*
* @param enable 0: 不发给PnC 1:发给Pnc
* @return 消息是否添加到WS消息发送队列返回值为非0的正整数时表示下发消息的消息ID
* * >=0表示添加到WS发送消息队列
* * =0表示乘客屏模式添加到WS发送消息队列
* * -1L添加到WS发送消息队列失败
*/
@Override
public long sendNdeDownPerceptionToPnc(int enable) {
return sendSetParamReq(AdasConstants.MapSystemParamType.PERCEPTION_TO_PNC_VALUE, String.valueOf(enable));
}
/**
* NDE下行事件进PNC开关
* 此方法存在域控回执,监听{@link OnAdasListener#onReceiveReceivedAck(ReceivedAck)}回调.使用方法:将此方法的返回值与{@link ReceivedAck#getMsgId()}进行比较,如果相同判断{@link ReceivedAck#getStatus()}是否等于{@link ReceivedAck.Status#NORMAL}详情参见CheckSystemView中的onReceiveReceivedAck
*
* @param enable 0: 不发给PnC 1:发给Pnc
* @return 消息是否添加到WS消息发送队列返回值为非0的正整数时表示下发消息的消息ID
* * >=0表示添加到WS发送消息队列
* * =0表示乘客屏模式添加到WS发送消息队列
* * -1L添加到WS发送消息队列失败
*/
@Override
public long sendNdeDownEventToPnc(int enable) {
return sendSetParamReq(AdasConstants.MapSystemParamType.V2N_TO_PNC_VALUE, String.valueOf(enable));
}
/**
* V2I下行感知进PNC开关
* 此方法存在域控回执,监听{@link OnAdasListener#onReceiveReceivedAck(ReceivedAck)}回调.使用方法:将此方法的返回值与{@link ReceivedAck#getMsgId()}进行比较,如果相同判断{@link ReceivedAck#getStatus()}是否等于{@link ReceivedAck.Status#NORMAL}详情参见CheckSystemView中的onReceiveReceivedAck
*
* @param enable 0: 不发给PnC 1:发给Pnc
* @return 消息是否添加到WS消息发送队列返回值为非0的正整数时表示下发消息的消息ID
* * >=0表示添加到WS发送消息队列
* * =0表示乘客屏模式添加到WS发送消息队列
* * -1L添加到WS发送消息队列失败
*/
@Override
public long sendV2iDownPerceptionToPnc(int enable) {
return sendSetParamReq(AdasConstants.MapSystemParamType.V2I_TO_PNC_VALUE, String.valueOf(enable));
}
/**
* 盲区数据开关
* 此方法存在域控回执,监听{@link OnAdasListener#onReceiveReceivedAck(ReceivedAck)}回调.使用方法:将此方法的返回值与{@link ReceivedAck#getMsgId()}进行比较,如果相同判断{@link ReceivedAck#getStatus()}是否等于{@link ReceivedAck.Status#NORMAL}详情参见CheckSystemView中的onReceiveReceivedAck
@@ -2693,6 +2742,7 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
.addReqs(MessagePad.SetOneParam.newBuilder().setType(AdasConstants.MapSystemParamType.FUSION_MODE_VALUE))
.addReqs(MessagePad.SetOneParam.newBuilder().setType(AdasConstants.MapSystemParamType.SEAT_STATE_VALUE))
.addReqs(MessagePad.SetOneParam.newBuilder().setType(AdasConstants.MapSystemParamType.OVERTAKE_MAX_SPEED_VALUE))
.addReqs(MessagePad.SetOneParam.newBuilder().setType(AdasConstants.MapSystemParamType.PERCEPTION_TO_PNC_VALUE))
.build();
} else {
MessagePad.SetParamReq.Builder builder = MessagePad.SetParamReq.newBuilder();
@@ -3178,6 +3228,50 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
return sendCopyBagRequest(CopyBag.PadRequest.newBuilder().setAbortCopy(true));
}
/**
* 云端配置控制
*
* @param type 0:蘑菇云 1:NDE云 2:基础平台云
* @param direction 0:上行和下行 1:上行 2:下行 当 type == 0 或 1 时 此值只能是 0蘑菇云和NDE云只能上下行同时控制当 type == 2 时 此值不能是 0基础平台云只能上下行分开控制
* @param enable 连接使能开关, true:开 false:关闭
* @return 消息是否添加到WS消息发送队列返回值为非0的正整数时表示下发消息的消息ID
* * >=0表示添加到WS发送消息队列
* * =0表示乘客屏模式添加到WS发送消息队列
* * -1L添加到WS发送消息队列失败
*/
@Override
public long sendForceStopOrStartCloudReq(int type, int direction, boolean enable) {
byte[] data = MessagePad.ForceStopOrStartReq.newBuilder().setType(type).setDirection(direction).setEnable(enable).build().toByteArray();
return sendPBMessage(MessageType.TYPE_SEND_FORCE_STOP_OR_START_CLOUD_REQ, data);
}
/**
* 域控上报OBU开关控制
*
* @param enable 0:关 1:开
* @return 消息是否添加到WS消息发送队列返回值为非0的正整数时表示下发消息的消息ID
* * >=0表示添加到WS发送消息队列
* * =0表示乘客屏模式添加到WS发送消息队列
* * -1L添加到WS发送消息队列失败
*/
@Override
public long sendSetObuUploadReq(int enable) {
return sendPBMessage(MessageType.TYPE_SEND_SET_OBU_UPLOAD_REQ, MessagePad.SetEnableReq.newBuilder().setEnable(enable).build().toByteArray());
}
/**
* 域控上报OBU开关状态查询
*
* @return 消息是否添加到WS消息发送队列返回值为非0的正整数时表示下发消息的消息ID
* * >=0表示添加到WS发送消息队列
* * =0表示乘客屏模式添加到WS发送消息队列
* * -1L添加到WS发送消息队列失败
*/
@Override
public long sendObuUploadStatusQuery() {
return sendPBMessage(MessageType.TYPE_SEND_OBU_UPLOAD_STATUS, null);
}
/**
* 云端配置查询
*
@@ -3192,7 +3286,7 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
}
/**
* 域控摄像头上传NDE云开关命令
* 车辆图像上传行云大模型开关控制NDE云
*
* @param enable false: 关闭, true: 打开
* @return 消息是否添加到WS消息发送队列返回值为非0的正整数时表示下发消息的消息ID
@@ -3209,7 +3303,7 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
}
/**
* 查询域控摄像头上传NDE云开关状态查询
* 查询车辆图像上传行云大模型开关状态NDE云
*
* @return 消息是否添加到WS消息发送队列返回值为非0的正整数时表示下发消息的消息ID
* * >=0表示添加到WS发送消息队列

View File

@@ -1453,6 +1453,51 @@ public class AdasManager implements IAdasNetCommApi {
return mChannel == null ? -1L : mChannel.sendParkVehOvertake(enable);
}
/**
* NDE下行感知进PNC开关
* 此方法存在域控回执,监听{@link OnAdasListener#onReceiveReceivedAck(ReceivedAck)}回调.使用方法:将此方法的返回值与{@link ReceivedAck#getMsgId()}进行比较,如果相同判断{@link ReceivedAck#getStatus()}是否等于{@link ReceivedAck.Status#NORMAL}详情参见CheckSystemView中的onReceiveReceivedAck
*
* @param enable 0: 不发给PnC 1:发给Pnc
* @return 消息是否添加到WS消息发送队列返回值为非0的正整数时表示下发消息的消息ID
* * >=0表示添加到WS发送消息队列
* * =0表示乘客屏模式添加到WS发送消息队列
* * -1L添加到WS发送消息队列失败
*/
@Override
public long sendNdeDownPerceptionToPnc(int enable) {
return mChannel == null ? -1L : mChannel.sendNdeDownPerceptionToPnc(enable);
}
/**
* NDE下行事件进PNC开关
* 此方法存在域控回执,监听{@link OnAdasListener#onReceiveReceivedAck(ReceivedAck)}回调.使用方法:将此方法的返回值与{@link ReceivedAck#getMsgId()}进行比较,如果相同判断{@link ReceivedAck#getStatus()}是否等于{@link ReceivedAck.Status#NORMAL}详情参见CheckSystemView中的onReceiveReceivedAck
*
* @param enable 0: 不发给PnC 1:发给Pnc
* @return 消息是否添加到WS消息发送队列返回值为非0的正整数时表示下发消息的消息ID
* * >=0表示添加到WS发送消息队列
* * =0表示乘客屏模式添加到WS发送消息队列
* * -1L添加到WS发送消息队列失败
*/
@Override
public long sendNdeDownEventToPnc(int enable) {
return mChannel == null ? -1L : mChannel.sendNdeDownEventToPnc(enable);
}
/**
* V2I下行感知进PNC开关
* 此方法存在域控回执,监听{@link OnAdasListener#onReceiveReceivedAck(ReceivedAck)}回调.使用方法:将此方法的返回值与{@link ReceivedAck#getMsgId()}进行比较,如果相同判断{@link ReceivedAck#getStatus()}是否等于{@link ReceivedAck.Status#NORMAL}详情参见CheckSystemView中的onReceiveReceivedAck
*
* @param enable 0: 不发给PnC 1:发给Pnc
* @return 消息是否添加到WS消息发送队列返回值为非0的正整数时表示下发消息的消息ID
* * >=0表示添加到WS发送消息队列
* * =0表示乘客屏模式添加到WS发送消息队列
* * -1L添加到WS发送消息队列失败
*/
@Override
public long sendV2iDownPerceptionToPnc(int enable) {
return mChannel == null ? -1L : mChannel.sendV2iDownPerceptionToPnc(enable);
}
/**
* 盲区数据开关
* 此方法存在域控回执,监听{@link OnAdasListener#onReceiveReceivedAck(ReceivedAck)}回调.使用方法:将此方法的返回值与{@link ReceivedAck#getMsgId()}进行比较,如果相同判断{@link ReceivedAck#getStatus()}是否等于{@link ReceivedAck.Status#NORMAL}详情参见CheckSystemView中的onReceiveReceivedAck
@@ -1518,9 +1563,9 @@ public class AdasManager implements IAdasNetCommApi {
* {@link AdasConstants.MapSystemParamType#SEAT_STATE Value类型int或int类型String}
* {@link AdasConstants.MapSystemParamType#OVERTAKE_MAX_SPEED Value类型double或double类型String}
* {@link AdasConstants.MapSystemParamType#FAULT_SIMULATION_CMD Value类型int或int类型String}
* {@link AdasConstants.MapSystemParamType#COLLISION_REPORTING Value类型null}
* {@link AdasConstants.MapSystemParamType#PARK_VEH_CROSS Value类型int或int类型String}
* {@link AdasConstants.MapSystemParamType#PARK_VEH_OVERTAKE Value类型int或int类型String}
* {@link AdasConstants.MapSystemParamType#PARK_VEH_CROSS Value类型int或int类型String} TODO 域控暂时未实现查询
* {@link AdasConstants.MapSystemParamType#PARK_VEH_OVERTAKE Value类型int或int类型String} TODO 域控暂时未实现查询
* {@link AdasConstants.MapSystemParamType#PERCEPTION_TO_PNC Value类型boolean或boolean类型String}
* @return 消息是否添加到WS消息发送队列。由于批量设置参数调用的域控接口存在不同实际调用域控最多2个接口调用次数最多4次所以最多返回4条ID数据
* * 返回值为非0的正整数时表示下发消息的消息ID
* * >=0表示添加到WS发送消息队列
@@ -1927,6 +1972,49 @@ public class AdasManager implements IAdasNetCommApi {
return mChannel == null ? -1L : mChannel.sendCopyBagAbortCopy();
}
/**
* 云端配置控制
*
* @param type 0:蘑菇云 1:NDE云 2:基础平台云
* @param direction 0:上行和下行 1:上行 2:下行 当 type == 0 或 1 时 此值只能是 0蘑菇云和NDE云只能上下行同时控制当 type == 2 时 此值不能是 0基础平台云只能上下行分开控制
* @param enable 连接使能开关, true:开 false:关闭
* @return 消息是否添加到WS消息发送队列返回值为非0的正整数时表示下发消息的消息ID
* * >=0表示添加到WS发送消息队列
* * =0表示乘客屏模式添加到WS发送消息队列
* * -1L添加到WS发送消息队列失败
*/
@Override
public long sendForceStopOrStartCloudReq(int type, int direction, boolean enable) {
return mChannel == null ? -1L : mChannel.sendForceStopOrStartCloudReq(type, direction, enable);
}
/**
* 域控上报OBU开关控制
*
* @param enable 0:关 1:开
* @return 消息是否添加到WS消息发送队列返回值为非0的正整数时表示下发消息的消息ID
* * >=0表示添加到WS发送消息队列
* * =0表示乘客屏模式添加到WS发送消息队列
* * -1L添加到WS发送消息队列失败
*/
@Override
public long sendSetObuUploadReq(int enable) {
return mChannel == null ? -1L : mChannel.sendSetObuUploadReq(enable);
}
/**
* 域控上报OBU开关状态查询
*
* @return 消息是否添加到WS消息发送队列返回值为非0的正整数时表示下发消息的消息ID
* * >=0表示添加到WS发送消息队列
* * =0表示乘客屏模式添加到WS发送消息队列
* * -1L添加到WS发送消息队列失败
*/
@Override
public long sendObuUploadStatusQuery() {
return mChannel == null ? -1L : mChannel.sendObuUploadStatusQuery();
}
/**
* 云端配置查询
*
@@ -1941,7 +2029,7 @@ public class AdasManager implements IAdasNetCommApi {
}
/**
* 域控摄像头上传NDE云开关命令
* 车辆图像上传行云大模型开关控制NDE云
*
* @param enable false: 关闭, true: 打开
* @return 消息是否添加到WS消息发送队列返回值为非0的正整数时表示下发消息的消息ID
@@ -1955,7 +2043,7 @@ public class AdasManager implements IAdasNetCommApi {
}
/**
* 查询域控摄像头上传NDE云开关状态查询
* 查询车辆图像上传行云大模型开关状态NDE云
*
* @return 消息是否添加到WS消息发送队列返回值为非0的正整数时表示下发消息的消息ID
* * >=0表示添加到WS发送消息队列

View File

@@ -1002,6 +1002,41 @@ public interface IAdasNetCommApi {
*/
long sendParkVehOvertake(int enable);
/**
* NDE下行感知进PNC开关
* 此方法存在域控回执,监听{@link OnAdasListener#onReceiveReceivedAck(ReceivedAck)}回调.使用方法:将此方法的返回值与{@link ReceivedAck#getMsgId()}进行比较,如果相同判断{@link ReceivedAck#getStatus()}是否等于{@link ReceivedAck.Status#NORMAL}详情参见CheckSystemView中的onReceiveReceivedAck
*
* @param enable 0: 不发给PnC 1:发给Pnc
* @return 消息是否添加到WS消息发送队列返回值为非0的正整数时表示下发消息的消息ID
* * >=0表示添加到WS发送消息队列
* * =0表示乘客屏模式添加到WS发送消息队列
* * -1L添加到WS发送消息队列失败
*/
long sendNdeDownPerceptionToPnc(int enable);
/**
* NDE下行事件进PNC开关
* 此方法存在域控回执,监听{@link OnAdasListener#onReceiveReceivedAck(ReceivedAck)}回调.使用方法:将此方法的返回值与{@link ReceivedAck#getMsgId()}进行比较,如果相同判断{@link ReceivedAck#getStatus()}是否等于{@link ReceivedAck.Status#NORMAL}详情参见CheckSystemView中的onReceiveReceivedAck
*
* @param enable 0: 不发给PnC 1:发给Pnc
* @return 消息是否添加到WS消息发送队列返回值为非0的正整数时表示下发消息的消息ID
* * >=0表示添加到WS发送消息队列
* * =0表示乘客屏模式添加到WS发送消息队列
* * -1L添加到WS发送消息队列失败
*/
long sendNdeDownEventToPnc(int enable);
/**
* V2I下行感知进PNC开关
* 此方法存在域控回执,监听{@link OnAdasListener#onReceiveReceivedAck(ReceivedAck)}回调.使用方法:将此方法的返回值与{@link ReceivedAck#getMsgId()}进行比较,如果相同判断{@link ReceivedAck#getStatus()}是否等于{@link ReceivedAck.Status#NORMAL}详情参见CheckSystemView中的onReceiveReceivedAck
*
* @param enable 0: 不发给PnC 1:发给Pnc
* @return 消息是否添加到WS消息发送队列返回值为非0的正整数时表示下发消息的消息ID
* * >=0表示添加到WS发送消息队列
* * =0表示乘客屏模式添加到WS发送消息队列
* * -1L添加到WS发送消息队列失败
*/
long sendV2iDownPerceptionToPnc(int enable);
/*******************************设置参数命令 V2************************************/
/**
@@ -1062,9 +1097,9 @@ public interface IAdasNetCommApi {
* {@link AdasConstants.MapSystemParamType#SEAT_STATE Value类型int或int类型String}
* {@link AdasConstants.MapSystemParamType#OVERTAKE_MAX_SPEED Value类型double或double类型String}
* {@link AdasConstants.MapSystemParamType#FAULT_SIMULATION_CMD Value类型int或int类型String}
* {@link AdasConstants.MapSystemParamType#COLLISION_REPORTING Value类型null}
* {@link AdasConstants.MapSystemParamType#PARK_VEH_CROSS Value类型int或int类型String}
* {@link AdasConstants.MapSystemParamType#PARK_VEH_OVERTAKE Value类型int或int类型String}
* {@link AdasConstants.MapSystemParamType#PARK_VEH_CROSS Value类型int或int类型String} TODO 域控暂时未实现查询
* {@link AdasConstants.MapSystemParamType#PARK_VEH_OVERTAKE Value类型int或int类型String} TODO 域控暂时未实现查询
* {@link AdasConstants.MapSystemParamType#PERCEPTION_TO_PNC Value类型boolean或boolean类型String}
* @return 消息是否添加到WS消息发送队列。由于批量设置参数调用的域控接口存在不同实际调用域控最多2个接口调用次数最多4次所以最多返回4条ID数据
* * 返回值为非0的正整数时表示下发消息的消息ID
* * >=0表示添加到WS发送消息队列
@@ -1403,6 +1438,40 @@ public interface IAdasNetCommApi {
long sendCopyBagAbortCopy();
/**
* 云端配置控制
*
* @param type 0:蘑菇云 1:NDE云 2:基础平台云
* @param direction 0:上行和下行 1:上行 2:下行 当 type == 0 或 1 时 此值只能是 0蘑菇云和NDE云只能上下行同时控制当 type == 2 时 此值不能是 0基础平台云只能上下行分开控制
* @param enable 连接使能开关, true:开 false:关闭
* @return 消息是否添加到WS消息发送队列返回值为非0的正整数时表示下发消息的消息ID
* * >=0表示添加到WS发送消息队列
* * =0表示乘客屏模式添加到WS发送消息队列
* * -1L添加到WS发送消息队列失败
*/
long sendForceStopOrStartCloudReq(int type, int direction, boolean enable);
/**
* 域控上报OBU开关控制
*
* @param enable 0:关 1:开
* @return 消息是否添加到WS消息发送队列返回值为非0的正整数时表示下发消息的消息ID
* * >=0表示添加到WS发送消息队列
* * =0表示乘客屏模式添加到WS发送消息队列
* * -1L添加到WS发送消息队列失败
*/
long sendSetObuUploadReq(int enable);
/**
* 域控上报OBU开关状态查询
*
* @return 消息是否添加到WS消息发送队列返回值为非0的正整数时表示下发消息的消息ID
* * >=0表示添加到WS发送消息队列
* * =0表示乘客屏模式添加到WS发送消息队列
* * -1L添加到WS发送消息队列失败
*/
long sendObuUploadStatusQuery();
/**
* 云端配置查询
*
@@ -1414,7 +1483,7 @@ public interface IAdasNetCommApi {
long sendCloudConfigRequest();
/**
* 域控摄像头上传NDE云开关命令
* 车辆图像上传行云大模型开关控制NDE云
*
* @param enable false: 关闭, true: 打开
* @return 消息是否添加到WS消息发送队列返回值为非0的正整数时表示下发消息的消息ID
@@ -1425,7 +1494,7 @@ public interface IAdasNetCommApi {
long sendImgUploadCloudEnable(boolean enable);
/**
* 查询域控摄像头上传NDE云开关状态查询
* 查询车辆图像上传行云大模型开关状态NDE云
*
* @return 消息是否添加到WS消息发送队列返回值为非0的正整数时表示下发消息的消息ID
* * >=0表示添加到WS发送消息队列

View File

@@ -743,6 +743,14 @@ public interface OnAdasListener {
*/
void onNdeCloudAdviceAvw(@NonNull MessagePad.Header header, @NonNull AdvicePojo advicePojo, @NonNull AdviceAvwInfo adviceAvwInfo);
/**
* 域控上报OBU开关状态响应
*
* @param header 头
* @param enable 数据
*/
void onObuUploadStatus(@NonNull MessagePad.Header header, @NonNull MessagePad.SetEnableReq enable);
/**
* 是否有能力启动自动驾驶
*