[690][adas]启动自驾新增自驾启动位置参数
This commit is contained in:
@@ -397,12 +397,12 @@ class MoGoAutopilotControlProvider :
|
||||
private fun startAutoPilotWithNoParameter(source: Int) {
|
||||
if (AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode)) {
|
||||
val invokeResult = AdasManager.getInstance()
|
||||
.sendAutoPilotModeReq(1, source, null, null)
|
||||
.sendAutoPilotModeReq(1, source, null, null, null)
|
||||
invokeAutoPilotResult(if (invokeResult > -1) "无参自动驾驶调用成功:${invokeResult}" else "自动驾驶调用失败, socket 或者 rawPack 可能为空")
|
||||
} else {
|
||||
if (AdasManager.getInstance().ipcConnectionStatus == AdasConstants.IpcConnectionStatus.CONNECTED) {
|
||||
val invokeResult = AdasManager.getInstance()
|
||||
.sendAutoPilotModeReq(1, source, null, null)
|
||||
.sendAutoPilotModeReq(1, source, null, null, null)
|
||||
invokeAutoPilotResult(if (invokeResult > -1) "无参自动驾驶调用成功:${invokeResult}" else "自动驾驶调用失败, socket 或者 rawPack 可能为空")
|
||||
} else {
|
||||
invokeAutoPilotResult("车机与工控机链接失败,无法开启自动驾驶 无参")
|
||||
@@ -413,13 +413,13 @@ class MoGoAutopilotControlProvider :
|
||||
private fun startAutoPilot(controlParameters: AutopilotControlParameters, source: Int): Long {
|
||||
if (AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode)) {
|
||||
val invokeResult = AdasManager.getInstance()
|
||||
.sendAutoPilotModeReq(1, source, controlParameters.toRouteInfo(), controlParameters.toAutoPilotCmdInfo())
|
||||
.sendAutoPilotModeReq(1, source, controlParameters.toRouteInfo(), controlParameters.toAutoPilotCmdInfo(), null)
|
||||
invokeAutoPilotResult(if (invokeResult > -1) "自动驾驶调用成功:${invokeResult}" else "自动驾驶调用失败, socket 或者 rawPack 可能为空")
|
||||
return invokeResult
|
||||
} else {
|
||||
if (AdasManager.getInstance().ipcConnectionStatus == AdasConstants.IpcConnectionStatus.CONNECTED) {
|
||||
val invokeResult = AdasManager.getInstance()
|
||||
.sendAutoPilotModeReq(1, source, controlParameters.toRouteInfo(), controlParameters.toAutoPilotCmdInfo())
|
||||
.sendAutoPilotModeReq(1, source, controlParameters.toRouteInfo(), controlParameters.toAutoPilotCmdInfo(), null)
|
||||
invokeAutoPilotResult(if (invokeResult > -1) "自动驾驶调用成功:${invokeResult}" else "自动驾驶调用失败, socket 或者 rawPack 可能为空")
|
||||
return invokeResult
|
||||
} else {
|
||||
@@ -481,7 +481,7 @@ class MoGoAutopilotControlProvider :
|
||||
|
||||
override fun cancelAutoPilot() {
|
||||
if (AdasManager.getInstance().ipcConnectionStatus == AdasConstants.IpcConnectionStatus.CONNECTED) {
|
||||
val invokeResult = AdasManager.getInstance().sendAutoPilotModeReq(0, 1, null, null)
|
||||
val invokeResult = AdasManager.getInstance().sendAutoPilotModeReq(0, 1, null, null, null)
|
||||
invokeAutoPilotResult(if (invokeResult > -1) "取消自动驾驶调用成功:${invokeResult}" else "取消自动驾驶调用失败, socket 或者 rawPack 可能为空")
|
||||
} else {
|
||||
invokeAutoPilotResult("车机与工控机链接失败,无法取消自动驾驶")
|
||||
@@ -1078,11 +1078,11 @@ class MoGoAutopilotControlProvider :
|
||||
*/
|
||||
override fun setControlAutopilotCarAuto(isEnable: Boolean) {
|
||||
if (isEnable) {
|
||||
AdasManager.getInstance().sendAutoPilotModeReq(1, 0, null, null)
|
||||
AdasManager.getInstance().sendAutoPilotModeReq(1, 0, null, null, null)
|
||||
} else {
|
||||
// 司机屏才可关闭自动驾驶
|
||||
if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) {
|
||||
AdasManager.getInstance().sendAutoPilotModeReq(0, 0, null, null)
|
||||
AdasManager.getInstance().sendAutoPilotModeReq(0, 0, null, null, null)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -491,6 +491,13 @@ message CmdInfo {
|
||||
string order_id = 2; // 订单号
|
||||
}
|
||||
|
||||
enum StartPosType
|
||||
{
|
||||
FIRST_STATION = 0; //首站点触发
|
||||
MIDDLE = 1; //中间站点触发
|
||||
OTHER = 2; // 非(首站点/中间站点)触发
|
||||
}
|
||||
|
||||
message SetAutopilotModeReq
|
||||
{
|
||||
uint32 mode = 1; //1: enter autopilot mode, 0: quit autopilot mode
|
||||
@@ -498,6 +505,7 @@ message SetAutopilotModeReq
|
||||
RouteInfo routeInfo = 3; //自动驾驶路径信息
|
||||
uint64 sessionId = 4; //autopilot cmd session ID
|
||||
CmdInfo cmd_info = 5; //自驾命令信息
|
||||
StartPosType start_pos_type = 6; // 自驾启动位置
|
||||
}
|
||||
|
||||
// message definition for MsgTypeSetDemoModeReq
|
||||
|
||||
@@ -1181,17 +1181,18 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
|
||||
* 设置自动驾驶模式 启动自动驾驶
|
||||
* 此方法存在域控回执,监听{@link OnAdasListener#onReceiveReceivedAck(ReceivedAck)}回调.使用方法:将此方法的返回值与{@link ReceivedAck#getMsgId()}进行比较,如果相同判断{@link ReceivedAck#getStatus()}是否等于{@link ReceivedAck.Status#NORMAL},详情参见CheckSystemView中的onReceiveReceivedAck
|
||||
*
|
||||
* @param mode 1: enter autopilot mode, 0: quit autopilot mode
|
||||
* @param source 命令来源: 0: pad模拟, 1: pad业务, 2:aicloud, 3:魔方(清扫车MAP Version==332以及MAP Version>=350,其他车型目前未上线)
|
||||
* @param routeInfo 自动驾驶路径信息
|
||||
* @param cmdInfo 自驾命令信息(订单号,是否首次进自驾等)
|
||||
* @param mode 1: enter autopilot mode, 0: quit autopilot mode
|
||||
* @param source 命令来源: 0: pad模拟, 1: pad业务, 2:aicloud, 3:魔方(清扫车MAP Version==332以及MAP Version>=350,其他车型目前未上线)
|
||||
* @param routeInfo 自动驾驶路径信息
|
||||
* @param cmdInfo 自驾命令信息(订单号,是否首次进自驾等)
|
||||
* @param startPosType 自驾启动位置
|
||||
* @return 消息是否添加到WS消息发送队列,返回值为非0的正整数时表示下发消息的消息ID和SessionID
|
||||
* * >=0:表示添加到WS发送消息队列
|
||||
* * =0:表示乘客屏模式添加到WS发送消息队列
|
||||
* * -1L:添加到WS发送消息队列失败
|
||||
*/
|
||||
@Override
|
||||
public long sendAutoPilotModeReq(int mode, int source, @Nullable MessagePad.RouteInfo routeInfo, @Nullable MessagePad.CmdInfo cmdInfo) {
|
||||
public long sendAutoPilotModeReq(int mode, int source, @Nullable MessagePad.RouteInfo routeInfo, @Nullable MessagePad.CmdInfo cmdInfo, @Nullable MessagePad.StartPosType startPosType) {
|
||||
MessageId messageId = MessageId.build(MessageType.TYPE_SEND_SET_AUTOPILOT_MODE_REQ);
|
||||
MessagePad.SetAutopilotModeReq.Builder builder = MessagePad.SetAutopilotModeReq.newBuilder();
|
||||
builder.setMode(mode);
|
||||
@@ -1202,6 +1203,9 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
|
||||
if (cmdInfo != null) {
|
||||
builder.setCmdInfo(cmdInfo);
|
||||
}
|
||||
if (startPosType != null) {
|
||||
builder.setStartPosType(startPosType);
|
||||
}
|
||||
MessagePad.SetAutopilotModeReq req = builder.build();
|
||||
if (autopilotReview != null) autopilotReview.onAutopilotCommandTrigger(req);
|
||||
return sendPBMessage(MessageType.TYPE_SEND_SET_AUTOPILOT_MODE_REQ, req.toByteArray(), messageId);
|
||||
|
||||
@@ -396,18 +396,19 @@ public class AdasManager implements IAdasNetCommApi {
|
||||
* 设置自动驾驶模式 启动自动驾驶
|
||||
* 此方法存在域控回执,监听{@link OnAdasListener#onReceiveReceivedAck(ReceivedAck)}回调.使用方法:将此方法的返回值与{@link ReceivedAck#getMsgId()}进行比较,如果相同判断{@link ReceivedAck#getStatus()}是否等于{@link ReceivedAck.Status#NORMAL},详情参见CheckSystemView中的onReceiveReceivedAck
|
||||
*
|
||||
* @param mode 1: enter autopilot mode, 0: quit autopilot mode
|
||||
* @param source 命令来源: 0: pad模拟, 1: pad业务, 2:aicloud, 3:魔方(清扫车MAP Version==332以及MAP Version>=350,其他车型目前未上线)
|
||||
* @param routeInfo 自动驾驶路径信息
|
||||
* @param cmdInfo 自驾命令信息(订单号,是否首次进自驾等)
|
||||
* @param mode 1: enter autopilot mode, 0: quit autopilot mode
|
||||
* @param source 命令来源: 0: pad模拟, 1: pad业务, 2:aicloud, 3:魔方(清扫车MAP Version==332以及MAP Version>=350,其他车型目前未上线)
|
||||
* @param routeInfo 自动驾驶路径信息
|
||||
* @param cmdInfo 自驾命令信息(订单号,是否首次进自驾等)
|
||||
* @param startPosType 自驾启动位置
|
||||
* @return 消息是否添加到WS消息发送队列,返回值为非0的正整数时表示下发消息的消息ID和SessionID
|
||||
* * >=0:表示添加到WS发送消息队列
|
||||
* * =0:表示乘客屏模式添加到WS发送消息队列
|
||||
* * -1L:添加到WS发送消息队列失败
|
||||
*/
|
||||
@Override
|
||||
public long sendAutoPilotModeReq(int mode, int source, @Nullable MessagePad.RouteInfo routeInfo, @Nullable MessagePad.CmdInfo cmdInfo) {
|
||||
return mChannel == null ? -1L : mChannel.sendAutoPilotModeReq(mode, source, routeInfo, cmdInfo);
|
||||
public long sendAutoPilotModeReq(int mode, int source, @Nullable MessagePad.RouteInfo routeInfo, @Nullable MessagePad.CmdInfo cmdInfo, @Nullable MessagePad.StartPosType startPosType) {
|
||||
return mChannel == null ? -1L : mChannel.sendAutoPilotModeReq(mode, source, routeInfo, cmdInfo, startPosType);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -167,16 +167,17 @@ public interface IAdasNetCommApi {
|
||||
* 设置自动驾驶模式 启动自动驾驶
|
||||
* 此方法存在域控回执,监听{@link OnAdasListener#onReceiveReceivedAck(ReceivedAck)}回调.使用方法:将此方法的返回值与{@link ReceivedAck#getMsgId()}进行比较,如果相同判断{@link ReceivedAck#getStatus()}是否等于{@link ReceivedAck.Status#NORMAL},详情参见CheckSystemView中的onReceiveReceivedAck
|
||||
*
|
||||
* @param mode 1: enter autopilot mode, 0: quit autopilot mode
|
||||
* @param source 命令来源: 0: pad模拟, 1: pad业务, 2:aicloud, 3:魔方(清扫车MAP Version==332以及MAP Version>=350,其他车型目前未上线)
|
||||
* @param routeInfo 自动驾驶路径信息
|
||||
* @param cmdInfo 自驾命令信息(订单号,是否首次进自驾等)
|
||||
* @param mode 1: enter autopilot mode, 0: quit autopilot mode
|
||||
* @param source 命令来源: 0: pad模拟, 1: pad业务, 2:aicloud, 3:魔方(清扫车MAP Version==332以及MAP Version>=350,其他车型目前未上线)
|
||||
* @param routeInfo 自动驾驶路径信息
|
||||
* @param cmdInfo 自驾命令信息(订单号,是否首次进自驾等)
|
||||
* @param startPosType 自驾启动位置
|
||||
* @return 消息是否添加到WS消息发送队列,返回值为非0的正整数时表示下发消息的消息ID和SessionID
|
||||
* * >=0:表示添加到WS发送消息队列
|
||||
* * =0:表示乘客屏模式添加到WS发送消息队列
|
||||
* * -1L:添加到WS发送消息队列失败
|
||||
*/
|
||||
long sendAutoPilotModeReq(int mode, int source, @Nullable MessagePad.RouteInfo routeInfo, @Nullable MessagePad.CmdInfo cmdInfo);
|
||||
long sendAutoPilotModeReq(int mode, int source, @Nullable MessagePad.RouteInfo routeInfo, @Nullable MessagePad.CmdInfo cmdInfo, @Nullable MessagePad.StartPosType startPosType);
|
||||
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user