From 686f45972b3194f5556b69160e0d5aaad88111c8 Mon Sep 17 00:00:00 2001 From: xinfengkun Date: Sat, 20 May 2023 17:11:48 +0800 Subject: [PATCH] =?UTF-8?q?[adas]=20MessagePad.CarConfigResp=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E8=BD=A6=E5=9E=8B=E5=AD=97=E6=AE=B5=EF=BC=8C=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E8=A7=A3=E6=9E=90=E5=90=8E=E7=9A=84MAP=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../server/AsyncDataToAutopilotServer.kt | 5 +++- .../src/main/proto/message_pad.proto | 9 +++++++ .../zhidao/support/adas/high/AdasManager.java | 15 ----------- .../adas/high/msg/CarConfigRespMessage.java | 25 +++++++++++++++++++ 4 files changed, 38 insertions(+), 16 deletions(-) diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/server/AsyncDataToAutopilotServer.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/server/AsyncDataToAutopilotServer.kt index 12a53090b3..f6dae9d389 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/server/AsyncDataToAutopilotServer.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/server/AsyncDataToAutopilotServer.kt @@ -27,7 +27,10 @@ class AsyncDataToAutopilotServer private constructor() : IMoGoTrafficLightListen } override fun onTrafficLightStatus(trafficLightResult: TrafficLightResult) { - val version = AdasManager.getInstance().mapVersion + var version = -1 + if (AdasManager.getInstance().carConfig != null) { + version = AdasManager.getInstance().carConfig.mapVersion + } if (version > -1 && version < 290) CallerAutoPilotControlManager.sendTrafficLightData(trafficLightResult) } 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 fd1991ca0e..1e02521784 100644 --- a/libraries/mogo-adas-data/src/main/proto/message_pad.proto +++ b/libraries/mogo-adas-data/src/main/proto/message_pad.proto @@ -316,6 +316,15 @@ message CarConfigResp double maxAcceleration = 8; //最大加速度, 单位:m/s² string carType = 9; //车辆类型 string subCarType = 10; //车辆子类型 + reserved 11 to 100; + int32 mapVersion = 101;//dockVersion解析出版本号,解析失败为-1。例如:"MAP-taxi_RoboTaxi_df_2.8.0.3_20220928_test" 解析结果为:280 + bool isDF = 102;//车型是否是东风 + bool isHQ = 103;//车型是否是红旗 + bool isJinlv = 104;//车型是否是金旅小巴 + bool isJinlvM1 = 105;//车型是否是金旅M1 + bool isJinlvM2 = 106;//车型是否是金旅M2 + bool isFutianSweeper = 107;//车型是否是福田清扫车 + bool isKaiwo = 108;//车型是否是开沃 } // message definition for MsgTypeRecordCause 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 adf028f7a9..8732af2ce3 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 @@ -42,7 +42,6 @@ public class AdasManager implements IAdasNetCommApi { */ private static final int PROTOCOL_VERSION = MessagePad.ProtocolVersion.CurrentVersion.getNumber(); private volatile MessagePad.CarConfigResp carConfig; - private int mapVersion = -1;//当前连接的MAP版本,断开连接会置为-1 private static final String ADAS_VERSION = BuildConfig.VERSION_NAME; private final Pattern pattern = Pattern.compile("\\d+\\.\\d+\\.\\d+"); @@ -65,20 +64,6 @@ public class AdasManager implements IAdasNetCommApi { public synchronized void setCarConfig(MessagePad.CarConfigResp carConfig) { this.carConfig = carConfig; - if (carConfig != null) { - mapVersion = parseVersion(carConfig.getDockVersion()); - } else { - mapVersion = -1; - } - } - - /** - * 当前连接的MAP版本,断开连接会置为-1 - * - * @return 版本 - */ - public int getMapVersion() { - return mapVersion; } /** diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/CarConfigRespMessage.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/CarConfigRespMessage.java index 7a63aed0b6..01b40555df 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/CarConfigRespMessage.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/CarConfigRespMessage.java @@ -1,6 +1,7 @@ package com.zhidao.support.adas.high.msg; import android.os.SystemClock; +import android.text.TextUtils; import com.google.protobuf.InvalidProtocolBufferException; import com.zhidao.support.adas.high.AdasChannel; @@ -20,6 +21,7 @@ public class CarConfigRespMessage extends MyAbstractMessageHandler { @Override public void handlerMsg(RawData raw, OnAdasListener adasListener) throws InvalidProtocolBufferException { MessagePad.CarConfigResp carConfigResp = MessagePad.CarConfigResp.parser().parseFrom(raw.originalData.toByteArray(), raw.getOffsetValue(), raw.getPackageLengthValue() - raw.getOffsetValue()); + carConfigResp = addPersonalParameter(carConfigResp); AdasChannel.calculateTimeConsumingOnDispatchRaw("车机基础信息应答", raw.receiveTime); AutopilotAbilityManager.getInstance().setCarConfig(carConfigResp); AdasManager.getInstance().setCarConfig(carConfigResp); @@ -32,4 +34,27 @@ public class CarConfigRespMessage extends MyAbstractMessageHandler { AdasChannel.calculateTimeConsumingBusiness("车机基础信息应答", nowTime); CupidLogUtils.e("车机基础信息应答--->" + carConfigResp.toString()); } + + /** + * 添加私有参数 + */ + private MessagePad.CarConfigResp addPersonalParameter(MessagePad.CarConfigResp carConfigResp) { + if (carConfigResp != null) { + String dockVersion = carConfigResp.getDockVersion(); + String carType = carConfigResp.getCarType().toLowerCase(); + String subCarType = carConfigResp.getSubCarType().toLowerCase(); + MessagePad.CarConfigResp.Builder builder = carConfigResp.toBuilder(); + builder.setMapVersion(AdasManager.getInstance().parseVersion(dockVersion)); + builder.setIsDF("df".equals(carType))//是否是东风 + .setIsHQ("hq".equals(carType))//是否是红旗 + .setIsJinlv("jinlv".equals(carType) && TextUtils.isEmpty(subCarType))//是否是金旅小巴 + .setIsJinlvM1("jinlv".equals(carType) && "m1".equals(subCarType))//是否是金旅M1 + .setIsJinlvM2("jinlv".equals(carType) && "m2".equals(subCarType))//是否是金旅M2 + .setIsFutianSweeper("sweeper".equals(carType))//是否是福田清扫车 + .setIsKaiwo("kaiwo".equals(carType));//是否是开沃 + return builder.build(); + } + return null; + } + }