[mogo-adas] 添加V2N 主车附近事件推送接口和主车路径全局事件推送接口

This commit is contained in:
xinfengkun
2023-03-29 14:16:25 +08:00
parent 85a1866f2c
commit facd1e84c1
14 changed files with 812 additions and 50 deletions

View File

@@ -115,6 +115,8 @@ public class DataDistribution {
public final List<DataShow> listObuRsi = new ArrayList<>();
public final List<DataShow> listObuRsm = new ArrayList<>();
public final List<DataShow> listObuMap = new ArrayList<>();
public final List<DataShow> listV2nCongestionEvent = new ArrayList<>();
public final List<DataShow> listV2nGlobalPathEvents = new ArrayList<>();
private long listTrajectorySize = 0;
private long listTrackedObjectsSize = 0;
@@ -143,7 +145,8 @@ public class DataDistribution {
private long listObuRsiSize = 0;
private long listObuRsmSize = 0;
private long listObuMapSize = 0;
private long listV2nCongestionEventSize = 0;
private long listV2nGlobalPathEventsSize = 0;
public void clearCount() {
listTrajectorySize = 1;
@@ -173,6 +176,8 @@ public class DataDistribution {
listObuRsiSize = 1;
listObuRsmSize = 1;
listObuMapSize = 1;
listV2nCongestionEventSize = 1;
listV2nGlobalPathEventsSize = 1;
}
public String cutDown(String str) {
@@ -369,6 +374,22 @@ public class DataDistribution {
if (listener != null && Constants.TITLE.RECEIVE_BACK_CAMERA_VIDEO.equals(listener.first)) {
listener.second.onRefresh();
}
} else if (messageType == MessagePad.MessageType.MsgTypeV2nCongestionEvent) {
listV2nCongestionEvent.add(0, new DataShow(listV2nCongestionEventSize++, time + str));
if (listV2nCongestionEvent.size() > LIST_SIZE) {
listV2nCongestionEvent.remove(listV2nCongestionEvent.size() - 1);
}
if (listener != null && Constants.TITLE.RECEIVE_V2N_CONGESTION_EVENT.equals(listener.first)) {
listener.second.onRefresh();
}
} else if (messageType == MessagePad.MessageType.MsgTypeV2nGlobalPathEvents) {
listV2nGlobalPathEvents.add(0, new DataShow(listV2nGlobalPathEventsSize++, time + str));
if (listV2nGlobalPathEvents.size() > LIST_SIZE) {
listV2nGlobalPathEvents.remove(listV2nGlobalPathEvents.size() - 1);
}
if (listener != null && Constants.TITLE.RECEIVE_V2N_GLOBAL_PATH_EVENTS.equals(listener.first)) {
listener.second.onRefresh();
}
} else if (data instanceof PerceptionTrafficLight) {
listPerceptionTrafficLight.add(0, new DataShow(listPerceptionTrafficLightSize++, time + str));
if (listPerceptionTrafficLight.size() > LIST_SIZE) {

View File

@@ -0,0 +1,59 @@
package com.zhidao.adas.client.bean;
import com.google.protobuf.TextFormat;
import com.zhidao.support.adas.high.common.ByteUtil;
import java.text.SimpleDateFormat;
import mogo.telematics.pad.MessagePad;
import mogo.v2x.MogoV2X;
import mogo.v2x.RoadOverviewEvents;
public class V2nGlobalPathEventsReceiveData extends BaseInfo {
public final RoadOverviewEvents.RoadOverviewData roadOverview;
public final MogoV2X.RSI_PB construct;
public final MogoV2X.RSI_PB triangle;
public final MogoV2X.RSI_PB congestion;
public final MogoV2X.RSM_PB parkingViolation;
public V2nGlobalPathEventsReceiveData(MessagePad.Header header, RoadOverviewEvents.RoadOverviewData roadOverview, MogoV2X.RSI_PB construct, MogoV2X.RSI_PB triangle, MogoV2X.RSI_PB congestion, MogoV2X.RSM_PB parkingViolation, SimpleDateFormat sdf) {
super("接收", roadOverview.getSerializedSize(), header, sdf);
this.roadOverview = roadOverview;
this.construct = construct;
this.triangle = triangle;
this.congestion = congestion;
this.parkingViolation = parkingViolation;
}
@Override
public String toString() {
StringBuilder builder = new StringBuilder();
builder.append('\n').append("施工:");
if (construct != null) {
builder.append(TextFormat.printer().escapingNonAscii(false).printToString(construct));
} else {
builder.append("null");
}
builder.append('\n').append("三角牌:");
if (triangle != null) {
builder.append(TextFormat.printer().escapingNonAscii(false).printToString(triangle));
} else {
builder.append("null");
}
builder.append('\n').append("拥堵:");
if (congestion != null) {
builder.append(TextFormat.printer().escapingNonAscii(false).printToString(congestion));
} else {
builder.append("null");
}
builder.append('\n').append("违停:");
if (parkingViolation != null) {
builder.append(TextFormat.printer().escapingNonAscii(false).printToString(parkingViolation));
} else {
builder.append("null");
}
return super.toString() + "Payload原始数据" + ByteUtil.byteArrToHex(roadOverview.toByteArray()) + builder.toString();
}
}

View File

@@ -227,6 +227,10 @@ public class InfoFragment extends BaseFragment {
adapter.setData(DataDistribution.getInstance().listBackCameraVideo);
} else if (Constants.TITLE.RECEIVE_SWEEPER_TASK_INDEX_DATA.equals(title)) {
adapter.setData(DataDistribution.getInstance().listRoboSweeperTaskIndex);
} else if (Constants.TITLE.RECEIVE_V2N_CONGESTION_EVENT.equals(title)) {
adapter.setData(DataDistribution.getInstance().listV2nCongestionEvent);
} else if (Constants.TITLE.RECEIVE_V2N_GLOBAL_PATH_EVENTS.equals(title)) {
adapter.setData(DataDistribution.getInstance().listV2nGlobalPathEvents);
} else {
adapter.setData(DataDistribution.getInstance().listErrorData);
}

View File

@@ -64,6 +64,7 @@ import com.zhidao.adas.client.bean.ReceiveBytesData;
import com.zhidao.adas.client.bean.ReceiveData;
import com.zhidao.adas.client.bean.SendCmd;
import com.zhidao.adas.client.bean.SpecialVehicleBean;
import com.zhidao.adas.client.bean.V2nGlobalPathEventsReceiveData;
import com.zhidao.adas.client.log.ConnectStatusSave;
import com.zhidao.adas.client.log.LogSave;
import com.zhidao.adas.client.other.permission.BackgrounderPermission;
@@ -85,6 +86,7 @@ import com.zhidao.support.adas.high.common.RegexUtils;
import com.zhjt.mogo.adas.data.bean.AutopilotStatistics;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.net.Inet4Address;
import java.net.InetAddress;
@@ -104,6 +106,8 @@ import chassis.ChassisStatesOuterClass;
import chassis.VehicleStateOuterClass;
import function_state_management.FunctionStates;
import mogo.telematics.pad.MessagePad;
import mogo.v2x.MogoV2X;
import mogo.v2x.RoadOverviewEvents;
import mogo_msg.MogoReportMsg;
import perception.TrafficLightOuterClass;
import planning.RoboSweeperTaskIndexOuterClass;
@@ -711,6 +715,8 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas
titleFragmentData.add(Constants.TITLE.RECEIVE_OBU_MAP);
titleFragmentData.add(Constants.TITLE.RECEIVE_SWEEPER_TASK_INDEX_DATA);
titleFragmentData.add(Constants.TITLE.RECEIVE_BACK_CAMERA_VIDEO);
titleFragmentData.add(Constants.TITLE.RECEIVE_V2N_CONGESTION_EVENT);
titleFragmentData.add(Constants.TITLE.RECEIVE_V2N_GLOBAL_PATH_EVENTS);
titleFragmentData.add(Constants.TITLE.RECEIVE_WARN);
titleFragmentData.add(Constants.TITLE.RECEIVE_ERROR);
@@ -1137,6 +1143,18 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas
DataDistribution.getInstance().addData(base);
}
@Override
public void onV2nCongestionEvent(@NotNull MessagePad.Header header, @NotNull MogoV2X.RSI_PB rsi) {
ReceiveData base = new ReceiveData(header, rsi, sdf);
DataDistribution.getInstance().addData(base);
}
@Override
public void onV2nGlobalPathEvents(@NotNull MessagePad.Header header, @NotNull RoadOverviewEvents.RoadOverviewData roadOverview, @Nullable MogoV2X.RSI_PB construct, @Nullable MogoV2X.RSI_PB triangle, @Nullable MogoV2X.RSI_PB congestion, @Nullable MogoV2X.RSM_PB parkingViolation) {
V2nGlobalPathEventsReceiveData base = new V2nGlobalPathEventsReceiveData(header, roadOverview, construct, triangle, congestion, parkingViolation, sdf);
DataDistribution.getInstance().addData(base);
}
private void initAdas() {
CupidLogUtils.e(TAG, "--->初始化");
AdasOptions options;

View File

@@ -162,6 +162,8 @@ public class Constants {
String RECEIVE_PLANNING_OBJECTS = MessageType.TYPE_RECEIVE_PLANNING_OBJECTS.desc;
String RECEIVE_PLANNING_DECISION_STATE = MessageType.TYPE_RECEIVE_PLANNING_DECISION_STATE.desc;
String RECEIVE_SWEEPER_TASK_INDEX_DATA = MessageType.TYPE_RECEIVE_SWEEPER_TASK_INDEX_DATA.desc;
String RECEIVE_V2N_CONGESTION_EVENT = MessageType.TYPE_RECEIVE_V2N_CONGESTION_EVENT.desc;
String RECEIVE_V2N_GLOBAL_PATH_EVENTS = MessageType.TYPE_RECEIVE_V2N_GLOBAL_PATH_EVENTS.desc;
// String RECEIVE_BASIC_INFO_REQ = "自动驾驶设备基础信息请求";
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配置";