[282 taxi-d taxi-p] 1、解藕订单状态流转和自动驾驶启动结果

This commit is contained in:
wangmingjun
2022-07-21 15:56:13 +08:00
parent f274e19e80
commit e891bcf906
5 changed files with 40 additions and 41 deletions

View File

@@ -872,9 +872,8 @@ public class TaxiPassengerModel implements IOCHTaxiPassengerNaviChangedCallback
return;
}
if (mCurrentOCHOrder.orderStatus != TaxiPassengerOrderStatusEnum.UserArriveAtStart.getCode()) {
ToastUtils.showShort("当前订单状态异常!");
return;
if (mCurrentOCHOrder.orderStatus == TaxiPassengerOrderStatusEnum.UserArriveAtStart.getCode()){
startServicePilotDone();
}
double startWgsLon = mCurrentOCHOrder.startSitePoint.get(0);
@@ -903,6 +902,7 @@ public class TaxiPassengerModel implements IOCHTaxiPassengerNaviChangedCallback
+ " ,startSiteName=" + mCurrentOCHOrder.startSiteAddr
+ " ,endSiteName=" + mCurrentOCHOrder.endSiteAddr);
TaxiPassengerAnalyticsManager.getInstance().triggerStartAutopilotEvent(false, false,
mCurrentOCHOrder.startSiteAddr, mCurrentOCHOrder.endSiteAddr, mCurrentOCHOrder.orderNo);
}

View File

@@ -115,6 +115,8 @@ public class TaxiModel {
private ITaxiControllerStatusCallback mControllerStatusCallback; //Model->PresenterVR mode等
private ITaxiOrderStatusCallback mOrderStatusCallback; //Model->Presenter订单变更
private volatile boolean isRestartAutopilot = false;
private List<LatLng> mRoutePoints = new ArrayList<>();
private double mLongitude, mLatitude;
@@ -787,7 +789,7 @@ public class TaxiModel {
new TaxiServiceCallback<TaxiDataBaseRespBean>() {
@Override
public void onSuccess(TaxiDataBaseRespBean data) {
if (data != null && data.code == 0 && data.data.equals(true))
if (data != null && data.code == 0)
updateAutopilotStatus(data.data.equals(true));
}
@@ -840,6 +842,7 @@ public class TaxiModel {
mCurrentOCHOrder = null;
TaxiTrajectoryManager.getInstance().syncTrajectoryInfo();
SharedPrefsMgr.getInstance(mContext).remove(TaxiConst.SP_KEY_OCH_TAXI_ORDER);
isRestartAutopilot = false;
if (FunctionBuildConfig.isDemoMode) {
// 当美化模式(演示模式)开启时: 取消或订单已完成时置false
FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData = false;
@@ -860,9 +863,7 @@ public class TaxiModel {
/**
* 以当前订单为基础,开启自动驾驶
*
* @param isRestart 开启自动驾驶
*/
**/
@ChainLog(
linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_AUTOPILOT,
linkCode = CHAIN_LINK_ADAS,
@@ -871,20 +872,27 @@ public class TaxiModel {
paramIndexes = {-1}, //
clientPkFileName = "sn"
)
public void startAutoPilot(boolean isRestart) {
public void startAutoPilot() {
if (!checkCurrentOCHOrder()) {
CallerLogger.INSTANCE.e(M_TAXI + TAG, "no order or order is empty.");
ToastUtils.showShort("当前订单不存在或异常!");
return;
}
if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE
== CallerAutoPilotStatusListenerManager.INSTANCE.getAutoPilotStatusInfo().getState()) {
// TODO: 2021/11/28 工控机存在刚开始状态为0但是可以开启变为2工控机解决前不显示此toast
// ToastUtils.showShort("自动驾驶状态为不可用!");
}
//点击开始自动驾驶按钮订单状态去流转, 不再与自动驾驶是否启动成功挂钩
if (mCurrentOCHOrder.orderStatus == TaxiOrderStatusEnum.UserArriveAtStart.getCode()){
startServicePilotDone();
isRestartAutopilot = false;
}else {
isRestartAutopilot = true;
}
double startWgsLon = mCurrentOCHOrder.startSitePoint.get(0);
double startWgsLat = mCurrentOCHOrder.startSitePoint.get(1);
double endWgsLon = mCurrentOCHOrder.endSitePoint.get(0);
@@ -907,13 +915,9 @@ public class TaxiModel {
CallerLogger.INSTANCE.d(M_TAXI + TAG, "start autopilot with parameter: %s", GsonUtil.jsonFromObject(parameters)
+ " ,startSiteName=" + mCurrentOCHOrder.startSiteAddr + " ,endSiteName=" + mCurrentOCHOrder.endSiteAddr);
TaxiAnalyticsManager.getInstance().triggerStartAutopilotEvent(isRestart, false,
TaxiAnalyticsManager.getInstance().triggerStartAutopilotEvent(isRestartAutopilot, false,
mCurrentOCHOrder.startSiteAddr, mCurrentOCHOrder.endSiteAddr, mCurrentOCHOrder.orderNo);
if (DebugConfig.isDebug()) {
// ToastUtils.showShort("Start autopilot!");
}
// TODO: 2021/8/20 无工控机环境, 手动调起自动驾驶开启返回结果,有工控机环境要删除
// OCHTaxiUiController.getInstance().onAutoPilotStatusChanged( IMogoAdasOCHCallback.STATUS_AUTOPILOT_RUNNING, "开启自动驾驶" );
}
@@ -1080,29 +1084,21 @@ public class TaxiModel {
if (state == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING) {
if (mADASStatusCallback != null) mADASStatusCallback.onAutopilotRunning();
if (mCurrentOCHOrder != null
&& getCurOrderStatus() == TaxiOrderStatusEnum.UserArriveAtStart
&& state != mPrevAPStatus) {
// 当高频返回autopilot 2时不重复调用订单状态变更
mPrevAPStatus = state; // 每个状态单独赋值解决无订单时已经是2的状态导致的新订单来时无法进入此逻辑更新状态
&& TaxiOrderStatusEnum.OnTheWayToEnd.getCode() == mCurrentOCHOrder.orderStatus){
if (state != mPrevAPStatus) {
// 当高频返回autopilot 2时不重复调用订单状态变更
mPrevAPStatus = state; // 每个状态单独赋值解决无订单时已经是2的状态导致的新订单来时无法进入此逻辑更新状态
startServicePilotDone();
TaxiAnalyticsManager.getInstance().triggerStartAutopilotEvent(isRestartAutopilot, true,
mCurrentOCHOrder.startSiteAddr, mCurrentOCHOrder.endSiteAddr, mCurrentOCHOrder.orderNo);
TaxiAnalyticsManager.getInstance().triggerStartAutopilotEvent(false, true,
mCurrentOCHOrder.startSiteAddr, mCurrentOCHOrder.endSiteAddr, mCurrentOCHOrder.orderNo);
if (FunctionBuildConfig.isDemoMode) {
// 当美化模式(演示模式)开启时: 订单对应自动驾驶开启后置true
FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData = true;
CallerAutoPilotManager.INSTANCE.setDemoMode(true);
CallerLogger.INSTANCE.d(M_TAXI + TAG, "美化模式-ignore置为true到达出发点且已开启自动驾驶");
if (FunctionBuildConfig.isDemoMode) {
// 当美化模式(演示模式)开启时: 订单对应自动驾驶开启后置true
FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData = true;
CallerAutoPilotManager.INSTANCE.setDemoMode(true);
CallerLogger.INSTANCE.d(M_TAXI + TAG, "美化模式-ignore置为true到达出发点且已开启自动驾驶");
}
}
} else if (mCurrentOCHOrder != null
&& getCurOrderStatus() == TaxiOrderStatusEnum.OnTheWayToEnd
&& state != mPrevAPStatus) {
mPrevAPStatus = state;
// 接管后再次启动成功埋点
TaxiAnalyticsManager.getInstance().triggerStartAutopilotEvent(true, true,
mCurrentOCHOrder.startSiteAddr, mCurrentOCHOrder.endSiteAddr, mCurrentOCHOrder.orderNo);
}
} else if (state == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE) {
mPrevAPStatus = state;

View File

@@ -87,10 +87,9 @@ public class TaxiPresenter extends Presenter<TaxiFragment> implements ITaxiADASS
/**
* 开启自动驾驶
* @param isRestart 是否是接管后重启自动驾驶
*/
public void startAutoPilot(boolean isRestart) {
TaxiModel.getInstance().startAutoPilot(isRestart);
public void startAutoPilot() {
TaxiModel.getInstance().startAutoPilot();
}
/**

View File

@@ -63,7 +63,7 @@ public class TaxiFragment extends BaseTaxiTabFragment<TaxiFragment, TaxiPresente
mPresenter.getCurOrderStatus() == TaxiOrderStatusEnum.UserArriveAtStart)
&& !isStarting) {
CallerLogger.INSTANCE.d(M_TAXI + TAG, "restartAutopilot");
mPresenter.startAutoPilot(true);
mPresenter.startAutoPilot();
startOrStopLoadingAnim(true);
}
}
@@ -215,7 +215,7 @@ public class TaxiFragment extends BaseTaxiTabFragment<TaxiFragment, TaxiPresente
public void startAutoPilot() {
if (!isStarting){
mPresenter.startAutoPilot(false);
mPresenter.startAutoPilot();
startOrStopLoadingAnim(true);
}
}
@@ -362,7 +362,7 @@ public class TaxiFragment extends BaseTaxiTabFragment<TaxiFragment, TaxiPresente
});
findViewById(R.id.test_bar_on_the_way_to_end).setOnClickListener(v -> {
if (!isStarting){
mPresenter.startAutoPilot(false);
mPresenter.startAutoPilot();
startOrStopLoadingAnim(true);
}
TaxiModel.getInstance().setOnTheWayToEndStation();

View File

@@ -1,17 +1,19 @@
package com.mogo.och.taxi.utils;
import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAXI;
import android.text.TextUtils;
import com.mogo.cloud.passport.MoGoAiCloudClientConfig;
import com.mogo.commons.debug.DebugConfig;
import com.mogo.eagle.core.data.app.AppConfigInfo;
import com.mogo.eagle.core.function.call.analytics.AnalyticsManager;
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
import com.mogo.eagle.core.utilcode.util.DateTimeUtils;
import com.mogo.eagle.core.utilcode.util.UiThreadHandler;
import com.mogo.och.taxi.constant.TaxiConst;
import java.util.HashMap;
import java.util.Map;
/**
* OCH Taxi埋点工具
@@ -63,6 +65,8 @@ public class TaxiAnalyticsManager {
mStartAutopilotParams.put(TaxiConst.EVENT_PARAM_END_NAME, endName);
mStartAutopilotParams.put(TaxiConst.EVENT_PARAM_ORDER_NUMBER, orderNo);
// CallerLogger.INSTANCE.d(M_TAXI + "埋点==","restart = "+restart+", send= "+send);
if (send) {
// 开启成功,上报埋点
if (startAutopilotRunnable != null &&