From b1171724be4e390c58b1353d27139ca3b5561b44 Mon Sep 17 00:00:00 2001 From: xinfengkun Date: Fri, 8 Apr 2022 15:40:12 +0800 Subject: [PATCH] =?UTF-8?q?[Change]=E4=BF=AE=E6=94=B9=E8=B0=83=E8=AF=95?= =?UTF-8?q?=E7=A8=8B=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../adas/client/OnAdasClientListener.java | 154 ++++++++++++++++++ .../adas/client/bean/ArrivalNotification.java | 4 +- .../adas/client/bean/AutopilotState.java | 4 +- .../com/zhidao/adas/client/bean/Base.java | 21 --- .../com/zhidao/adas/client/bean/BaseInfo.java | 32 ++++ .../zhidao/adas/client/bean/BasicInfoReq.java | 4 +- .../adas/client/bean/CarConfigResp.java | 4 +- .../zhidao/adas/client/bean/ErrorData.java | 3 +- .../adas/client/bean/GlobalPathResp.java | 4 +- .../com/zhidao/adas/client/bean/GnssInfo.java | 4 +- .../adas/client/bean/MogoReportMessage.java | 4 +- .../zhidao/adas/client/bean/MySSHResult.java | 10 ++ .../client/bean/PerceptionTrafficLight.java | 4 +- .../zhidao/adas/client/bean/RecordPanel.java | 4 +- .../adas/client/bean/TrackedObjects.java | 4 +- .../zhidao/adas/client/bean/Trajectory.java | 4 +- .../zhidao/adas/client/bean/VehicleState.java | 4 +- .../com/zhidao/adas/client/bean/Warn.java | 4 +- .../com/zhidao/adas/client/log/LogSave.java | 80 +++++++-- .../zhidao/adas/client/ui/MainActivity.java | 36 ++-- 20 files changed, 313 insertions(+), 75 deletions(-) create mode 100644 app_ipc_monitoring/src/main/java/com/zhidao/adas/client/OnAdasClientListener.java delete mode 100644 app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/Base.java create mode 100644 app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/BaseInfo.java create mode 100644 app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/MySSHResult.java diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/OnAdasClientListener.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/OnAdasClientListener.java new file mode 100644 index 0000000000..c3de9e1ffb --- /dev/null +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/OnAdasClientListener.java @@ -0,0 +1,154 @@ +package com.zhidao.adas.client; + +import com.zhidao.adas.client.bean.ArrivalNotification; +import com.zhidao.adas.client.bean.AutopilotState; +import com.zhidao.adas.client.bean.BasicInfoReq; +import com.zhidao.adas.client.bean.CarConfigResp; +import com.zhidao.adas.client.bean.GlobalPathResp; +import com.zhidao.adas.client.bean.GnssInfo; +import com.zhidao.adas.client.bean.MogoReportMessage; +import com.zhidao.adas.client.bean.PerceptionTrafficLight; +import com.zhidao.adas.client.bean.RecordPanel; +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.support.adas.high.bean.IPCUpgradeStateInfo; +import com.zhidao.support.adas.high.bean.SSHResult; +import com.zhidao.support.adas.high.common.ProtocolStatus; + +public abstract class OnAdasClientListener { + /** + * 自动驾驶局部轨迹 车前引导线 + * + * @param trajectory 数据 + */ + public void onTrajectory(Trajectory trajectory) { + } + + /** + * 障碍物 他车数据 + * + * @param trackedObjects 数据 + */ + public void onTrackedObjects(TrackedObjects trackedObjects) { + } + + /** + * 惯导信息 + * + * @param gnssInfo 数据 + */ + public void onGnssInfo(GnssInfo gnssInfo) { + } + + /** + * 底盘信息, 透传底盘状态,pb参考底盘 + * + * @param vehicleState 数据 + */ + public void onVehicleState(VehicleState vehicleState) { + } + + /** + * 自动驾驶状态 + * + * @param autopilotState 数据 + */ + public void onAutopilotState(AutopilotState autopilotState) { + } + + /** + * 监控事件报告 + * + * @param mogoReportMessage 数据 + */ + public void onReportMessage(MogoReportMessage mogoReportMessage) { + } + + /** + * 感知红绿灯 + * + * @param trafficLights 感知红绿灯 + */ + public void onPerceptionTrafficLight(PerceptionTrafficLight trafficLights) { + } + + /** + * 自动驾驶设备基础信息请求 + * + * @param basicInfoReq 数据 目前没有任何参数 + */ + public void onBasicInfoReq(BasicInfoReq basicInfoReq) { + } + + /** + * 车机基础信息应答 + * + * @param carConfigResp 数据 + */ + public void onCarConfigResp(CarConfigResp carConfigResp) { + } + + /** + * 数据采集结果 + * + * @param recordPanel 数据 + */ + public void onRecordResult(RecordPanel recordPanel) { + } + + /** + * 自动驾驶路径应答 + * + * @param globalPathResp 数据 + */ + public void onGlobalPathResp(GlobalPathResp globalPathResp) { + } + + + /** + * 报警信息 + * 暂时保留,目前没有使用 + * + * @param warn 数据 + */ + @Deprecated + public void onWarn(Warn warn) { + } + + /** + * 到站提醒 自动驾驶站点 + * + * @param arrivalNotification 数据 + */ + public void onArrivalNotification(ArrivalNotification arrivalNotification) { + } + + /** + * 升级状态 + * + * @param info + */ + @Deprecated + public void onUpgradeStateInfo(IPCUpgradeStateInfo info) { + } + + /** + * 向IPC发送命令返回结果 + * + * @param info + */ + public void onSSHResult(SSHResult info) { + } + + /** + * 数据错误 + * + * @param status 错误原因 + * @param bytes 原始数据 + */ + public void onError(ProtocolStatus status, byte[] bytes) { + + } +} diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/ArrivalNotification.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/ArrivalNotification.java index 787f60c6d0..64d47bc670 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/ArrivalNotification.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/ArrivalNotification.java @@ -4,11 +4,11 @@ import com.google.protobuf.TextFormat; import mogo.telematics.pad.MessagePad; -public class ArrivalNotification extends Base { +public class ArrivalNotification extends BaseInfo { public final MessagePad.ArrivalNotification bean; public ArrivalNotification(MessagePad.Header header, MessagePad.ArrivalNotification bean) { - super(bean.getSerializedSize(), header); + super("接收", bean.getSerializedSize(), header); this.bean = bean; } diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/AutopilotState.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/AutopilotState.java index 95924fa432..aaebc9ba7a 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/AutopilotState.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/AutopilotState.java @@ -4,11 +4,11 @@ import com.google.protobuf.TextFormat; import mogo.telematics.pad.MessagePad; -public class AutopilotState extends Base { +public class AutopilotState extends BaseInfo { public final MessagePad.AutopilotState bean; public AutopilotState(MessagePad.Header header, MessagePad.AutopilotState bean) { - super(bean.getSerializedSize(), header); + super("接收", bean.getSerializedSize(), header); this.bean = bean; } diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/Base.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/Base.java deleted file mode 100644 index e492bd77ef..0000000000 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/Base.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.zhidao.adas.client.bean; - - -import com.google.protobuf.TextFormat; - -import mogo.telematics.pad.MessagePad; - -public abstract class Base { - public final MessagePad.Header header; - public final int len; - - public Base(int len, MessagePad.Header header) { - this.len = 8 + header.getSerializedSize() + len; - this.header = header; - } - - @Override - public String toString() { - return len + "##Header:[" + TextFormat.printer().escapingNonAscii(false).shortDebugString(header)+"]\n"; - } -} diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/BaseInfo.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/BaseInfo.java new file mode 100644 index 0000000000..cf2f171b1d --- /dev/null +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/BaseInfo.java @@ -0,0 +1,32 @@ +package com.zhidao.adas.client.bean; + + +import com.google.protobuf.TextFormat; + +import mogo.telematics.pad.MessagePad; + +public abstract class BaseInfo { + public final String action; + public final long nowTime; + public final MessagePad.Header header; + public final int len; + + public BaseInfo(String action, int len, MessagePad.Header header) { + this.action = action; + nowTime = System.currentTimeMillis(); + this.len = 8 + header.getSerializedSize() + len; + this.header = header; + } + + public BaseInfo(String action, int len) { + this.action = action; + nowTime = System.currentTimeMillis(); + this.len = len; + this.header = null; + } + + @Override + public String toString() { + return len + "##Header:[" + TextFormat.printer().escapingNonAscii(false).shortDebugString(header) + "]\n"; + } +} diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/BasicInfoReq.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/BasicInfoReq.java index 698bea7d2d..496d32df71 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/BasicInfoReq.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/BasicInfoReq.java @@ -4,11 +4,11 @@ import com.google.protobuf.TextFormat; import mogo.telematics.pad.MessagePad; -public class BasicInfoReq extends Base { +public class BasicInfoReq extends BaseInfo { public final MessagePad.BasicInfoReq bean; public BasicInfoReq(MessagePad.Header header, MessagePad.BasicInfoReq bean) { - super(bean.getSerializedSize(), header); + super("接收", bean.getSerializedSize(), header); this.bean = bean; } diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/CarConfigResp.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/CarConfigResp.java index 85488fe61a..0fadfaa882 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/CarConfigResp.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/CarConfigResp.java @@ -4,11 +4,11 @@ import com.google.protobuf.TextFormat; import mogo.telematics.pad.MessagePad; -public class CarConfigResp extends Base { +public class CarConfigResp extends BaseInfo { public final MessagePad.CarConfigResp bean; public CarConfigResp(MessagePad.Header header, MessagePad.CarConfigResp bean) { - super(bean.getSerializedSize(), header); + super("接收", bean.getSerializedSize(), header); this.bean = bean; } diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/ErrorData.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/ErrorData.java index aded5d05cc..a9e21f6c31 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/ErrorData.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/ErrorData.java @@ -3,11 +3,12 @@ package com.zhidao.adas.client.bean; import com.zhidao.support.adas.high.common.DigitalTrans; import com.zhidao.support.adas.high.common.ProtocolStatus; -public class ErrorData { +public class ErrorData extends BaseInfo { private final ProtocolStatus status; private final byte[] bytes; public ErrorData(ProtocolStatus status, byte[] bytes) { + super("接收", bytes.length); this.status = status; this.bytes = bytes; } diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/GlobalPathResp.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/GlobalPathResp.java index 5fb044171c..5d4d67cd6d 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/GlobalPathResp.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/GlobalPathResp.java @@ -4,11 +4,11 @@ import com.google.protobuf.TextFormat; import mogo.telematics.pad.MessagePad; -public class GlobalPathResp extends Base { +public class GlobalPathResp extends BaseInfo { public final MessagePad.GlobalPathResp bean; public GlobalPathResp(MessagePad.Header header, MessagePad.GlobalPathResp bean) { - super(bean.getSerializedSize(), header); + super("接收", bean.getSerializedSize(), header); this.bean = bean; } diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/GnssInfo.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/GnssInfo.java index cb762f80f8..2e37afa373 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/GnssInfo.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/GnssInfo.java @@ -4,11 +4,11 @@ import com.google.protobuf.TextFormat; import mogo.telematics.pad.MessagePad; -public class GnssInfo extends Base { +public class GnssInfo extends BaseInfo { public final MessagePad.GnssInfo bean; public GnssInfo(MessagePad.Header header, MessagePad.GnssInfo bean) { - super(bean.getSerializedSize(), header); + super("接收", bean.getSerializedSize(), header); this.bean = bean; } diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/MogoReportMessage.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/MogoReportMessage.java index 39a2f8e7e2..54c4eb7be9 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/MogoReportMessage.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/MogoReportMessage.java @@ -5,11 +5,11 @@ import com.google.protobuf.TextFormat; import mogo.telematics.pad.MessagePad; import mogo_msg.MogoReportMsg; -public class MogoReportMessage extends Base { +public class MogoReportMessage extends BaseInfo { public final MogoReportMsg.MogoReportMessage bean; public MogoReportMessage(MessagePad.Header header, MogoReportMsg.MogoReportMessage bean) { - super(bean.getSerializedSize(), header); + super("接收", bean.getSerializedSize(), header); this.bean = bean; } diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/MySSHResult.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/MySSHResult.java new file mode 100644 index 0000000000..0273e1713d --- /dev/null +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/MySSHResult.java @@ -0,0 +1,10 @@ +package com.zhidao.adas.client.bean; + +public class MySSHResult extends BaseInfo { + public final String info; + + public MySSHResult(String info, int len) { + super("接收", len); + this.info = info; + } +} diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/PerceptionTrafficLight.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/PerceptionTrafficLight.java index 5b50580c61..5587a6acd8 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/PerceptionTrafficLight.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/PerceptionTrafficLight.java @@ -5,11 +5,11 @@ import com.google.protobuf.TextFormat; import mogo.telematics.pad.MessagePad; import perception.TrafficLightOuterClass; -public class PerceptionTrafficLight extends Base { +public class PerceptionTrafficLight extends BaseInfo { public final TrafficLightOuterClass.TrafficLights bean; public PerceptionTrafficLight(MessagePad.Header header, TrafficLightOuterClass.TrafficLights bean) { - super(bean.getSerializedSize(), header); + super("接收", bean.getSerializedSize(), header); this.bean = bean; } diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/RecordPanel.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/RecordPanel.java index 3071ef7317..c00cce9217 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/RecordPanel.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/RecordPanel.java @@ -5,11 +5,11 @@ import com.google.protobuf.TextFormat; import mogo.telematics.pad.MessagePad; import record_cache.RecordPanelOuterClass; -public class RecordPanel extends Base { +public class RecordPanel extends BaseInfo { public final RecordPanelOuterClass.RecordPanel bean; public RecordPanel(MessagePad.Header header, RecordPanelOuterClass.RecordPanel bean) { - super(bean.getSerializedSize(), header); + super("接收", bean.getSerializedSize(), header); this.bean = bean; } diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/TrackedObjects.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/TrackedObjects.java index caaa4d1c81..efcbcb2fef 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/TrackedObjects.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/TrackedObjects.java @@ -4,11 +4,11 @@ import com.google.protobuf.TextFormat; import mogo.telematics.pad.MessagePad; -public class TrackedObjects extends Base { +public class TrackedObjects extends BaseInfo { private MessagePad.TrackedObjects bean; public TrackedObjects(MessagePad.Header header, MessagePad.TrackedObjects bean) { - super(bean.getSerializedSize(), header); + super("接收", bean.getSerializedSize(), header); this.bean = bean; } diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/Trajectory.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/Trajectory.java index 047888f8f7..ac4cbe5c33 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/Trajectory.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/Trajectory.java @@ -4,11 +4,11 @@ import com.google.protobuf.TextFormat; import mogo.telematics.pad.MessagePad; -public class Trajectory extends Base { +public class Trajectory extends BaseInfo { public final MessagePad.Trajectory bean; public Trajectory(MessagePad.Header header, MessagePad.Trajectory bean) { - super(bean.getSerializedSize(), header); + super("接收", bean.getSerializedSize(), header); this.bean = bean; } @Override diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/VehicleState.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/VehicleState.java index df03675788..ebdacb3c7d 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/VehicleState.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/VehicleState.java @@ -5,11 +5,11 @@ import com.google.protobuf.TextFormat; import chassis.VehicleStateOuterClass; import mogo.telematics.pad.MessagePad; -public class VehicleState extends Base { +public class VehicleState extends BaseInfo { public final VehicleStateOuterClass.VehicleState bean; public VehicleState(MessagePad.Header header, VehicleStateOuterClass.VehicleState bean) { - super(bean.getSerializedSize(), header); + super("接收", bean.getSerializedSize(), header); this.bean = bean; } diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/Warn.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/Warn.java index f438ae5b8f..fd41e8e212 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/Warn.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/Warn.java @@ -4,11 +4,11 @@ import com.google.protobuf.TextFormat; import mogo.telematics.pad.MessagePad; -public class Warn extends Base { +public class Warn extends BaseInfo { public final MessagePad.Warn bean; public Warn(MessagePad.Header header, MessagePad.Warn bean) { - super(bean.getSerializedSize(), header); + super("接收", bean.getSerializedSize(), header); this.bean = bean; } diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/log/LogSave.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/log/LogSave.java index 016bfcacbc..ad3059f24d 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/log/LogSave.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/log/LogSave.java @@ -4,6 +4,21 @@ import android.os.Environment; import android.text.TextUtils; import android.util.Log; +import com.zhidao.adas.client.OnAdasClientListener; +import com.zhidao.adas.client.bean.ArrivalNotification; +import com.zhidao.adas.client.bean.AutopilotState; +import com.zhidao.adas.client.bean.BaseInfo; +import com.zhidao.adas.client.bean.BasicInfoReq; +import com.zhidao.adas.client.bean.CarConfigResp; +import com.zhidao.adas.client.bean.GlobalPathResp; +import com.zhidao.adas.client.bean.GnssInfo; +import com.zhidao.adas.client.bean.MogoReportMessage; +import com.zhidao.adas.client.bean.PerceptionTrafficLight; +import com.zhidao.adas.client.bean.RecordPanel; +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.support.adas.high.common.ThreadPoolManager; import java.io.BufferedWriter; @@ -11,7 +26,9 @@ import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.text.SimpleDateFormat; +import java.util.ArrayList; import java.util.Date; +import java.util.List; import java.util.Locale; import java.util.concurrent.Future; import java.util.concurrent.LinkedBlockingQueue; @@ -25,12 +42,13 @@ public class LogSave { private static final String LOG_FILE_NAME = "%s.log";//文件名称 private volatile static LogSave INSTANCE; private static final long MAX_CAPACITY = 20 * 1024 * 1024L;//单文件最大存储容量 kb - private final LinkedBlockingQueue queue; + private final LinkedBlockingQueue queue; private BufferedWriter buff = null; private final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS", Locale.getDefault()); private File file; private volatile long capacity = MAX_CAPACITY; private Future future; + private List listeners = new ArrayList<>(); private LogSave() { queue = new LinkedBlockingQueue<>(); @@ -47,6 +65,15 @@ public class LogSave { return INSTANCE; } + public void registerOnAdasClientListener(OnAdasClientListener listener) { + if (!listeners.contains(listener)) { + listeners.add(listener); + } + } + + public void unregisterOnAdasClientListener(OnAdasClientListener listener) { + listeners.remove(listener); + } public boolean isSdcardUse() { boolean bl = false; @@ -74,13 +101,12 @@ public class LogSave { } - public void saveLog(String action, String data) { - long nowTime = System.currentTimeMillis(); - String time = sdf.format(new Date(nowTime)); - String builder = time + " [action]:" + action + " [data]:" + data; - queue.add(builder); - } + public void saveLog(BaseInfo info) { + if (isStart()) { + queue.add(info); + } + } public boolean isStart() { return future != null; } @@ -128,9 +154,43 @@ public class LogSave { closeBufferedWriter(); getFile(); } - String data = queue.take(); - if (!TextUtils.isEmpty(data)) { - buff.write(data); + BaseInfo data = queue.take(); + if (!listeners.isEmpty()) { + for (OnAdasClientListener listener : listeners) { + if (data instanceof Trajectory) { + listener.onTrajectory((Trajectory) data); + } else if (data instanceof TrackedObjects) { + listener.onTrackedObjects((TrackedObjects) data); + }else if (data instanceof GnssInfo) { + listener.onGnssInfo((GnssInfo) data); + }else if (data instanceof VehicleState) { + listener.onVehicleState((VehicleState) data); + }else if (data instanceof AutopilotState) { + listener.onAutopilotState((AutopilotState) data); + }else if (data instanceof MogoReportMessage) { + listener.onReportMessage((MogoReportMessage) data); + }else if (data instanceof PerceptionTrafficLight) { + listener.onPerceptionTrafficLight((PerceptionTrafficLight) data); + }else if (data instanceof BasicInfoReq) { + listener.onBasicInfoReq((BasicInfoReq) data); + }else if (data instanceof CarConfigResp) { + listener.onCarConfigResp((CarConfigResp) data); + }else if (data instanceof RecordPanel) { + listener.onRecordResult((RecordPanel) data); + }else if (data instanceof GlobalPathResp) { + listener.onGlobalPathResp((GlobalPathResp) data); + }else if (data instanceof Warn) { + listener.onWarn((Warn) data); + }else if (data instanceof ArrivalNotification) { + listener.onArrivalNotification((ArrivalNotification) data); + } + } + } + + String time = sdf.format(new Date(data.nowTime)); + String builder = time + " [action]:" + data.action + " [data]:" + data.toString(); + if (!TextUtils.isEmpty(builder)) { + buff.write(builder); buff.newLine(); buff.flush(); } diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/MainActivity.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/MainActivity.java index fbfb7d61ae..622e1e6fac 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/MainActivity.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/MainActivity.java @@ -54,6 +54,7 @@ import com.zhidao.adas.client.bean.GlobalPathResp; import com.zhidao.adas.client.bean.GnssInfo; import com.zhidao.adas.client.bean.IPCConnectState; import com.zhidao.adas.client.bean.MogoReportMessage; +import com.zhidao.adas.client.bean.MySSHResult; import com.zhidao.adas.client.bean.PerceptionTrafficLight; import com.zhidao.adas.client.bean.RecordPanel; import com.zhidao.adas.client.bean.TrackedObjects; @@ -632,7 +633,8 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas @Override public void onSSHResult(final SSHResult info) { - LogSave.getInstance().saveLog("接收", info.toString()); + MySSHResult result = new MySSHResult(info.toString(), 0); + LogSave.getInstance().saveLog(result); showToastCenter("IPC命令下发结果:" + info.code + " 命令:" + info.cmd + " 信息:" + info.msg); CupidLogUtils.w(TAG, "IPC命令下发结果:" + info.code + " 命令:" + info.cmd + " 信息:" + info.msg); } @@ -640,63 +642,63 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas @Override public void onError(ProtocolStatus status, byte[] bytes) { ErrorData base = new ErrorData(status, bytes); - LogSave.getInstance().saveLog("接收", base.toString()); + LogSave.getInstance().saveLog(base); EventBus.getDefault().post(base); } @Override public void onTrajectory(MessagePad.Header header, MessagePad.Trajectory trajectory) { Trajectory base = new Trajectory(header, trajectory); - LogSave.getInstance().saveLog("接收", base.toString()); + LogSave.getInstance().saveLog(base); EventBus.getDefault().post(base); } @Override public void onTrackedObjects(MessagePad.Header header, MessagePad.TrackedObjects trackedObjects) { TrackedObjects base = new TrackedObjects(header, trackedObjects); - LogSave.getInstance().saveLog("接收", base.toString()); + LogSave.getInstance().saveLog(base); EventBus.getDefault().post(base); } @Override public void onGnssInfo(MessagePad.Header header, MessagePad.GnssInfo gnssInfo) { GnssInfo base = new GnssInfo(header, gnssInfo); - LogSave.getInstance().saveLog("接收", base.toString()); + LogSave.getInstance().saveLog(base); EventBus.getDefault().post(base); } @Override public void onVehicleState(MessagePad.Header header, VehicleStateOuterClass.VehicleState vehicleState) { VehicleState base = new VehicleState(header, vehicleState); - LogSave.getInstance().saveLog("接收", base.toString()); + LogSave.getInstance().saveLog(base); EventBus.getDefault().post(base); } @Override public void onAutopilotState(MessagePad.Header header, MessagePad.AutopilotState autopilotState) { AutopilotState base = new AutopilotState(header, autopilotState); - LogSave.getInstance().saveLog("接收", base.toString()); + LogSave.getInstance().saveLog(base); EventBus.getDefault().post(base); } @Override public void onReportMessage(MessagePad.Header header, MogoReportMsg.MogoReportMessage mogoReportMessage) { MogoReportMessage base = new MogoReportMessage(header, mogoReportMessage); - LogSave.getInstance().saveLog("接收", base.toString()); + LogSave.getInstance().saveLog(base); EventBus.getDefault().post(base); } @Override public void onPerceptionTrafficLight(MessagePad.Header header, TrafficLightOuterClass.TrafficLights trafficLights) { PerceptionTrafficLight base = new PerceptionTrafficLight(header, trafficLights); - LogSave.getInstance().saveLog("接收", base.toString()); + LogSave.getInstance().saveLog(base); EventBus.getDefault().post(base); } @Override public void onBasicInfoReq(MessagePad.Header header, MessagePad.BasicInfoReq basicInfoReq) { BasicInfoReq info = new BasicInfoReq(header, basicInfoReq); - LogSave.getInstance().saveLog("接收", info.toString()); + LogSave.getInstance().saveLog(info); AdasManager.getInstance().sendBasicInfoResp("X202021111192N41VY", 1); showToastCenter("收到车机基础信息请求:" + info.toString()); // EventBus.getDefault().post(new BasicInfoReq(header, basicInfoReq)); @@ -705,14 +707,14 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas @Override public void onCarConfigResp(MessagePad.Header header, MessagePad.CarConfigResp carConfigResp) { CarConfigResp base = new CarConfigResp(header, carConfigResp); - LogSave.getInstance().saveLog("接收", base.toString()); + LogSave.getInstance().saveLog(base); EventBus.getDefault().postSticky(base); } @Override public void onRecordResult(MessagePad.Header header, RecordPanelOuterClass.RecordPanel recordPanel) { RecordPanel base = new RecordPanel(header, recordPanel); - LogSave.getInstance().saveLog("接收", base.toString()); + LogSave.getInstance().saveLog(base); recordKey = recordPanel.getKey(); recordFileName = recordPanel.getFilename(); EventBus.getDefault().post(base); @@ -721,27 +723,27 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas @Override public void onGlobalPathResp(MessagePad.Header header, MessagePad.GlobalPathResp globalPathResp) { GlobalPathResp base = new GlobalPathResp(header, globalPathResp); - LogSave.getInstance().saveLog("接收", base.toString()); + LogSave.getInstance().saveLog(base); EventBus.getDefault().post(base); } @Override public void onWarn(MessagePad.Header header, MessagePad.Warn warn) { Warn base = new Warn(header, warn); - LogSave.getInstance().saveLog("接收", base.toString()); + LogSave.getInstance().saveLog(base); EventBus.getDefault().post(base); } @Override public void onArrivalNotification(MessagePad.Header header, MessagePad.ArrivalNotification arrivalNotification) { ArrivalNotification base = new ArrivalNotification(header, arrivalNotification); - LogSave.getInstance().saveLog("接收", base.toString()); + LogSave.getInstance().saveLog(base); EventBus.getDefault().post(base); } @Override public void onUpgradeStateInfo(final IPCUpgradeStateInfo info) { - LogSave.getInstance().saveLog("接收", info.toString()); +// LogSave.getInstance().saveLog("接收", info.toString()); EventBus.getDefault().post(info); } @@ -898,7 +900,7 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas } getHandler().sendEmptyMessage(WHAT_IPC_IP); } - LogSave.getInstance().saveLog("连接状态", status); +// LogSave.getInstance().saveLog("连接状态", status); CupidLogUtils.i(TAG, "connectStatus=" + status); }