From 59b2c7d90000d82a98d56146aa21e26eacc9fe07 Mon Sep 17 00:00:00 2001 From: xinfengkun Date: Mon, 15 Jul 2024 19:38:21 +0800 Subject: [PATCH] =?UTF-8?q?[644=20pnc][adas]=20=E5=A2=9E=E5=8A=A0=20PNC=20?= =?UTF-8?q?=E4=BC=9A=E8=BD=A6=E8=B6=85=E8=BD=A6=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/proto/message_pad.proto | 3 ++ .../main/proto/personal/adas_constants.proto | 3 ++ .../zhidao/support/adas/high/AdasChannel.java | 33 +++++++++++++++++++ .../zhidao/support/adas/high/AdasManager.java | 33 +++++++++++++++++++ .../support/adas/high/IAdasNetCommApi.java | 28 ++++++++++++++++ 5 files changed, 100 insertions(+) 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 54a15f6401..6afa88ad92 100644 --- a/libraries/mogo-adas-data/src/main/proto/message_pad.proto +++ b/libraries/mogo-adas-data/src/main/proto/message_pad.proto @@ -643,6 +643,9 @@ message SetOneParam // 15:座椅状态(int) 0:表示仅主驾位有人,1:表示仅副驾位有人,2:表示主驾和副驾同时有人,3:表示仅后排有人,4:表示主驾有人+后排有人,5:表示副驾有人+后排有人,6:表示主驾和副驾同时有人+后排有人,7: 所有座位都无人, 255:缺省 // 16: 超车的最大速度阈值(double, m/s) T1/T2: 范围[3, 12.5], 默认值10 // 17: 故障模拟指令(int) default:0, 1:线控失效 + // 18: 碰撞上报(null) + // 19: 会车开关(bool) 0: off 1:on 默认0 + // 20: 超车开关(bool) 0: off 1:on 默认0 string value = 2; // 转成字符串的值 } 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..a540f15908 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,9 @@ 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) + PASS_EACH_OTHER = 19;//19: 会车开关(bool) 0: off 1:on 默认0 + OVERTAKE = 20;//20: 超车开关(bool) 0: off 1:on 默认0 } /** 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 6460ecf0bf..25a4ba6fd5 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 @@ -2248,6 +2248,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#PASS_EACH_OTHER Value类型:int或int类型String} + * {@link AdasConstants.MapSystemParamType#OVERTAKE Value类型:int或int类型String} * @return 消息是否添加到WS消息发送队列。由于批量设置参数,调用的域控接口存在不同,实际调用域控最多2个接口,调用次数最多4次,所以最多返回4条ID数据 * * 返回值为非0的正整数时表示下发消息的消息ID * * >=0:表示添加到WS发送消息队列 @@ -2455,6 +2458,36 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec return sendSetParamReq(AdasConstants.MapSystemParamType.OVERTAKE_MAX_SPEED_VALUE, String.valueOf(maxSpeed)); } + /** + * 会车开关 + * 此方法存在域控回执,监听{@link OnAdasListener#onReceiveReceivedAck(ReceivedAck)}回调.使用方法:将此方法的返回值与{@link ReceivedAck#getMsgId()}进行比较,如果相同判断{@link ReceivedAck#getStatus()}是否等于{@link ReceivedAck.Status#NORMAL},详情参见CheckSystemView中的onReceiveReceivedAck + * + * @param enable 0: off 1:on 默认0 + * @return 消息是否添加到WS消息发送队列,返回值为非0的正整数时表示下发消息的消息ID + * * >=0:表示添加到WS发送消息队列 + * * =0:表示乘客屏模式添加到WS发送消息队列 + * * -1L:添加到WS发送消息队列失败 + */ + @Override + public long sendPassEachOther(int enable) { + return sendSetParamReq(AdasConstants.MapSystemParamType.PASS_EACH_OTHER_VALUE, String.valueOf(enable)); + } + + /** + * 超车开关 + * 此方法存在域控回执,监听{@link OnAdasListener#onReceiveReceivedAck(ReceivedAck)}回调.使用方法:将此方法的返回值与{@link ReceivedAck#getMsgId()}进行比较,如果相同判断{@link ReceivedAck#getStatus()}是否等于{@link ReceivedAck.Status#NORMAL},详情参见CheckSystemView中的onReceiveReceivedAck + * + * @param enable 0: off 1:on 默认0 + * @return 消息是否添加到WS消息发送队列,返回值为非0的正整数时表示下发消息的消息ID + * * >=0:表示添加到WS发送消息队列 + * * =0:表示乘客屏模式添加到WS发送消息队列 + * * -1L:添加到WS发送消息队列失败 + */ + @Override + public long sendOvertake(int enable) { + return sendSetParamReq(AdasConstants.MapSystemParamType.OVERTAKE_VALUE, String.valueOf(enable)); + } + /** * 盲区数据开关 * 此方法存在域控回执,监听{@link OnAdasListener#onReceiveReceivedAck(ReceivedAck)}回调.使用方法:将此方法的返回值与{@link ReceivedAck#getMsgId()}进行比较,如果相同判断{@link ReceivedAck#getStatus()}是否等于{@link ReceivedAck.Status#NORMAL},详情参见CheckSystemView中的onReceiveReceivedAck 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 f29f121e3c..43ad5dc024 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 @@ -1371,6 +1371,36 @@ public class AdasManager implements IAdasNetCommApi { return mChannel == null ? -1L : mChannel.sendOvertakeMaxSpeed(maxSpeed); } + /** + * 会车开关 + * 此方法存在域控回执,监听{@link OnAdasListener#onReceiveReceivedAck(ReceivedAck)}回调.使用方法:将此方法的返回值与{@link ReceivedAck#getMsgId()}进行比较,如果相同判断{@link ReceivedAck#getStatus()}是否等于{@link ReceivedAck.Status#NORMAL},详情参见CheckSystemView中的onReceiveReceivedAck + * + * @param enable 0: off 1:on 默认0 + * @return 消息是否添加到WS消息发送队列,返回值为非0的正整数时表示下发消息的消息ID + * * >=0:表示添加到WS发送消息队列 + * * =0:表示乘客屏模式添加到WS发送消息队列 + * * -1L:添加到WS发送消息队列失败 + */ + @Override + public long sendPassEachOther(int enable) { + return mChannel == null ? -1L : mChannel.sendPassEachOther(enable); + } + + /** + * 超车开关 + * 此方法存在域控回执,监听{@link OnAdasListener#onReceiveReceivedAck(ReceivedAck)}回调.使用方法:将此方法的返回值与{@link ReceivedAck#getMsgId()}进行比较,如果相同判断{@link ReceivedAck#getStatus()}是否等于{@link ReceivedAck.Status#NORMAL},详情参见CheckSystemView中的onReceiveReceivedAck + * + * @param enable 0: off 1:on 默认0 + * @return 消息是否添加到WS消息发送队列,返回值为非0的正整数时表示下发消息的消息ID + * * >=0:表示添加到WS发送消息队列 + * * =0:表示乘客屏模式添加到WS发送消息队列 + * * -1L:添加到WS发送消息队列失败 + */ + @Override + public long sendOvertake(int enable) { + return mChannel == null ? -1L : mChannel.sendOvertake(enable); + } + /** * 盲区数据开关 * 此方法存在域控回执,监听{@link OnAdasListener#onReceiveReceivedAck(ReceivedAck)}回调.使用方法:将此方法的返回值与{@link ReceivedAck#getMsgId()}进行比较,如果相同判断{@link ReceivedAck#getStatus()}是否等于{@link ReceivedAck.Status#NORMAL},详情参见CheckSystemView中的onReceiveReceivedAck @@ -1436,6 +1466,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#PASS_EACH_OTHER Value类型:int或int类型String} + * {@link AdasConstants.MapSystemParamType#OVERTAKE Value类型:int或int类型String} * @return 消息是否添加到WS消息发送队列。由于批量设置参数,调用的域控接口存在不同,实际调用域控最多2个接口,调用次数最多4次,所以最多返回4条ID数据 * * 返回值为非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 5ba39f8bf5..53a94eceff 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 @@ -946,6 +946,31 @@ public interface IAdasNetCommApi { */ long sendOvertakeMaxSpeed(double maxSpeed); + /** + * 会车开关 + * 此方法存在域控回执,监听{@link OnAdasListener#onReceiveReceivedAck(ReceivedAck)}回调.使用方法:将此方法的返回值与{@link ReceivedAck#getMsgId()}进行比较,如果相同判断{@link ReceivedAck#getStatus()}是否等于{@link ReceivedAck.Status#NORMAL},详情参见CheckSystemView中的onReceiveReceivedAck + * + * @param enable 0: off 1:on 默认0 + * @return 消息是否添加到WS消息发送队列,返回值为非0的正整数时表示下发消息的消息ID + * * >=0:表示添加到WS发送消息队列 + * * =0:表示乘客屏模式添加到WS发送消息队列 + * * -1L:添加到WS发送消息队列失败 + */ + long sendPassEachOther(int enable); + + /** + * 超车开关 + * 此方法存在域控回执,监听{@link OnAdasListener#onReceiveReceivedAck(ReceivedAck)}回调.使用方法:将此方法的返回值与{@link ReceivedAck#getMsgId()}进行比较,如果相同判断{@link ReceivedAck#getStatus()}是否等于{@link ReceivedAck.Status#NORMAL},详情参见CheckSystemView中的onReceiveReceivedAck + * + * @param enable 0: off 1:on 默认0 + * @return 消息是否添加到WS消息发送队列,返回值为非0的正整数时表示下发消息的消息ID + * * >=0:表示添加到WS发送消息队列 + * * =0:表示乘客屏模式添加到WS发送消息队列 + * * -1L:添加到WS发送消息队列失败 + */ + long sendOvertake(int enable); + + /*******************************设置参数命令 V2************************************/ /** * 盲区数据开关 @@ -1005,6 +1030,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#PASS_EACH_OTHER Value类型:int或int类型String} + * {@link AdasConstants.MapSystemParamType#OVERTAKE Value类型:int或int类型String} * @return 消息是否添加到WS消息发送队列。由于批量设置参数,调用的域控接口存在不同,实际调用域控最多2个接口,调用次数最多4次,所以最多返回4条ID数据 * * 返回值为非0的正整数时表示下发消息的消息ID * * >=0:表示添加到WS发送消息队列