[adas] MessagePad.CarConfigResp增加车型字段,增加解析后的MAP版本字段

This commit is contained in:
xinfengkun
2023-05-20 17:11:48 +08:00
parent 82ed009df6
commit 686f45972b
4 changed files with 38 additions and 16 deletions

View File

@@ -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)
}

View File

@@ -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

View File

@@ -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;
}
/**

View File

@@ -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;
}
}