Merge branch 'dev_robotaxi-d_230612_3.3.0' into 3.3.0merge2master
This commit is contained in:
@@ -1,8 +1,9 @@
|
||||
package com.zhidao.support.adas.high.bean;
|
||||
package com.zhjt.mogo.adas.data.bean;
|
||||
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
|
||||
import com.zhidao.support.adas.high.common.Constants;
|
||||
import com.zhjt.mogo.adas.data.AdasConstants;
|
||||
|
||||
import mogo.telematics.pad.MessagePad;
|
||||
|
||||
@@ -52,6 +53,19 @@ public class AdasParam {
|
||||
*/
|
||||
public final int weakNetSlowDown;
|
||||
|
||||
/**
|
||||
* m1拼接视频自车位置参数(string),格式:x,y,width,height
|
||||
* MAP发出的原始数据
|
||||
*/
|
||||
public final String m1StitchedVideoSelfVehicleParam;
|
||||
|
||||
/**
|
||||
* m1拼接视频自车位置参数
|
||||
* 解析后的数据
|
||||
* 为空的原因:未查询此数据、工控机不存在此数据、解析失败
|
||||
*/
|
||||
public final M1StitchedVideoSelfVehicleParam m1StitchedVideoSelfVehicleParamParse;
|
||||
|
||||
public AdasParam(MessagePad.SetParamReq param) {
|
||||
int detouringCmd = -1;
|
||||
double detouringSpeed = -1.0;
|
||||
@@ -61,6 +75,8 @@ public class AdasParam {
|
||||
int hadmapSpeedLimitValid = -1;
|
||||
int rampThetaValid = -1;
|
||||
int weakNetSlowDown = -1;
|
||||
String m1StitchedVideoSelfVehicleParam = null;
|
||||
M1StitchedVideoSelfVehicleParam m1StitchedVideoSelfVehicleParamParse = null;
|
||||
if (param != null) {
|
||||
int size = param.getReqsCount();
|
||||
if (size > 0) {
|
||||
@@ -68,38 +84,49 @@ public class AdasParam {
|
||||
MessagePad.SetOneParam oneParam = param.getReqs(i);
|
||||
int type = oneParam.getType();
|
||||
String value = oneParam.getValue();
|
||||
if (type == Constants.PARAM_TYPE.DETOURING) {
|
||||
if (type == AdasConstants.MapSystemParamType.DETOURING_VALUE) {
|
||||
if (!TextUtils.isEmpty(value)) {
|
||||
detouringCmd = Integer.parseInt(value);
|
||||
}
|
||||
} else if (type == Constants.PARAM_TYPE.DETOURING_SPEED) {
|
||||
} else if (type == AdasConstants.MapSystemParamType.DETOURING_SPEED_VALUE) {
|
||||
if (!TextUtils.isEmpty(value)) {
|
||||
detouringSpeed = Double.parseDouble(value);
|
||||
}
|
||||
} else if (type == Constants.PARAM_TYPE.AEB) {
|
||||
} else if (type == AdasConstants.MapSystemParamType.AEB_VALUE) {
|
||||
if (!TextUtils.isEmpty(value)) {
|
||||
aebCmd = Integer.parseInt(value);
|
||||
}
|
||||
} else if (type == Constants.PARAM_TYPE.LANE_CHANGE_RESTRAIN_VALID) {
|
||||
} else if (type == AdasConstants.MapSystemParamType.LANE_CHANGE_RESTRAIN_VALID_VALUE) {
|
||||
if (!TextUtils.isEmpty(value)) {
|
||||
laneChangeRestrainValid = Integer.parseInt(value);
|
||||
}
|
||||
} else if (type == Constants.PARAM_TYPE.STOP_YIELD_VALID) {
|
||||
} else if (type == AdasConstants.MapSystemParamType.STOP_YIELD_VALID_VALUE) {
|
||||
if (!TextUtils.isEmpty(value)) {
|
||||
stopYieldValid = Integer.parseInt(value);
|
||||
}
|
||||
} else if (type == Constants.PARAM_TYPE.HADMAP_SPEED_LIMIT_VALID) {
|
||||
} else if (type == AdasConstants.MapSystemParamType.HADMAP_SPEED_LIMIT_VALID_VALUE) {
|
||||
if (!TextUtils.isEmpty(value)) {
|
||||
hadmapSpeedLimitValid = Integer.parseInt(value);
|
||||
}
|
||||
} else if (type == Constants.PARAM_TYPE.RAMP_THETA_VALID) {
|
||||
} else if (type == AdasConstants.MapSystemParamType.RAMP_THETA_VALID_VALUE) {
|
||||
if (!TextUtils.isEmpty(value)) {
|
||||
rampThetaValid = Integer.parseInt(value);
|
||||
}
|
||||
} else if (type == Constants.PARAM_TYPE.WEAK_NET_SLOW_DOWN) {
|
||||
} else if (type == AdasConstants.MapSystemParamType.WEAK_NET_SLOW_DOWN_VALUE) {
|
||||
if (!TextUtils.isEmpty(value)) {
|
||||
weakNetSlowDown = Integer.parseInt(value);
|
||||
}
|
||||
} else if (type == AdasConstants.MapSystemParamType.M1_STITCHED_VIDEO_SELF_VEHICLE_PARAM_VALUE) {
|
||||
if (!TextUtils.isEmpty(value)) {
|
||||
m1StitchedVideoSelfVehicleParam = value;
|
||||
try {
|
||||
String[] s = value.split(",");
|
||||
m1StitchedVideoSelfVehicleParamParse = new M1StitchedVideoSelfVehicleParam(Integer.parseInt(s[0]), Integer.parseInt(s[1]), Integer.parseInt(s[2]), Integer.parseInt(s[3]));
|
||||
} catch (Exception e) {
|
||||
Log.e("AdasParam", "M1拼接视频自车位置参数解析失败", e);
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -112,6 +139,8 @@ public class AdasParam {
|
||||
this.hadmapSpeedLimitValid = hadmapSpeedLimitValid;
|
||||
this.rampThetaValid = rampThetaValid;
|
||||
this.weakNetSlowDown = weakNetSlowDown;
|
||||
this.m1StitchedVideoSelfVehicleParam = m1StitchedVideoSelfVehicleParam;
|
||||
this.m1StitchedVideoSelfVehicleParamParse = m1StitchedVideoSelfVehicleParamParse;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -123,6 +152,21 @@ public class AdasParam {
|
||||
"\n停车让行线前避让等待开关=" + (stopYieldValid == -1 ? "未知" : stopYieldValid == 0 ? "无需等待" : "等待") +
|
||||
"\n地图限速功能开关=" + (hadmapSpeedLimitValid == -1 ? "未知" : hadmapSpeedLimitValid == 0 ? "不使用" : "使用") +
|
||||
"\n环岛模式开关=" + (rampThetaValid == -1 ? "未知" : rampThetaValid == 0 ? "普通模式" : "环岛模式") +
|
||||
"\n弱网减速停车策略开关=" + (weakNetSlowDown == -1 ? "未知" : weakNetSlowDown == 0 ? "关闭" : "使用");
|
||||
"\n弱网减速停车策略开关=" + (weakNetSlowDown == -1 ? "未知" : weakNetSlowDown == 0 ? "关闭" : "使用") +
|
||||
"\nm1拼接视频自车位置参数=" + (m1StitchedVideoSelfVehicleParam == null ? "未知" : m1StitchedVideoSelfVehicleParam);
|
||||
}
|
||||
|
||||
public static class M1StitchedVideoSelfVehicleParam {
|
||||
public final int x;
|
||||
public final int y;
|
||||
public final int width;
|
||||
public final int height;
|
||||
|
||||
public M1StitchedVideoSelfVehicleParam(int x, int y, int width, int height) {
|
||||
this.x = x;
|
||||
this.y = y;
|
||||
this.width = width;
|
||||
this.height = height;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -6,7 +6,7 @@ import "geometry.proto";
|
||||
enum ProtocolVersion
|
||||
{
|
||||
Defaultver = 0;
|
||||
CurrentVersion = 12; //每次修改proto文件增加1
|
||||
CurrentVersion = 10; //每次修改proto文件增加1
|
||||
}
|
||||
|
||||
enum MessageType
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
syntax = "proto3";
|
||||
package com.zhjt.mogo.adas.data;
|
||||
|
||||
|
||||
//MAP系统参数类型
|
||||
enum MapSystemParamType{
|
||||
DEFAULT_TYPE = 0;
|
||||
DETOURING = 1;//绕障类功能开关
|
||||
DETOURING_SPEED = 2;//变道绕障的目标障碍物速度阈值
|
||||
AEB = 3;//AEB开关
|
||||
LANE_CHANGE_RESTRAIN_VALID = 4;//限制绕障开关
|
||||
STOP_YIELD_VALID = 5;//停车让行线前避让等待开关
|
||||
HADMAP_SPEED_LIMIT_VALID = 6;//地图限速功能开关
|
||||
RAMP_THETA_VALID = 7;//环岛模式开关
|
||||
WEAK_NET_SLOW_DOWN = 8;//弱网减速停车策略开关
|
||||
M1_STITCHED_VIDEO_SELF_VEHICLE_PARAM = 9;//m1拼接视频自车位置参数(string), 格式:x,y,width,height
|
||||
}
|
||||
|
||||
@@ -1,26 +1,28 @@
|
||||
package com.zhidao.support.adas.high;
|
||||
|
||||
|
||||
import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_ALIAS_CODE_ADAS_SEND_GLOBAL_PATH;
|
||||
import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_ALIAS_CODE_ADAS_SEND_SYSTEM_CMD;
|
||||
import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_ALIAS_CODE_ADAS_SEND_TRAJECTORY_DOWNLOAD;
|
||||
import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_ALIAS_CODE_ADAS_START_AUTOPILOT;
|
||||
import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_ALIAS_CODE_CONNECT_ADDRESS;
|
||||
import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_ALIAS_CODE_INIT;
|
||||
import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_ALIAS_CODE_STATUS_CHANGE_REASON;
|
||||
import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_LINK_ADAS;
|
||||
import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_LINK_LOG_CONNECT_STATUS;
|
||||
import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_LINK_LOG_WEB_SOCKET_AUTOPILOT;
|
||||
import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_CODE_ADAS_INIT;
|
||||
import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_CODE_ADAS_SEND_GLOBAL_PATH;
|
||||
import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_CODE_ADAS_SEND_SYSTEM_CMD;
|
||||
import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_CODE_ADAS_SEND_TRAJECTORY_DOWNLOAD;
|
||||
import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_CODE_ADAS_START_AUTOPILOT;
|
||||
import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_CODE_CONNECT_ADDRESS;
|
||||
import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_CODE_STATUS_CHANGE_REASON;
|
||||
import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_SOURCE_ADAS;
|
||||
import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_TYPE_INIT_STATUS;
|
||||
import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_TYPE_SOCKET_AUTOPILOT;
|
||||
|
||||
import android.os.Handler;
|
||||
import android.os.Message;
|
||||
import android.os.SystemClock;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
|
||||
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 +46,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;
|
||||
@@ -52,7 +55,6 @@ 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.service.chain.ChainLog;
|
||||
import com.zhjt.service.chain.TracingConstants;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
@@ -274,12 +276,10 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
|
||||
ipcFixationIPHelper.start(ips);
|
||||
}
|
||||
|
||||
@ChainLog(linkChainLog = CHAIN_LINK_LOG_CONNECT_STATUS,
|
||||
linkCode = CHAIN_LINK_ADAS,
|
||||
endpoint = TracingConstants.Endpoint.PAD,
|
||||
nodeAliasCode = CHAIN_ALIAS_CODE_INIT,
|
||||
paramIndexes = {-1},
|
||||
clientPkFileName = "sn")
|
||||
@ChainLog(linkChainLog = CHAIN_TYPE_INIT_STATUS,
|
||||
linkCode = CHAIN_SOURCE_ADAS,
|
||||
nodeAliasCode = CHAIN_CODE_ADAS_INIT,
|
||||
paramIndexes = {-1})
|
||||
private void initSocket() {
|
||||
mSocket = new FpgaSocket();
|
||||
mSocket.setWebSocketListener(this);
|
||||
@@ -292,12 +292,10 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
|
||||
connect();
|
||||
}
|
||||
|
||||
@ChainLog(linkChainLog = CHAIN_LINK_LOG_CONNECT_STATUS,
|
||||
linkCode = CHAIN_LINK_ADAS,
|
||||
endpoint = TracingConstants.Endpoint.PAD,
|
||||
nodeAliasCode = CHAIN_ALIAS_CODE_CONNECT_ADDRESS,
|
||||
paramIndexes = {0},
|
||||
clientPkFileName = "sn")
|
||||
@ChainLog(linkChainLog = CHAIN_TYPE_INIT_STATUS,
|
||||
linkCode = CHAIN_SOURCE_ADAS,
|
||||
nodeAliasCode = CHAIN_CODE_CONNECT_ADDRESS,
|
||||
paramIndexes = {0, 1})
|
||||
private void connectSocket(String address, int port) {
|
||||
if (mSocket != null) {
|
||||
mSocket.connectWebSocket(address, port);
|
||||
@@ -527,7 +525,7 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
|
||||
|
||||
@Override
|
||||
public void onConnecting(String msg) {
|
||||
updateConnectStatus(Constants.IPC_CONNECTION_STATUS.CONNECTING, msg);
|
||||
updateConnectStatus(Constants.IPC_CONNECTION_STATUS.CONNECTING, msg == null ? "" : msg);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -553,7 +551,7 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
|
||||
ipcConnectedPort = Constants.DEFAULT_PORT;
|
||||
subscribeInterface = null;
|
||||
usedChassisType = Constants.CHASSIS_TYPE.UNKNOWN;
|
||||
updateConnectStatus(Constants.IPC_CONNECTION_STATUS.DISCONNECTED, t);
|
||||
updateConnectStatus(Constants.IPC_CONNECTION_STATUS.DISCONNECTED, t == null ? "" : t);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -641,13 +639,8 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
|
||||
* @param reason 状态描述
|
||||
* 如果ipcConnectionStatus == Constants.IPC_CONNECTION_STATUS.DISCONNECTED && reason==null 表示主动断开连接
|
||||
*/
|
||||
@ChainLog(linkChainLog = CHAIN_LINK_LOG_CONNECT_STATUS,
|
||||
linkCode = CHAIN_LINK_ADAS,
|
||||
endpoint = TracingConstants.Endpoint.PAD,
|
||||
nodeAliasCode = CHAIN_ALIAS_CODE_STATUS_CHANGE_REASON,
|
||||
paramIndexes = {1},
|
||||
clientPkFileName = "sn")
|
||||
private void updateConnectStatus(@Define.IPCConnectionStatus int status, @Nullable String reason) {
|
||||
log(status, reason);
|
||||
ipcConnectionStatus.set(status);
|
||||
if (status == Constants.IPC_CONNECTION_STATUS.CONNECTED) {
|
||||
AutopilotAbilityManager.getInstance().start();
|
||||
@@ -668,6 +661,14 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
|
||||
CupidLogUtils.i(TAG, "工控机连接状态 status=" + status + " reason=" + reason);
|
||||
}
|
||||
|
||||
@ChainLog(linkChainLog = CHAIN_TYPE_INIT_STATUS,
|
||||
linkCode = CHAIN_SOURCE_ADAS,
|
||||
nodeAliasCode = CHAIN_CODE_STATUS_CHANGE_REASON,
|
||||
paramIndexes = {0, 1})
|
||||
private void log(int status, @Nullable String reason) {
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void stopDispatchHandler() {
|
||||
@@ -840,14 +841,6 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
|
||||
* @param routeInfo 自动驾驶路径信息
|
||||
* @return boolean
|
||||
*/
|
||||
@ChainLog(
|
||||
linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_AUTOPILOT,
|
||||
linkCode = CHAIN_LINK_ADAS,
|
||||
endpoint = TracingConstants.Endpoint.PAD,
|
||||
nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_START_AUTOPILOT,
|
||||
paramIndexes = {2},
|
||||
clientPkFileName = "sn"
|
||||
)
|
||||
@Override
|
||||
public boolean sendAutoPilotModeReq(int mode, int source, MessagePad.RouteInfo routeInfo) {
|
||||
MessagePad.SetAutopilotModeReq.Builder builder = MessagePad.SetAutopilotModeReq.newBuilder();
|
||||
@@ -1013,12 +1006,10 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
|
||||
* @return boolean
|
||||
*/
|
||||
@ChainLog(
|
||||
linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_AUTOPILOT,
|
||||
linkCode = CHAIN_LINK_ADAS,
|
||||
endpoint = TracingConstants.Endpoint.PAD,
|
||||
nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_SEND_GLOBAL_PATH,
|
||||
paramIndexes = {-1},
|
||||
clientPkFileName = "sn"
|
||||
linkChainLog = CHAIN_TYPE_SOCKET_AUTOPILOT,
|
||||
linkCode = CHAIN_SOURCE_ADAS,
|
||||
nodeAliasCode = CHAIN_CODE_ADAS_SEND_GLOBAL_PATH,
|
||||
paramIndexes = {-1}
|
||||
)
|
||||
@Override
|
||||
public boolean sendGlobalPathReq() {
|
||||
@@ -1085,12 +1076,10 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
|
||||
* @return boolean
|
||||
*/
|
||||
@ChainLog(
|
||||
linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_AUTOPILOT,
|
||||
linkCode = CHAIN_LINK_ADAS,
|
||||
endpoint = TracingConstants.Endpoint.PAD,
|
||||
nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_SEND_SYSTEM_CMD,
|
||||
paramIndexes = {0},
|
||||
clientPkFileName = "sn"
|
||||
linkChainLog = CHAIN_TYPE_SOCKET_AUTOPILOT,
|
||||
linkCode = CHAIN_SOURCE_ADAS,
|
||||
nodeAliasCode = CHAIN_CODE_ADAS_SEND_SYSTEM_CMD,
|
||||
paramIndexes = {0}
|
||||
)
|
||||
@Override
|
||||
public boolean sendSystemCmdReq(@NonNull MessagePad.SystemCmdType type) {
|
||||
@@ -1107,12 +1096,10 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
|
||||
* @return boolean
|
||||
*/
|
||||
@ChainLog(
|
||||
linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_AUTOPILOT,
|
||||
linkCode = CHAIN_LINK_ADAS,
|
||||
endpoint = TracingConstants.Endpoint.PAD,
|
||||
nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_SEND_TRAJECTORY_DOWNLOAD,
|
||||
paramIndexes = {0},
|
||||
clientPkFileName = "sn"
|
||||
linkChainLog = CHAIN_TYPE_SOCKET_AUTOPILOT,
|
||||
linkCode = CHAIN_SOURCE_ADAS,
|
||||
nodeAliasCode = CHAIN_CODE_ADAS_SEND_TRAJECTORY_DOWNLOAD,
|
||||
paramIndexes = {0}
|
||||
)
|
||||
@Override
|
||||
public boolean sendTrajectoryDownloadReq(MessagePad.Line line) {
|
||||
@@ -1552,7 +1539,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 +1550,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 +1562,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 +1574,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 +1586,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 +1599,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 +1611,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 +1622,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());
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
/**
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -2,21 +2,21 @@ package com.zhidao.support.adas.high.chain;
|
||||
|
||||
public class AdasChain {
|
||||
|
||||
public static final int CHAIN_LINK_ADAS = 1;
|
||||
public static final int CHAIN_SOURCE_ADAS = 1;
|
||||
|
||||
public static final int CHAIN_LINK_LOG_CONNECT_STATUS = 0;
|
||||
public static final int CHAIN_LINK_LOG_WEB_SOCKET_AUTOPILOT = 2;
|
||||
public static final int CHAIN_TYPE_INIT_STATUS = 0;
|
||||
public static final int CHAIN_TYPE_SOCKET_AUTOPILOT = 2;
|
||||
|
||||
public static final String CHAIN_ALIAS_CODE_INIT = "PAD_ADAS_INIT";
|
||||
public static final String CHAIN_ALIAS_CODE_STATUS_CHANGE_REASON = "CHAIN_ALIAS_CODE_STATUS_CHANGE_REASON";
|
||||
public static final String CHAIN_ALIAS_CODE_CONNECT_ADDRESS = "PAD_ADAS_CONNECT_ADDRESS";
|
||||
public static final String CHAIN_ALIAS_CODE_WEB_SOCKET_OPEN = "PAD_ADAS_WEB_SOCKET_OPEN";
|
||||
public static final String CHAIN_ALIAS_CODE_WEB_SOCKET_MESSAGE_JSON = "PAD_ADAS_WEB_SOCKET_MESSAGE_JSON";
|
||||
public static final String CHAIN_ALIAS_CODE_WEB_SOCKET_MESSAGE_BYTE = "PAD_ADAS_WEB_SOCKET_MESSAGE_BYTE";
|
||||
public static final String CHAIN_CODE_ADAS_INIT = "CHAIN_CODE_ADAS_INIT";
|
||||
public static final String CHAIN_CODE_STATUS_CHANGE_REASON = "CHAIN_CODE_STATUS_CHANGE_REASON";
|
||||
public static final String CHAIN_CODE_CONNECT_ADDRESS = "CHAIN_CODE_CONNECT_ADDRESS";
|
||||
public static final String CHAIN_CODE_WEB_SOCKET_OPEN = "CHAIN_CODE_WEB_SOCKET_OPEN";
|
||||
public static final String CHAIN_CODE_WEB_SOCKET_MESSAGE_JSON = "CHAIN_CODE_WEB_SOCKET_MESSAGE_JSON";
|
||||
public static final String CHAIN_CODE_WEB_SOCKET_MESSAGE_BYTE = "CHAIN_CODE_WEB_SOCKET_MESSAGE_BYTE";
|
||||
|
||||
//operation by user
|
||||
public static final String CHAIN_ALIAS_CODE_ADAS_START_AUTOPILOT = "CHAIN_ALIAS_CODE_ADAS_START_AUTOPILOT";
|
||||
public static final String CHAIN_ALIAS_CODE_ADAS_SEND_GLOBAL_PATH = "CHAIN_ALIAS_CODE_ADAS_SEND_GLOBAL_PATH";
|
||||
public static final String CHAIN_ALIAS_CODE_ADAS_SEND_SYSTEM_CMD = "CHAIN_ALIAS_CODE_ADAS_SEND_SYSTEM_CMD";
|
||||
public static final String CHAIN_ALIAS_CODE_ADAS_SEND_TRAJECTORY_DOWNLOAD = "CHAIN_ALIAS_CODE_ADAS_SEND_TRAJECTORY_DOWNLOAD";
|
||||
public static final String CHAIN_CODE_ADAS_START_AUTOPILOT = "CHAIN_CODE_ADAS_START_AUTOPILOT";
|
||||
public static final String CHAIN_CODE_ADAS_SEND_GLOBAL_PATH = "CHAIN_CODE_ADAS_SEND_GLOBAL_PATH";
|
||||
public static final String CHAIN_CODE_ADAS_SEND_SYSTEM_CMD = "CHAIN_CODE_ADAS_SEND_SYSTEM_CMD";
|
||||
public static final String CHAIN_CODE_ADAS_SEND_TRAJECTORY_DOWNLOAD = "CHAIN_CODE_ADAS_SEND_TRAJECTORY_DOWNLOAD";
|
||||
}
|
||||
|
||||
@@ -120,20 +120,6 @@ 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;//弱网减速停车策略开关
|
||||
}
|
||||
|
||||
/**
|
||||
* 启动自动驾驶-Source类型
|
||||
|
||||
@@ -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 {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ package com.zhidao.support.adas.high.common.autopilot.ability;
|
||||
import android.os.Message;
|
||||
|
||||
import com.zhidao.support.adas.high.AdasManager;
|
||||
import com.zhidao.support.adas.high.common.CupidLogUtils;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Timer;
|
||||
@@ -27,10 +28,12 @@ public class AutopilotAbility250 {
|
||||
private static final String[] NODE_INFO_STATE = {"未知状态 ", "依赖未就绪 ", "启动中 ", "运行 ", "停止 ", "无法启动状态 ", "人为启动状态 ", "人为关闭状态 "};
|
||||
private volatile Timer timer;
|
||||
private ChassisStatesOuterClass.ChassisStates chassisStates;
|
||||
private int mapVersion = -1;//工控机版本
|
||||
private int mapVersion = -1;//MAP版本
|
||||
private int masterVersion = -1;//Master版本
|
||||
|
||||
public AutopilotAbility250(int mapVersion) {
|
||||
this.mapVersion = mapVersion;
|
||||
this.masterVersion = -1;
|
||||
}
|
||||
|
||||
|
||||
@@ -51,19 +54,18 @@ public class AutopilotAbility250 {
|
||||
String unableAutopilotReason = null;//不能启动自动驾驶原因
|
||||
//检测节点状态相关
|
||||
if (statusInfo != null) {
|
||||
int version = -1;
|
||||
if (statusInfo.hasMasterVersion()) {
|
||||
if (masterVersion == -1 && statusInfo.hasMasterVersion()) {
|
||||
//截取Master Version
|
||||
String masterVersion = statusInfo.getMasterVersion();
|
||||
version = AdasManager.getInstance().parseVersion(false, masterVersion);
|
||||
masterVersion = AdasManager.getInstance().parseVersion(false, statusInfo.getMasterVersion());
|
||||
}
|
||||
CupidLogUtils.i(TAG, "MasterVersion=" + masterVersion);
|
||||
//SSM 3版本兼容
|
||||
if (mapVersion >= 30400 && version > 2 && statusInfo.hasAutoPilotReady() && statusInfo.hasAutoPilotUnreadyReason()) {
|
||||
if (mapVersion >= 30400 && masterVersion > 2 && statusInfo.hasAutoPilotReady() && statusInfo.hasAutoPilotUnreadyReason()) {
|
||||
isAutopilotAbility = statusInfo.getAutoPilotReady();
|
||||
if (!isAutopilotAbility) {
|
||||
unableAutopilotReason = statusInfo.getAutoPilotUnreadyReason();
|
||||
}
|
||||
} else if (mapVersion >= 21000 && version > 1 && statusInfo.hasAutoPilotReady()) {//如果 maser version 大于1,还需要判断AutoPilotReady字段是否存在,以确保MAP版本和SSM Maser版本不陪配情况逻辑能正常执行
|
||||
} else if (mapVersion >= 21000 && masterVersion > 1 && statusInfo.hasAutoPilotReady()) {//如果 maser version 大于1,还需要判断AutoPilotReady字段是否存在,以确保MAP版本和SSM Maser版本不陪配情况逻辑能正常执行
|
||||
isAutopilotAbility = statusInfo.getAutoPilotReady();
|
||||
if (!isAutopilotAbility) {
|
||||
SystemStatusInfo.NodeFaultList nodeFaultList = statusInfo.getAutoPilotUnreadyList();
|
||||
@@ -176,6 +178,7 @@ public class AutopilotAbility250 {
|
||||
timer = null;
|
||||
}
|
||||
this.chassisStates = null;
|
||||
this.masterVersion = -1;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ package com.zhidao.support.adas.high.common.autopilot.ability;
|
||||
|
||||
import android.os.Message;
|
||||
|
||||
import com.google.protobuf.TextFormat;
|
||||
import com.zhidao.support.adas.high.AdasManager;
|
||||
import com.zhidao.support.adas.high.common.CupidLogUtils;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Timer;
|
||||
@@ -29,8 +29,12 @@ public class AutopilotAbility330 {
|
||||
private volatile Timer timer;
|
||||
|
||||
private volatile FSMStatusReasonQueryOuterClass.FSMStatusReasonRespond fsmStatusReasonRespond;//自动驾驶状态为OFF的原因
|
||||
private int mapVersion = -1;//MAP版本
|
||||
private int masterVersion = -1;//Master版本
|
||||
|
||||
public AutopilotAbility330() {
|
||||
public AutopilotAbility330(int mapVersion) {
|
||||
this.mapVersion = mapVersion;
|
||||
this.masterVersion = -1;
|
||||
}
|
||||
|
||||
public synchronized void setFsmStatusReasonRespond(FSMStatusReasonQueryOuterClass.FSMStatusReasonRespond fsmStatusReasonRespond) {
|
||||
@@ -51,19 +55,18 @@ public class AutopilotAbility330 {
|
||||
String unableAutopilotReason = null;//不能启动自动驾驶原因
|
||||
//检测节点状态相关
|
||||
if (statusInfo != null) {
|
||||
int version = -1;
|
||||
if (statusInfo.hasMasterVersion()) {
|
||||
if (masterVersion == -1 && statusInfo.hasMasterVersion()) {
|
||||
//截取Master Version
|
||||
String masterVersion = statusInfo.getMasterVersion();
|
||||
version = AdasManager.getInstance().parseVersion(false, masterVersion);
|
||||
masterVersion = AdasManager.getInstance().parseVersion(false, statusInfo.getMasterVersion());
|
||||
}
|
||||
CupidLogUtils.i(TAG, "MasterVersion=" + masterVersion);
|
||||
//SSM 3版本兼容
|
||||
if (version > 2 && statusInfo.hasAutoPilotReady() && statusInfo.hasAutoPilotUnreadyReason()) {
|
||||
if (mapVersion >= 30400 && masterVersion > 2 && statusInfo.hasAutoPilotReady() && statusInfo.hasAutoPilotUnreadyReason()) {
|
||||
isAutopilotAbility = statusInfo.getAutoPilotReady();
|
||||
if (!isAutopilotAbility) {
|
||||
unableAutopilotReason = statusInfo.getAutoPilotUnreadyReason();
|
||||
}
|
||||
} else if (version > 1 && statusInfo.hasAutoPilotReady()) {//如果 maser version 大于1,还需要判断AutoPilotReady字段是否存在,以确保MAP版本和SSM Maser版本不陪配情况逻辑能正常执行
|
||||
} else if (mapVersion >= 21000 && masterVersion > 1 && statusInfo.hasAutoPilotReady()) {//如果 maser version 大于1,还需要判断AutoPilotReady字段是否存在,以确保MAP版本和SSM Maser版本不陪配情况逻辑能正常执行
|
||||
isAutopilotAbility = statusInfo.getAutoPilotReady();
|
||||
if (!isAutopilotAbility) {
|
||||
SystemStatusInfo.NodeFaultList nodeFaultList = statusInfo.getAutoPilotUnreadyList();
|
||||
@@ -162,6 +165,7 @@ public class AutopilotAbility330 {
|
||||
timer.cancel();
|
||||
timer = null;
|
||||
}
|
||||
this.masterVersion = -1;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -168,7 +168,7 @@ public class AutopilotAbilityManager {
|
||||
stop230();
|
||||
stop250();
|
||||
if (autopilotAbility330 == null) {
|
||||
autopilotAbility330 = new AutopilotAbility330();
|
||||
autopilotAbility330 = new AutopilotAbility330(mapVersion);
|
||||
autopilotAbility330.start();
|
||||
}
|
||||
} else if (mapVersion >= 20500) {
|
||||
@@ -243,6 +243,7 @@ public class AutopilotAbilityManager {
|
||||
stopTimer();
|
||||
stop230();
|
||||
stop250();
|
||||
stop330();
|
||||
handler = null;
|
||||
mapVersion = -1;
|
||||
isFutianSweeper = false;
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
package com.zhidao.support.adas.high.socket;
|
||||
|
||||
import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_ALIAS_CODE_WEB_SOCKET_MESSAGE_BYTE;
|
||||
import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_ALIAS_CODE_WEB_SOCKET_MESSAGE_JSON;
|
||||
import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_ALIAS_CODE_WEB_SOCKET_OPEN;
|
||||
import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_LINK_ADAS;
|
||||
import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_LINK_LOG_CONNECT_STATUS;
|
||||
import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_CODE_WEB_SOCKET_MESSAGE_BYTE;
|
||||
import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_CODE_WEB_SOCKET_MESSAGE_JSON;
|
||||
import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_CODE_WEB_SOCKET_OPEN;
|
||||
import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_SOURCE_ADAS;
|
||||
import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_TYPE_INIT_STATUS;
|
||||
import static com.zhidao.support.adas.high.common.Constants.RESOURCE_PATH;
|
||||
import static com.zhidao.support.adas.high.common.Constants.WS_IP_HOST_HEAD;
|
||||
|
||||
@@ -23,7 +23,6 @@ import com.zhidao.support.adas.high.common.ReconnectManager;
|
||||
import com.zhidao.support.adas.high.queue.WSByteQueueManager;
|
||||
import com.zhidao.support.adas.high.queue.WebSocketQueueManager;
|
||||
import com.zhjt.service.chain.ChainLog;
|
||||
import com.zhjt.service.chain.TracingConstants;
|
||||
|
||||
import java.util.Locale;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
@@ -199,12 +198,10 @@ public class FpgaSocket implements IWebSocket {
|
||||
|
||||
public class EchoWebSocketListener extends WebSocketListener {
|
||||
|
||||
@ChainLog(linkChainLog = CHAIN_LINK_LOG_CONNECT_STATUS,
|
||||
linkCode = CHAIN_LINK_ADAS,
|
||||
endpoint = TracingConstants.Endpoint.PAD,
|
||||
nodeAliasCode = CHAIN_ALIAS_CODE_WEB_SOCKET_OPEN,
|
||||
paramIndexes = {1},
|
||||
clientPkFileName = "sn")
|
||||
@ChainLog(linkChainLog = CHAIN_TYPE_INIT_STATUS,
|
||||
linkCode = CHAIN_SOURCE_ADAS,
|
||||
nodeAliasCode = CHAIN_CODE_WEB_SOCKET_OPEN,
|
||||
paramIndexes = {1})
|
||||
@Override
|
||||
public void onOpen(@NonNull WebSocket webSocket, @NonNull Response response) {
|
||||
super.onOpen(webSocket, response);
|
||||
@@ -222,12 +219,6 @@ public class FpgaSocket implements IWebSocket {
|
||||
}
|
||||
}
|
||||
|
||||
@ChainLog(linkChainLog = -1,
|
||||
linkCode = CHAIN_LINK_ADAS,
|
||||
endpoint = TracingConstants.Endpoint.PAD,
|
||||
nodeAliasCode = CHAIN_ALIAS_CODE_WEB_SOCKET_MESSAGE_JSON,
|
||||
paramIndexes = {1},
|
||||
clientPkFileName = "sn")
|
||||
@Override
|
||||
public void onMessage(@NonNull WebSocket webSocket, @NonNull String text) {
|
||||
super.onMessage(webSocket, text);
|
||||
@@ -253,12 +244,6 @@ public class FpgaSocket implements IWebSocket {
|
||||
}
|
||||
}
|
||||
|
||||
@ChainLog(linkChainLog = -1,
|
||||
linkCode = CHAIN_LINK_ADAS,
|
||||
endpoint = TracingConstants.Endpoint.PAD,
|
||||
nodeAliasCode = CHAIN_ALIAS_CODE_WEB_SOCKET_MESSAGE_BYTE,
|
||||
paramIndexes = {-1},
|
||||
clientPkFileName = "sn")
|
||||
@Override
|
||||
public void onMessage(@NonNull WebSocket webSocket, @NonNull ByteString bytes) {
|
||||
super.onMessage(webSocket, bytes);
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -10,14 +10,13 @@ import com.amap.api.location.AMapLocationListener
|
||||
import com.mogo.commons.AbsMogoApplication
|
||||
import com.mogo.commons.constants.SharedPrefsConstants
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_HTTP_DNS_CITY_CODE
|
||||
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_CODE_HTTP_DNS_CITY_CODE
|
||||
import com.mogo.eagle.core.data.map.MogoLocation
|
||||
import com.mogo.eagle.core.function.call.map.CallerGaoDeMapLocationListenerManager
|
||||
import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr
|
||||
import com.mogo.eagle.core.utilcode.util.CoordinateTransform
|
||||
import com.mogo.eagle.core.utilcode.util.TimeUtils
|
||||
import com.zhjt.service.chain.ChainLog
|
||||
import com.zhjt.service.chain.TracingConstants.Endpoint.Companion.PAD
|
||||
|
||||
/**
|
||||
* 封装高德地图通过设备GPS获取到的位置信息,频率1s一次,坐标系为CJC20
|
||||
@@ -148,12 +147,10 @@ class GDLocationClient private constructor(context: Context) : AMapLocationListe
|
||||
}
|
||||
|
||||
@ChainLog(
|
||||
linkChainLog = ChainConstant.CHAIN_LINK_LOG_CONNECT_STATUS,
|
||||
linkCode = ChainConstant.CHAIN_LINK_CLOUD,
|
||||
endpoint = PAD,
|
||||
nodeAliasCode = CHAIN_ALIAS_CODE_HTTP_DNS_CITY_CODE,
|
||||
linkChainLog = ChainConstant.CHAIN_TYPE_INIT_STATUS,
|
||||
linkCode = ChainConstant.CHAIN_SOURCE_CLOUD,
|
||||
nodeAliasCode = CHAIN_CODE_HTTP_DNS_CITY_CODE,
|
||||
paramIndexes = [0],
|
||||
clientPkFileName = "sn"
|
||||
)
|
||||
private fun setCityCode(code: String) {
|
||||
mCityCode = code
|
||||
|
||||
Reference in New Issue
Block a user