From 42104bc48d2dc7815cdcaf5a437d8a73e64e816b Mon Sep 17 00:00:00 2001 From: lixiaopeng Date: Mon, 17 Oct 2022 16:50:48 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=BB=95=E6=A1=A9=E5=BC=80?= =?UTF-8?q?=E5=85=B3=E5=92=8C=E7=BB=95=E6=A1=A9=E9=80=9F=E5=BA=A6=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/proto/message_pad.proto | 21 +++++++++++++++---- .../zhidao/support/adas/high/AdasChannel.java | 19 +++++++++++++++++ .../zhidao/support/adas/high/AdasManager.java | 9 ++++++++ .../support/adas/high/IAdasNetCommApi.java | 5 +++++ .../support/adas/high/common/MessageType.java | 1 + 5 files changed, 51 insertions(+), 4 deletions(-) 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 3c16b7d91f..b6ac7f2a10 100644 --- a/libraries/mogo-adas-data/src/main/proto/message_pad.proto +++ b/libraries/mogo-adas-data/src/main/proto/message_pad.proto @@ -4,7 +4,7 @@ package mogo.telematics.pad; enum ProtocolVersion { Defaultver = 0; - CurrentVersion = 7; //每次修改proto文件增加1 + CurrentVersion = 8; //每次修改proto文件增加1 } enum MessageType @@ -50,6 +50,7 @@ enum MessageType MsgTypeOperatorCmdReq = 0x10116; //操控指令 MsgTypeSubscribeDataReq = 0x10117; //数据订阅、取消订阅请求 MsgTypeSpecialVehicleTaskCmd = 0x10118; //特种车辆命令 + MsgTypeSetParamReq = 0x10119; //设置参数命令 } message Header @@ -141,11 +142,11 @@ message GnssInfo // message definition for MessageType: MsgTypeAutopilotState message AutopilotState { - uint32 state = 1; //0: 不可用(abandoned), 1:ready, 2:自动驾驶中,3:平行驾驶 + uint32 state = 1; //0: 不可用(abandoned), 1:ready, 2:自动驾驶中 uint32 camera = 2; //camera节点状态 1:开启,0:关闭 uint32 radar = 3; //雷达节点状态 1:开启,0:关闭 uint32 rtk = 4; //RTK节点状态 1:开启,0:关闭 - uint32 autopilotMode = 5; //自动驾驶状态 0: 非自动驾驶,1: 自动驾驶,2平行驾驶 + uint32 autopilotMode = 5; //自动驾驶状态 0: 非自动驾驶,1: 自动驾驶 double speed = 6; //惯导车速 m/s string reason = 7; //不可用原因(abandoned) } @@ -166,7 +167,7 @@ message AutopilotState message PlanningObject { uint32 uuid = 1; - uint32 type = 2; //影响自车决策的类型, 和感知的障碍物类型不是一回事 0是leading障碍物,1是避障和择机的障碍物 + uint32 type = 2; //影响自车决策的类型, 和感知的障碍物类型不是一回事 } message PlanningObjects @@ -466,3 +467,15 @@ message PlanningActionMsg //message definition for MsgTypeSpecialVehicleTaskCmd //refer to special_vehicle_task_cmd.proto for details +//message definition for MsgTypeSetParamReq +message SetOneParam +{ + uint32 type = 1; // 0:default 1:绕障类功能开关(bool) 2:变道绕障的目标障碍物速度阈值(double, m/s) + string value = 2; // 转成字符串的值 +} + +message SetParamReq +{ + repeated SetOneParam reqs = 1; +} + 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 daa4366e6e..62f257b274 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 @@ -14,6 +14,7 @@ import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_LINK_LOG_WEB_SO import android.os.SystemClock; import android.text.TextUtils; +import android.util.Log; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -300,6 +301,7 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec if (mSocket == null || bytes == null || bytes.length <= 0) { return false; } + Log.d("liyz", "sendWsMessag bytes = " + bytes); //TODO ByteString byteString = ByteString.of(bytes); if (!byteString.startsWith(Constants.RAW_MG)) { CupidLogUtils.e(TAG, "协议不匹配,命令下发失败 bytes=" + ByteUtil.byteArrToHex(bytes)); @@ -1194,5 +1196,22 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec public boolean sendOperatorCmdStopHonking() { return sendOperatorCmdSetHorn(2); } + + /** + * 绕障开关和速度控制 + * @param type + * @param value + */ + @Override + public boolean setDetouring(int type, String value) { + MessagePad.SetOneParam oneParam = MessagePad.SetOneParam + .newBuilder().setType(type).setValue(value).build(); + MessagePad.SetParamReq req = MessagePad.SetParamReq + .newBuilder() + .addReqs(oneParam) + .build(); + return sendPBMessage(MessageType.TYPE_SEND_DETOURING_DATA_REQ.typeCode, req.toByteArray()); + } + } 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 35b0554b2e..a682ee6249 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 @@ -570,6 +570,15 @@ public class AdasManager implements IAdasNetCommApi { return mChannel != null && mChannel.sendOperatorCmdStopHonking(); } + /** + * 绕障开关和速度控制 + * @param type + * @param value + */ + @Override + public boolean setDetouring(int type, String value) { + return mChannel != null && mChannel.setDetouring(type, value); + } /** * 获取工控机固定IP列表 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 6fc73c2beb..62f9a2fb14 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 @@ -349,6 +349,11 @@ public interface IAdasNetCommApi { */ void setEnableLog(boolean isEnableLog); + /** + * 绕障开关和速度相关 + */ + boolean setDetouring(int type, String value); + /** * 获取与当前连接工控机兼容性 * 连接状态=已连接 时正常返回,其他状态全部为null diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/MessageType.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/MessageType.java index 7fada1ae8e..625b824321 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/MessageType.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/MessageType.java @@ -49,6 +49,7 @@ public enum MessageType { TYPE_SEND_RECORD_DATA_CONFIG_REQ(MessagePad.MessageType.MsgTypeRecordDataConfigReq, "数据采集配置查询"), TYPE_RECEIVE_RECORD_DATA_CONFIG_RESP(MessagePad.MessageType.MsgTypeRecordDataConfigResp, "数据采集配置"), TYPE_SEND_SUBSCRIBE_DATA_REQ(MessagePad.MessageType.MsgTypeSubscribeDataReq, "数据订阅、取消订阅请求"), + TYPE_SEND_DETOURING_DATA_REQ(MessagePad.MessageType.MsgTypeSetParamReq, "绕障开关和阈值"), //透传 原始pb文件中不存在以下type。由于Java中无法强转所以在mogo-adas-data message_pad.proto中放开注释 TYPE_RECEIVE_PLANNING_DECISION_STATE(MessagePad.MessageType.MsgTypePlanningDecisionState, "Planning决策状态");