[opt2.15.0][adas-lib]增加lanning控制命令(目前用于襄阳驾照考试),增加控制V2N数据给车端PnC接口

This commit is contained in:
xinfengkun
2023-03-08 16:19:21 +08:00
parent ea6f95ea20
commit a4370eb06e
13 changed files with 481 additions and 62 deletions

View File

@@ -599,12 +599,18 @@ message TripInfoEvent
//message definition for MsgTypePlanningCmd
message PullOverCmd
{
uint32 cmd = 1; //0: default 1: 靠边停车 2:重新起步
uint32 cmd = 1; //0: default 1: 靠边停车 2:重新起步 3:紧急停车
}
message LaneChangeCmd
{
uint32 cmd = 1; //0: default 1: 左变道 2:右变道 3:超车 4:恢复自动决策
}
message PlanningCmd
{
PullOverCmd pullOverCmd = 1;
LaneChangeCmd laneChangeCmd = 2;
}
//message definition for MsgTypeSetParamReqV2

View File

@@ -4,7 +4,8 @@ package mogo.telematics;
enum ParamSetType
{
ParamSetTypeNone = 0;
ParamSetTypeBlindArea = 1;
ParamSetTypeBlindArea = 1; //bool, :off 1:on
ParamSetTypeV2N = 2; //bool, 0:不发给PnC 1:发给Pnc
}
message ParamSetCmd

View File

@@ -1231,17 +1231,47 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
return subscribeInterface != null && subscribeInterface.subscribeInterface(role, type, messageType);
}
/**
* 给Planning发送靠边停车指令
*
* @param pullOverCmd 命令 0: default 1: 靠边停车 2:重新起步 3:紧急停车 TODO 值3 目前仅襄阳牌照考试支持
* @return boolean 是否加入发送队列
*/
@Override
public boolean sendPlanningPullOverCmd(int pullOverCmd) {
return sendPlanningCmd(pullOverCmd, -1);
}
/**
* 给Planning发送变道指令
* TODO 目前此功能仅襄阳牌照考试支持
*
* @param laneChangeCmd 命令 0: default 1: 左变道 2:右变道 3:超车 4:恢复自动决策
* @return boolean 是否加入发送队列
*/
@Override
public boolean sendPlanningLaneChangeCmd(int laneChangeCmd) {
return sendPlanningCmd(-1, laneChangeCmd);
}
/**
* 给Planning发送指令
*
* @param cmd 命令 0: default 1: 靠边停车 2:重新起步
* @return boolean
* @param pullOverCmd 命令 0: default 1: 靠边停车 2:重新起步 3:紧急停车 TODO 值3 仅襄阳牌照考试支持
* @param laneChangeCmd 命令 0: default 1: 左变道 2:右变道 3:超车 4:恢复自动决策 TODO laneChangeCmd 仅襄阳牌照考试支持
* @return boolean 是否加入发送队列
*/
@Override
public boolean sendPlanningCmd(int cmd) {
MessagePad.PlanningCmd planningCmd = MessagePad.PlanningCmd.newBuilder()
.setPullOverCmd(MessagePad.PullOverCmd.newBuilder().setCmd(cmd))
.build();
public boolean sendPlanningCmd(int pullOverCmd, int laneChangeCmd) {
MessagePad.PlanningCmd.Builder build = MessagePad.PlanningCmd.newBuilder();
if (pullOverCmd > -1) {
build.setPullOverCmd(MessagePad.PullOverCmd.newBuilder().setCmd(pullOverCmd));
}
if (laneChangeCmd > -1) {
build.setLaneChangeCmd(MessagePad.LaneChangeCmd.newBuilder().setCmd(laneChangeCmd));
}
MessagePad.PlanningCmd planningCmd = build.build();
return sendPBMessage(MessageType.TYPE_SEND_PLANNING_CMD.typeCode, planningCmd.toByteArray());
}
@@ -1567,6 +1597,16 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
return sendPBMessage(MessageType.TYPE_SEND_BAG_MANAGER_CMD.typeCode, bagManager.toByteArray());
}
/**
* 控制V2N数据给车端PnC
*
* @param switchCmd true为发给PnCfalse为不发给PnC
* @return boolean
*/
@Override
public boolean sendV2nToPncCmd(boolean switchCmd) {
return sendSetParamReqV2(ParamSetCmdOuterClass.ParamSetType.ParamSetTypeV2N, switchCmd);
}
/**
* 盲区数据开关
@@ -1587,7 +1627,7 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
ParamSetCmdOuterClass.ParamSetCmd.Builder builder = ParamSetCmdOuterClass.ParamSetCmd.newBuilder()
.setSrc(1)
.setType(paramSetType);
if (paramSetType == ParamSetCmdOuterClass.ParamSetType.ParamSetTypeBlindArea) {
if (paramSetType == ParamSetCmdOuterClass.ParamSetType.ParamSetTypeBlindArea || paramSetType == ParamSetCmdOuterClass.ParamSetType.ParamSetTypeV2N) {
builder.setBoolValue((Boolean) value);
}
ParamSetCmdOuterClass.ParamSetCmd req = builder.build();

View File

@@ -603,15 +603,51 @@ public class AdasManager implements IAdasNetCommApi {
return mChannel != null && mChannel.subscribeInterface(role, type, messageType);
}
/**
* 给Planning发送靠边停车指令
*
* @param pullOverCmd 命令 0: default 1: 靠边停车 2:重新起步 3:紧急停车 TODO 值3 目前仅襄阳牌照考试支持
* @return boolean 是否加入发送队列
*/
@Override
public boolean sendPlanningPullOverCmd(int pullOverCmd) {
return mChannel != null && mChannel.sendPlanningPullOverCmd(pullOverCmd);
}
/**
* 给Planning发送变道指令
* TODO 目前此功能仅襄阳牌照考试支持
*
* @param laneChangeCmd 命令 0: default 1: 左变道 2:右变道 3:超车 4:恢复自动决策
* @return boolean 是否加入发送队列
*/
@Override
public boolean sendPlanningLaneChangeCmd(int laneChangeCmd) {
return mChannel != null && mChannel.sendPlanningLaneChangeCmd(laneChangeCmd);
}
/**
* 给Planning发送指令
*
* @param pullOverCmd 命令 0: default 1: 靠边停车 2:重新起步 3:紧急停车 TODO 值3 仅襄阳牌照考试支持
* @param laneChangeCmd 命令 0: default 1: 左变道 2:右变道 3:超车 4:恢复自动决策 TODO laneChangeCmd 仅襄阳牌照考试支持
* @return boolean 是否加入发送队列
*/
@Override
public boolean sendPlanningCmd(int pullOverCmd, int laneChangeCmd) {
return mChannel != null && mChannel.sendPlanningCmd(pullOverCmd, laneChangeCmd);
}
/**
* 给Planning发送 靠边停车 指令
* TODO 已废弃 新接口{@link AdasManager#sendPlanningPullOverCmd(int)}
*
* @param cmd 命令 0: default 1: 靠边停车 2:重新起步
* @return boolean
*/
@Override
@Deprecated
public boolean sendPlanningCmd(int cmd) {
return mChannel != null && mChannel.sendPlanningCmd(cmd);
return mChannel != null && mChannel.sendPlanningPullOverCmd(cmd);
}
/**
@@ -822,6 +858,23 @@ public class AdasManager implements IAdasNetCommApi {
return mChannel != null && mChannel.sendBagManagerCmd(bagManager);
}
/**
* 控制V2N数据给车端PnC
*
* @param switchCmd true为发给PnCfalse为不发给PnC
* @return boolean
*/
@Override
public boolean sendV2nToPncCmd(boolean switchCmd) {
return mChannel != null && mChannel.sendV2nToPncCmd(switchCmd);
}
/**
* 盲区数据开关
*
* @param switchCmd 数据开关
* @return boolean
*/
@Override
public boolean sendBlindAreaCmd(boolean switchCmd) {
return mChannel != null && mChannel.sendBlindAreaCmd(switchCmd);

View File

@@ -321,13 +321,31 @@ public interface IAdasNetCommApi {
*/
boolean subscribeInterface(@Define.TerminalRole int role, @Define.SubscribeType int type, @NonNull MessageType messageType);
/**
* 给Planning发送靠边停车指令
*
* @param pullOverCmd 命令 0: default 1: 靠边停车 2:重新起步 3:紧急停车 TODO 值3 目前仅襄阳牌照考试支持
* @return boolean 是否加入发送队列
*/
boolean sendPlanningPullOverCmd(int pullOverCmd);
/**
* 给Planning发送变道指令
* TODO 目前此功能仅襄阳牌照考试支持
*
* @param laneChangeCmd 命令 0: default 1: 左变道 2:右变道 3:超车 4:恢复自动决策
* @return boolean 是否加入发送队列
*/
boolean sendPlanningLaneChangeCmd(int laneChangeCmd);
/**
* 给Planning发送指令
*
* @param cmd 命令 0: default 1: 靠边停车 2:重新起步
* @return boolean
* @param pullOverCmd 命令 0: default 1: 靠边停车 2:重新起步 3:紧急停车 TODO 值3 目前仅襄阳牌照考试支持
* @param laneChangeCmd 命令 0: default 1: 左变道 2:右变道 3:超车 4:恢复自动决策 TODO laneChangeCmd 仅襄阳牌照考试支持
* @return boolean 是否加入发送队列
*/
boolean sendPlanningCmd(int cmd);
boolean sendPlanningCmd(int pullOverCmd, int laneChangeCmd);
/**
* 福田清扫车业务指令下发
@@ -506,6 +524,14 @@ public interface IAdasNetCommApi {
*/
boolean sendBagManagerCmd(BagManagerOuterClass.BagManager bagManager);
/**
* 控制V2N数据给车端PnC
*
* @param switchCmd true为发给PnCfalse为不发给PnC
* @return boolean
*/
boolean sendV2nToPncCmd(boolean switchCmd);
/**
* 盲区数据开关
*