From d48d76dee073bea7340f6ef74a0091f8ce2d9bb2 Mon Sep 17 00:00:00 2001 From: xinfengkun Date: Thu, 28 Nov 2024 14:53:34 +0800 Subject: [PATCH 1/2] =?UTF-8?q?[680][adas]=E5=90=AF=E5=8A=A8=E8=87=AA?= =?UTF-8?q?=E9=A9=BE=E6=88=90=E5=8A=9F=E5=88=87=E6=8D=A2=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E6=9D=A5=E6=BA=90=EF=BC=8C=E5=BD=93FSM2024=202.0=E5=8F=8A?= =?UTF-8?q?=E7=89=88=E6=9C=AC=E4=BB=A5=E4=B8=8A=E4=BD=BF=E7=94=A8fsm?= =?UTF-8?q?=E4=B8=AD=E7=9A=84Session=E7=BB=93=E6=9E=9C=E8=BF=9B=E8=A1=8C?= =?UTF-8?q?=E5=88=A4=E6=96=AD=EF=BC=8C=E5=BD=93=E5=AD=98=E5=9C=A8fsm2.0?= =?UTF-8?q?=E4=BB=A5=E4=B8=8B=E6=97=B6=E4=BD=BF=E7=94=A8fsm=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E9=A9=BE=E9=A9=B6=E7=8A=B6=E6=80=81=E5=88=A4=E6=96=AD?= =?UTF-8?q?=EF=BC=8C=E5=90=A6=E5=88=99=E4=BD=BF=E7=94=A8=E5=BA=95=E7=9B=98?= =?UTF-8?q?=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../adas/data/bean/AutopilotStatistics.java | 20 +++++++- .../adas/high/common/AutopilotReview.java | 48 ++++++++++++------- .../support/adas/high/common/Define.java | 2 +- .../adas/high/msg/AutopilotStateMessage.java | 3 +- .../adas/high/msg/FSM2024StateMessage.java | 3 +- .../adas/high/msg/FunctionStatesMessage.java | 3 +- 6 files changed, 56 insertions(+), 23 deletions(-) diff --git a/libraries/mogo-adas-data/src/main/java/com/zhjt/mogo/adas/data/bean/AutopilotStatistics.java b/libraries/mogo-adas-data/src/main/java/com/zhjt/mogo/adas/data/bean/AutopilotStatistics.java index 797d3079fe..8230204bf9 100644 --- a/libraries/mogo-adas-data/src/main/java/com/zhjt/mogo/adas/data/bean/AutopilotStatistics.java +++ b/libraries/mogo-adas-data/src/main/java/com/zhjt/mogo/adas/data/bean/AutopilotStatistics.java @@ -1,6 +1,7 @@ package com.zhjt.mogo.adas.data.bean; +import androidx.annotation.NonNull; import androidx.annotation.Nullable; import fsm.Fsm2024; @@ -18,7 +19,7 @@ public class AutopilotStatistics { /** * 成功 */ - int SUCCESSFUL = 0; + int SUCCEED = 0; /** * 失败 */ @@ -29,6 +30,14 @@ public class AutopilotStatistics { int CANCEL = 2; } + public enum Source { + LIB,//ADAS库 [用在下取消] + REPORT,//系统监控 [用在失败] + FSM, //老版FSM [用在成功] + FSM2024, //新版FSM [用在成功和失败] + CHASSIS//底盘 [用在成功] + } + /** * 启动自动驾驶后状态 * 0 成功 @@ -62,9 +71,16 @@ public class AutopilotStatistics { @Nullable public final MogoReportMsg.MogoReportMessage failedMessage; - public AutopilotStatistics(int status, long usedTime, @Nullable MessagePad.SetAutopilotModeReq req, @Nullable Fsm2024.FSMStateMsg fsmState, @Nullable MogoReportMsg.MogoReportMessage failedMessage) { + /** + * 数据来源 + */ + @NonNull + public final Source source; + + public AutopilotStatistics(int status, long usedTime, @NonNull Source source, @Nullable MessagePad.SetAutopilotModeReq req, @Nullable Fsm2024.FSMStateMsg fsmState, @Nullable MogoReportMsg.MogoReportMessage failedMessage) { this.status = status; this.usedTime = usedTime; + this.source = source; this.req = req; this.fsmState = fsmState; this.failedMessage = failedMessage; diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/AutopilotReview.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/AutopilotReview.java index 598ff1aa2f..c658879c64 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/AutopilotReview.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/AutopilotReview.java @@ -41,10 +41,10 @@ public class AutopilotReview { void onReview(AutopilotStatistics statistics); } - private void onCallback(@Define.AutopilotStartStatus int status) { + private void onCallback(@Define.AutopilotStartStatus int status, @NonNull AutopilotStatistics.Source source) { long usedTime = SystemClock.elapsedRealtime() - startTime; if (listener != null) { - listener.onReview(new AutopilotStatistics(status, usedTime, startReq, fsmState, failedMessage)); + listener.onReview(new AutopilotStatistics(status, usedTime, source, startReq, fsmState, failedMessage)); } startTime = 0; startReq = null; @@ -68,7 +68,7 @@ public class AutopilotReview { startReq = null; failedMessage = null; fsmState = null; - onCallback(AutopilotStatistics.AUTOPILOT_START_STATUS.CANCEL); + onCallback(AutopilotStatistics.AUTOPILOT_START_STATUS.CANCEL, AutopilotStatistics.Source.LIB); } } @@ -82,26 +82,38 @@ public class AutopilotReview { if (AutopilotAbilityManager.getInstance().getFsm2024Version() >= 20) { return; } - if (startReq != null && message != null) { - failedMessage = message; - onCallback(AutopilotStatistics.AUTOPILOT_START_STATUS.FAILED); + failedMessage = message; + if (message != null) { + if (startReq == null) { + this.failedMessage = null; + } else { + onCallback(AutopilotStatistics.AUTOPILOT_START_STATUS.FAILED, AutopilotStatistics.Source.REPORT); + } } } - public void setFSM2024State(Fsm2024.FSMStateMsg fsmState) { + public void setFSM2024State(Fsm2024.FSMStateMsg fsmState, int autopilotState) { this.fsmState = fsmState; - if (startReq != null && fsmState != null) { - if (fsmState.hasSession()) { - Fsm2024.Session session = fsmState.getSession(); - if (session.hasSessionActiveMode() && session.hasSessionResult()) { - if (session.getSessionActiveMode() == Fsm2024.ActiveMode.PILOT_ACTIVE && - session.getSessionResult() == Fsm2024.SessionResult.REQUEST_FAILED) { - onCallback(AutopilotStatistics.AUTOPILOT_START_STATUS.FAILED); + if (fsmState != null) { + if (startReq == null) { + this.fsmState = null; + } else { + if (fsmState.hasSession()) { + Fsm2024.Session session = fsmState.getSession(); + if (session.hasSessionActiveMode() && session.hasSessionResult()) { + if (session.getSessionActiveMode() == Fsm2024.ActiveMode.PILOT_ACTIVE) { + if (session.getSessionResult() == Fsm2024.SessionResult.REQUEST_SUCCEED) { + onCallback(AutopilotStatistics.AUTOPILOT_START_STATUS.SUCCEED, AutopilotStatistics.Source.FSM2024); + } else if (session.getSessionResult() == Fsm2024.SessionResult.REQUEST_FAILED) { + onCallback(AutopilotStatistics.AUTOPILOT_START_STATUS.FAILED, AutopilotStatistics.Source.FSM2024); + } + } } } } } + onAutopilotResult(autopilotState, AutopilotStatistics.Source.FSM2024); } /** @@ -109,9 +121,13 @@ public class AutopilotReview { * * @param autopilotState */ - public void onAutopilotResult(int autopilotState) { + public void onAutopilotResult(int autopilotState, @NonNull AutopilotStatistics.Source source) { + //FSM2024版本大于等于2.0时使用FSM的数据进行判断是否失败 + if (AutopilotAbilityManager.getInstance().getFsm2024Version() >= 20) { + return; + } if (startReq != null && autopilotState == 2) { - onCallback(AutopilotStatistics.AUTOPILOT_START_STATUS.SUCCESSFUL); + onCallback(AutopilotStatistics.AUTOPILOT_START_STATUS.SUCCEED, source); } } } diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/Define.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/Define.java index 82c904ec32..7010b1b136 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/Define.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/Define.java @@ -39,7 +39,7 @@ public final class Define { public @interface SubscribeType { } - @IntDef(flag = true, value = {AutopilotStatistics.AUTOPILOT_START_STATUS.SUCCESSFUL, + @IntDef(flag = true, value = {AutopilotStatistics.AUTOPILOT_START_STATUS.SUCCEED, AutopilotStatistics.AUTOPILOT_START_STATUS.FAILED, AutopilotStatistics.AUTOPILOT_START_STATUS.CANCEL}) @Retention(RetentionPolicy.SOURCE) diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/AutopilotStateMessage.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/AutopilotStateMessage.java index 5dd98f67d2..cc0a5ad238 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/AutopilotStateMessage.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/AutopilotStateMessage.java @@ -11,6 +11,7 @@ import com.zhidao.support.adas.high.common.CupidLogUtils; import com.zhidao.support.adas.high.common.ParallelDrivingManager; import com.zhidao.support.adas.high.protocol.RawData; import com.zhjt.mogo.adas.data.AdasConstants; +import com.zhjt.mogo.adas.data.bean.AutopilotStatistics; import mogo.telematics.pad.MessagePad; @@ -39,7 +40,7 @@ public class AutopilotStateMessage extends MyAbstractMessageHandler { if (AdasManager.getInstance().getNodeStateInfo(AdasConstants.NodeName.FSM2024).getExistState() != AdasConstants.NodeExistState.NODE_EXIST_NORMAL) { ParallelDrivingManager.getInstance().setAutopilotState(autopilotState.getState()); if (autopilotReview != null) { - autopilotReview.onAutopilotResult(autopilotState.getState()); + autopilotReview.onAutopilotResult(autopilotState.getState(), AutopilotStatistics.Source.CHASSIS); } } AdasChannel.calculateTimeConsumingBusiness("自动驾驶状态", nowTime); diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/FSM2024StateMessage.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/FSM2024StateMessage.java index 0d9ee918c7..302c2eecf2 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/FSM2024StateMessage.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/FSM2024StateMessage.java @@ -35,8 +35,7 @@ public class FSM2024StateMessage extends MyAbstractMessageHandler { nowTime = SystemClock.elapsedRealtime(); ParallelDrivingManager.getInstance().setAutopilotState(autopilotState); if (autopilotReview != null) { - autopilotReview.setFSM2024State(fsmState); - autopilotReview.onAutopilotResult(autopilotState); + autopilotReview.setFSM2024State(fsmState, autopilotState); } if (adasListener != null) { if (fsmState.getRepeatedPilotNotStandbyReasonCount() == 0) { diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/FunctionStatesMessage.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/FunctionStatesMessage.java index 41485d8854..028c144258 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/FunctionStatesMessage.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/FunctionStatesMessage.java @@ -11,6 +11,7 @@ import com.zhidao.support.adas.high.common.CupidLogUtils; import com.zhidao.support.adas.high.common.ParallelDrivingManager; import com.zhidao.support.adas.high.common.autopilot.ability.AutopilotAbilityManager; import com.zhidao.support.adas.high.protocol.RawData; +import com.zhjt.mogo.adas.data.bean.AutopilotStatistics; import java.util.HashMap; import java.util.Map; @@ -107,7 +108,7 @@ public class FunctionStatesMessage extends MyAbstractMessageHandler { adasListener.onAutopilotState(header.toBuilder().setMsgType(MessagePad.MessageType.MsgTypeAutopilotState).build(), autopilotState); ParallelDrivingManager.getInstance().setAutopilotState(autopilotState.getState()); if (autopilotReview != null) { - autopilotReview.onAutopilotResult(autopilotState.getState()); + autopilotReview.onAutopilotResult(autopilotState.getState(), AutopilotStatistics.Source.FSM); } } From 7e97389c6f170fe38739232227ff5f0e4967caff Mon Sep 17 00:00:00 2001 From: xinfengkun Date: Thu, 28 Nov 2024 15:22:33 +0800 Subject: [PATCH 2/2] =?UTF-8?q?[680][debug]=E4=BF=AE=E5=A4=8D=E5=8F=82?= =?UTF-8?q?=E6=95=B0=E9=81=97=E6=BC=8F=E6=89=93=E5=8C=85=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/mogo/och/common/module/debug/DebugDataDispatch.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OCH/common/common/src/debug/java/com/mogo/och/common/module/debug/DebugDataDispatch.kt b/OCH/common/common/src/debug/java/com/mogo/och/common/module/debug/DebugDataDispatch.kt index cf0640401d..e33aff3eed 100644 --- a/OCH/common/common/src/debug/java/com/mogo/och/common/module/debug/DebugDataDispatch.kt +++ b/OCH/common/common/src/debug/java/com/mogo/och/common/module/debug/DebugDataDispatch.kt @@ -162,7 +162,7 @@ object DebugDataDispatch { newBuilder.src = "2" newBuilder.level = "" var autopilotStatistics = - AutopilotStatistics(1, SystemClock.elapsedRealtime(), null, null ,newBuilder.build()) + AutopilotStatistics(1, SystemClock.elapsedRealtime(), AutopilotStatistics.Source.LIB,null, null ,newBuilder.build()) CallerAutopilotStatisticsListenerManager.invokeAutopilotStatistics(autopilotStatistics) } stopSite -> {