[6.4.4]
[fea] 添加启动自驾埋点 添加启动自驾底盘反馈埋点 taxi乘客屏启动自驾埋点收拢
This commit is contained in:
@@ -1,18 +1,32 @@
|
||||
package com.mogo.och.common.module.manager.autopilot.autopilot
|
||||
|
||||
import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoReceiveReceivedAckListener
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerReceiveReceivedAckListenerManager
|
||||
import com.zhjt.mogo.adas.common.MessageType
|
||||
import com.zhjt.mogo.adas.data.bean.ReceivedAck
|
||||
import com.zhjt.mogo.adas.data.bean.ReceivedAck.Status
|
||||
|
||||
object OchAutoPilotManager {
|
||||
object OchAutoPilotManager : IMoGoReceiveReceivedAckListener {
|
||||
|
||||
const val TAG = "OchAutoPilotManager"
|
||||
init {
|
||||
|
||||
CallerReceiveReceivedAckListenerManager.addListener(TAG,this)
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun startAutoPilot(controlParameters: AutopilotControlParameters?) {
|
||||
OchAutopilotAnalytics.triggerStartAutopilotParameters(controlParameters)
|
||||
CallerAutoPilotControlManager.startAutoPilot(controlParameters)
|
||||
}
|
||||
|
||||
// 启动自驾底盘反馈信息
|
||||
override fun onReceiveReceivedAck(receivedAck: ReceivedAck) {
|
||||
if (receivedAck.messageType==MessageType.TYPE_SEND_SET_AUTOPILOT_MODE_REQ) {
|
||||
OchAutopilotAnalytics.triggerStartAutopilotParametersAck(receivedAck.toString(),receivedAck.status==Status.NORMAL)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -5,6 +5,7 @@ import com.mogo.commons.debug.DebugConfig
|
||||
import com.mogo.commons.storage.SharedPrefsMgr
|
||||
import com.mogo.commons.utils.MogoAnalyticUtils
|
||||
import com.mogo.eagle.core.data.app.AppConfigInfo
|
||||
import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
@@ -36,6 +37,38 @@ abstract class OchAutopilotAnalytics {
|
||||
private const val EVENT_PARAM_START_RESULT = "start_autopilot" // true/false
|
||||
private const val EVENT_PARAM_START_FAILURE_CODE = "start_autopilot_failure_code" // 启动自驾失败code
|
||||
private const val EVENT_PARAM_START_FAILURE_MSG = "start_autopilot_failure_msg" // 启动自驾失败原因
|
||||
|
||||
private const val EVENT_KEY_START_AUTOPILOT_PARAMETERS = "event_key_och_start_autopilot_parameters"
|
||||
private const val EVENT_PARAM_START_AUTOPILOT_PARAMETERS= "start_autopilot_parameters" // 启动自驾参数
|
||||
|
||||
private const val EVENT_KEY_START_AUTOPILOT_ACK = "event_key_och_start_autopilot_ack"
|
||||
private const val EVENT_PARAM_START_AUTOPILOT_ACK= "start_autopilot_parameters_ack" // 启动自驾参数
|
||||
private const val EVENT_PARAM_START_AUTOPILOT_ACK_SUCCESS= "start_autopilot_parameters_ack" // 启动自驾参数
|
||||
|
||||
|
||||
fun triggerStartAutopilotParameters(controlParameters: AutopilotControlParameters?){
|
||||
val plateNum = AppConfigInfo.plateNumber
|
||||
val params = HashMap<String, Any>()
|
||||
params[EVENT_PARAM_SN] = SharedPrefsMgr.getInstance().sn
|
||||
params[EVENT_PARAM_PLATE_NUM] = if (TextUtils.isEmpty(plateNum)) "" else plateNum
|
||||
params[EVENT_PARAM_ENV_ONLINE] = DebugConfig.getNetMode() == DebugConfig.NET_MODE_RELEASE
|
||||
params[EVENT_PARAM_TIME] = DateTimeUtils.getTimeText(System.currentTimeMillis(),DateTimeUtils.yyyy_MM_dd_HH_mm_ss_SSS)
|
||||
params[EVENT_PARAM_START_AUTOPILOT_PARAMETERS] = "${controlParameters.toString()}_${controlParameters?.autoPilotLine}_routeID:${controlParameters?.routeID}_routeName:${controlParameters?.routeName}"
|
||||
params[EVENT_PARAM_AUTOPILOTANALYTICS_GROUP] = EVENT_PARAM_AUTOPILOTANALYTICS_GROUP
|
||||
MogoAnalyticUtils.track(EVENT_KEY_START_AUTOPILOT_PARAMETERS, params)
|
||||
}
|
||||
fun triggerStartAutopilotParametersAck(data:String,isSuccess:Boolean){
|
||||
val plateNum = AppConfigInfo.plateNumber
|
||||
val params = HashMap<String, Any>()
|
||||
params[EVENT_PARAM_SN] = SharedPrefsMgr.getInstance().sn
|
||||
params[EVENT_PARAM_PLATE_NUM] = if (TextUtils.isEmpty(plateNum)) "" else plateNum
|
||||
params[EVENT_PARAM_ENV_ONLINE] = DebugConfig.getNetMode() == DebugConfig.NET_MODE_RELEASE
|
||||
params[EVENT_PARAM_TIME] = DateTimeUtils.getTimeText(System.currentTimeMillis(),DateTimeUtils.yyyy_MM_dd_HH_mm_ss_SSS)
|
||||
params[EVENT_PARAM_START_AUTOPILOT_ACK] = data
|
||||
params[EVENT_PARAM_START_AUTOPILOT_ACK_SUCCESS] = isSuccess
|
||||
params[EVENT_PARAM_AUTOPILOTANALYTICS_GROUP] = EVENT_PARAM_AUTOPILOTANALYTICS_GROUP
|
||||
MogoAnalyticUtils.track(EVENT_KEY_START_AUTOPILOT_ACK, params)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -160,9 +193,36 @@ abstract class OchAutopilotAnalytics {
|
||||
MogoAnalyticUtils.track(getEventKeyClickStartAutopilot(), params)
|
||||
}
|
||||
|
||||
abstract fun getEventKeyStartService(): String
|
||||
// 无人化taxi event_key_unmanned_taxi_start_service *
|
||||
// bus event_key_och_bus_start_service *
|
||||
// shuttle event_key_och_bus_start_service *
|
||||
// charter event_key_och_charter_start_service
|
||||
// taxi event_key_och_taxi_start_service *
|
||||
// 无人化taxiPa event_key_unmanned_taxi_start_service
|
||||
abstract fun getEventKeyStartService(): String
|
||||
|
||||
// 无人化taxi event_key_unmanned_taxi_restart_autopilot *
|
||||
// bus event_key_och_bus_restart_autopilot *
|
||||
// shuttle event_key_och_bus_restart_autopilot *
|
||||
// charter event_key_och_charter_restart_autopilot
|
||||
// taxi event_key_och_taxi_restart_autopilot *
|
||||
// 无人化taxiPa event_key_unmanned_taxi_restart_autopilot
|
||||
abstract fun getEventKeyRestartService(): String
|
||||
|
||||
// 无人化taxi event_key_och_taxi_ap_unable_start_reason *
|
||||
// bus event_key_och_bus_ap_unable_start_reason *
|
||||
// shuttle event_key_och_bus_ap_unable_start_reason *
|
||||
// charter event_key_och_charter_ap_unable_start_reason
|
||||
// taxi event_key_och_taxi_ap_unable_start_reason *
|
||||
// 无人化taxiPa event_key_och_taxi_ap_unable_start_reason
|
||||
abstract fun getEventKeyApUnableStartReason(): String
|
||||
|
||||
// 无人化taxi event_key_unmanned_taxi_click_start_autopilot
|
||||
// bus event_key_och_bus_click_start_autopilot
|
||||
// shuttle event_key_och_bus_click_start_autopilot
|
||||
// charter event_key_och_charter_click_start_autopilot
|
||||
// taxi event_key_och_taxi_click_start_autopilot
|
||||
// 无人化taxiPa event_key_och_taxi_passenger_click_start_autopilot
|
||||
abstract fun getEventKeyClickStartAutopilot(): String
|
||||
|
||||
}
|
||||
@@ -9,10 +9,8 @@ import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
|
||||
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.CallerChassisLocationGCJ02ListenerManager
|
||||
import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
|
||||
import com.mogo.eagle.core.utilcode.util.AppStateManager
|
||||
import com.mogo.eagle.core.utilcode.util.StringUtils
|
||||
import com.mogo.eagle.core.utilcode.util.ToastUtils
|
||||
import com.mogo.och.common.module.network.OchCommonServiceCallback
|
||||
@@ -44,6 +42,9 @@ object AutopilotManager : IOchAutopilotStatusListener {
|
||||
|
||||
|
||||
fun startAutopilot():String {
|
||||
|
||||
TaxiPassengerAnalyticsManager.triggerClickStartAutopilotTime(System.currentTimeMillis())
|
||||
|
||||
if (!checkCurrentOCHOrder()) {
|
||||
CallerLogger.e(
|
||||
SceneConstant.M_TAXI_P + TAG,
|
||||
@@ -95,6 +96,7 @@ object AutopilotManager : IOchAutopilotStatusListener {
|
||||
TaxiPassengerAnalyticsManager.triggerUnableStartAPReasonEvent(
|
||||
TaxiPassengerModel.currentOCHOrder!!.startSiteAddr,
|
||||
TaxiPassengerModel.currentOCHOrder!!.endSiteAddr,
|
||||
TaxiPassengerModel.currentOCHOrder!!.lineId.toString(),
|
||||
TaxiPassengerModel.currentOCHOrder!!.orderNo,
|
||||
OCHAdasAbilityManager.getInstance().autopilotUnAbilityReason
|
||||
)
|
||||
@@ -122,9 +124,15 @@ object AutopilotManager : IOchAutopilotStatusListener {
|
||||
+ " ,startSiteName=" + TaxiPassengerModel.currentOCHOrder!!.startSiteAddr
|
||||
+ " ,endSiteName=" + TaxiPassengerModel.currentOCHOrder!!.endSiteAddr
|
||||
)
|
||||
TaxiPassengerAnalyticsManager.triggerStartAutopilotEvent(false, false, TaxiPassengerModel.currentOCHOrder!!.startSiteAddr,
|
||||
TaxiPassengerModel.currentOCHOrder!!.endSiteAddr, TaxiPassengerModel.currentOCHOrder!!.orderNo,
|
||||
TaxiPassengerModel.currentOCHOrder!!.lineId)
|
||||
TaxiPassengerAnalyticsManager.triggerStartAutopilotEvent(
|
||||
false,
|
||||
false,
|
||||
TaxiPassengerModel.currentOCHOrder!!.startSiteAddr,
|
||||
TaxiPassengerModel.currentOCHOrder!!.endSiteAddr,
|
||||
TaxiPassengerModel.currentOCHOrder!!.orderNo.toInt(),
|
||||
TaxiPassengerModel.currentOCHOrder!!.lineId.toString(),
|
||||
System.currentTimeMillis()
|
||||
)
|
||||
return ""
|
||||
}
|
||||
|
||||
@@ -207,8 +215,9 @@ object AutopilotManager : IOchAutopilotStatusListener {
|
||||
true,
|
||||
TaxiPassengerModel.currentOCHOrder!!.startSiteAddr,
|
||||
TaxiPassengerModel.currentOCHOrder!!.endSiteAddr,
|
||||
TaxiPassengerModel.currentOCHOrder!!.orderNo,
|
||||
TaxiPassengerModel.currentOCHOrder!!.lineId
|
||||
TaxiPassengerModel.currentOCHOrder!!.orderNo.toInt(),
|
||||
TaxiPassengerModel.currentOCHOrder!!.lineId.toString(),
|
||||
System.currentTimeMillis()
|
||||
)
|
||||
//startServicePilotDone()
|
||||
}
|
||||
|
||||
@@ -232,7 +232,7 @@ object TaxiPassengerModel {
|
||||
|
||||
private val mAdasStartFailureListener: OchAdasStartFailureCallback = object : OchAdasStartFailureCallback {
|
||||
override fun onStartAutopilotFailure(startFailedCode: String, startFailedMessage: String) {
|
||||
TaxiPassengerAnalyticsManager.triggerStartAutopilotFailureEventByAdas(startFailedCode, startFailedMessage)
|
||||
TaxiPassengerAnalyticsManager.triggerStartAutopilotFailureEventByAdas(startFailedCode, startFailedMessage,System.currentTimeMillis())
|
||||
}
|
||||
|
||||
override fun brakeStatusChanged(isBrakeAvailable: Boolean) {
|
||||
|
||||
@@ -1,125 +1,33 @@
|
||||
package com.mogo.och.taxi.passenger.utils
|
||||
|
||||
import android.text.TextUtils
|
||||
import com.mogo.commons.debug.DebugConfig
|
||||
import com.mogo.commons.storage.SharedPrefsMgr
|
||||
import com.mogo.commons.utils.MogoAnalyticUtils
|
||||
import com.mogo.eagle.core.data.app.AppConfigInfo
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.e
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_TAXI_P
|
||||
import com.mogo.eagle.core.utilcode.util.DateTimeUtils
|
||||
import com.mogo.och.common.module.manager.autopilot.OCHAdasAbilityManager
|
||||
import com.mogo.och.common.module.utils.RxUtils
|
||||
import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutopilotAnalytics
|
||||
import com.mogo.och.taxi.passenger.constant.TaxiPassengerConst
|
||||
import io.reactivex.disposables.Disposable
|
||||
|
||||
/**
|
||||
* OCH Taxi埋点工具
|
||||
*
|
||||
* Created on 2022/3/24
|
||||
*/
|
||||
object TaxiPassengerAnalyticsManager {
|
||||
object TaxiPassengerAnalyticsManager: OchAutopilotAnalytics() {
|
||||
|
||||
|
||||
private var mStartAutopilotKey: String? = null
|
||||
private val mStartAutopilotParams = HashMap<String, Any>()
|
||||
|
||||
var startAutopiloTimeOut: Disposable? = null
|
||||
|
||||
|
||||
fun triggerStartAutopilotFailureEventByAdas(failCode: String, failMsg: String) {
|
||||
RxUtils.disposeSubscribe(startAutopiloTimeOut)
|
||||
triggerStartAutopilotFailureEvent(failCode, failMsg)
|
||||
override fun getEventKeyStartService(): String {
|
||||
return TaxiPassengerConst.EVENT_KEY_START_SERVICE
|
||||
}
|
||||
|
||||
private fun clearStartAutopilotParams() {
|
||||
mStartAutopilotParams.clear()
|
||||
override fun getEventKeyRestartService(): String {
|
||||
return TaxiPassengerConst.EVENT_KEY_RESTART_AUTOPILOT
|
||||
}
|
||||
|
||||
/**
|
||||
* ① 15s超时调用
|
||||
* ② 底盘明确给出错误原因
|
||||
* 启动自驾失败写日志
|
||||
*/
|
||||
private fun triggerStartAutopilotFailureEvent(failCode: String, failMsg: String) {
|
||||
if (mStartAutopilotParams.isEmpty()) return
|
||||
e(M_TAXI_P + "triggerStartAutopilotFailureEvent", failMsg)
|
||||
if (CallerAutoPilotStatusListenerManager.getState() != IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING) {
|
||||
mStartAutopilotParams[TaxiPassengerConst.EVENT_PARAM_START_FAILURE_CODE] = failCode
|
||||
mStartAutopilotParams[TaxiPassengerConst.EVENT_PARAM_START_FAILURE_MSG] = failMsg
|
||||
}
|
||||
|
||||
mStartAutopilotParams[TaxiPassengerConst.EVENT_PARAM_MAP_ORIGINAL_DATA] =
|
||||
OCHAdasAbilityManager.getInstance().originalData
|
||||
mStartAutopilotParams[TaxiPassengerConst.EVENT_PARAM_AUTOPILOT_STATE] =
|
||||
CallerAutoPilotStatusListenerManager.getState()
|
||||
mStartAutopilotParams[TaxiPassengerConst.EVENT_PARAM_START_RESULT] =
|
||||
CallerAutoPilotStatusListenerManager.getState() == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING
|
||||
|
||||
MogoAnalyticUtils.track(mStartAutopilotKey, mStartAutopilotParams)
|
||||
clearStartAutopilotParams() //清空参数数据,防止误传
|
||||
override fun getEventKeyApUnableStartReason(): String {
|
||||
return TaxiPassengerConst.EVENT_KEY_AP_UNABLE_START_REASON
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* ① 自检完成后 启动自驾
|
||||
* ② 自驾由其他状态转换到自驾中回调
|
||||
* 触发'开启自动驾驶'埋点流程
|
||||
* 开启自动驾驶,15s内成功则发送成功埋点,否则发送失败埋点
|
||||
* @param restart false(点击'开始服务'启动)/true(接管后点击'自动驾驶'按钮启动)
|
||||
* @param send 是否直接发送埋点(15s内开启成功则直接发送成功埋点)
|
||||
*/
|
||||
fun triggerStartAutopilotEvent(restart: Boolean, send: Boolean, startName: String, endName: String,
|
||||
orderNo: String, lineId: Long) {
|
||||
mStartAutopilotKey = if (restart) TaxiPassengerConst.EVENT_KEY_RESTART_AUTOPILOT else TaxiPassengerConst.EVENT_KEY_START_SERVICE
|
||||
|
||||
if (send) {
|
||||
if (mStartAutopilotParams.isEmpty()) return
|
||||
// 开启成功,取消失败定时任务
|
||||
mStartAutopilotParams[TaxiPassengerConst.EVENT_PARAM_START_FAILURE_CODE] = ""
|
||||
mStartAutopilotParams[TaxiPassengerConst.EVENT_PARAM_START_FAILURE_MSG] = ""
|
||||
// 取消15s超时
|
||||
RxUtils.disposeSubscribe(startAutopiloTimeOut)
|
||||
mStartAutopilotParams[TaxiPassengerConst.EVENT_PARAM_START_RESULT] = true
|
||||
MogoAnalyticUtils.track(mStartAutopilotKey, mStartAutopilotParams)
|
||||
clearStartAutopilotParams() //清空参数数据,防止误传
|
||||
} else {
|
||||
val plateNum = AppConfigInfo.plateNumber
|
||||
mStartAutopilotParams[TaxiPassengerConst.EVENT_PARAM_SN] = SharedPrefsMgr.getInstance().sn
|
||||
mStartAutopilotParams[TaxiPassengerConst.EVENT_PARAM_PLATE_NUM] = if (TextUtils.isEmpty(plateNum)) "" else plateNum
|
||||
mStartAutopilotParams[TaxiPassengerConst.EVENT_PARAM_ENV_ONLINE] = DebugConfig.getNetMode() == DebugConfig.NET_MODE_RELEASE
|
||||
mStartAutopilotParams[TaxiPassengerConst.EVENT_PARAM_TIME] = DateTimeUtils.getTimeText(DateTimeUtils.yyyy_MM_dd_HH_mm_ss)
|
||||
mStartAutopilotParams[TaxiPassengerConst.EVENT_PARAM_START_NAME] = startName
|
||||
mStartAutopilotParams[TaxiPassengerConst.EVENT_PARAM_END_NAME] = endName
|
||||
mStartAutopilotParams[TaxiPassengerConst.EVENT_PARAM_ORDER_NUMBER] = orderNo
|
||||
mStartAutopilotParams[TaxiPassengerConst.EVENT_PARAM_LINE_ID] = lineId
|
||||
startAutopiloTimeOut = RxUtils.createSubscribeOnOwnThread(TaxiPassengerConst.LOOP_PERIOD_15S) {
|
||||
// 15s内未开启,上报失败埋点
|
||||
triggerStartAutopilotFailureEvent("", "15s后app等待超时")
|
||||
}
|
||||
}
|
||||
override fun getEventKeyClickStartAutopilot(): String {
|
||||
return "event_key_unmanned_taxi_passenger_click_start_autopilot"
|
||||
}
|
||||
|
||||
/**
|
||||
* 触发"无法开启自驾已知异常"埋点
|
||||
* @param startName
|
||||
* @param endName
|
||||
* @param orderNo
|
||||
*/
|
||||
fun triggerUnableStartAPReasonEvent(startName: String, endName: String, orderNo: String, reason: String) {
|
||||
val plateNum = AppConfigInfo.plateNumber
|
||||
val params = HashMap<String, Any>()
|
||||
params[TaxiPassengerConst.EVENT_PARAM_SN] = SharedPrefsMgr.getInstance().sn
|
||||
params[TaxiPassengerConst.EVENT_PARAM_PLATE_NUM] = if (TextUtils.isEmpty(plateNum)) "" else plateNum
|
||||
params[TaxiPassengerConst.EVENT_PARAM_ENV_ONLINE] = DebugConfig.getNetMode() == DebugConfig.NET_MODE_RELEASE
|
||||
params[TaxiPassengerConst.EVENT_PARAM_TIME] = DateTimeUtils.getTimeText(DateTimeUtils.yyyy_MM_dd_HH_mm_ss)
|
||||
params[TaxiPassengerConst.EVENT_PARAM_START_NAME] = startName
|
||||
params[TaxiPassengerConst.EVENT_PARAM_END_NAME] = endName
|
||||
params[TaxiPassengerConst.EVENT_PARAM_ORDER_NUMBER] = orderNo
|
||||
params[TaxiPassengerConst.EVENT_PARAM_UNABLE_START_REASON] = reason
|
||||
MogoAnalyticUtils.track(TaxiPassengerConst.EVENT_KEY_AP_UNABLE_START_REASON, params)
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -14,7 +14,7 @@ public class TaxiAnalyticsManager extends OchAutopilotAnalytics {
|
||||
// 埋点key:开启自动驾驶前已识别的异常,会导致无法开启自驾
|
||||
private static final String EVENT_KEY_AP_UNABLE_START_REASON = "event_key_och_taxi_ap_unable_start_reason";
|
||||
// 埋点key:点击启动自驾
|
||||
private static final String EVENT_KEY_CLICK_START_AUTOPILOT = "event_key_och_shuttle_click_start_autopilot";
|
||||
private static final String EVENT_KEY_CLICK_START_AUTOPILOT = "event_key_och_unmanned_taxi_click_start_autopilot";
|
||||
// 埋点key:接管后点击'自动驾驶'按钮启动
|
||||
private static final String EVENT_KEY_RESTART_AUTOPILOT = "event_key_unmanned_taxi_restart_autopilot";
|
||||
// 埋点key:开始服务开启自动驾驶(成功/失败)
|
||||
|
||||
@@ -23,7 +23,6 @@ import com.mogo.och.unmanned.passenger.bean.TaxiPassengerBaseRespBean
|
||||
import com.mogo.och.unmanned.passenger.constant.TaxiPassengerConst
|
||||
import com.mogo.och.unmanned.passenger.network.TaxiPassengerServiceManager
|
||||
import com.mogo.och.unmanned.passenger.utils.TaxiPassengerAnalyticsManager
|
||||
import java.lang.StringBuilder
|
||||
|
||||
object AutopilotManager : IOchAutopilotStatusListener {
|
||||
|
||||
@@ -42,6 +41,9 @@ object AutopilotManager : IOchAutopilotStatusListener {
|
||||
|
||||
|
||||
fun startAutopilot():String {
|
||||
|
||||
TaxiPassengerAnalyticsManager.triggerClickStartAutopilotTime(System.currentTimeMillis())
|
||||
|
||||
if (!checkCurrentOCHOrder()) {
|
||||
CallerLogger.e(
|
||||
SceneConstant.M_TAXI_P + TAG,
|
||||
@@ -86,6 +88,7 @@ object AutopilotManager : IOchAutopilotStatusListener {
|
||||
TaxiPassengerAnalyticsManager.triggerUnableStartAPReasonEvent(
|
||||
TaxiPassengerModel.currentOCHOrder!!.orderStartSite.siteName,
|
||||
TaxiPassengerModel.currentOCHOrder!!.orderEndSite.siteName,
|
||||
TaxiPassengerModel.currentOCHOrder!!.orderLine.toString(),
|
||||
TaxiPassengerModel.currentOCHOrder!!.orderNo,
|
||||
OCHAdasAbilityManager.getInstance().autopilotUnAbilityReason
|
||||
)
|
||||
@@ -112,8 +115,9 @@ object AutopilotManager : IOchAutopilotStatusListener {
|
||||
false,
|
||||
TaxiPassengerModel.currentOCHOrder!!.orderStartSite.siteName,
|
||||
TaxiPassengerModel.currentOCHOrder!!.orderEndSite.siteName,
|
||||
TaxiPassengerModel.currentOCHOrder!!.orderNo,
|
||||
TaxiPassengerModel.currentLineId
|
||||
TaxiPassengerModel.currentOCHOrder!!.orderNo.toInt(),
|
||||
TaxiPassengerModel.currentLineId.toString(),
|
||||
System.currentTimeMillis()
|
||||
)
|
||||
needSpeakByStartAutopilot = true
|
||||
return ""
|
||||
@@ -202,8 +206,9 @@ object AutopilotManager : IOchAutopilotStatusListener {
|
||||
true,
|
||||
TaxiPassengerModel.currentOCHOrder!!.orderStartSite.siteName,
|
||||
TaxiPassengerModel.currentOCHOrder!!.orderEndSite.siteName,
|
||||
TaxiPassengerModel.currentOCHOrder!!.orderNo,
|
||||
TaxiPassengerModel.currentLineId
|
||||
TaxiPassengerModel.currentOCHOrder!!.orderNo.toInt(),
|
||||
TaxiPassengerModel.currentLineId.toString(),
|
||||
System.currentTimeMillis()
|
||||
)
|
||||
if(needSpeakByStartAutopilot) {
|
||||
VoiceNotice.showNotice("坐稳扶好,我们出发咯!", AIAssist.LEVEL2)
|
||||
|
||||
@@ -345,7 +345,8 @@ object TaxiPassengerModel {
|
||||
) {
|
||||
TaxiPassengerAnalyticsManager.triggerStartAutopilotFailureEventByAdas(
|
||||
startFailedCode,
|
||||
startFailedMessage
|
||||
startFailedMessage,
|
||||
System.currentTimeMillis()
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
@@ -1,125 +1,29 @@
|
||||
package com.mogo.och.unmanned.passenger.utils
|
||||
|
||||
import android.text.TextUtils
|
||||
import com.mogo.commons.debug.DebugConfig
|
||||
import com.mogo.commons.storage.SharedPrefsMgr
|
||||
import com.mogo.commons.utils.MogoAnalyticUtils
|
||||
import com.mogo.eagle.core.data.app.AppConfigInfo
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.e
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_TAXI_P
|
||||
import com.mogo.eagle.core.utilcode.util.DateTimeUtils
|
||||
import com.mogo.och.common.module.manager.autopilot.OCHAdasAbilityManager
|
||||
import com.mogo.och.common.module.utils.RxUtils
|
||||
import com.mogo.och.unmanned.passenger.constant.TaxiPassengerConst
|
||||
import io.reactivex.disposables.Disposable
|
||||
import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutopilotAnalytics
|
||||
|
||||
/**
|
||||
* OCH Taxi埋点工具
|
||||
*
|
||||
* Created on 2022/3/24
|
||||
*/
|
||||
object TaxiPassengerAnalyticsManager {
|
||||
object TaxiPassengerAnalyticsManager: OchAutopilotAnalytics() {
|
||||
|
||||
|
||||
private var mStartAutopilotKey: String? = null
|
||||
private val mStartAutopilotParams = HashMap<String, Any>()
|
||||
|
||||
var startAutopiloTimeOut: Disposable? = null
|
||||
|
||||
|
||||
fun triggerStartAutopilotFailureEventByAdas(failCode: String, failMsg: String) {
|
||||
RxUtils.disposeSubscribe(startAutopiloTimeOut)
|
||||
triggerStartAutopilotFailureEvent(failCode, failMsg)
|
||||
override fun getEventKeyStartService(): String {
|
||||
return "event_key_unmanned_taxi_start_service"
|
||||
}
|
||||
|
||||
private fun clearStartAutopilotParams() {
|
||||
mStartAutopilotParams.clear()
|
||||
override fun getEventKeyRestartService(): String {
|
||||
return "event_key_unmanned_taxi_restart_autopilot"
|
||||
}
|
||||
|
||||
/**
|
||||
* ① 15s超时调用
|
||||
* ② 底盘明确给出错误原因
|
||||
* 启动自驾失败写日志
|
||||
*/
|
||||
private fun triggerStartAutopilotFailureEvent(failCode: String, failMsg: String) {
|
||||
if (mStartAutopilotParams.isEmpty()) return
|
||||
e(M_TAXI_P + "triggerStartAutopilotFailureEvent", failMsg)
|
||||
if (CallerAutoPilotStatusListenerManager.getState() != IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING) {
|
||||
mStartAutopilotParams[TaxiPassengerConst.EVENT_PARAM_START_FAILURE_CODE] = failCode
|
||||
mStartAutopilotParams[TaxiPassengerConst.EVENT_PARAM_START_FAILURE_MSG] = failMsg
|
||||
}
|
||||
|
||||
mStartAutopilotParams[TaxiPassengerConst.EVENT_PARAM_MAP_ORIGINAL_DATA] =
|
||||
OCHAdasAbilityManager.getInstance().originalData
|
||||
mStartAutopilotParams[TaxiPassengerConst.EVENT_PARAM_AUTOPILOT_STATE] =
|
||||
CallerAutoPilotStatusListenerManager.getState()
|
||||
mStartAutopilotParams[TaxiPassengerConst.EVENT_PARAM_START_RESULT] =
|
||||
CallerAutoPilotStatusListenerManager.getState() == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING
|
||||
|
||||
MogoAnalyticUtils.track(mStartAutopilotKey, mStartAutopilotParams)
|
||||
clearStartAutopilotParams() //清空参数数据,防止误传
|
||||
override fun getEventKeyApUnableStartReason(): String {
|
||||
return "event_key_och_taxi_ap_unable_start_reason"
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* ① 自检完成后 启动自驾
|
||||
* ② 自驾由其他状态转换到自驾中回调
|
||||
* 触发'开启自动驾驶'埋点流程
|
||||
* 开启自动驾驶,15s内成功则发送成功埋点,否则发送失败埋点
|
||||
* @param restart false(点击'开始服务'启动)/true(接管后点击'自动驾驶'按钮启动)
|
||||
* @param send 是否直接发送埋点(15s内开启成功则直接发送成功埋点)
|
||||
*/
|
||||
fun triggerStartAutopilotEvent(restart: Boolean, send: Boolean, startName: String, endName: String,
|
||||
orderNo: String, lineId: Long?) {
|
||||
mStartAutopilotKey = if (restart) TaxiPassengerConst.EVENT_KEY_RESTART_AUTOPILOT else TaxiPassengerConst.EVENT_KEY_START_SERVICE
|
||||
|
||||
if (send) {
|
||||
if (mStartAutopilotParams.isEmpty()) return
|
||||
// 开启成功,取消失败定时任务
|
||||
mStartAutopilotParams[TaxiPassengerConst.EVENT_PARAM_START_FAILURE_CODE] = ""
|
||||
mStartAutopilotParams[TaxiPassengerConst.EVENT_PARAM_START_FAILURE_MSG] = ""
|
||||
// 取消15s超时
|
||||
RxUtils.disposeSubscribe(startAutopiloTimeOut)
|
||||
mStartAutopilotParams[TaxiPassengerConst.EVENT_PARAM_START_RESULT] = true
|
||||
MogoAnalyticUtils.track(mStartAutopilotKey, mStartAutopilotParams)
|
||||
clearStartAutopilotParams() //清空参数数据,防止误传
|
||||
} else {
|
||||
val plateNum = AppConfigInfo.plateNumber
|
||||
mStartAutopilotParams[TaxiPassengerConst.EVENT_PARAM_SN] = SharedPrefsMgr.getInstance().sn
|
||||
mStartAutopilotParams[TaxiPassengerConst.EVENT_PARAM_PLATE_NUM] = if (TextUtils.isEmpty(plateNum)) "" else plateNum
|
||||
mStartAutopilotParams[TaxiPassengerConst.EVENT_PARAM_ENV_ONLINE] = DebugConfig.getNetMode() == DebugConfig.NET_MODE_RELEASE
|
||||
mStartAutopilotParams[TaxiPassengerConst.EVENT_PARAM_TIME] = DateTimeUtils.getTimeText(DateTimeUtils.yyyy_MM_dd_HH_mm_ss)
|
||||
mStartAutopilotParams[TaxiPassengerConst.EVENT_PARAM_START_NAME] = startName
|
||||
mStartAutopilotParams[TaxiPassengerConst.EVENT_PARAM_END_NAME] = endName
|
||||
mStartAutopilotParams[TaxiPassengerConst.EVENT_PARAM_ORDER_NUMBER] = orderNo
|
||||
mStartAutopilotParams[TaxiPassengerConst.EVENT_PARAM_LINE_ID] = lineId ?: 0
|
||||
startAutopiloTimeOut = RxUtils.createSubscribeOnOwnThread(TaxiPassengerConst.LOOP_PERIOD_15S) {
|
||||
// 15s内未开启,上报失败埋点
|
||||
triggerStartAutopilotFailureEvent("", "15s后app等待超时")
|
||||
}
|
||||
}
|
||||
override fun getEventKeyClickStartAutopilot(): String {
|
||||
return "event_key_och_taxi_passenger_click_start_autopilot"
|
||||
}
|
||||
|
||||
/**
|
||||
* 触发"无法开启自驾已知异常"埋点
|
||||
* @param startName
|
||||
* @param endName
|
||||
* @param orderNo
|
||||
*/
|
||||
fun triggerUnableStartAPReasonEvent(startName: String, endName: String, orderNo: String, reason: String) {
|
||||
val plateNum = AppConfigInfo.plateNumber
|
||||
val params = HashMap<String, Any>()
|
||||
params[TaxiPassengerConst.EVENT_PARAM_SN] = SharedPrefsMgr.getInstance().sn
|
||||
params[TaxiPassengerConst.EVENT_PARAM_PLATE_NUM] = if (TextUtils.isEmpty(plateNum)) "" else plateNum
|
||||
params[TaxiPassengerConst.EVENT_PARAM_ENV_ONLINE] = DebugConfig.getNetMode() == DebugConfig.NET_MODE_RELEASE
|
||||
params[TaxiPassengerConst.EVENT_PARAM_TIME] = DateTimeUtils.getTimeText(DateTimeUtils.yyyy_MM_dd_HH_mm_ss)
|
||||
params[TaxiPassengerConst.EVENT_PARAM_START_NAME] = startName
|
||||
params[TaxiPassengerConst.EVENT_PARAM_END_NAME] = endName
|
||||
params[TaxiPassengerConst.EVENT_PARAM_ORDER_NUMBER] = orderNo
|
||||
params[TaxiPassengerConst.EVENT_PARAM_UNABLE_START_REASON] = reason
|
||||
MogoAnalyticUtils.track(TaxiPassengerConst.EVENT_KEY_AP_UNABLE_START_REASON, params)
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user