[3.3.0][M1] 360环视需求代码提交

This commit is contained in:
renwj
2023-06-13 16:39:27 +08:00
parent 59dd44a14b
commit dd9a4667df
37 changed files with 1388 additions and 231 deletions

View File

@@ -21,6 +21,7 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.google.protobuf.InvalidProtocolBufferException;
import com.zhjt.mogo.adas.data.bean.AdasParam;
import com.zhidao.support.adas.high.bean.VersionCompatibility;
import com.zhidao.support.adas.high.common.AutopilotReview;
import com.zhidao.support.adas.high.common.ByteUtil;
@@ -44,6 +45,7 @@ import com.zhidao.support.adas.high.socket.FpgaSocket;
import com.zhidao.support.adas.high.subscribe.SubscribeInterface;
import com.zhidao.support.adas.high.subscribe.SubscribeInterfaceOptions;
import com.zhidao.support.adas.high.thread.DispatchHandler;
import com.zhjt.mogo.adas.data.AdasConstants;
import com.zhjt.mogo.adas.data.bean.AutopilotStatistics;
import com.zhjt.mogo.adas.data.sweeper.SweeperCloudTask;
import com.zhjt.mogo.adas.data.sweeper.bootable.SweeperBootable;
@@ -1552,7 +1554,7 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
*/
@Override
public boolean sendDetouring(int enable) {
return sendSetParamReq(Constants.PARAM_TYPE.DETOURING, String.valueOf(enable));
return sendSetParamReq(AdasConstants.MapSystemParamType.DETOURING_VALUE, String.valueOf(enable));
}
/**
@@ -1563,7 +1565,7 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
*/
@Override
public boolean sendDetouringSpeed(double speed) {
return sendSetParamReq(Constants.PARAM_TYPE.DETOURING_SPEED, String.valueOf(speed));
return sendSetParamReq(AdasConstants.MapSystemParamType.DETOURING_SPEED_VALUE, String.valueOf(speed));
}
/**
@@ -1575,7 +1577,7 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
*/
@Override
public boolean sendAebCmd(int enable) {
return sendSetParamReq(Constants.PARAM_TYPE.AEB, String.valueOf(enable));
return sendSetParamReq(AdasConstants.MapSystemParamType.AEB_VALUE, String.valueOf(enable));
}
/**
@@ -1587,7 +1589,7 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
*/
@Override
public boolean sendLaneChangeRestrainValid(int enable) {
return sendSetParamReq(Constants.PARAM_TYPE.LANE_CHANGE_RESTRAIN_VALID, String.valueOf(enable));
return sendSetParamReq(AdasConstants.MapSystemParamType.LANE_CHANGE_RESTRAIN_VALID_VALUE, String.valueOf(enable));
}
/**
@@ -1599,7 +1601,7 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
*/
@Override
public boolean sendStopYieldValid(int enable) {
return sendSetParamReq(Constants.PARAM_TYPE.STOP_YIELD_VALID, String.valueOf(enable));
return sendSetParamReq(AdasConstants.MapSystemParamType.STOP_YIELD_VALID_VALUE, String.valueOf(enable));
}
@@ -1612,7 +1614,7 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
*/
@Override
public boolean sendHadmapSpeedLimitValid(int enable) {
return sendSetParamReq(Constants.PARAM_TYPE.HADMAP_SPEED_LIMIT_VALID, String.valueOf(enable));
return sendSetParamReq(AdasConstants.MapSystemParamType.HADMAP_SPEED_LIMIT_VALID_VALUE, String.valueOf(enable));
}
/**
@@ -1624,7 +1626,7 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
*/
@Override
public boolean sendRampThetaValid(int enable) {
return sendSetParamReq(Constants.PARAM_TYPE.RAMP_THETA_VALID, String.valueOf(enable));
return sendSetParamReq(AdasConstants.MapSystemParamType.RAMP_THETA_VALID_VALUE, String.valueOf(enable));
}
/**
@@ -1635,46 +1637,47 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
*/
@Override
public boolean sendWeakNetSlowDown(int enable) {
return sendSetParamReq(Constants.PARAM_TYPE.WEAK_NET_SLOW_DOWN, String.valueOf(enable));
return sendSetParamReq(AdasConstants.MapSystemParamType.WEAK_NET_SLOW_DOWN_VALUE, String.valueOf(enable));
}
/**
* 获取全部参数
* 结果回调{@link OnAdasListener#onGetParamResp(MessagePad.Header, MessagePad.SetParamReq)}
* 结果回调{@link OnAdasListener#onGetParamResp(MessagePad.Header, MessagePad.SetParamReq, AdasParam)}
*
* @return boolean
*/
@Override
public boolean sendGetAllParamReq() {
return sendGetParamReq(Constants.PARAM_TYPE.UNKNOWN);
return sendGetParamReq(null);
}
/**
* 参数获取请求
* 结果回调{@link OnAdasListener#onGetParamResp(MessagePad.Header, MessagePad.SetParamReq)}
* 结果回调{@link OnAdasListener#onGetParamResp(MessagePad.Header, MessagePad.SetParamReq, AdasParam)}
*
* @param paramType 参数类型{@link Constants.PARAM_TYPE}
* @param paramType 参数类型:libraries/mogo-adas-data/src/main/proto/personal/adas_constants.proto
* @return boolean
*/
@Override
public boolean sendGetParamReq(@Define.ParamType int paramType) {
public boolean sendGetParamReq(AdasConstants.MapSystemParamType paramType) {
MessagePad.SetParamReq req;
if (paramType == Constants.PARAM_TYPE.UNKNOWN) {
if (paramType == null || paramType == AdasConstants.MapSystemParamType.DEFAULT_TYPE) {
req = MessagePad.SetParamReq
.newBuilder()
.addReqs(MessagePad.SetOneParam.newBuilder().setType(Constants.PARAM_TYPE.DETOURING))
.addReqs(MessagePad.SetOneParam.newBuilder().setType(Constants.PARAM_TYPE.DETOURING_SPEED))
.addReqs(MessagePad.SetOneParam.newBuilder().setType(Constants.PARAM_TYPE.AEB))
.addReqs(MessagePad.SetOneParam.newBuilder().setType(Constants.PARAM_TYPE.LANE_CHANGE_RESTRAIN_VALID))
.addReqs(MessagePad.SetOneParam.newBuilder().setType(Constants.PARAM_TYPE.STOP_YIELD_VALID))
.addReqs(MessagePad.SetOneParam.newBuilder().setType(Constants.PARAM_TYPE.HADMAP_SPEED_LIMIT_VALID))
.addReqs(MessagePad.SetOneParam.newBuilder().setType(Constants.PARAM_TYPE.RAMP_THETA_VALID))
.addReqs(MessagePad.SetOneParam.newBuilder().setType(Constants.PARAM_TYPE.WEAK_NET_SLOW_DOWN))
.addReqs(MessagePad.SetOneParam.newBuilder().setType(AdasConstants.MapSystemParamType.DETOURING_VALUE))
.addReqs(MessagePad.SetOneParam.newBuilder().setType(AdasConstants.MapSystemParamType.DETOURING_SPEED_VALUE))
.addReqs(MessagePad.SetOneParam.newBuilder().setType(AdasConstants.MapSystemParamType.AEB_VALUE))
.addReqs(MessagePad.SetOneParam.newBuilder().setType(AdasConstants.MapSystemParamType.LANE_CHANGE_RESTRAIN_VALID_VALUE))
.addReqs(MessagePad.SetOneParam.newBuilder().setType(AdasConstants.MapSystemParamType.STOP_YIELD_VALID_VALUE))
.addReqs(MessagePad.SetOneParam.newBuilder().setType(AdasConstants.MapSystemParamType.HADMAP_SPEED_LIMIT_VALID_VALUE))
.addReqs(MessagePad.SetOneParam.newBuilder().setType(AdasConstants.MapSystemParamType.RAMP_THETA_VALID_VALUE))
.addReqs(MessagePad.SetOneParam.newBuilder().setType(AdasConstants.MapSystemParamType.WEAK_NET_SLOW_DOWN_VALUE))
.addReqs(MessagePad.SetOneParam.newBuilder().setType(AdasConstants.MapSystemParamType.M1_STITCHED_VIDEO_SELF_VEHICLE_PARAM_VALUE))
.build();
} else {
req = MessagePad.SetParamReq
.newBuilder()
.addReqs(MessagePad.SetOneParam.newBuilder().setType(paramType))
.addReqs(MessagePad.SetOneParam.newBuilder().setType(paramType.getNumber()))
.build();
}
return sendPBMessage(MessageType.TYPE_SEND_GET_PARAM_REQ.typeCode, req.toByteArray());

View File

@@ -5,6 +5,7 @@ import android.text.TextUtils;
import androidx.annotation.NonNull;
import com.zhjt.mogo.adas.data.bean.AdasParam;
import com.zhidao.support.adas.high.bean.VersionCompatibility;
import com.zhidao.support.adas.high.common.AppPreferenceHelper;
import com.zhidao.support.adas.high.common.Constants;
@@ -17,6 +18,7 @@ import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask;
import com.zhjt.mogo.adas.data.sweeper.task.SweeperTaskSuspendResume;
import com.zhjt.mogo.adas.data.sweeper.task.confirm.SweeperTaskConfirm;
import com.zhjt.mogo.adas.data.sweeper.task.stop.SweeperTaskStop;
import com.zhjt.mogo.adas.data.AdasConstants;
import java.util.HashSet;
import java.util.List;
@@ -914,7 +916,7 @@ public class AdasManager implements IAdasNetCommApi {
/**
* 获取全部参数
* 结果回调{@link OnAdasListener#onGetParamResp(MessagePad.Header, MessagePad.SetParamReq)}
* 结果回调{@link OnAdasListener#onGetParamResp(MessagePad.Header, MessagePad.SetParamReq, AdasParam)}
*
* @return boolean
*/
@@ -925,13 +927,13 @@ public class AdasManager implements IAdasNetCommApi {
/**
* 参数获取请求
* 结果回调{@link OnAdasListener#onGetParamResp(MessagePad.Header, MessagePad.SetParamReq)}
* 结果回调{@link OnAdasListener#onGetParamResp(MessagePad.Header, MessagePad.SetParamReq, AdasParam)}
*
* @param paramType 参数类型{@link Constants.PARAM_TYPE}
* @param paramType 参数类型:libraries/mogo-adas-data/src/main/proto/personal/adas_constants.proto
* @return boolean
*/
@Override
public boolean sendGetParamReq(@Define.ParamType int paramType) {
public boolean sendGetParamReq(AdasConstants.MapSystemParamType paramType) {
return mChannel != null && mChannel.sendGetParamReq(paramType);
}

View File

@@ -11,6 +11,7 @@ import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask;
import com.zhjt.mogo.adas.data.sweeper.task.SweeperTaskSuspendResume;
import com.zhjt.mogo.adas.data.sweeper.task.confirm.SweeperTaskConfirm;
import com.zhjt.mogo.adas.data.sweeper.task.stop.SweeperTaskStop;
import com.zhjt.mogo.adas.data.AdasConstants;
import java.util.List;
import java.util.Set;
@@ -571,10 +572,10 @@ public interface IAdasNetCommApi {
/**
* 参数获取请求
*
* @param paramType
* @param paramType 参数类型:libraries/mogo-adas-data/src/main/proto/personal/adas_constants.proto
* @return boolean
*/
boolean sendGetParamReq(@Define.ParamType int paramType);
boolean sendGetParamReq(AdasConstants.MapSystemParamType paramType);
/**

View File

@@ -4,12 +4,12 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.mogo.support.obu.ObuScene;
import com.zhidao.support.adas.high.bean.AdasParam;
import com.zhjt.mogo.adas.data.AdasConstants;
import com.zhidao.support.adas.high.common.MessageType;
import com.zhidao.support.adas.high.common.ProtocolStatus;
import com.zhjt.mogo.adas.data.bean.AdasParam;
import com.zhjt.mogo.adas.data.bean.AutopilotStatistics;
import org.jetbrains.annotations.NotNull;
import com.zhjt.mogo.adas.data.sweeper.SweeperCloudTask;
import com.zhjt.mogo.adas.data.sweeper.bootable.SweeperBootable;
import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask;
@@ -377,7 +377,7 @@ public interface OnAdasListener {
* @param header 头
* @param rsi 数据
*/
void onV2nCongestionEvent(@NotNull MessagePad.Header header, @NotNull MogoV2X.RSI_PB rsi);
void onV2nCongestionEvent(@NonNull MessagePad.Header header, @NonNull MogoV2X.RSI_PB rsi);
/**
* 主车路径全局事件推送
@@ -389,19 +389,19 @@ public interface OnAdasListener {
* @param congestion 拥堵
* @param parkingViolation 违停 ---包含 静态障碍车
*/
void onV2nGlobalPathEvents(@NotNull MessagePad.Header header, @NotNull RoadOverviewEvents.RoadOverviewData roadOverview, @Nullable MogoV2X.RSI_PB construct, @Nullable MogoV2X.RSI_PB triangle, @Nullable MogoV2X.RSI_PB congestion, @Nullable MogoV2X.RSM_PB parkingViolation);
void onV2nGlobalPathEvents(@NonNull MessagePad.Header header, @NonNull RoadOverviewEvents.RoadOverviewData roadOverview, @Nullable MogoV2X.RSI_PB construct, @Nullable MogoV2X.RSI_PB triangle, @Nullable MogoV2X.RSI_PB congestion, @Nullable MogoV2X.RSM_PB parkingViolation);
/**
* 参数获取应答
* <p>
* 调用{@link AdasManager#sendGetAllParamReq()}或{@link AdasManager#sendGetParamReq(int)}
* 调用{@link AdasManager#sendGetAllParamReq()}或{@link AdasManager#sendGetParamReq(AdasConstants.MapSystemParamType)}
* 如果对应的value是空串说明没有这个param或者get失败了。重启后值还是在redis里
*
* @param header 头
* @param getParamResp 配置参数
* @param adasParam 解析后的配置参数
* @param adasParam 解析后的配置参数
*/
void onGetParamResp(@NotNull MessagePad.Header header, @NotNull MessagePad.SetParamReq getParamResp, @NotNull AdasParam adasParam);
void onGetParamResp(@NonNull MessagePad.Header header, @NonNull MessagePad.SetParamReq getParamResp, @NonNull AdasParam adasParam);
/**
* M1拼接视频 10Hz

View File

@@ -1,128 +0,0 @@
package com.zhidao.support.adas.high.bean;
import android.text.TextUtils;
import com.zhidao.support.adas.high.common.Constants;
import mogo.telematics.pad.MessagePad;
/**
* 工控机配置参数
* -1表示未知说明没有这个param或者get失败
*/
public class AdasParam {
/**
* 绕障类功能开关
* -1未知 0关闭 1开启
*/
public final int detouringCmd;
/**
* 变道绕障的目标障碍物速度阈值
* -1未知
*/
public final double detouringSpeed;
/**
* AEB开关
* -1未知 0关闭自动紧急制动功能 1启用自动紧急制动功能
*/
public final int aebCmd;
/**
* 限制绕障开关
* -1未知 0默认正常绕障 1限制绕障
*/
public final int laneChangeRestrainValid;
/**
* 停车让行线前避让等待开关
* -1未知 0默认停车让行线前无需等待 1停车让行线前需要等待
*/
public final int stopYieldValid;
/**
* 地图限速功能开关
* -1未知 0默认不使用地图限速功能 1使用地图限速功能
*/
public final int hadmapSpeedLimitValid;
/**
* 环岛模式开关
* -1未知 0默认普通模式 1环岛模式
*/
public final int rampThetaValid;
/**
* 弱网减速停车策略开关
* -1未知 0关闭弱网减速停车策略 1默认使用弱网减速停车策略
*/
public final int weakNetSlowDown;
public AdasParam(MessagePad.SetParamReq param) {
int detouringCmd = -1;
double detouringSpeed = -1.0;
int aebCmd = -1;
int laneChangeRestrainValid = -1;
int stopYieldValid = -1;
int hadmapSpeedLimitValid = -1;
int rampThetaValid = -1;
int weakNetSlowDown = -1;
if (param != null) {
int size = param.getReqsCount();
if (size > 0) {
for (int i = 0; i < size; i++) {
MessagePad.SetOneParam oneParam = param.getReqs(i);
int type = oneParam.getType();
String value = oneParam.getValue();
if (type == Constants.PARAM_TYPE.DETOURING) {
if (!TextUtils.isEmpty(value)) {
detouringCmd = Integer.parseInt(value);
}
} else if (type == Constants.PARAM_TYPE.DETOURING_SPEED) {
if (!TextUtils.isEmpty(value)) {
detouringSpeed = Double.parseDouble(value);
}
} else if (type == Constants.PARAM_TYPE.AEB) {
if (!TextUtils.isEmpty(value)) {
aebCmd = Integer.parseInt(value);
}
} else if (type == Constants.PARAM_TYPE.LANE_CHANGE_RESTRAIN_VALID) {
if (!TextUtils.isEmpty(value)) {
laneChangeRestrainValid = Integer.parseInt(value);
}
} else if (type == Constants.PARAM_TYPE.STOP_YIELD_VALID) {
if (!TextUtils.isEmpty(value)) {
stopYieldValid = Integer.parseInt(value);
}
} else if (type == Constants.PARAM_TYPE.HADMAP_SPEED_LIMIT_VALID) {
if (!TextUtils.isEmpty(value)) {
hadmapSpeedLimitValid = Integer.parseInt(value);
}
} else if (type == Constants.PARAM_TYPE.RAMP_THETA_VALID) {
if (!TextUtils.isEmpty(value)) {
rampThetaValid = Integer.parseInt(value);
}
} else if (type == Constants.PARAM_TYPE.WEAK_NET_SLOW_DOWN) {
if (!TextUtils.isEmpty(value)) {
weakNetSlowDown = Integer.parseInt(value);
}
}
}
}
}
this.detouringCmd = detouringCmd;
this.detouringSpeed = detouringSpeed;
this.aebCmd = aebCmd;
this.laneChangeRestrainValid = laneChangeRestrainValid;
this.stopYieldValid = stopYieldValid;
this.hadmapSpeedLimitValid = hadmapSpeedLimitValid;
this.rampThetaValid = rampThetaValid;
this.weakNetSlowDown = weakNetSlowDown;
}
@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 ? "关闭" : "使用");
}
}

View File

@@ -120,18 +120,4 @@ public class Constants {
int OLD_CHASSIS = 1;//老底盘
}
/**
* 参数类型
*/
public interface PARAM_TYPE {
int UNKNOWN = -1;
int DETOURING = 1;//绕障类功能开关
int DETOURING_SPEED = 2;//变道绕障的目标障碍物速度阈值
int AEB = 3;//AEB开关
int LANE_CHANGE_RESTRAIN_VALID = 4;//限制绕障开关
int STOP_YIELD_VALID = 5;//停车让行线前避让等待开关
int HADMAP_SPEED_LIMIT_VALID = 6;//地图限速功能开关
int RAMP_THETA_VALID = 7;//环岛模式开关
int WEAK_NET_SLOW_DOWN = 8;//弱网减速停车策略开关
}
}

View File

@@ -55,11 +55,4 @@ public final class Define {
public @interface AutopilotStartStatus {
}
@IntDef(flag = true, value = {Constants.PARAM_TYPE.DETOURING, Constants.PARAM_TYPE.DETOURING_SPEED,
Constants.PARAM_TYPE.AEB, Constants.PARAM_TYPE.LANE_CHANGE_RESTRAIN_VALID,
Constants.PARAM_TYPE.STOP_YIELD_VALID, Constants.PARAM_TYPE.HADMAP_SPEED_LIMIT_VALID,
Constants.PARAM_TYPE.RAMP_THETA_VALID, Constants.PARAM_TYPE.WEAK_NET_SLOW_DOWN})
@Retention(RetentionPolicy.SOURCE)
public @interface ParamType {
}
}

View File

@@ -5,7 +5,7 @@ import android.os.SystemClock;
import com.google.protobuf.InvalidProtocolBufferException;
import com.zhidao.support.adas.high.AdasChannel;
import com.zhidao.support.adas.high.OnAdasListener;
import com.zhidao.support.adas.high.bean.AdasParam;
import com.zhjt.mogo.adas.data.bean.AdasParam;
import com.zhidao.support.adas.high.common.CupidLogUtils;
import com.zhidao.support.adas.high.protocol.RawData;