[6.1.0] 兼容map版本刹车回调

This commit is contained in:
wangmingjun
2023-09-19 19:35:36 +08:00
parent d91a75e829
commit 6895b542ba
10 changed files with 72 additions and 26 deletions

View File

@@ -379,6 +379,11 @@ public class OrderModel {
};
private final OchAdasStartFailureCallback mAdasStartFailureListener = new OchAdasStartFailureCallback() {
@Override
public void brakeStatusChanged(boolean isBrakeAvailable) {
}
@Override
public void onStartAutopilotFailure(@NotNull String startFailedCode, @NonNull String startFailedMessage) {
BusAnalyticsManager.INSTANCE.triggerStartAutopilotFailureEventByAdas(startFailedCode, startFailedMessage);

View File

@@ -333,6 +333,9 @@ class DriverM1Model {
mControllerStatusCallback?.onStartAdasFailure()
}
}
override fun brakeStatusChanged(isBrakeAvailable: Boolean) {
}
}
//监听网络变化,避免启动机器时无网导致无法更新订单信息

View File

@@ -6,4 +6,7 @@ package com.mogo.och.common.module.callback
*/
interface OchAdasStartFailureCallback {
fun onStartAutopilotFailure(startFailedCode : String, startFailedMessage : String)
fun brakeStatusChanged(isBrakeAvailable: Boolean)
}

View File

@@ -6,9 +6,13 @@ import androidx.annotation.Nullable;
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotActionsListener;
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatisticsListener;
import com.mogo.eagle.core.function.api.autopilot.IMoGoParallelDrivingActionsListener;
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager;
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotActionsListenerManager;
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotStatisticsListenerManager;
import com.mogo.eagle.core.function.call.autopilot.CallerParallelDrivingActionsListenerManager;
import com.mogo.eagle.core.utilcode.mogo.logger.Logger;
import com.mogo.eagle.core.utilcode.util.ParseVersionUtils;
import com.mogo.och.common.module.callback.OchAdasStartFailureCallback;
import com.zhjt.mogo.adas.data.bean.AutopilotStatistics;
import com.zhjt.mogo.adas.data.bean.UnableLaunchReason;
@@ -20,7 +24,7 @@ import java.util.ArrayList;
* 工控机状态信息回调(判断是否能否启动自动驾驶的回调)
* 目前定的是3秒回调一次
*/
public class OCHAdasAbilityManager implements IMoGoAutopilotActionsListener, IMoGoAutopilotStatisticsListener {
public class OCHAdasAbilityManager implements IMoGoAutopilotActionsListener, IMoGoAutopilotStatisticsListener, IMoGoParallelDrivingActionsListener {
private static final String TAG = OCHAdasAbilityManager.class.getSimpleName();
@@ -85,11 +89,14 @@ public class OCHAdasAbilityManager implements IMoGoAutopilotActionsListener, IMo
//2022.10.9 工控机状态信息回调(判断是否能否启动自动驾驶的回调), 目前定的是3秒回调一次
CallerAutopilotActionsListenerManager.INSTANCE.addListener(TAG, this);
CallerAutopilotStatisticsListenerManager.INSTANCE.addListener(TAG,this);
//map3.6.0且是东风或者红旗的时候返回
CallerParallelDrivingActionsListenerManager.INSTANCE.addListener(TAG,this);
}
private void releaseListeners() {
CallerAutopilotActionsListenerManager.INSTANCE.removeListener(this);
CallerAutopilotStatisticsListenerManager.INSTANCE.removeListener(this);
CallerParallelDrivingActionsListenerManager.INSTANCE.removeListener(TAG);
}
@Override
@@ -97,6 +104,16 @@ public class OCHAdasAbilityManager implements IMoGoAutopilotActionsListener, IMo
this.isAutopilotAbility = isAutopilotAbility;
this.unableAutopilotReasons = unableAutopilotReasons;
Logger.d(TAG, "是否可以启动自动驾驶=" + isAutopilotAbility + " 原因=" + (unableAutopilotReasons == null ? null : unableAutopilotReasons.toString()));
if (unableAutopilotReasons != null && getMapVersion() < 30600) {
//刹车变化回调
Logger.d(TAG,"onAutopilotAbility = " + isAutopilotAbility +
" onAutopilotAbility =" + unableAutopilotReasons.toString());
if (unableAutopilotReasons.toString().contains(UnableLaunchReason.SourceType.CHASSIS.name())
&& unableAutopilotReasons.toString().contains(UnableLaunchReason.UnableType.BRAKE.name())) {
failureCallback.brakeStatusChanged(isAutopilotAbility);
}
}
}
@Override
@@ -112,6 +129,23 @@ public class OCHAdasAbilityManager implements IMoGoAutopilotActionsListener, IMo
}
}
@Override
public void onParallelDrivingAbility(boolean isParallelDrivingAbility, @Nullable ArrayList<UnableLaunchReason> unableParallelDrivingReasons) {
if (unableParallelDrivingReasons != null && getMapVersion() >= 30600) {
//刹车变化回调
Logger.d(TAG,"onParallelDrivingAbility = " + isParallelDrivingAbility +
" unableParallelDrivingReasons =" + unableParallelDrivingReasons.toString());
if (unableParallelDrivingReasons.toString().contains(UnableLaunchReason.SourceType.CHASSIS.name())
&& unableParallelDrivingReasons.toString().contains(UnableLaunchReason.UnableType.BRAKE.name())) {
failureCallback.brakeStatusChanged(isParallelDrivingAbility);
}
}
}
private int getMapVersion(){
return ParseVersionUtils.parseVersion(true, CallerAutoPilotStatusListenerManager.INSTANCE.getDockerVersion());
}
public void release() {
releaseListeners();
}

View File

@@ -382,6 +382,11 @@ public class OrderModel {
};
private final OchAdasStartFailureCallback mAdasStartFailureListener = new OchAdasStartFailureCallback() {
@Override
public void brakeStatusChanged(boolean isBrakeAvailable) {
}
@Override
public void onStartAutopilotFailure(@NotNull String startFailedCode, @NonNull String startFailedMessage) {
BusAnalyticsManager.getInstance().triggerStartAutopilotFailureEventByAdas(startFailedCode, startFailedMessage);

View File

@@ -287,6 +287,11 @@ public class SweeperTaskModel {
};
private final OchAdasStartFailureCallback mAdasStartFailureListener = new OchAdasStartFailureCallback() {
@Override
public void brakeStatusChanged(boolean isBrakeAvailable) {
}
@Override
public void onStartAutopilotFailure(@NotNull String startFailedCode, @NonNull String startFailedMessage) {
SweeperAnalyticsManager.getInstance().triggerStartAutopilotFailureEventByAdas(startFailedCode, startFailedMessage);

View File

@@ -1064,6 +1064,11 @@ public class TaxiModel {
};
private final OchAdasStartFailureCallback mAdasStartFailureListener = new OchAdasStartFailureCallback() {
@Override
public void brakeStatusChanged(boolean isBrakeAvailable) {
}
@Override
public void onStartAutopilotFailure(@NotNull String startFailedCode, @NonNull String startFailedMessage) {
TaxiAnalyticsManager.INSTANCE.triggerStartAutopilotFailureEventByAdas(startFailedCode, startFailedMessage);

View File

@@ -235,7 +235,10 @@ object TaxiPassengerModel {
override fun onStartAutopilotFailure(startFailedCode: String, startFailedMessage: String) {
TaxiPassengerAnalyticsManager.triggerStartAutopilotFailureEventByAdas(startFailedCode, startFailedMessage)
}
override fun brakeStatusChanged(isBrakeAvailable: Boolean) {
}
}
private val iMsgBoxEventListener: IMsgBoxEventListener = object : IMsgBoxEventListener {
override fun onSummaryClickEvent() {
if (currentOCHOrder == null) {

View File

@@ -20,14 +20,12 @@ import com.mogo.eagle.core.data.deva.chain.ChainConstant
import com.mogo.eagle.core.data.map.MogoLocation
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationGCJ02Listener
import com.mogo.eagle.core.function.api.autopilot.IMoGoParallelDrivingActionsListener
import com.mogo.eagle.core.function.api.autopilot.IMoGoPlanningRottingListener
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager.updateAutopilotControlParameters
import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager
import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager.getChassisLocationGCJ02
import com.mogo.eagle.core.function.call.autopilot.CallerParallelDrivingActionsListenerManager
import com.mogo.eagle.core.function.call.autopilot.CallerPlanningRottingListenerManager
import com.mogo.eagle.core.network.utils.GsonUtil
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
@@ -78,7 +76,6 @@ import com.mogo.och.taxi.ui.debug.DebugView
import com.mogo.och.taxi.utils.RxJavaUtils
import com.mogo.och.taxi.utils.TaxiAnalyticsManager
import com.mogo.och.taxi.utils.TaxiTrajectoryManager
import com.zhjt.mogo.adas.data.bean.UnableLaunchReason
import com.zhjt.service.chain.ChainLog
import io.reactivex.Observable
import io.reactivex.android.schedulers.AndroidSchedulers
@@ -230,8 +227,6 @@ object TaxiTaskModel {
AbnormalFactorsLoopManager.startLoopAbnormalFactors(mContext)
TrajectoryAndDistanceManager.addDistanceListener(TAG, localCalculateDistanceListener)
TrajectoryAndDistanceManager.addTrajectoryListener(TAG, localCalculateTrajectoryListener)
//3.6.0后平行驾驶.刹车 且只用于东风和红旗. 3.6.0前没有
CallerParallelDrivingActionsListenerManager.addListener(TAG,mParallelDrivingActionsListener)
}
private fun releaseListeners() {
@@ -248,28 +243,8 @@ object TaxiTaskModel {
CallerPlanningRottingListenerManager.removeListener(mMogoAutopilotPlanningListener)
OCHAdasAbilityManager.getInstance().setAdasStartFailureCallback(null)
AbnormalFactorsLoopManager.stopLoopAbnormalFactors()
CallerParallelDrivingActionsListenerManager.removeListener(TAG)
}
// 监听平行驾驶、刹车, 试用于MAP3.6.0以上 且只用于东风和红旗
private val mParallelDrivingActionsListener: IMoGoParallelDrivingActionsListener =
object : IMoGoParallelDrivingActionsListener {
override fun onParallelDrivingAbility(
isParallelDrivingAbility: Boolean,
unableParallelDrivingReasons: ArrayList<UnableLaunchReason>?
) {
if (unableParallelDrivingReasons != null) {
if (unableParallelDrivingReasons.toString().contains(UnableLaunchReason.SourceType.CHASSIS.name)
&& unableParallelDrivingReasons.toString().contains(UnableLaunchReason.UnableType.BRAKE.name)) {
//刹车变化回调
d(TAG,"onParallelDrivingAbility = $isParallelDrivingAbility," +
" unableParallelDrivingReasons = ${unableParallelDrivingReasons.toString()}" )
handleBrakeStatusChange(isParallelDrivingAbility)
}
}
}
}
/**
* brakeStatus: true: 恢复启动自驾
* false: 暂停启动自驾
@@ -465,6 +440,11 @@ object TaxiTaskModel {
mADASStatusCallback?.onStartAdasFailure()
}
}
override fun brakeStatusChanged(isBrakeAvailable: Boolean) {
//刹车: true 松开, false 踩下
handleBrakeStatusChange(isBrakeAvailable)
}
}
private val mMogoOnSocketMessageListener =

View File

@@ -346,6 +346,9 @@ object TaxiPassengerModel {
startFailedMessage
)
}
override fun brakeStatusChanged(isBrakeAvailable: Boolean) {
}
}
private val iMsgBoxEventListener: IMsgBoxEventListener = object : IMsgBoxEventListener {