[pb9][Bag包管理2.1]添加录包管理2.1

This commit is contained in:
xinfengkun
2023-01-10 17:30:45 +08:00
parent b4c9396fb7
commit 710be52585
14 changed files with 152 additions and 2 deletions

View File

@@ -4,6 +4,7 @@ import android.util.Pair;
import com.zhidao.adas.client.bean.ArrivalNotification;
import com.zhidao.adas.client.bean.AutopilotState;
import com.zhidao.adas.client.bean.BagManagerCmd;
import com.zhidao.adas.client.bean.BaseInfo;
import com.zhidao.adas.client.bean.BasicInfoReq;
import com.zhidao.adas.client.bean.CarConfigResp;
@@ -121,6 +122,7 @@ public class DataDistribution {
public final List<String> listChassisStates = new ArrayList<>();
public final List<String> listFSMFunctionStates = new ArrayList<>();
public final List<String> listRoboSweeperTaskIndex = new ArrayList<>();
public final List<String> listBagManagerCmd = new ArrayList<>();
public String cutDown(String str) {
if (isCutDown && str.length() > 650) {
@@ -234,6 +236,14 @@ public class DataDistribution {
if (listener != null && Constants.TITLE.RECEIVE_RECORD_RESULT.equals(listener.first)) {
listener.second.onRefresh();
}
} else if (data instanceof BagManagerCmd) {
listBagManagerCmd.add(0, time + str);
if (listBagManagerCmd.size() > LIST_SIZE) {
listBagManagerCmd.remove(listBagManagerCmd.size() - 1);
}
if (listener != null && Constants.TITLE.RECEIVE_BAG_MANAGER_CMD.equals(listener.first)) {
listener.second.onRefresh();
}
} else if (data instanceof GlobalPathResp) {
listGlobalPathResp.add(0, time + str);
if (listGlobalPathResp.size() > LIST_SIZE) {

View File

@@ -0,0 +1,24 @@
package com.zhidao.adas.client.bean;
import com.google.protobuf.TextFormat;
import java.text.SimpleDateFormat;
import bag_manager.BagManagerOuterClass;
import mogo.telematics.pad.MessagePad;
public class BagManagerCmd extends BaseInfo {
public final BagManagerOuterClass.BagManager bean;
public BagManagerCmd(MessagePad.Header header, BagManagerOuterClass.BagManager bean, SimpleDateFormat sdf) {
super("接收", bean.getSerializedSize(), header, sdf);
this.bean = bean;
}
@Override
public String toString() {
return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean);
}
}

View File

@@ -138,6 +138,8 @@ public class InfoFragment extends BaseFragment {
adapter.setData(DataDistribution.getInstance().listGlobalPathResp);
} else if (Constants.TITLE.RECEIVE_RECORD_RESULT.equals(title)) {
adapter.setData(DataDistribution.getInstance().listRecordPanel);
} else if (Constants.TITLE.RECEIVE_BAG_MANAGER_CMD.equals(title)) {
adapter.setData(DataDistribution.getInstance().listBagManagerCmd);
} else if (Constants.TITLE.RECEIVE_REPORT_MESSAGE.equals(title)) {
adapter.setData(DataDistribution.getInstance().listMogoReportMessage);
} else if (Constants.TITLE.RECEIVE_PERCEPTION_TRAFFIC_LIGHT.equals(title)) {

View File

@@ -57,6 +57,7 @@ import com.zhidao.adas.client.base.BaseAdapter;
import com.zhidao.adas.client.base.BaseFragment;
import com.zhidao.adas.client.bean.ArrivalNotification;
import com.zhidao.adas.client.bean.AutopilotState;
import com.zhidao.adas.client.bean.BagManagerCmd;
import com.zhidao.adas.client.bean.BasicInfoReq;
import com.zhidao.adas.client.bean.CarConfigResp;
import com.zhidao.adas.client.bean.ChassisStates;
@@ -114,6 +115,7 @@ import java.util.List;
import java.util.Locale;
import java.util.concurrent.ScheduledExecutorService;
import bag_manager.BagManagerOuterClass;
import chassis.Chassis;
import chassis.ChassisStatesOuterClass;
import function_state_management.FunctionStates;
@@ -644,6 +646,7 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas
titleFragmentData.add(Constants.TITLE.RECEIVE_CAR_CONFIG_RESP);
titleFragmentData.add(Constants.TITLE.RECEIVE_RECORD_DATA_CONFIG_RESP);
titleFragmentData.add(Constants.TITLE.RECEIVE_RECORD_RESULT);
titleFragmentData.add(Constants.TITLE.RECEIVE_BAG_MANAGER_CMD);
titleFragmentData.add(Constants.TITLE.RECEIVE_GLOBAL_PATH_RESP);
titleFragmentData.add(Constants.TITLE.RECEIVE_ARRIVAL_NOTIFICATION);
titleFragmentData.add(Constants.TITLE.RECEIVE_STATUS_QUERY_RESP);
@@ -1035,6 +1038,11 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas
DataDistribution.getInstance().addData(base);
}
@Override
public void onBagManagerCmd(MessagePad.Header header, BagManagerOuterClass.BagManager bagManager) {
BagManagerCmd base = new BagManagerCmd(header, bagManager, sdf);
DataDistribution.getInstance().addData(base);
}
private void initAdas() {
CupidLogUtils.e(TAG, "--->初始化");

View File

@@ -165,6 +165,7 @@ public class Constants {
String TITLE_CAR_CONFIG_RESP = "工控机版本\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t配置";
String RECEIVE_CAR_CONFIG_RESP = "信息与配置";
String RECEIVE_RECORD_RESULT = MessageType.TYPE_RECEIVE_RECORD_RESULT.desc;
String RECEIVE_BAG_MANAGER_CMD = MessageType.TYPE_RECEIVE_BAG_MANAGER_CMD.desc;
String RECEIVE_RECORD_DATA_CONFIG_RESP = MessageType.TYPE_RECEIVE_RECORD_DATA_CONFIG_RESP.desc;
String RECEIVE_GLOBAL_PATH_RESP = MessageType.TYPE_RECEIVE_GLOBAL_PATH_RESP.desc;
String RECEIVE_WARN = MessageType.TYPE_RECEIVE_WARN.desc;

View File

@@ -64,11 +64,13 @@ import java.util.Locale;
import java.util.Timer;
import java.util.TimerTask;
import bag_manager.BagManagerOuterClass;
import chassis.ChassisStatesOuterClass;
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;
@@ -542,6 +544,16 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas
}
@Override
public void onSweeperTaskIndexData(MessagePad.Header header, RoboSweeperTaskIndexOuterClass.RoboSweeperTaskIndex roboSweeperTaskIndex) {
}
@Override
public void onBagManagerCmd(MessagePad.Header header, BagManagerOuterClass.BagManager bagManager) {
}
private void initAdas() {
CupidLogUtils.e(TAG, "--->初始化");

View File

@@ -1,5 +1,6 @@
package com.mogo.eagle.core.function.datacenter.autopilot.adapter
import bag_manager.BagManagerOuterClass
import chassis.ChassisStatesOuterClass
import chassis.VehicleStateOuterClass
import com.mogo.eagle.core.data.app.AppConfigInfo
@@ -473,6 +474,14 @@ class MoGoAdasListenerImpl : OnAdasListener {
*/
override fun onSweeperTaskIndexData(header: MessagePad.Header?, roboSweeperTaskIndex: RoboSweeperTaskIndexOuterClass.RoboSweeperTaskIndex?) {
}
/**
* Bag管理应答
*
* @param header 头
* @param bagManager 数据
*/
override fun onBagManagerCmd(header: MessagePad.Header?, bagManager: BagManagerOuterClass.BagManager?) {
}
/**

View File

@@ -55,6 +55,7 @@ import java.util.Timer;
import java.util.TimerTask;
import java.util.concurrent.atomic.AtomicInteger;
import bag_manager.BagManagerOuterClass;
import chassis.SpecialVehicleTaskCmdOuterClass;
import common.HeaderOuterClass;
import mogo.telematics.pad.MessagePad;
@@ -1389,5 +1390,17 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
return sendPBMessage(MessageType.TYPE_SEND_TRIP_INFO_REQ.typeCode, req.toByteArray());
}
/**
* 发送包管理请求
*
* @param bagManager 包管理参数
* @return boolean
*/
@Override
public boolean sendBagManagerCmd(BagManagerOuterClass.BagManager bagManager) {
return sendPBMessage(MessageType.TYPE_SEND_BAG_MANAGER_CMD.typeCode, bagManager.toByteArray());
}
}

View File

@@ -15,6 +15,7 @@ import java.util.HashSet;
import java.util.List;
import java.util.Set;
import bag_manager.BagManagerOuterClass;
import chassis.SpecialVehicleTaskCmdOuterClass;
import mogo.telematics.pad.MessagePad;
@@ -716,6 +717,17 @@ public class AdasManager implements IAdasNetCommApi {
return mChannel != null && mChannel.sendTripInfoReq(type, lineName, departureStopName, arrivalStopName, isLastStop);
}
/**
* 发送包管理请求
*
* @param bagManager 包管理参数
* @return boolean
*/
@Override
public boolean sendBagManagerCmd(BagManagerOuterClass.BagManager bagManager) {
return mChannel != null && mChannel.sendBagManagerCmd(bagManager);
}
/**
* 获取工控机固定IP列表
*

View File

@@ -10,6 +10,7 @@ import com.zhidao.support.adas.high.common.MessageType;
import java.util.List;
import java.util.Set;
import bag_manager.BagManagerOuterClass;
import chassis.SpecialVehicleTaskCmdOuterClass;
import mogo.telematics.pad.MessagePad;
@@ -427,6 +428,13 @@ public interface IAdasNetCommApi {
*/
boolean sendTripInfoReq(int type, String lineName, String departureStopName, String arrivalStopName, boolean isLastStop);
/**
* 发送包管理请求
*
* @param bagManager 包管理参数
* @return boolean
*/
boolean sendBagManagerCmd(BagManagerOuterClass.BagManager bagManager);
// TODO 需求暂停 待讨论
// boolean getRoutes();

View File

@@ -4,6 +4,7 @@ import com.zhidao.support.adas.high.bean.AutopilotAbility;
import com.zhidao.support.adas.high.bean.AutopilotStatistics;
import com.zhidao.support.adas.high.common.ProtocolStatus;
import bag_manager.BagManagerOuterClass;
import chassis.ChassisStatesOuterClass;
import function_state_management.FunctionStates;
import mogo.telematics.pad.MessagePad;
@@ -199,6 +200,14 @@ public interface OnAdasListener {
*/
void onSweeperTaskIndexData(MessagePad.Header header, RoboSweeperTaskIndexOuterClass.RoboSweeperTaskIndex roboSweeperTaskIndex);
/**
* Bag管理应答
*
* @param header 头
* @param bagManager 数据
*/
void onBagManagerCmd(MessagePad.Header header, BagManagerOuterClass.BagManager bagManager);
/**
* 是否有能力启动自动驾驶
*

View File

@@ -47,13 +47,15 @@ public enum MessageType {
TYPE_SEND_STATUS_QUERY_REQ(MessagePad.MessageType.MsgTypeStatusQueryReq, "状态查询请求"),
TYPE_RECEIVE_STATUS_QUERY_RESP(MessagePad.MessageType.MsgTypeStatusQueryResp, "状态查询应答"),
TYPE_SEND_SET_RAIN_MODE_REQ(MessagePad.MessageType.MsgTypeSetRainModeReq, "设置雨天模式"),
TYPE_SEND_OPERATOR_CMD_REQ(MessagePad.MessageType.MsgTypeOperatorCmdReq, "操控指令"),
TYPE_SEND_RECORD_DATA_CONFIG_REQ(MessagePad.MessageType.MsgTypeRecordDataConfigReq, "数据采集配置查询"),
TYPE_RECEIVE_RECORD_DATA_CONFIG_RESP(MessagePad.MessageType.MsgTypeRecordDataConfigResp, "数据采集配置"),
TYPE_SEND_OPERATOR_CMD_REQ(MessagePad.MessageType.MsgTypeOperatorCmdReq, "操控指令"),
TYPE_SEND_SUBSCRIBE_DATA_REQ(MessagePad.MessageType.MsgTypeSubscribeDataReq, "数据订阅、取消订阅请求"),
TYPE_SEND_SPECIAL_VEHICLE_TASK_CMD(MessagePad.MessageType.MsgTypeSpecialVehicleTaskCmd, "特种车辆命令"),
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, "特种车辆命令"),
TYPE_SEND_BAG_MANAGER_CMD(MessagePad.MessageType.MsgTypeBagManagerCmd, "Bag管理请求"),
TYPE_RECEIVE_BAG_MANAGER_CMD(MessagePad.MessageType.MsgTypeBagManagerCmd, "Bag管理应答"),
//TODO 透传原始pb文件中不存在以下type。由于Java中无法强转,所以在mogo-adas-data/message_pad.proto中放开注释
TYPE_RECEIVE_PLANNING_DECISION_STATE(MessagePad.MessageType.MsgTypePlanningDecisionState, "Planning决策状态"),
TYPE_RECEIVE_SWEEPER_TASK_INDEX_DATA(MessagePad.MessageType.MsgTypeSweeperTaskIndexData, "清扫车指标数据"),

View File

@@ -0,0 +1,33 @@
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 bag_manager.BagManagerOuterClass;
/**
* Bag管理应答
*/
public class BagManagerMessage extends MyAbstractMessageHandler {
public BagManagerMessage() {
}
@Override
public void handlerMsg(RawData raw, OnAdasListener adasListener) throws InvalidProtocolBufferException {
BagManagerOuterClass.BagManager bagManager = BagManagerOuterClass.BagManager.parser().parseFrom(raw.originalData.toByteArray(), raw.getOffsetValue(), raw.getPackageLengthValue() - raw.getOffsetValue());
AdasChannel.calculateTimeConsumingOnDispatchRaw("Bag管理应答", raw.receiveTime);
long nowTime = 0;
if (CupidLogUtils.isEnableLog())
nowTime = SystemClock.elapsedRealtime();
if (adasListener != null) {
adasListener.onBagManagerCmd(raw.getHeader(), bagManager);
}
AdasChannel.calculateTimeConsumingBusiness("Bag管理应答", nowTime);
}
}

View File

@@ -34,6 +34,7 @@ public class MyMessageFactory implements IMyMessageFactory {
private IMsg planningDecisionStateMessage;//planning决策状态
private IMsg functionStatesMessage;//重构后的功能状态
private IMsg sweeperTaskIndexDataMessage;//清扫车指标数据
private IMsg bagManagerMessage;//Bag管理应答
private final AutopilotReview autopilotReview;
@@ -169,6 +170,12 @@ public class MyMessageFactory implements IMyMessageFactory {
functionStatesMessage = new FunctionStatesMessage();
}
return functionStatesMessage;
} else if (messageType == MessageType.TYPE_RECEIVE_BAG_MANAGER_CMD.typeCode) {
//Bag管理应答
if (bagManagerMessage == null) {
bagManagerMessage = new BagManagerMessage();
}
return bagManagerMessage;
} else {
//MessageType.TYPE_DEFAULT.typeCode
return null;