[change] 临时加入日志 用于卡顿问题查找

This commit is contained in:
xinfengkun
2022-10-06 23:36:07 +08:00
parent bcb8e8726f
commit 9515cb7db2
23 changed files with 232 additions and 10 deletions

View File

@@ -12,6 +12,7 @@ import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_LINK_ADAS;
import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_LINK_LOG_CONNECT_STATUS;
import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_LINK_LOG_WEB_SOCKET_AUTOPILOT;
import android.os.SystemClock;
import android.text.TextUtils;
import androidx.annotation.NonNull;
@@ -319,16 +320,17 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
return;
}
ByteString byteString = ByteString.of(bytes);
decoderRaw(byteString);
decoderRaw(0, byteString);
}
//数据解析以及调用分发
private void decoderRaw(ByteString byteString) {
private void decoderRaw(long receiveTime, ByteString byteString) {
//拆Header
try {
if (rawUnpack != null) {
RawData raw = rawUnpack.read(byteString);
raw.receiveTime = receiveTime;
if (raw.getProtocolStatus() == ProtocolStatus.SUCCEED) {
MessagePad.Header header = MessagePad.Header.parser().parseFrom(byteString.toByteArray(), raw.getOutHeaderLength(), raw.getOffsetValue() - raw.getOutHeaderLength());
raw.setHeader(header);
@@ -353,6 +355,20 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
}
}
//TODO 计算耗时 临时测试
public static void calculateTimeConsumingOnDispatchRaw(String who, long receiveTime) {
if (CupidLogUtils.isEnableLog()) {
long time = SystemClock.elapsedRealtime() - receiveTime;
CupidLogUtils.i("TimeConsuming", who + " 从接收到解析耗时=" + time + "毫秒");
}
}
//TODO 计算耗时 临时测试
public static void calculateTimeConsumingBusiness(String who, long receiveTime) {
if (CupidLogUtils.isEnableLog()) {
long time = SystemClock.elapsedRealtime() - receiveTime;
CupidLogUtils.i("TimeConsuming", who + " 业务处理耗时=" + time + "毫秒");
}
}
/**
* 分发和解析
*
@@ -367,7 +383,12 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
int len = raw.getPackageLengthValue() - raw.getOffsetValue();
byte[] bytes = new byte[len];
System.arraycopy(raw.originalData.toByteArray(), raw.getOffsetValue(), bytes, 0, len);
calculateTimeConsumingOnDispatchRaw("3D点云", raw.receiveTime);
long nowTime = 0;
if (CupidLogUtils.isEnableLog())
nowTime = SystemClock.elapsedRealtime();
mAdasListener.onPointCloud(bytes);
calculateTimeConsumingBusiness("3D点云", nowTime);
} else {
if (rawUnpack != null) {
if (raw.getProtocolStatus() == ProtocolStatus.SUCCEED) {
@@ -473,13 +494,26 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
public void onMessage(String message) {
}
//TODO 计算耗时 临时测试
private void calculateTimeConsumingOnMessage(long oldTime) {
if (CupidLogUtils.isEnableLog()) {
long time = SystemClock.elapsedRealtime() - oldTime;
CupidLogUtils.i("TimeConsuming", "分发与乘客屏转发耗时=" + time + "毫秒");
}
}
@Override
public void onMessage(ByteString bytes) throws InvalidProtocolBufferException {
decoderRaw(bytes);
public void onMessage(long receiveTime, ByteString bytes) throws InvalidProtocolBufferException {
long nowTime = 0;
if (CupidLogUtils.isEnableLog())
nowTime = SystemClock.elapsedRealtime();
decoderRaw(receiveTime, bytes);
//司机屏工控机数据转发
if (!adasOptions.isClient() && onMultiDeviceListener != null) {
onMultiDeviceListener.onForwardingDriverIPCMessage(bytes.toByteArray());
}
calculateTimeConsumingOnMessage(nowTime);
}
private void notFoundAddress() {

View File

@@ -1,7 +1,11 @@
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 mogo.telematics.pad.MessagePad;
@@ -14,9 +18,14 @@ public class ArrivalNotificationMessage extends MyAbstractMessageHandler {
@Override
public void handlerMsg(RawData raw, OnAdasListener adasListener) throws InvalidProtocolBufferException {
MessagePad.ArrivalNotification arrivalNotification = MessagePad.ArrivalNotification.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.onArrivalNotification(raw.getHeader(), arrivalNotification);
}
AdasChannel.calculateTimeConsumingBusiness("到站提醒", nowTime);
// CupidLogUtils.e("到站提醒--->" + arrivalNotification.toString());
}

View File

@@ -1,7 +1,11 @@
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 mogo.telematics.pad.MessagePad;
@@ -14,9 +18,14 @@ public class AutopilotStateMessage extends MyAbstractMessageHandler {
@Override
public void handlerMsg(RawData raw, OnAdasListener adasListener) throws InvalidProtocolBufferException {
MessagePad.AutopilotState autopilotState = MessagePad.AutopilotState.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.onAutopilotState(raw.getHeader(), autopilotState);
}
AdasChannel.calculateTimeConsumingBusiness("自动驾驶状态", nowTime);
// CupidLogUtils.e("自动驾驶状态--->" + autopilotState.toString());
}
}

View File

@@ -1,7 +1,11 @@
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 mogo.telematics.pad.MessagePad;
@@ -14,9 +18,14 @@ public class BasicInfoReqMessage extends MyAbstractMessageHandler {
@Override
public void handlerMsg(RawData raw, OnAdasListener adasListener) throws InvalidProtocolBufferException {
MessagePad.BasicInfoReq autopilotState = MessagePad.BasicInfoReq.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.onBasicInfoReq(raw.getHeader(), autopilotState);
}
AdasChannel.calculateTimeConsumingBusiness("自动驾驶设备基础信息请求", nowTime);
// CupidLogUtils.e("自动驾驶设备基础信息请求--->" + autopilotState.toString());
}
}

View File

@@ -1,6 +1,9 @@
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.AdasManager;
import com.zhidao.support.adas.high.OnAdasListener;
import com.zhidao.support.adas.high.common.CupidLogUtils;
@@ -16,10 +19,15 @@ public class CarConfigRespMessage extends MyAbstractMessageHandler {
@Override
public void handlerMsg(RawData raw, OnAdasListener adasListener) throws InvalidProtocolBufferException {
MessagePad.CarConfigResp carConfigResp = MessagePad.CarConfigResp.parser().parseFrom(raw.originalData.toByteArray(), raw.getOffsetValue(), raw.getPackageLengthValue() - raw.getOffsetValue());
AdasChannel.calculateTimeConsumingOnDispatchRaw("车机基础信息应答", raw.receiveTime);
AdasManager.getInstance().setCarConfig(carConfigResp);
long nowTime = 0;
if (CupidLogUtils.isEnableLog())
nowTime = SystemClock.elapsedRealtime();
if (adasListener != null) {
adasListener.onCarConfigResp(raw.getHeader(), carConfigResp);
}
AdasChannel.calculateTimeConsumingBusiness("车机基础信息应答", nowTime);
CupidLogUtils.e("车机基础信息应答--->" + carConfigResp.toString());
}
}

View File

@@ -1,7 +1,11 @@
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 mogo.telematics.pad.MessagePad;
@@ -14,9 +18,14 @@ public class GlobalPathRespMessage extends MyAbstractMessageHandler {
@Override
public void handlerMsg(RawData raw, OnAdasListener adasListener) throws InvalidProtocolBufferException {
MessagePad.GlobalPathResp globalPathResp = MessagePad.GlobalPathResp.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.onGlobalPathResp(raw.getHeader(), globalPathResp);
}
AdasChannel.calculateTimeConsumingBusiness("自动驾驶路径应答", nowTime);
// CupidLogUtils.e("自动驾驶路径应答--->" + globalPathResp.toString());
}
}

View File

@@ -1,8 +1,12 @@
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 mogo.telematics.pad.MessagePad;
@@ -15,9 +19,14 @@ public class GnssInfoMessage extends MyAbstractMessageHandler {
@Override
public void handlerMsg(RawData raw, OnAdasListener adasListener) throws InvalidProtocolBufferException {
MessagePad.GnssInfo trajectory = MessagePad.GnssInfo.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.onGnssInfo(raw.getHeader(), trajectory);
}
AdasChannel.calculateTimeConsumingBusiness("惯导信息", nowTime);
// CupidLogUtils.e("惯导信息--->" + trajectory.toString());
}
}

View File

@@ -1,7 +1,11 @@
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 perception.TrafficLightOuterClass;
@@ -14,8 +18,13 @@ public class PerceptionTrafficLightMessage extends MyAbstractMessageHandler {
@Override
public void handlerMsg(RawData raw, OnAdasListener adasListener) throws InvalidProtocolBufferException {
TrafficLightOuterClass.TrafficLights trafficLights = TrafficLightOuterClass.TrafficLights.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.onPerceptionTrafficLight(raw.getHeader(), trafficLights);
}
AdasChannel.calculateTimeConsumingBusiness("感知红绿灯", nowTime);
}
}

View File

@@ -1,6 +1,9 @@
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.AdasManager;
import com.zhidao.support.adas.high.OnAdasListener;
import com.zhidao.support.adas.high.common.CupidLogUtils;
@@ -16,8 +19,13 @@ public class PlanningDecisionStateMessage extends MyAbstractMessageHandler {
@Override
public void handlerMsg(RawData raw, OnAdasListener adasListener) throws InvalidProtocolBufferException {
MessagePad.PlanningActionMsg planningActionMsg = MessagePad.PlanningActionMsg.parser().parseFrom(raw.originalData.toByteArray(), raw.getOffsetValue(), raw.getPackageLengthValue() - raw.getOffsetValue());
AdasChannel.calculateTimeConsumingOnDispatchRaw("planning决策状态", raw.receiveTime);
long nowTime = 0;
if (CupidLogUtils.isEnableLog())
nowTime = SystemClock.elapsedRealtime();
if (adasListener != null) {
adasListener.onPlanningActionMsg(raw.getHeader(), planningActionMsg);
}
AdasChannel.calculateTimeConsumingBusiness("planning决策状态", nowTime);
}
}

View File

@@ -1,8 +1,12 @@
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 mogo.telematics.pad.MessagePad;
@@ -15,8 +19,13 @@ public class PlanningObjectsMessage extends MyAbstractMessageHandler {
@Override
public void handlerMsg(RawData raw, OnAdasListener adasListener) throws InvalidProtocolBufferException {
MessagePad.PlanningObjects planningObjects = MessagePad.PlanningObjects.parser().parseFrom(raw.originalData.toByteArray(), raw.getOffsetValue(), raw.getPackageLengthValue() - raw.getOffsetValue());
AdasChannel.calculateTimeConsumingOnDispatchRaw("planning障碍物", raw.receiveTime);
long nowTime = 0;
if (CupidLogUtils.isEnableLog())
nowTime = SystemClock.elapsedRealtime();
if (adasListener != null) {
adasListener.onPlanningObjects(raw.getHeader(), planningObjects);
}
AdasChannel.calculateTimeConsumingBusiness("planning障碍物", nowTime);
}
}

View File

@@ -1,7 +1,11 @@
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 prediction.Prediction;
@@ -14,8 +18,13 @@ public class PredictionObstacleTrajectoryMessage extends MyAbstractMessageHandle
@Override
public void handlerMsg(RawData raw, OnAdasListener adasListener) throws InvalidProtocolBufferException {
Prediction.mPredictionObjects objects = Prediction.mPredictionObjects.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.onPredictionObstacleTrajectory(raw.getHeader(), objects);
}
AdasChannel.calculateTimeConsumingBusiness("他车轨迹预测", nowTime);
}
}

View File

@@ -1,7 +1,11 @@
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 mogo.telematics.pad.MessagePad;
@@ -14,8 +18,13 @@ public class RecordDataConfigRespMessage extends MyAbstractMessageHandler {
@Override
public void handlerMsg(RawData raw, OnAdasListener adasListener) throws InvalidProtocolBufferException {
MessagePad.RecordDataConfig config = MessagePad.RecordDataConfig.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.onRecordDataConfigResp(raw.getHeader(), config);
}
AdasChannel.calculateTimeConsumingBusiness("数据采集配置应答", nowTime);
}
}

View File

@@ -1,7 +1,11 @@
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 record_cache.RecordPanelOuterClass;
@@ -14,9 +18,14 @@ public class RecordResultMessage extends MyAbstractMessageHandler {
@Override
public void handlerMsg(RawData raw, OnAdasListener adasListener) throws InvalidProtocolBufferException {
RecordPanelOuterClass.RecordPanel recordPanel = RecordPanelOuterClass.RecordPanel.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.onRecordResult(raw.getHeader(), recordPanel);
}
AdasChannel.calculateTimeConsumingBusiness("数据采集结果", nowTime);
// CupidLogUtils.e("数据采集结果--->" + recordPanel.toString());;
}
}

View File

@@ -1,7 +1,11 @@
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 mogo_msg.MogoReportMsg;
@@ -14,8 +18,13 @@ public class ReportMessage extends MyAbstractMessageHandler {
@Override
public void handlerMsg(RawData raw, OnAdasListener adasListener) throws InvalidProtocolBufferException {
MogoReportMsg.MogoReportMessage mogoReportMessage = MogoReportMsg.MogoReportMessage.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.onReportMessage(raw.getHeader(), mogoReportMessage);
}
AdasChannel.calculateTimeConsumingBusiness("监控事件报告", nowTime);
}
}

View File

@@ -1,11 +1,14 @@
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.AutopilotAbilityManager;
import com.zhidao.support.adas.high.common.CupidLogUtils;
import com.zhidao.support.adas.high.protocol.RawData;
import mogo.telematics.pad.MessagePad;
import system_master.SystemStatusInfo;
/**
@@ -15,11 +18,16 @@ public class StatusQueryRespMessage extends MyAbstractMessageHandler {
@Override
public void handlerMsg(RawData raw, OnAdasListener adasListener) throws InvalidProtocolBufferException {
SystemStatusInfo.StatusInfo statusInfo= SystemStatusInfo.StatusInfo.parser().parseFrom(raw.originalData.toByteArray(), raw.getOffsetValue(), raw.getPackageLengthValue() - raw.getOffsetValue());
SystemStatusInfo.StatusInfo statusInfo = SystemStatusInfo.StatusInfo.parser().parseFrom(raw.originalData.toByteArray(), raw.getOffsetValue(), raw.getPackageLengthValue() - raw.getOffsetValue());
AdasChannel.calculateTimeConsumingOnDispatchRaw("状态查询应答", raw.receiveTime);
AutopilotAbilityManager.getInstance().setStatusInfo(statusInfo);
long nowTime = 0;
if (CupidLogUtils.isEnableLog())
nowTime = SystemClock.elapsedRealtime();
if (adasListener != null) {
adasListener.onStatusQueryResp(raw.getHeader(), statusInfo);
}
AdasChannel.calculateTimeConsumingBusiness("状态查询应答", nowTime);
// CupidLogUtils.e("状态查询应答--->" + statusInfo.toString());
}

View File

@@ -1,7 +1,11 @@
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 mogo.telematics.pad.MessagePad;
@@ -16,9 +20,14 @@ public class TrackedObjectsMessage extends MyAbstractMessageHandler {
@Override
public void handlerMsg(RawData raw, OnAdasListener adasListener) throws InvalidProtocolBufferException {
MessagePad.TrackedObjects trackedObjects = MessagePad.TrackedObjects.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.onTrackedObjects(raw.getHeader(), trackedObjects);
}
AdasChannel.calculateTimeConsumingBusiness("障碍物信息", nowTime);
// CupidLogUtils.e("障碍物信息--->" + trackedObjects.toString());
}
}

View File

@@ -1,7 +1,11 @@
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 mogo.telematics.pad.MessagePad;
@@ -14,9 +18,14 @@ public class TrajectoryMessage extends MyAbstractMessageHandler {
@Override
public void handlerMsg(RawData raw, OnAdasListener adasListener) throws InvalidProtocolBufferException {
MessagePad.Trajectory trajectory = MessagePad.Trajectory.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.onTrajectory(raw.getHeader(), trajectory);
}
AdasChannel.calculateTimeConsumingBusiness("车前引导线", nowTime);
// CupidLogUtils.e("车前引导线--->" + trajectory.toString());
}
}

View File

@@ -1,8 +1,12 @@
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.AutopilotAbilityManager;
import com.zhidao.support.adas.high.common.CupidLogUtils;
import com.zhidao.support.adas.high.protocol.RawData;
import chassis.VehicleStateOuterClass;
@@ -15,10 +19,15 @@ public class VehicleStateMessage extends MyAbstractMessageHandler {
@Override
public void handlerMsg(RawData raw, OnAdasListener adasListener) throws InvalidProtocolBufferException {
VehicleStateOuterClass.VehicleState vehicleState = VehicleStateOuterClass.VehicleState.parser().parseFrom(raw.originalData.toByteArray(), raw.getOffsetValue(), raw.getPackageLengthValue() - raw.getOffsetValue());
AdasChannel.calculateTimeConsumingOnDispatchRaw("底盘信息", raw.receiveTime);
AutopilotAbilityManager.getInstance().setVehicleState(vehicleState);
long nowTime = 0;
if (CupidLogUtils.isEnableLog())
nowTime = SystemClock.elapsedRealtime();
if (adasListener != null) {
adasListener.onVehicleState(raw.getHeader(), vehicleState);
}
AdasChannel.calculateTimeConsumingBusiness("底盘信息", nowTime);
// CupidLogUtils.e("底盘信息--->" + vehicleState.toString());
}
}

View File

@@ -1,7 +1,11 @@
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 mogo.telematics.pad.MessagePad;
@@ -15,9 +19,14 @@ public class WarnMessage extends MyAbstractMessageHandler {
@Override
public void handlerMsg(RawData raw, OnAdasListener adasListener) throws InvalidProtocolBufferException {
MessagePad.Warn warn = MessagePad.Warn.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.onWarn(raw.getHeader(), warn);
}
AdasChannel.calculateTimeConsumingBusiness("预警数据", nowTime);
// CupidLogUtils.e("预警数据--->" + warn.toString());
}
}

View File

@@ -15,6 +15,7 @@ import okio.ByteString;
* 原始数据格式MagicCode(2字节 6d67) 偏移量(2字节 从原始数据头开始一直到Body头) 数据包总长度4字节 Header Body
*/
public class RawData {
public long receiveTime;//TODO 计算耗时 临时测试
/**
* 原始数据
*/

View File

@@ -65,7 +65,7 @@ public class WSByteQueueManager {
ByteString data = mPublicQueue.remove();
// CupidLogUtils.w("===>socket消费者" + data + ",内容个数" + mPublicQueue.getSize() + "\n所有数据" + mPublicQueue.iteratorData());
if (webSocketConnectListener != null) {
webSocketConnectListener.onMessage(data);
webSocketConnectListener.onMessage(0,data);
}
}

View File

@@ -8,6 +8,7 @@ import static com.zhidao.support.adas.high.chain.AdasChain.CHAIN_LINK_LOG_CONNEC
import static com.zhidao.support.adas.high.common.Constants.RESOURCE_PATH;
import static com.zhidao.support.adas.high.common.Constants.WS_IP_HOST_HEAD;
import android.os.SystemClock;
import android.text.TextUtils;
import android.util.Log;
@@ -187,8 +188,8 @@ public class FpgaSocket implements IWebSocket {
void onWebSocketConnectFailed(String t);
void onMessage(String message);
void onMessage(ByteString bytes) throws InvalidProtocolBufferException;
//TODO 计算耗时 临时测试
void onMessage(long receiveTime, ByteString bytes) throws InvalidProtocolBufferException;
}
public void setWebSocketListener(IWebSocketConnectListener listener) {
@@ -240,6 +241,17 @@ public class FpgaSocket implements IWebSocket {
}
}
//TODO 计算耗时 临时测试
private long oldTime;
private void calculateTimeConsuming(long nowTime) {
if (CupidLogUtils.isEnableLog()) {
long time = nowTime - oldTime;
oldTime = nowTime;
CupidLogUtils.i("TimeConsuming", "WebSocket接收时间间隔=" + time + "毫秒");
}
}
@ChainLog(linkChainLog = -1,
linkCode = CHAIN_LINK_ADAS,
endpoint = TracingConstants.Endpoint.PAD,
@@ -249,12 +261,16 @@ public class FpgaSocket implements IWebSocket {
@Override
public void onMessage(@NonNull WebSocket webSocket, @NonNull ByteString bytes) {
super.onMessage(webSocket, bytes);
long nowTime = 0;
if (CupidLogUtils.isEnableLog())
nowTime = SystemClock.elapsedRealtime();
calculateTimeConsuming(nowTime);
if (AdasChannel.isUseQueue) {
WSByteQueueManager.getInstance().addQueueData(bytes);
} else {
try {
if (mWebSocketConnectListener != null)
mWebSocketConnectListener.onMessage(bytes);
mWebSocketConnectListener.onMessage(nowTime, bytes);
} catch (InvalidProtocolBufferException e) {
e.printStackTrace();
}

View File

@@ -1,12 +1,15 @@
package com.zhidao.support.adas.high.thread;
import android.os.Build;
import android.os.Handler;
import android.os.HandlerThread;
import android.os.Looper;
import android.os.Message;
import android.os.MessageQueue;
import androidx.annotation.NonNull;
import com.zhidao.support.adas.high.common.CupidLogUtils;
import com.zhidao.support.adas.high.protocol.RawData;
import java.lang.ref.WeakReference;
@@ -64,6 +67,15 @@ public class DispatchHandler {
* @param msg
*/
protected void handleMessage(Message msg) {
//TODO 计算耗时 临时测试
if (CupidLogUtils.isEnableLog())
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (mThread != null) {
MessageQueue queue = mThread.getLooper().getQueue();
CupidLogUtils.i("TimeConsuming", mThread.getName() + " 当前消息队列是否处于空闲状态=" + queue.isIdle());
}
}
listener.onDispatchRaw(messageType, (RawData) msg.obj);
}