[fea]
[启动自驾成功添加第三种判断方式、带上成功来源]
This commit is contained in:
yangyakun
2024-11-28 19:01:38 +08:00
parent e4e632f9aa
commit 6cfe6e6a77
14 changed files with 97 additions and 67 deletions

View File

@@ -314,6 +314,10 @@ class DriverM1Model {
mControllerStatusCallback?.onStartAdasFailure()
}
}
override fun onStartAutopilotSuccess(type:String) {
DriverM1Model.get().triggerStartServiceEvent(false, true,2,type)
}
}
//监听网络变化,避免启动机器时无网导致无法更新订单信息
@@ -483,7 +487,7 @@ class DriverM1Model {
return;
}
triggerStartServiceEvent(false, false,0)
triggerStartServiceEvent(false, false,0,"")
val parameters = initAutopilotControlParameters()
if (null == parameters) {
@@ -521,7 +525,7 @@ class DriverM1Model {
LoginStatusManager.loginOut()
}
fun triggerStartServiceEvent(isRestart: Boolean, send: Boolean,source:Int) {
fun triggerStartServiceEvent(isRestart: Boolean, send: Boolean,source:Int,type:String) {
if (mCurrentOrder == null) {
return
}
@@ -534,6 +538,7 @@ class DriverM1Model {
OchAutopilotAnalytics.triggerStartAutopilotEvent(
isRestart, send,
startSiteName, endSiteName, it, orderNo?:"", System.currentTimeMillis(),
type,
source
)
}

View File

@@ -135,18 +135,9 @@ class DriverM1Presenter(view: DriverM1Fragment?) :
override fun onAutopilotStatusResponse(state: Int) {
when(state){
// IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE -> { //
//
// }
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING ->{
DriverM1Model.get().triggerStartServiceEvent(false,true,0)
DriverM1Model.get().triggerStartServiceEvent(false,true,0,"")
}
// IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE ->{
//
// }
// IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING ->{
//
// }
}
}
@@ -154,7 +145,7 @@ class DriverM1Presenter(view: DriverM1Fragment?) :
super.onAutopilotStatusResponseFromCan(state)
when(state) {
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING -> {
DriverM1Model.get().triggerStartServiceEvent(false, true,1)
DriverM1Model.get().triggerStartServiceEvent(false, true,1,"")
}
}
}

View File

@@ -7,4 +7,5 @@ package com.mogo.och.common.module.callback
interface OchAdasStartFailureCallback {
fun onStartAutopilotFailure(startFailedCode : String, startFailedMessage : String)
fun onStartAutopilotSuccess(type:String)
}

View File

@@ -137,25 +137,31 @@ public class OCHAdasAbilityManager implements IMoGoAutopilotActionsListener, IMo
public void onAutopilotStatistics(@Nullable AutopilotStatistics statistics) {
if (statistics == null) return;
Logger.d(TAG, "AutopilotStatistics= " + statistics.status);
if (failureCallback != null && 1 == statistics.status) {
if (statistics.fsmState != null) {
startFailedCode = "";
if (statistics.fsmState.hasSession()) {
Fsm2024.Session session = statistics.fsmState.getSession();
if (session.hasSessionFailReason()) {
startFailedMessage = session.getSessionFailReason();
if (failureCallback != null) {
if(statistics.status==1) {
if (statistics.fsmState != null) {
startFailedCode = "";
if (statistics.fsmState.hasSession()) {
Fsm2024.Session session = statistics.fsmState.getSession();
if (session.hasSessionFailReason()) {
startFailedMessage = session.getSessionFailReason();
}
}
} else if (statistics.failedMessage != null) {
startFailedCode = statistics.failedMessage.getCode();
startFailedMessage = statistics.failedMessage.getMsg();
}
} else if (statistics.failedMessage != null) {
startFailedCode = statistics.failedMessage.getCode();
startFailedMessage = statistics.failedMessage.getMsg();
failureCallback.onStartAutopilotFailure(startFailedCode, startFailedMessage);
if (!AppIdentityModeUtils.isSweeper(FunctionBuildConfig.appIdentityMode)) {
LineManager.invokeStartAutopilotFailure(startFailedCode, startFailedMessage);
}
Logger.d(TAG, String.format("statistics-startFailedCode = s%; startFailedMessage = s%",
startFailedCode, startFailedMessage));
}else if(statistics.status==0) {
//启动自驾成功
failureCallback.onStartAutopilotSuccess(statistics.source.toString());
LineManager.INSTANCE.triggerStartServiceEvent(true, 2,statistics.source.toString());
}
failureCallback.onStartAutopilotFailure(startFailedCode, startFailedMessage);
if (!AppIdentityModeUtils.isSweeper(FunctionBuildConfig.appIdentityMode)) {
LineManager.invokeStartAutopilotFailure(startFailedCode, startFailedMessage);
}
Logger.d(TAG, String.format("statistics-startFailedCode = s%; startFailedMessage = s%",
startFailedCode, startFailedMessage));
}
}

View File

@@ -72,7 +72,7 @@ object OchAutoPilotStatusListenerManager : CallerBase<IOchAutopilotStatusListene
}
}
if(newValue==IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING) {
LineManager.triggerStartServiceEvent(true, 0)
LineManager.triggerStartServiceEvent(true, 0,"")
}
@@ -225,7 +225,7 @@ object OchAutoPilotStatusListenerManager : CallerBase<IOchAutopilotStatusListene
}
when (state) {
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING -> {
LineManager.triggerStartServiceEvent(true,1)
LineManager.triggerStartServiceEvent(true,1,"")
}
}
}

View File

@@ -29,6 +29,7 @@ object OchAutopilotAnalytics {
private const val EVENT_PARAM_END_NAME = "end_name"
private const val EVENT_PARAM_LINE_ID = "line_id"
private const val EVENT_PARAM_ORDER_NUMBER = "order_num"
private const val EVENT_PARAM_AUTOPILOT_FROM = "AUTOPILOT_FROM"
private const val EVENT_PARAM_UNABLE_START_REASON = "unable_start_reason"
private const val EVENT_PARAM_MAP_ORIGINAL_DATA = "map_original_data" // 域控原始状态信息
private const val EVENT_PARAM_AUTOPILOT_STATE = "autopilot_state" //原始的自动驾驶状态
@@ -173,6 +174,7 @@ object OchAutopilotAnalytics {
lineId: Int,
orderId:String?,
triggerDate: Long,
type:String? = "",
source:Int = 0
) {
OchChainLogManager.writeChainLogAutopilot("自驾流程","send:${send}_${restart}_${startName}_${endName}_${lineId}_${orderId}_${source}_${triggerDate}")
@@ -192,6 +194,7 @@ object OchAutopilotAnalytics {
mStartAutopilotParams[EVENT_PARAM_START_FAILURE_CODE] = ""
mStartAutopilotParams[EVENT_PARAM_START_FAILURE_MSG] = ""
mStartAutopilotParams[EVENT_PARAM_START_RESULT] = true
mStartAutopilotParams[EVENT_PARAM_AUTOPILOT_FROM] = type?:""
mStartAutopilotParams[EVENT_PARAM_START_RESULT_SOURCE] = source
// 自动驾驶状态变更时间
mStartAutopilotParams[EVENT_PARAM_START_SUCCESS_TIME] = DateTimeUtils.getTimeText(triggerDate,DateTimeUtils.yyyy_MM_dd_HH_mm_ss_SSS)

View File

@@ -482,7 +482,7 @@ object LineManager : CallerBase<ILineCallback>() {
return
}
triggerStartServiceEvent(false,0)
triggerStartServiceEvent(false,0,"")
val parameters = initAutopilotControlParameters()
if (null == parameters) {
@@ -514,7 +514,7 @@ object LineManager : CallerBase<ILineCallback>() {
}
}
fun triggerStartServiceEvent(send: Boolean,source:Int) {
fun triggerStartServiceEvent(send: Boolean,source:Int,type:String) {
getStationsWithLine { start, end, lineInfo ->
OchAutopilotAnalytics.triggerStartAutopilotEvent(
isFirstStartAutopilot,
@@ -524,6 +524,7 @@ object LineManager : CallerBase<ILineCallback>() {
lineInfo.lineId.toInt(),
"",
System.currentTimeMillis(),
type,
source
)
}

View File

@@ -244,6 +244,12 @@ public class OrderModel {
private final OchAdasStartFailureCallback mAdasStartFailureListener = new OchAdasStartFailureCallback() {
@Override
public void onStartAutopilotSuccess(String type) {
OrderModel.getInstance().triggerStartServiceEvent(
OrderModel.getInstance().isRestartAutopilot(), true,2,type);
}
@Override
public void onStartAutopilotFailure(@NotNull String startFailedCode, @NonNull String startFailedMessage) {
if (mADASStatusCallback != null && !FunctionBuildConfig.isDemoMode) {
@@ -557,7 +563,7 @@ public class OrderModel {
firstStartAutopilot++;
triggerStartServiceEvent(isRestart, false,0);
triggerStartServiceEvent(isRestart, false,0,"");
AutopilotControlParameters parameters = initAutopilotControlParameters(leaveIndex);
if (null == parameters) {
@@ -990,14 +996,14 @@ public class OrderModel {
LoginStatusManager.loginOut();
}
public void triggerStartServiceEvent(boolean isRestart, boolean send,int source) {
public void triggerStartServiceEvent(boolean isRestart, boolean send,int source,String type) {
if (stationList == null || backgroundCurrentStationIndex >= stationList.size() - 1) {
return;
}
BusStationBean currentStation = stationList.get(backgroundCurrentStationIndex);
BusStationBean nextStation = stationList.get(backgroundCurrentStationIndex + 1);
OchAutopilotAnalytics.INSTANCE.triggerStartAutopilotEvent(isRestart, send,
currentStation.getName(), nextStation.getName(), busRoutesResult.getLineId(), "", System.currentTimeMillis(),source);
currentStation.getName(), nextStation.getName(), busRoutesResult.getLineId(), "", System.currentTimeMillis(),type,source);
}
public void triggerUpdateStartAutoPilotSessionId(long sessionId) {

View File

@@ -208,7 +208,7 @@ public class BusPresenter extends Presenter<ShuttleFragment>
break;
case IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING:
OrderModel.getInstance().triggerStartServiceEvent(
OrderModel.getInstance().isRestartAutopilot(), true,0);
OrderModel.getInstance().isRestartAutopilot(), true,0,"");
// 改变UI自动驾驶状态
UiThreadHandler.post(new Runnable() {
@Override
@@ -236,7 +236,7 @@ public class BusPresenter extends Presenter<ShuttleFragment>
public void onAutopilotStatusResponseFromCan(int state) {
if (state == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING) {
OrderModel.getInstance().triggerStartServiceEvent(
OrderModel.getInstance().isRestartAutopilot(), true,1);
OrderModel.getInstance().isRestartAutopilot(), true,1,"");
}
}

View File

@@ -297,6 +297,11 @@ public class SweeperOperateTaskModel {
private final OchAdasStartFailureCallback mAdasStartFailureListener = new OchAdasStartFailureCallback() {
@Override
public void onStartAutopilotSuccess(String type) {
}
@Override
public void onStartAutopilotFailure(@NotNull String startFailedCode, @NonNull String startFailedMessage) {
DebugView.Companion.printInfoMsg("[启自驾] 执行失败code=" + startFailedCode + ", msg=" + startFailedMessage);

View File

@@ -287,20 +287,7 @@ object TaxiTaskModel {
}
override fun onAutopilotStatusResponseFromCan(state: Int) {
super.onAutopilotStatusResponseFromCan(state)
if (state == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING) {
if ((QueryCurrentTaskRespBean.isTaskStartTaskType(mCurrentTaskWithOrder))) {
OchAutopilotAnalytics.triggerStartAutopilotEvent(
isRestartAutopilot,
true,
mCurrentTaskWithOrder!!.order!!.orderStartSite!!.siteName,
mCurrentTaskWithOrder!!.order!!.orderEndSite!!.siteName,
mCurrentTaskWithOrder!!.lineId.toInt(),
mCurrentTaskWithOrder!!.order!!.orderNo,
System.currentTimeMillis(),1
)
}
}
}
override fun onAutopilotStatusResponse(state: Int) {
@@ -308,15 +295,6 @@ object TaxiTaskModel {
if (state == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING) {
DebugView.printInfoMsg("[自驾状态变化] afterValue=STATUS_AUTOPILOT_RUNNINGmeaning=自动驾驶中")
if ((QueryCurrentTaskRespBean.isTaskStartTaskType(mCurrentTaskWithOrder))) {
OchAutopilotAnalytics.triggerStartAutopilotEvent(
isRestartAutopilot,
true,
mCurrentTaskWithOrder!!.order!!.orderStartSite!!.siteName,
mCurrentTaskWithOrder!!.order!!.orderEndSite!!.siteName,
mCurrentTaskWithOrder!!.lineId.toInt(),
mCurrentTaskWithOrder!!.order!!.orderNo,
System.currentTimeMillis(),0
)
setBeautificationMode(true)
}
} else if (state == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE) {
@@ -480,6 +458,10 @@ object TaxiTaskModel {
)
}
}
override fun onStartAutopilotSuccess(type:String) {
}
}
//监听网络变化,避免启动机器时无网导致无法更新订单信息

View File

@@ -124,6 +124,7 @@ object AutopilotManager : IOchAutopilotStatusListener {
lineId.toInt(),
TaxiPassengerModel.currentOCHOrder!!.orderNo,
System.currentTimeMillis(),
"",
0
)
OchAutopilotAnalytics.triggerUpdateStartAutoPilotSessionId(sessionId)
@@ -222,6 +223,7 @@ object AutopilotManager : IOchAutopilotStatusListener {
TaxiPassengerModel.currentOCHOrder!!.orderNo.toInt(),
TaxiPassengerModel.currentLineId.toString(),
System.currentTimeMillis(),
"",
1
)
}
@@ -242,6 +244,7 @@ object AutopilotManager : IOchAutopilotStatusListener {
TaxiPassengerModel.currentOCHOrder!!.orderNo.toInt(),
TaxiPassengerModel.currentLineId.toString(),
System.currentTimeMillis(),
"",
0
)
if(needSpeakByStartAutopilot) {

View File

@@ -19,9 +19,7 @@ import com.mogo.eagle.core.utilcode.util.GsonUtils
import com.mogo.eagle.core.utilcode.util.NetworkUtils
import com.mogo.eagle.core.utilcode.util.ToastUtils
import com.mogo.och.common.module.network.OchCommonServiceCallback
import com.mogo.och.common.module.callback.OchAdasStartFailureCallback
import com.mogo.och.common.module.manager.socket.cloud.AbnormalFactorsLoopManager
import com.mogo.och.common.module.manager.autopilot.OCHAdasAbilityManager
import com.mogo.och.common.module.manager.distance.IDistanceListener
import com.mogo.och.common.module.manager.distance.TrajectoryAndDistanceManager
import com.mogo.och.common.module.manager.loop.BizLoopManager
@@ -32,7 +30,6 @@ import com.mogo.och.common.module.voice.VoiceNotice
import com.mogo.och.common.module.biz.order.TaxiOrderStatusEnum
import com.mogo.och.common.module.biz.order.TaxiOrderStatusEnum.Companion.valueOf
import com.mogo.och.common.module.biz.order.OrderModel
import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutopilotAnalytics
import com.mogo.och.data.taxi.QueryCarOrderByNoRespBean
import com.mogo.och.unmanned.passenger.bean.TaxiPassengerBaseRespBean
import com.mogo.och.unmanned.passenger.bean.TaxiPassengerGetTrajectoryByLineIdRespBean

View File

@@ -13,6 +13,8 @@ import com.mogo.och.common.module.biz.order.TaxiOrderStatusEnum
import com.mogo.och.data.taxi.BaseOrderBean
import com.mogo.och.common.module.biz.order.OrderListener
import com.mogo.och.common.module.biz.order.OrderModel
import com.mogo.och.common.module.callback.OchAdasStartFailureCallback
import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutopilotAnalytics
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
import com.mogo.och.unmanned.passenger.callback.IOCHTaxiPassengerOrderStatusCallback
import com.mogo.och.unmanned.passenger.model.TaxiPassengerModel
@@ -27,14 +29,41 @@ class BaseTaxiPassengerPresenter(view: TaxiPassengerBaseFragment?) :
OrderListener {
init {
TaxiPassengerModel.init(AbsMogoApplication.getApp())
OCHAdasAbilityManager.getInstance().init(AbsMogoApplication.getApp())
initListeners()
}
private val mAdasStartAutopilotFailureListener: OchAdasStartFailureCallback =
object : OchAdasStartFailureCallback {
override fun onStartAutopilotFailure(
startFailedCode: String,
startFailedMessage: String
) {
}
override fun onStartAutopilotSuccess(type:String) {
if (TaxiPassengerModel.currentOCHOrder != null && TaxiPassengerModel.curOrderStatus === TaxiOrderStatusEnum.UserArriveAtStart) {
OchAutopilotAnalytics.triggerStartAutopilotEvent(
false,
true,
TaxiPassengerModel.currentOCHOrder!!.orderStartSite.siteName,
TaxiPassengerModel.currentOCHOrder!!.orderEndSite.siteName,
TaxiPassengerModel.currentOCHOrder!!.orderNo.toInt(),
TaxiPassengerModel.currentLineId.toString(),
System.currentTimeMillis(),
type,
3
)
}
}
}
override fun onCreate(owner: LifecycleOwner) {
super.onCreate(owner)
d(SceneConstant.M_TAXI_P + TAG, "网约车-出租车拿到订单")
TaxiPassengerModel.init(AbsMogoApplication.getApp())
OCHAdasAbilityManager.getInstance().init(AbsMogoApplication.getApp())
OCHAdasAbilityManager.getInstance().setAdasStartFailureCallback(mAdasStartAutopilotFailureListener)
initListeners()
}
override fun onDestroy(owner: LifecycleOwner) {
@@ -42,6 +71,7 @@ class BaseTaxiPassengerPresenter(view: TaxiPassengerBaseFragment?) :
releaseListeners()
TaxiPassengerModel.release()
OCHAdasAbilityManager.getInstance().release()
OCHAdasAbilityManager.getInstance().setAdasStartFailureCallback(null)
}
private fun initListeners() {