Merge branch 'dev_robotaxi-d-app-module_2130_221116_2.13.0' into dev_robotaxi-d-app-module_mogo-obu-sdk_220926_2.11.1_temp

This commit is contained in:
lixiaopeng
2022-11-16 21:38:13 +08:00
256 changed files with 10447 additions and 8 deletions

View File

@@ -55,6 +55,8 @@ import java.util.Timer;
import java.util.TimerTask;
import java.util.concurrent.atomic.AtomicInteger;
import chassis.SpecialVehicleTaskCmdOuterClass;
import common.HeaderOuterClass;
import mogo.telematics.pad.MessagePad;
import okio.ByteString;
@@ -78,6 +80,8 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
private DispatchHandler defaultDispatchHandler;//默认分发线程分发
private final Map<MessagePad.MessageType, DispatchHandler> dispatchHandlers = new HashMap<>();//其他分发线程
private Timer checkCompatibilityTimer;//检查版本兼容性定时器 连接成功后5秒内等待工控机发送配置信息
private int seqSpecialVehicle = 0;//特种车辆命令发送次数
/**
* 与工控机链接状态
*/
@@ -494,6 +498,7 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
ipcConnectedIp = ipAddress;
ipcConnectedPort = port;
subscribeInterface = new SubscribeInterface(this);
seqSpecialVehicle = 0;
updateConnectStatus(Constants.IPC_CONNECTION_STATUS.CONNECTED, "已连接");
//根据连接配置 进行接口订阅或取消订阅配置
if (adasOptions != null) {
@@ -1159,6 +1164,61 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
return subscribeInterface != null && subscribeInterface.subscribeInterface(role, type, messageType);
}
/**
* 福田清扫车业务指令下发
*
* @param fuTianTaskCmd 命令
* @return boolean
*/
@Override
public boolean sendRoboSweeperFuTianTaskCmd(SpecialVehicleTaskCmdOuterClass.RoboSweeperFuTianTaskCmd fuTianTaskCmd) {
SpecialVehicleTaskCmdOuterClass.SpecialVehicleTaskCmd.Builder cmdBuild = SpecialVehicleTaskCmdOuterClass.SpecialVehicleTaskCmd
.newBuilder()
.setRoboSweeperFutianTaskCmd(fuTianTaskCmd);
return sendSpecialVehicleTaskCmd(cmdBuild);
}
/**
* 开沃小巴业务指令下发
*
* @param vanSkywellTaskCmd 命令
* @return boolean
*/
@Override
public boolean sendRoboVanSkywellTaskCmd(SpecialVehicleTaskCmdOuterClass.RoboVanSkywellTaskCmd vanSkywellTaskCmd) {
SpecialVehicleTaskCmdOuterClass.SpecialVehicleTaskCmd.Builder cmdBuild = SpecialVehicleTaskCmdOuterClass.SpecialVehicleTaskCmd
.newBuilder()
.setRoboVanSkywellTaskCmd(vanSkywellTaskCmd);
return sendSpecialVehicleTaskCmd(cmdBuild);
}
/**
* 特种车辆命令下发
*
* @param cmdBuild 命令
* @return boolean
*/
@Override
public boolean sendSpecialVehicleTaskCmd(SpecialVehicleTaskCmdOuterClass.SpecialVehicleTaskCmd.Builder cmdBuild) {
long t = System.currentTimeMillis();
int sec = (int) (t / 1000);
int nsec = (int) (t % 1000 * 1000000);
HeaderOuterClass.Time time = HeaderOuterClass.Time
.newBuilder()
.setSec(sec)
.setNsec(nsec)
.build();
HeaderOuterClass.Header header = HeaderOuterClass.Header.newBuilder()
.setSeq(++seqSpecialVehicle)
.setStamp(time)
.setFrameId("special_vehicle_task_cmd")
.setModuleName("EagleEye")
.build();
cmdBuild.setHeader(header);
return sendPBMessage(MessageType.TYPE_SEND_SPECIAL_VEHICLE_TASK_CMD.typeCode, cmdBuild.build().toByteArray());
}
/**
* 向左变道
*

View File

@@ -15,6 +15,7 @@ import java.util.HashSet;
import java.util.List;
import java.util.Set;
import chassis.SpecialVehicleTaskCmdOuterClass;
import mogo.telematics.pad.MessagePad;
/**
@@ -589,6 +590,40 @@ public class AdasManager implements IAdasNetCommApi {
return mChannel != null && mChannel.subscribeInterface(role, type, messageType);
}
/**
* 福田清扫车业务指令下发
*
* @param fuTianTaskCmd 命令
* @return boolean
*/
@Override
public boolean sendRoboSweeperFuTianTaskCmd(SpecialVehicleTaskCmdOuterClass.RoboSweeperFuTianTaskCmd fuTianTaskCmd) {
return mChannel != null && mChannel.sendRoboSweeperFuTianTaskCmd(fuTianTaskCmd);
}
/**
* 开沃小巴业务指令下发
*
* @param vanSkywellTaskCmd 命令
* @return boolean
*/
@Override
public boolean sendRoboVanSkywellTaskCmd(SpecialVehicleTaskCmdOuterClass.RoboVanSkywellTaskCmd vanSkywellTaskCmd) {
return mChannel != null && mChannel.sendRoboVanSkywellTaskCmd(vanSkywellTaskCmd);
}
/**
* 特种车辆命令下发
*
* @param cmdBuild 命令
* @return boolean
*/
@Override
public boolean sendSpecialVehicleTaskCmd(SpecialVehicleTaskCmdOuterClass.SpecialVehicleTaskCmd.Builder cmdBuild) {
return mChannel != null && mChannel.sendSpecialVehicleTaskCmd(cmdBuild);
}
@Override
public boolean sendOperatorCmdChangeLaneLeft() {
return mChannel != null && mChannel.sendOperatorCmdChangeLaneLeft();

View File

@@ -10,6 +10,7 @@ import com.zhidao.support.adas.high.common.MessageType;
import java.util.List;
import java.util.Set;
import chassis.SpecialVehicleTaskCmdOuterClass;
import mogo.telematics.pad.MessagePad;
/**
@@ -310,6 +311,30 @@ public interface IAdasNetCommApi {
*/
boolean subscribeInterface(@Define.TerminalRole int role, @Define.SubscribeType int type, @NonNull MessageType messageType);
/**
* 福田清扫车业务指令下发
*
* @param fuTianTaskCmd 命令
* @return boolean
*/
boolean sendRoboSweeperFuTianTaskCmd(SpecialVehicleTaskCmdOuterClass.RoboSweeperFuTianTaskCmd fuTianTaskCmd);
/**
* 开沃小巴业务指令下发
*
* @param vanSkywellTaskCmd 命令
* @return boolean
*/
boolean sendRoboVanSkywellTaskCmd(SpecialVehicleTaskCmdOuterClass.RoboVanSkywellTaskCmd vanSkywellTaskCmd);
/**
* 特种车辆命令下发
*
* @param cmdBuild 命令
* @return boolean
*/
boolean sendSpecialVehicleTaskCmd(SpecialVehicleTaskCmdOuterClass.SpecialVehicleTaskCmd.Builder cmdBuild);
/**
* 向左变道

View File

@@ -51,6 +51,7 @@ public enum MessageType {
TYPE_SEND_SUBSCRIBE_DATA_REQ(MessagePad.MessageType.MsgTypeSubscribeDataReq, "数据订阅、取消订阅请求"),
TYPE_SEND_SET_PARAM_REQ(MessagePad.MessageType.MsgTypeSetParamReq, "设置参数命令"),
TYPE_SEND_TRIP_INFO_REQ(MessagePad.MessageType.MsgTypeTripInfoEvent, "行程信息"),
TYPE_SEND_SPECIAL_VEHICLE_TASK_CMD(MessagePad.MessageType.MsgTypeSpecialVehicleTaskCmd, "特种车辆命令"),
//透传 原始pb文件中不存在以下type。由于Java中无法强转所以在mogo-adas-data message_pad.proto中放开注释
TYPE_RECEIVE_PLANNING_DECISION_STATE(MessagePad.MessageType.MsgTypePlanningDecisionState, "Planning决策状态");