[pb12][清扫车指标数据]添加清扫车指标数据,以及移除老底盘回调,添加int字段用于判断新老底盘来源
This commit is contained in:
@@ -81,7 +81,7 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
|
||||
private final Map<MessagePad.MessageType, DispatchHandler> dispatchHandlers = new HashMap<>();//其他分发线程
|
||||
private Timer checkCompatibilityTimer;//检查版本兼容性定时器 连接成功后5秒内等待工控机发送配置信息
|
||||
private int seqSpecialVehicle = 0;//特种车辆命令发送次数
|
||||
|
||||
private int usedChassisType = Constants.CHASSIS_TYPE.UNKNOWN;//使用的底盘类型 新老
|
||||
/**
|
||||
* 与工控机链接状态
|
||||
*/
|
||||
@@ -288,6 +288,11 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
|
||||
return ipcConnectedPort;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getUsedChassisType() {
|
||||
return usedChassisType;
|
||||
}
|
||||
|
||||
/**
|
||||
* 发送ws消息
|
||||
*
|
||||
@@ -362,13 +367,21 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
|
||||
if (!adasOptions.isClient())
|
||||
ReceiveTimeoutManager.getInstance().refreshLast(header.getTimestamp());
|
||||
// CupidLogUtils.w("--->websocket byte read header = " + messageType.toString());
|
||||
DispatchHandler handler = dispatchHandlers.get(header.getMsgType());
|
||||
MessagePad.MessageType messageType = header.getMsgType();
|
||||
DispatchHandler handler = dispatchHandlers.get(messageType);
|
||||
if (handler != null) {
|
||||
handler.sendRawMessage(raw);
|
||||
} else {
|
||||
if (defaultDispatchHandler != null)
|
||||
defaultDispatchHandler.sendRawMessage(raw);
|
||||
}
|
||||
if (messageType == MessagePad.MessageType.MsgTypeVehicleState) {
|
||||
//老底盘接口
|
||||
usedChassisType = Constants.CHASSIS_TYPE.OLD_CHASSIS;
|
||||
} else if (messageType == MessagePad.MessageType.MsgTypeChassisStates) {
|
||||
//新底盘接口
|
||||
usedChassisType = Constants.CHASSIS_TYPE.NEW_CHASSIS;
|
||||
}
|
||||
} else {
|
||||
callError(raw.getProtocolStatus(), byteString.toByteArray());
|
||||
}
|
||||
@@ -514,6 +527,7 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
|
||||
ipcConnectedIp = null;
|
||||
ipcConnectedPort = Constants.DEFAULT_PORT;
|
||||
subscribeInterface = null;
|
||||
usedChassisType = Constants.CHASSIS_TYPE.UNKNOWN;
|
||||
updateConnectStatus(Constants.IPC_CONNECTION_STATUS.DISCONNECTED, t);
|
||||
}
|
||||
|
||||
|
||||
@@ -257,6 +257,16 @@ public class AdasManager implements IAdasNetCommApi {
|
||||
return mChannel == null ? Constants.DEFAULT_PORT : mChannel.getIpcConnectedPort();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取使用底盘的类型
|
||||
*
|
||||
* @return {@link Constants.CHASSIS_TYPE}
|
||||
*/
|
||||
@Override
|
||||
public int getUsedChassisType() {
|
||||
return mChannel == null ? Constants.CHASSIS_TYPE.UNKNOWN : mChannel.getUsedChassisType();
|
||||
}
|
||||
|
||||
/**
|
||||
* 自动驾驶设备基础信息应答
|
||||
*
|
||||
|
||||
@@ -59,6 +59,13 @@ public interface IAdasNetCommApi {
|
||||
*/
|
||||
int getIpcConnectedPort();
|
||||
|
||||
/**
|
||||
* 获取使用底盘的类型
|
||||
*
|
||||
* @return {@link Constants.CHASSIS_TYPE}
|
||||
*/
|
||||
int getUsedChassisType();
|
||||
|
||||
/**
|
||||
* 自动驾驶设备基础信息应答
|
||||
*
|
||||
|
||||
@@ -5,11 +5,11 @@ import com.zhidao.support.adas.high.bean.AutopilotStatistics;
|
||||
import com.zhidao.support.adas.high.common.ProtocolStatus;
|
||||
|
||||
import chassis.ChassisStatesOuterClass;
|
||||
import chassis.VehicleStateOuterClass;
|
||||
import function_state_management.FunctionStates;
|
||||
import mogo.telematics.pad.MessagePad;
|
||||
import mogo_msg.MogoReportMsg;
|
||||
import perception.TrafficLightOuterClass;
|
||||
import planning.RoboSweeperTaskIndexOuterClass;
|
||||
import prediction.Prediction;
|
||||
import record_cache.RecordPanelOuterClass;
|
||||
import system_master.SystemStatusInfo;
|
||||
@@ -52,16 +52,6 @@ public interface OnAdasListener {
|
||||
*/
|
||||
void onGnssInfo(MessagePad.Header header, MessagePad.GnssInfo gnssInfo);
|
||||
|
||||
/**
|
||||
* 老底盘信息,透传底盘状态,pb参考底盘
|
||||
* TODO 老地盘数据会转发到新地盘
|
||||
* TODO 鹰眼不要用此接口展示页面相关,可以用来记录链路日志
|
||||
* TODO 后期可能会优化掉
|
||||
*
|
||||
* @param header 头
|
||||
* @param vehicleState 数据
|
||||
*/
|
||||
void onVehicleState(MessagePad.Header header, VehicleStateOuterClass.VehicleState vehicleState);
|
||||
|
||||
/**
|
||||
* 底盘状态
|
||||
@@ -201,6 +191,14 @@ public interface OnAdasListener {
|
||||
*/
|
||||
void onFunctionStates(MessagePad.Header header, FunctionStates.FSMFunctionStates functionStates);
|
||||
|
||||
/**
|
||||
* 清扫车指标数据
|
||||
*
|
||||
* @param header 头
|
||||
* @param roboSweeperTaskIndex 数据
|
||||
*/
|
||||
void onSweeperTaskIndexData(MessagePad.Header header, RoboSweeperTaskIndexOuterClass.RoboSweeperTaskIndex roboSweeperTaskIndex);
|
||||
|
||||
/**
|
||||
* 是否有能力启动自动驾驶
|
||||
*
|
||||
|
||||
@@ -132,4 +132,13 @@ public class Constants {
|
||||
int TIMEOUT = 3;
|
||||
}
|
||||
|
||||
/**
|
||||
* 使用底盘数据类型
|
||||
*/
|
||||
public interface CHASSIS_TYPE {
|
||||
int UNKNOWN = -1;//未知
|
||||
int NEW_CHASSIS = 0;//新底盘
|
||||
int OLD_CHASSIS = 1;//老底盘
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -55,7 +55,9 @@ public enum MessageType {
|
||||
TYPE_SEND_TRIP_INFO_REQ(MessagePad.MessageType.MsgTypeTripInfoEvent, "行程信息"),
|
||||
TYPE_SEND_SPECIAL_VEHICLE_TASK_CMD(MessagePad.MessageType.MsgTypeSpecialVehicleTaskCmd, "特种车辆命令"),
|
||||
//TODO 透传原始pb文件中不存在以下type。由于Java中无法强转,所以在mogo-adas-data/message_pad.proto中放开注释
|
||||
TYPE_RECEIVE_PLANNING_DECISION_STATE(MessagePad.MessageType.MsgTypePlanningDecisionState, "Planning决策状态");
|
||||
TYPE_RECEIVE_PLANNING_DECISION_STATE(MessagePad.MessageType.MsgTypePlanningDecisionState, "Planning决策状态"),
|
||||
TYPE_RECEIVE_SWEEPER_TASK_INDEX_DATA(MessagePad.MessageType.MsgTypeSweeperTaskIndexData, "清扫车指标数据"),
|
||||
;
|
||||
|
||||
|
||||
/**
|
||||
|
||||
@@ -33,6 +33,7 @@ public class MyMessageFactory implements IMyMessageFactory {
|
||||
private IMsg recordDataConfigRespMessage;//数据采集配置应答
|
||||
private IMsg planningDecisionStateMessage;//planning决策状态
|
||||
private IMsg functionStatesMessage;//重构后的功能状态
|
||||
private IMsg sweeperTaskIndexDataMessage;//清扫车指标数据
|
||||
|
||||
private final AutopilotReview autopilotReview;
|
||||
|
||||
@@ -156,6 +157,12 @@ public class MyMessageFactory implements IMyMessageFactory {
|
||||
planningDecisionStateMessage = new PlanningDecisionStateMessage();
|
||||
}
|
||||
return planningDecisionStateMessage;
|
||||
} else if (messageType == MessageType.TYPE_RECEIVE_SWEEPER_TASK_INDEX_DATA.typeCode) {
|
||||
//清扫车指标数据
|
||||
if (sweeperTaskIndexDataMessage == null) {
|
||||
sweeperTaskIndexDataMessage = new SweeperTaskIndexDataMessage();
|
||||
}
|
||||
return sweeperTaskIndexDataMessage;
|
||||
} else if (messageType == MessageType.TYPE_RECEIVE_FUNCTION_STATES.typeCode) {
|
||||
//重构后的功能状态
|
||||
if (functionStatesMessage == null) {
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
package com.zhidao.support.adas.high.msg;
|
||||
|
||||
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.common.CupidLogUtils;
|
||||
import com.zhidao.support.adas.high.protocol.RawData;
|
||||
|
||||
import planning.RoboSweeperTaskIndexOuterClass;
|
||||
|
||||
/**
|
||||
* 清扫车指标数据
|
||||
*/
|
||||
public class SweeperTaskIndexDataMessage extends MyAbstractMessageHandler {
|
||||
|
||||
@Override
|
||||
public void handlerMsg(RawData raw, OnAdasListener adasListener) throws InvalidProtocolBufferException {
|
||||
RoboSweeperTaskIndexOuterClass.RoboSweeperTaskIndex roboSweeperTaskIndex = RoboSweeperTaskIndexOuterClass.RoboSweeperTaskIndex.parser().parseFrom(raw.originalData.toByteArray(), raw.getOffsetValue(), raw.getPackageLengthValue() - raw.getOffsetValue());
|
||||
AdasChannel.calculateTimeConsumingOnDispatchRaw("清扫车指标数据", raw.receiveTime);
|
||||
long nowTime = 0;
|
||||
if (CupidLogUtils.isEnableLog())
|
||||
nowTime = SystemClock.elapsedRealtime();
|
||||
if (adasListener != null) {
|
||||
adasListener.onSweeperTaskIndexData(raw.getHeader(), roboSweeperTaskIndex);
|
||||
}
|
||||
AdasChannel.calculateTimeConsumingBusiness("清扫车指标数据", nowTime);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -29,7 +29,6 @@ public class VehicleStateMessage extends MyAbstractMessageHandler {
|
||||
nowTime = SystemClock.elapsedRealtime();
|
||||
if (adasListener != null) {
|
||||
compatibility(adasListener, raw, vehicleState);
|
||||
adasListener.onVehicleState(raw.getHeader(), vehicleState);
|
||||
}
|
||||
AdasChannel.calculateTimeConsumingBusiness("底盘信息", nowTime);
|
||||
// CupidLogUtils.e("底盘信息--->" + vehicleState.toString());
|
||||
|
||||
Reference in New Issue
Block a user