[pb9][底盘接口] 目前由于M1车型不会在新底盘PB添加新的字段 所以临时保留老底盘接口回调,M1新添加的相关字段会在老底盘回调接收,同时老底盘的清扫车对象转成新底盘PB中的清扫车对象,暂时注释掉ADAS LIB中的新老底盘兼容
This commit is contained in:
@@ -25,6 +25,7 @@ import com.zhidao.adas.client.bean.RoboSweeperTaskIndex;
|
||||
import com.zhidao.adas.client.bean.StatusInfo;
|
||||
import com.zhidao.adas.client.bean.TrackedObjects;
|
||||
import com.zhidao.adas.client.bean.Trajectory;
|
||||
import com.zhidao.adas.client.bean.VehicleState;
|
||||
import com.zhidao.adas.client.bean.Warn;
|
||||
import com.zhidao.adas.client.log.LogSave;
|
||||
import com.zhidao.adas.client.utils.Constants;
|
||||
@@ -105,6 +106,7 @@ public class DataDistribution {
|
||||
public final List<String> listTrajectory = new ArrayList<>();
|
||||
public final List<String> listTrackedObjects = new ArrayList<>();
|
||||
public final List<String> listGnssInfo = new ArrayList<>();
|
||||
public final List<String> listVehicleState = new ArrayList<>();
|
||||
public final List<String> listAutopilotState = new ArrayList<>();
|
||||
public final List<String> listMogoReportMessage = new ArrayList<>();
|
||||
public final List<String> listPerceptionTrafficLight = new ArrayList<>();
|
||||
@@ -182,6 +184,14 @@ public class DataDistribution {
|
||||
if (listener != null && Constants.TITLE.RECEIVE_GNSS_INFO.equals(listener.first)) {
|
||||
listener.second.onRefresh();
|
||||
}
|
||||
} else if (data instanceof VehicleState) {
|
||||
listVehicleState.add(0, time + str);
|
||||
if (listVehicleState.size() > LIST_SIZE) {
|
||||
listVehicleState.remove(listVehicleState.size() - 1);
|
||||
}
|
||||
if (listener != null && Constants.TITLE.RECEIVE_VEHICLE_STATE.equals(listener.first)) {
|
||||
listener.second.onRefresh();
|
||||
}
|
||||
} else if (data instanceof ChassisStates) {
|
||||
listChassisStates.add(0, time + str);
|
||||
if (listChassisStates.size() > LIST_SIZE) {
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.zhidao.adas.client.bean;
|
||||
|
||||
import com.google.protobuf.TextFormat;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
|
||||
import chassis.VehicleStateOuterClass;
|
||||
import mogo.telematics.pad.MessagePad;
|
||||
|
||||
public class VehicleState extends BaseInfo {
|
||||
public final VehicleStateOuterClass.VehicleState bean;
|
||||
|
||||
public VehicleState(MessagePad.Header header, VehicleStateOuterClass.VehicleState bean, SimpleDateFormat sdf) {
|
||||
super("接收", bean.getSerializedSize(), header, sdf);
|
||||
this.bean = bean;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return super.toString() + TextFormat.printer().escapingNonAscii(false).printToString(bean);
|
||||
}
|
||||
}
|
||||
@@ -118,6 +118,8 @@ public class InfoFragment extends BaseFragment {
|
||||
private void setData() {
|
||||
if (Constants.TITLE.RECEIVE_GNSS_INFO.equals(title)) {
|
||||
adapter.setData(DataDistribution.getInstance().listGnssInfo);
|
||||
} else if (Constants.TITLE.RECEIVE_VEHICLE_STATE.equals(title)) {
|
||||
adapter.setData(DataDistribution.getInstance().listVehicleState);
|
||||
} else if (Constants.TITLE.RECEIVE_CHASSIS_STATES.equals(title)) {
|
||||
adapter.setData(DataDistribution.getInstance().listChassisStates);
|
||||
} else if (Constants.TITLE.RECEIVE_TRACKED_OBJECTS.equals(title)) {
|
||||
|
||||
@@ -79,6 +79,7 @@ import com.zhidao.adas.client.bean.SpecialVehicleBean;
|
||||
import com.zhidao.adas.client.bean.StatusInfo;
|
||||
import com.zhidao.adas.client.bean.TrackedObjects;
|
||||
import com.zhidao.adas.client.bean.Trajectory;
|
||||
import com.zhidao.adas.client.bean.VehicleState;
|
||||
import com.zhidao.adas.client.bean.Warn;
|
||||
import com.zhidao.adas.client.log.ConnectStatusSave;
|
||||
import com.zhidao.adas.client.log.LogSave;
|
||||
@@ -118,6 +119,7 @@ import java.util.concurrent.ScheduledExecutorService;
|
||||
import bag_manager.BagManagerOuterClass;
|
||||
import chassis.Chassis;
|
||||
import chassis.ChassisStatesOuterClass;
|
||||
import chassis.VehicleStateOuterClass;
|
||||
import function_state_management.FunctionStates;
|
||||
import io.netty.channel.Channel;
|
||||
import mogo.telematics.pad.MessagePad;
|
||||
@@ -634,6 +636,7 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas
|
||||
titleFragmentData.add(Constants.TITLE.RECEIVE_GNSS_INFO);
|
||||
titleFragmentData.add(Constants.TITLE.RECEIVE_TRAJECTORY);
|
||||
titleFragmentData.add(Constants.TITLE.RECEIVE_TRACKED_OBJECTS);
|
||||
titleFragmentData.add(Constants.TITLE.RECEIVE_VEHICLE_STATE);
|
||||
titleFragmentData.add(Constants.TITLE.RECEIVE_CHASSIS_STATES);
|
||||
titleFragmentData.add(Constants.TITLE.RECEIVE_AUTOPILOT_STATE);
|
||||
titleFragmentData.add(Constants.TITLE.RECEIVE_FUNCTION_STATES);
|
||||
@@ -898,6 +901,12 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas
|
||||
DataDistribution.getInstance().addData(base);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onVehicleState(MessagePad.Header header, VehicleStateOuterClass.VehicleState vehicleState) {
|
||||
VehicleState base = new VehicleState(header, vehicleState, sdf);
|
||||
DataDistribution.getInstance().addData(base);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onChassisStates(MessagePad.Header header, ChassisStatesOuterClass.ChassisStates chassisStates) {
|
||||
|
||||
@@ -150,6 +150,7 @@ public class Constants {
|
||||
String RECEIVE_TRAJECTORY = MessageType.TYPE_RECEIVE_TRAJECTORY.desc;
|
||||
String RECEIVE_TRACKED_OBJECTS = MessageType.TYPE_RECEIVE_TRACKED_OBJECTS.desc;
|
||||
String RECEIVE_GNSS_INFO = MessageType.TYPE_RECEIVE_GNSS_INFO.desc;
|
||||
String RECEIVE_VEHICLE_STATE = MessageType.TYPE_RECEIVE_VEHICLE_STATE.desc;
|
||||
String RECEIVE_CHASSIS_STATES = MessageType.TYPE_RECEIVE_CHASSIS_STATES.desc;
|
||||
String RECEIVE_AUTOPILOT_STATE = MessageType.TYPE_RECEIVE_AUTOPILOT_STATE.desc;
|
||||
String RECEIVE_FUNCTION_STATES = MessageType.TYPE_RECEIVE_FUNCTION_STATES.desc;
|
||||
|
||||
@@ -143,6 +143,52 @@ class MoGoAdasListenerImpl : OnAdasListener {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 老底盘信息,透传底盘状态,pb参考底盘
|
||||
* TODO 目前由于M1车型不会在新底盘PB添加新的字段 所以临时保留
|
||||
* TODO 后期会优化掉,具体时间未知,需要工控机端新老底盘PB字段对齐
|
||||
*
|
||||
* @param header 头
|
||||
* @param vehicleState 数据
|
||||
*/
|
||||
@ChainLog(
|
||||
linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_VEHICLE,
|
||||
linkCode = CHAIN_LINK_ADAS,
|
||||
endpoint = PAD,
|
||||
nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_VEHICLE,
|
||||
paramIndexes = [0, 1],
|
||||
clientPkFileName = "sn"
|
||||
)
|
||||
override fun onVehicleState(header: MessagePad.Header, vehicleState: VehicleStateOuterClass.VehicleState?) {
|
||||
if (vehicleState != null) {
|
||||
//转向灯数据
|
||||
CallerChassisLamplightListenerManager.invokeAutopilotLightSwitchData(vehicleState.light)
|
||||
//刹车灯数据
|
||||
CallerChassisLamplightListenerManager.invokeAutopilotBrakeLightData(vehicleState.brakeLightStatus)
|
||||
//方向盘转向角数据
|
||||
CallerChassisSteeringStateListenerManager.invokeAutopilotSteeringData(vehicleState.steering)
|
||||
//挂挡档位数据
|
||||
CallerChassisGearStateListenerManager.invokeAutopilotGearData(vehicleState.gear)
|
||||
//加速度
|
||||
CallerChassisAccStateListenerManager.invokeAutopilotAcc(vehicleState.accel)
|
||||
//油门
|
||||
CallerChassisThrottleStateListenerManager.invokeAutopilotThrottle(vehicleState.throttle)
|
||||
//刹车
|
||||
CallerChassisBrakeStateListenerManager.invokeAutopilotBrake(vehicleState.brake)
|
||||
//清扫车(福田)清扫控制系统状态
|
||||
vehicleState.sweeperFutianCleanSystemState?.also { sweeperState ->
|
||||
val bytes: ByteArray = sweeperState.toByteArray()
|
||||
val cleanSystemState: ChassisStatesOuterClass.SweeperFuTianTaskSystemStates? = ChassisStatesOuterClass.SweeperFuTianTaskSystemStates.parseFrom(bytes)
|
||||
cleanSystemState?.let {
|
||||
CallerSweeperFutianCleanSystemListenerManager.invokeSweeperFutianCleanSystemState(it)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
CallerAutopilotVehicleStateListenerManager.invokeAutopilotDataException(header.timestamp.toLong())
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 底盘数据
|
||||
*
|
||||
|
||||
@@ -6,6 +6,7 @@ import com.zhidao.support.adas.high.common.ProtocolStatus;
|
||||
|
||||
import bag_manager.BagManagerOuterClass;
|
||||
import chassis.ChassisStatesOuterClass;
|
||||
import chassis.VehicleStateOuterClass;
|
||||
import function_state_management.FunctionStates;
|
||||
import mogo.telematics.pad.MessagePad;
|
||||
import mogo_msg.MogoReportMsg;
|
||||
@@ -53,6 +54,15 @@ public interface OnAdasListener {
|
||||
*/
|
||||
void onGnssInfo(MessagePad.Header header, MessagePad.GnssInfo gnssInfo);
|
||||
|
||||
/**
|
||||
* 老底盘信息,透传底盘状态,pb参考底盘
|
||||
* TODO 目前由于M1车型不会在新底盘PB添加新的字段 所以临时保留
|
||||
* TODO 后期会优化掉,具体时间未知,需要工控机端新老底盘PB字段对齐
|
||||
*
|
||||
* @param header 头
|
||||
* @param vehicleState 数据
|
||||
*/
|
||||
void onVehicleState(MessagePad.Header header, VehicleStateOuterClass.VehicleState vehicleState);
|
||||
|
||||
/**
|
||||
* 底盘状态
|
||||
|
||||
@@ -28,7 +28,9 @@ public class VehicleStateMessage extends MyAbstractMessageHandler {
|
||||
if (CupidLogUtils.isEnableLog())
|
||||
nowTime = SystemClock.elapsedRealtime();
|
||||
if (adasListener != null) {
|
||||
compatibility(adasListener, raw, vehicleState);
|
||||
//TODO 暂时关闭新老兼容
|
||||
//compatibility(adasListener, raw, vehicleState);
|
||||
adasListener.onVehicleState(raw.getHeader(), vehicleState);
|
||||
}
|
||||
AdasChannel.calculateTimeConsumingBusiness("底盘信息", nowTime);
|
||||
// CupidLogUtils.e("底盘信息--->" + vehicleState.toString());
|
||||
|
||||
Reference in New Issue
Block a user