[2.12.0] taxi/bus自动驾驶启动失败返回逻辑处理

This commit is contained in:
wangmingjun
2022-11-09 21:32:03 +08:00
parent 26da04fc37
commit a9333e0123
9 changed files with 56 additions and 15 deletions

View File

@@ -0,0 +1,11 @@
package com.mogo.och.bus.callback;
/**
* Created on 2021/9/8
*
* Model->Presenter回调ADAS相关自动驾驶状态回调到达终点等等
*/
public interface IBusADASStatusCallback {
//自驾返回失败
void onStartAdasFailure();
}

View File

@@ -385,14 +385,18 @@ public abstract class BaseBusTabFragment<V extends IView, P extends Presenter<V>
return;
}
if (isAnimateRunning){
stopAutopilotAnimation();
updateAutopilotStatus(autopilotStatus);
stopAnimAndUpdateBtnStatus();
}else {
setAutopilotBtnStatus(autopilotStatus);
}
}
public void stopAnimAndUpdateBtnStatus(){
stopAutopilotAnimation();
updateAutopilotStatus(CallerAutoPilotStatusListenerManager.INSTANCE.getAutoPilotStatusInfo().getState());
}
/**
* 隐藏【自动驾驶】按钮
*/

View File

@@ -40,6 +40,7 @@ import com.mogo.och.bus.bean.BusRoutesResponse;
import com.mogo.och.bus.bean.BusRoutesResult;
import com.mogo.och.bus.bean.BusStationBean;
import com.mogo.och.bus.bean.WriteOffPassenger;
import com.mogo.och.bus.callback.IBusADASStatusCallback;
import com.mogo.och.bus.callback.IBusControllerStatusCallback;
import com.mogo.och.bus.callback.IPassengerCallback;
import com.mogo.och.bus.callback.IRefreshBusStationsCallback;
@@ -105,6 +106,7 @@ public class BusOrderModel {
private ISlidePannelHideCallback slidePanelHideCallback;
private IBusControllerStatusCallback mControllerStatusCallback; //Model->PresenterVR mode等
private IPassengerCallback mPassengerCallback; //乘客核销回调
private IBusADASStatusCallback mADASStatusCallback;
List<BusRoutePlanningUpdateReqBean.Result> points = new ArrayList<>();//全路径信息
@@ -203,6 +205,10 @@ public class BusOrderModel {
});
}
public void setAdasStatusCallback(IBusADASStatusCallback callback){
this.mADASStatusCallback = callback;
}
public void setRefreshBusStationsCallback(IRefreshBusStationsCallback callback){
this.refreshBusStationsCallback = callback;
}
@@ -325,6 +331,10 @@ public class BusOrderModel {
@Override
public void onStartAutopilotFailure(@NonNull String startFailedMessage) {
BusAnalyticsManager.getInstance().triggerStartAutopilotFailureEvent(startFailedMessage);
if (mADASStatusCallback != null){
CallerLogger.INSTANCE.e( M_BUS + TAG, "mAdasStartFailureListener = "+startFailedMessage );
mADASStatusCallback.onStartAdasFailure();
}
}
};

View File

@@ -21,6 +21,7 @@ import com.mogo.eagle.core.utilcode.util.UiThreadHandler;
import com.mogo.och.bus.R;
import com.mogo.och.bus.bean.BusStationBean;
import com.mogo.och.bus.bean.WriteOffPassenger;
import com.mogo.och.bus.callback.IBusADASStatusCallback;
import com.mogo.och.bus.callback.IBusControllerStatusCallback;
import com.mogo.och.bus.callback.IPassengerCallback;
import com.mogo.och.bus.callback.IRefreshBusStationsCallback;
@@ -51,7 +52,7 @@ import system_master.SystemStatusInfo;
*/
public class BusPresenter extends Presenter<BusFragment>
implements IRefreshBusStationsCallback, ISlidePannelHideCallback
, IMoGoAutopilotStatusListener, IBusControllerStatusCallback, ILoginCallback, IPassengerCallback {
, IMoGoAutopilotStatusListener, IBusControllerStatusCallback, ILoginCallback, IPassengerCallback, IBusADASStatusCallback {
private static final String TAG = "BusPresenter";
@@ -86,6 +87,7 @@ public class BusPresenter extends Presenter<BusFragment>
BusOrderModel.getInstance().setSlidePanelHideCallback(this);
BusOrderModel.getInstance().setControllerStatusCallback(this);
BusOrderModel.getInstance().setPassengerCallback(this);
BusOrderModel.getInstance().setAdasStatusCallback(this);
}
public void releaseListener() {
@@ -93,6 +95,7 @@ public class BusPresenter extends Presenter<BusFragment>
BusOrderModel.getInstance().setSlidePanelHideCallback(null);
BusOrderModel.getInstance().setControllerStatusCallback(null);
BusOrderModel.getInstance().setPassengerCallback(null);
BusOrderModel.getInstance().setAdasStatusCallback(null);
OCHAdasAbilityManager.getInstance().release();
}
@@ -311,4 +314,9 @@ public class BusPresenter extends Presenter<BusFragment>
VoiceNotice.showNotice("核验通过", AIAssist.LEVEL3);
}
}
@Override
public void onStartAdasFailure() {
runOnUIThread(() -> mView.stopAnimAndUpdateBtnStatus());
}
}

View File

@@ -108,12 +108,12 @@ public class OCHAdasAbilityManager implements IMoGoAutopilotActionsListener, IMo
@Override
public void onAutopilotStatistics(@Nullable AutopilotStatistics statistics) {
if (statistics == null || statistics.failedMessage == null) return;
Logger.d(TAG, "failedMessage= " + statistics.failedMessage.getMsg());
if (statistics == null) return;
Logger.d(TAG, "AutopilotStatistics= " + statistics.status);
if (failureCallback != null && 1 == statistics.status){
startFailedMessage = statistics.failedMessage.getMsg();
failureCallback.onStartAutopilotFailure(startFailedMessage);
Logger.d(TAG, "startFailedMessage= " + startFailedMessage);
Logger.d(TAG, "statistics-startFailedMessage= " + startFailedMessage);
}
}

View File

@@ -20,4 +20,7 @@ public interface ITaxiADASStatusCallback {
//人机共驾
void onManMachineCoDriving();
//自驾返回失败
void onStartAdasFailure();
}

View File

@@ -1017,6 +1017,10 @@ public class TaxiModel {
@Override
public void onStartAutopilotFailure(@NonNull String startFailedMessage) {
TaxiAnalyticsManager.getInstance().triggerStartAutopilotFailureEvent(startFailedMessage);
if (mADASStatusCallback != null){
CallerLogger.INSTANCE.e(M_TAXI + TAG, "mAdasStartFailureListener = "+startFailedMessage);
mADASStatusCallback.onStartAdasFailure();
}
}
};

View File

@@ -226,6 +226,11 @@ public class TaxiPresenter extends Presenter<TaxiFragment> implements ITaxiADASS
preAutopilotStatus = IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING;
}
@Override
public void onStartAdasFailure() {
runOnUIThread(() -> mView.stopAnimAndUpdateBtnStatus());
}
@Override
public void onServiceDataUpdate(long dailyTimeDuration, long dailyOrderNum) {
runOnUIThread(() -> mView.onServiceDataUpdate(dailyTimeDuration,dailyOrderNum));

View File

@@ -354,19 +354,15 @@ public abstract class BaseTaxiTabFragment<V extends IView, P extends Presenter<V
// 3. 其他过程直接更新
startOrStopLoadingAnim(false);
autopilotStatusAnimchanged(status);
if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING == mPrevAPStatus) {
if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE == status) {
// 2->1
// AIAssist.getInstance(getContext()).speakTTSVoice("已进入人工驾驶模式");
} else if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE == status) {
// 2->0
// AIAssist.getInstance(getContext()).speakTTSVoice("自动驾驶已停止,请人工接管");
}
}
mPrevAPStatus = status;
});
}
public void stopAnimAndUpdateBtnStatus(){
startOrStopLoadingAnim(false);
startAutopilotDone(false);
}
public void onManMachineCoDriving(int manMachineCoDriving){
if (mPrevAPStatus != manMachineCoDriving){
autopilotStatusAnimchanged(manMachineCoDriving);