diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/adapter/MoGoAdasListenerImpl.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/adapter/MoGoAdasListenerImpl.kt index d05d7336e4..3323fdd812 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/adapter/MoGoAdasListenerImpl.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/adapter/MoGoAdasListenerImpl.kt @@ -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 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 a00f886642..0325ea343f 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 @@ -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决策状态"), 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 acae9a5cd7..54600e137a 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 @@ -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 { 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 db84b092a4..37a3290042 100644 --- a/libraries/mogo-adas-data/src/main/proto/message_pad.proto +++ b/libraries/mogo-adas-data/src/main/proto/message_pad.proto @@ -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: 打开 -} \ No newline at end of file +} + +//message definition for MsgTypeSetObuUploadReq +message SetEnableReq +{ + uint32 enable = 1; //1: enable, 0: disable +} 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 65f4d85b09..ac090f1ff5 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 @@ -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 } /** 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 462a3f0fd4..e13dde7037 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 @@ -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发送消息队列 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 0b2d8054b4..f25e5bdd2c 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 @@ -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发送消息队列 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 3fbd10dbca..19732731b1 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 @@ -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发送消息队列 diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/OnAdasListener.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/OnAdasListener.java index 97e12a7ed4..3ab06add72 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/OnAdasListener.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/OnAdasListener.java @@ -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); + /** * 是否有能力启动自动驾驶 *