diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/model/CharterPassengerModel.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/model/CharterPassengerModel.kt index ed21b9ba9d..9a90b9a708 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/model/CharterPassengerModel.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/model/CharterPassengerModel.kt @@ -964,7 +964,7 @@ object CharterPassengerModel { // 清理轨迹 cleanRoutePoints() // 到站结束自驾 - CallerAutoPilotControlManager.cancelAutoPilot() + CallerAutoPilotControlManager.cancelAutoPilot4Passenger() // 结束路距计算 到达目的站点 endCalculateDistanceLoop() // 到站置距离位0 diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/OCHAdasAbilityManager.java b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/OCHAdasAbilityManager.java index 0c8b505082..b420eaa898 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/OCHAdasAbilityManager.java +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/OCHAdasAbilityManager.java @@ -59,8 +59,11 @@ public class OCHAdasAbilityManager implements IMoGoAutopilotActionsListener, IMo return "未知异常"; }else { StringBuilder stringBuilder = new StringBuilder(); - for (UnableAutopilotReason unableAutopilotReason : unableAutopilotReasons) { - stringBuilder.append(unableAutopilotReason.toString()).append("\n"); + for (int i = 0; i < unableAutopilotReasons.size(); i++) { + stringBuilder.append(unableAutopilotReasons.get(i)); + if(i it.height) { + it.scrollTo(0, offset - it.height) + } + }, UiThreadHandler.MODE.QUEUE) + } + } + + private fun currentDateTimeString(): String { + return DateTimeUtil.formatCalendarToString( + DateTimeUtil.formatLongToCalendar(System.currentTimeMillis()), + DateTimeUtil.yyyy_MM_dd_HH_mm_ss + ) + } } private val broadcastReceiver = object : BroadcastReceiver() { @@ -59,9 +106,10 @@ public class DebugView @JvmOverloads constructor( init { initBroadcastReceiver() - LayoutInflater.from(context) - .inflate(R.layout.taxi_debug_order, this, true) + LayoutInflater.from(context).inflate(R.layout.taxi_debug_order, this, true) + debugLogHistoryTextView.setMovementMethod(ScrollingMovementMethod.getInstance()) visibility = GONE + logHistoryTextView = debugLogHistoryTextView } private fun initBroadcastReceiver() { @@ -71,11 +119,8 @@ public class DebugView @JvmOverloads constructor( } fun toggleOrderDebugView() { - visibility = - if (visibility == View.VISIBLE) - View.GONE - else - View.VISIBLE + visibility = if (visibility == View.VISIBLE) View.GONE + else View.VISIBLE val data = TaxiTaskModel.getCurrentTaskWithOrder() initViewByData(data) } @@ -100,17 +145,13 @@ public class DebugView @JvmOverloads constructor( private fun initViewByData(data: QueryCurrentTaskRespBean.Result?) { val curContrail = TaxiTaskModel.getCurrentTaskTrajectory() - currentDataTimestamps.text = "【当前数据返回时间】${ - DateTimeUtil.formatCalendarToString( - DateTimeUtil.formatLongToCalendar(System.currentTimeMillis()), - DateTimeUtil.yyyy_MM_dd_HH_mm_ss - ) - }" + currentDataTimestamps.text = "【当前数据返回时间】${currentDateTimeString()}" currentCarStatus.text = - "【当前车辆状态】${data?.servingStatus} / ${if (data?.servingStatus == 1) "开始接单" else "暂停接单"}" - currentTaskType.text = "【当前任务类型】${data?.taskType} / ${TaskTypeEnum.valueOf(data?.taskType ?: -1)?.name}" + "【当前车辆状态】${data?.servingStatus} --> ${if (data?.servingStatus == 1) "开始接单" else "暂停接单"}" + currentTaskType.text = + "【当前任务类型】${data?.taskType} --> ${TaskTypeEnum.valueOf(data?.taskType ?: -1)?.name}" currentStatus.text = - "【当前任务状态】${data?.currentStatus} / ${TaskStatusEnum.valueOf(data?.currentStatus ?: -1)?.name}" + "【当前任务状态】${data?.currentStatus} --> ${TaskStatusEnum.valueOf(data?.currentStatus ?: -1)?.name}" currentLineId.text = "【当前任务lineId】 ${data?.lineId}" taskStartSite.text = "【当前任务起点】${data?.startSite?.siteName} siteId=${data?.startSite?.siteId}" @@ -119,7 +160,7 @@ public class DebugView @JvmOverloads constructor( currentOrder.text = "【订单信息】${if (data?.order == null) "null" else "不为空"}" orderNo.text = "【订单编号】${data?.order?.orderNo}" orderStatus.text = - "【订单状态】${data?.order?.orderStatus} / ${TaxiOrderStatusEnum.valueOf(data?.order?.orderStatus ?: -1)?.name}" + "【订单状态】${data?.order?.orderStatus} --> ${TaxiOrderStatusEnum.valueOf(data?.order?.orderStatus ?: -1)?.name}" orderStartSiteInfo.text = "【订单起点】${data?.order?.orderStartSite?.siteName} siteId=${data?.order?.orderStartSite?.siteId}" orderEndSiteInfo.text = diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiCurrentTaskViewModel.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiCurrentTaskViewModel.kt index 330f6b2b68..4268a3eb43 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiCurrentTaskViewModel.kt +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiCurrentTaskViewModel.kt @@ -25,6 +25,7 @@ import com.mogo.och.taxi.constant.TaxiOrderStatusEnum import com.mogo.och.taxi.constant.TaxiUnmannedConst import com.mogo.och.taxi.network.TaxiTaskWithOrderServiceManager import com.mogo.och.taxi.network.TaxiTaskWithOrderServiceManager.cancelOrder +import com.mogo.och.taxi.ui.debug.DebugView import com.mogo.och.taxi.ui.unmanned.TaskWithOrderUIState import com.mogo.och.taxi.ui.unmanned.UnmannedState import com.mogo.och.taxi.utils.TaxiTrajectoryManager @@ -82,8 +83,10 @@ class TaxiCurrentTaskViewModel : BaseViewModel(), fun startOrStopCurrentTaskWithOrderLoop(start: Boolean) { d(TAG, "startOrStopCurrentTaskWithOrderLoop(): isStart=$start") if (start) { + DebugView.printInfoMsg("[查询TaskWithOrder信息] start loop") TaxiTaskModel.startQueryCurrentTaskWithOrderLoop() } else { + DebugView.printInfoMsg("[查询TaskWithOrder信息] stop loop") TaxiTaskModel.stopQueryCurrentTaskWithOrderLoop() } } @@ -91,21 +94,24 @@ class TaxiCurrentTaskViewModel : BaseViewModel(), private fun cancelOrder(cancelType: Int) { val currentTaskWithOrder = TaxiTaskModel.getCurrentTaskWithOrder() currentTaskWithOrder?.order?.also { - TaxiTaskModel.cancelOrder(it.orderNo,cancelType) + TaxiTaskModel.cancelOrder(it.orderNo, cancelType) } } private fun jumpPassengerCheck() { + DebugView.printInfoMsg("[开始服务] 准备发送请求") val currentTaskWithOrder = TaxiTaskModel.getCurrentTaskWithOrder() currentTaskWithOrder?.order?.also { TaxiTaskWithOrderServiceManager.jumpPassengerCheck(AbsMogoApplication.getApp().applicationContext, it.orderNo, object : OchCommonServiceCallback { override fun onSuccess(data: BaseData?) { + DebugView.printInfoMsg("[开始服务] 请求success") d(TAG, "jumpPassengerCheck onSuccess:") } override fun onFail(code: Int, msg: String?) { + DebugView.printInfoMsg("[开始服务] 请求fail, code=$code, msg=$msg") d(TAG, "jumpPassengerCheck onFail: code=$code, msg=$msg") } }) @@ -113,16 +119,19 @@ class TaxiCurrentTaskViewModel : BaseViewModel(), } private fun journeyCompleted() { + DebugView.printInfoMsg("[服务完成] 准备发送请求") val currentTaskWithOrder = TaxiTaskModel.getCurrentTaskWithOrder() currentTaskWithOrder?.order?.also { TaxiTaskWithOrderServiceManager.orderCompleted(AbsMogoApplication.getApp().applicationContext, it.orderNo, object : OchCommonServiceCallback { override fun onSuccess(data: BaseData?) { + DebugView.printInfoMsg("[服务完成] 请求success") d(TAG, "journeyCompleted onSuccess") } override fun onFail(code: Int, msg: String?) { + DebugView.printInfoMsg("[服务完成] 请求fail, code=$code, msg=$msg") d(TAG, "journeyCompleted onFail: code=$code, msg=$msg") } }) @@ -191,6 +200,7 @@ class TaxiCurrentTaskViewModel : BaseViewModel(), override fun onTaskWithOrderDataChanged(result: QueryCurrentTaskRespBean.Result?) { d(TAG, "onTaskWithOrderChanged = result = " + GsonUtil.jsonFromObject(result)) + DebugView.printInfoMsg("[查询TaskWithOrder信息] 更新数据, 刷新UI") updateTaskAndOrderUi(result) } @@ -242,14 +252,16 @@ class TaxiCurrentTaskViewModel : BaseViewModel(), currentTaskWithOrder: QueryCurrentTaskRespBean.Result? ) { if (currentTaskWithOrder?.endSite != null && currentTaskWithOrder.startSite != null - && currentTaskWithOrder.currentStatus < TaskStatusEnum.CompleteTask.code) { + && currentTaskWithOrder.currentStatus < TaskStatusEnum.CompleteTask.code + ) { VoiceNotice.showNotice("暂停接单啦!要完成当前订单哦") } else { VoiceNotice.showNotice("暂停接单啦") } // TODO 如果当前有订单就不要刷新 if (currentTaskWithOrder?.startSite != null && - currentTaskWithOrder.endSite != null){ + currentTaskWithOrder.endSite != null + ) { return } updateDriveToNearestStationTaskUI(driveToNearestStationTask) diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiTaskModel.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiTaskModel.kt index 6d697f7a89..db2017cf12 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiTaskModel.kt +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiTaskModel.kt @@ -72,6 +72,7 @@ import com.mogo.och.taxi.constant.TaxiOrderStatusEnum import com.mogo.och.taxi.constant.TaxiUnmannedConst import com.mogo.och.taxi.constant.TaxiUnmannedConst.Companion.BUSINESSTYPE import com.mogo.och.taxi.network.TaxiTaskWithOrderServiceManager +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 @@ -326,6 +327,7 @@ object TaxiTaskModel { override fun onAutopilotSNRequest() {} override fun onAutopilotArriveAtStation(arrivalNotification: ArrivalNotification?) { i(TAG, "onAutopilotArriveAtStation = ${arrivalNotification.toString()}") + DebugView.printInfoMsg("[MAP到站通知] 上报到站,location=${arrivalNotification?.endLocation}") if (arrivalNotification == null || !checkCurrentTaskCondition() || mCurrentTaskWithOrder?.currentStatus == TaskStatusEnum.CompleteTask.code ) { @@ -388,6 +390,7 @@ object TaxiTaskModel { d( TAG, "getWayPointsList.Size = ${globalPathResp.wayPointsList.size}" ) + DebugView.printInfoMsg("[MAP全局规划回调] 回调,getWayPointsList.Size=${globalPathResp.wayPointsList.size}") if (it.size > 0) { // 本地计算全路径长度(实时更新剩余距离,剩余时间,预计到达时间) if (checkCurrentTaskCondition()) { @@ -417,6 +420,7 @@ object TaxiTaskModel { startFailedCode: String, startFailedMessage: String ) { + DebugView.printInfoMsg("[启自驾回调] 执行失败,code=$startFailedCode, msg=$startFailedMessage") TaxiAnalyticsManager.getInstance() .triggerStartAutopilotFailureEventByAdas(startFailedCode, startFailedMessage) if (mADASStatusCallback != null && !FunctionBuildConfig.isDemoMode) { @@ -524,6 +528,7 @@ object TaxiTaskModel { "judgeDriveToNearestStationTaskStation() ${virtualTask.siteName} distance = $distance" ) if (distance <= TaxiUnmannedConst.ARRIVE_AT_START_STATION_DISTANCE) { // 15米内到站 + DebugView.printInfoMsg("[高德定位围栏] 触发围栏,任务类型:DriveToNearestStationTask,围栏范围:${TaxiUnmannedConst.ARRIVE_AT_START_STATION_DISTANCE}米") submitArriveSite(virtualTask.siteId, true, isArrivedNearestStation = true) } } @@ -563,6 +568,7 @@ object TaxiTaskModel { */ fun submitArriveSite(siteId: Long, isArriveAtEndSite: Boolean, isArrivedNearestStation : Boolean = false) { + DebugView.printInfoMsg("[上报ArriveSite] siteId=$siteId, isArriveAtEndSite=$isArriveAtEndSite") i(TAG, message = "submitArriveSite: siteId=$siteId isArriveAtEndSite=$isArriveAtEndSite") TaxiTaskWithOrderServiceManager.arriveSite( mContext, @@ -570,6 +576,7 @@ object TaxiTaskModel { object : OchCommonServiceCallback { override fun onSuccess(data: BaseData?) { if (data == null || data.code != 0) return + DebugView.printInfoMsg("[上报ArriveSite] success siteId=$siteId, isArriveAtEndSite=$isArriveAtEndSite") d(TAG, "submitArriveSite-onSuccess data=" + GsonUtil.jsonFromObject(data)) mDriveToNearestStationTask = null if (isArrivedNearestStation){// 播报提醒 @@ -584,6 +591,7 @@ object TaxiTaskModel { } override fun onFail(code: Int, msg: String?) { + DebugView.printErrorMsg("[上报ArriveSite] failed, code=$code, msg=$msg") d(TAG, "code=$code msg=$msg") } }) @@ -639,10 +647,11 @@ object TaxiTaskModel { AbsMogoApplication.getApp().applicationContext, object : OchCommonServiceCallback { override fun onSuccess(data: QueryCurrentTaskRespBean?) { + //DebugView.printInfoMsg("[查询TaskWithOrder信息] success") if (data?.data == null) { d( TAG, - "queryCurrentTaskOnce onSuccess: data.code != 0 || data === null || data.data === null" + "queryCurrentTaskOnce onSuccess: data == null || data.data == null" ) return } @@ -696,7 +705,8 @@ object TaxiTaskModel { // 主要是解决A-B演练任务同时接到A-B订单状态流转的问题 //注意: 需要去除到达乘客上车点的节点, 这个节点不拉取任务 if (result?.currentStatus == TaskStatusEnum.CompleteTask.code - && !QueryCurrentTaskRespBean.isOrderArriveAtStart(result)) { + && !QueryCurrentTaskRespBean.isOrderArriveAtStart(result) + ) { mTaxiTaskWithOrderCallbackMap.forEach { val listener = it.value listener.onTaskCompleted( @@ -754,6 +764,7 @@ object TaxiTaskModel { override fun onFail(code: Int, msg: String?) { d(TAG, "queryCurrentTaskOnce onFail: code=$code, msg=$msg") + DebugView.printErrorMsg("[查询TaskWithOrder信息] fail, code=$code, msg=$msg") } }) } @@ -761,15 +772,18 @@ object TaxiTaskModel { /** * 取消订单 进行中/待服务 */ - fun cancelOrder(orderNo: String,cancelType: Int){ + fun cancelOrder(orderNo: String, cancelType: Int) { + DebugView.printInfoMsg("[取消订单] 准备发送请求") TaxiTaskWithOrderServiceManager.cancelOrder(AbsMogoApplication.getApp().applicationContext, orderNo, cancelType, object : OchCommonServiceCallback { override fun onSuccess(data: BaseData?) { + DebugView.printInfoMsg("[取消订单] 请求success") d(TAG, "handleCancelOrder() = onSuccess") } override fun onFail(code: Int, msg: String?) { + DebugView.printErrorMsg("[取消订单] 请求fail, code=$code, msg=$msg") d(TAG, "handleCancelOrder() $code $msg") } }) @@ -842,22 +856,26 @@ object TaxiTaskModel { } fun startTask(lineId: Long) { + DebugView.printInfoMsg("[开始任务] 准备发送请求") TaxiTaskWithOrderServiceManager.startTask( mContext, lineId, object : OchCommonServiceCallback { override fun onSuccess(data: BaseData?) { + DebugView.printInfoMsg("[开始任务] 请求success") startAutoPilot() //自驾开启 d(TAG, "startTask onSuccess: data=${GsonUtil.jsonFromObject(data)}") } override fun onFail(code: Int, msg: String?) { + DebugView.printErrorMsg("[开始任务] 请求fail, code=$code, msg=$msg") d(TAG, "startTask onFail: code=$code, msg=$msg") } }) } fun prepareNextTask(siteId: Long) { + DebugView.printInfoMsg("[PrepareNextTask] 准备发送请求") TaxiTaskWithOrderServiceManager.prepareTask( mContext, siteId, @@ -868,6 +886,7 @@ object TaxiTaskModel { "prepareNextTask onSuccess:${GsonUtil.jsonFromObject(data)}, " + "isCarServingStatus = ${TaxiCarServingStatusManager.isCarServingStatus()}" ) + DebugView.printInfoMsg("[PrepareNextTask] 请求success") if (data?.data == null) return //去下载轨迹, 下发给工控机下载 // queryTaskTrajectoryByLineIds( @@ -877,6 +896,7 @@ object TaxiTaskModel { } override fun onFail(code: Int, msg: String?) { + DebugView.printErrorMsg("[PrepareNextTask] 请求fail, code=$code ,msg=$msg") d(TAG, "prepareNextTask onFail: code=$code ,msg=$msg") if (LoginStatusManager.isLogin() && TaxiCarServingStatusManager.isCarServingStatus()) { startPrepareTaskDelay120S(siteId) @@ -886,6 +906,7 @@ object TaxiTaskModel { } fun startPrepareTaskDelay120S(siteId: Long) { + DebugView.printInfoMsg("[PrepareNextTask] 倒计时${TaxiUnmannedConst.TIMER_PREPARE_TASK_INTERVAL_120S/1000}秒后prepareNextTask") UiThreadHandler.postDelayed({ prepareNextTask(siteId) }, TaxiUnmannedConst.TIMER_PREPARE_TASK_INTERVAL_120S) @@ -895,6 +916,7 @@ object TaxiTaskModel { * 查询当前任务的轨迹 */ fun queryTaskTrajectoryByLineIds(planningLineIds: Array, currentTaskLineId: Long) { + DebugView.printInfoMsg("[查询轨迹信息] 准备发送请求") TaxiTaskWithOrderServiceManager.queryTrajectoryByLindIds( mContext, planningLineIds, @@ -904,6 +926,7 @@ object TaxiTaskModel { TAG, "queryTaskTrajectoryByLineIds onSuccess: ${GsonUtil.jsonFromObject(data?.data)}" ) + DebugView.printInfoMsg("[查询轨迹信息] 请求success") data?.data?.also { mTaskTrajectoryList.addAll(it) mCurrentTaskTrajectory = it.first { currentTaskLineId == it.lineId } @@ -915,6 +938,7 @@ object TaxiTaskModel { } override fun onFail(code: Int, msg: String?) { + DebugView.printErrorMsg("[查询轨迹信息] 请求fail, code=$code, msg=$msg") d(TAG, "queryTaskTrajectoryByLineIds onFail: code=$code, msg=$msg") } }) @@ -926,10 +950,12 @@ object TaxiTaskModel { return } if (TaxiCarServingStatusManager.isCarServingStatus()) {//接单状态下,去结束 + DebugView.printInfoMsg("[暂停接单] 准备发送请求") TaxiTaskWithOrderServiceManager.endService( mContext, object : OchCommonServiceCallback { override fun onSuccess(data: BaseData?) { + DebugView.printInfoMsg("[暂停接单] 请求success") loginService?.queryLoginStatusByNet() //需要将虚拟任务停掉, 虚拟任务会再开始接单后获取新的 mDriveToNearestStationTask = null @@ -941,20 +967,24 @@ object TaxiTaskModel { override fun onError() { mTaxiCarServiceCallback?.onCarEndServiceError() + DebugView.printErrorMsg("[暂停接单] 请求error") } override fun onFail(code: Int, msg: String) { + DebugView.printErrorMsg("[暂停接单] 请求fail, code=$code, msg=$msg") mTaxiCarServiceCallback?.onCarEndServiceFailed(code, msg) } }) } else { //暂停接单状态下,去接单 + DebugView.printInfoMsg("[开始接单] 准备发送请求") TaxiTaskWithOrderServiceManager.startService(mContext, CallerChassisLocationGCJ02ListenerManager.getChassisLocationGCJ02().latitude, CallerChassisLocationGCJ02ListenerManager.getChassisLocationGCJ02().longitude, object : OchCommonServiceCallback { override fun onSuccess(data: StartServiceRespBean?) { if (data == null) return + DebugView.printInfoMsg("[开始接单] 请求success") d(TAG, "data.data=" + GsonUtil.jsonFromObject(data.data)) loginService?.queryLoginStatusByNet() mDriveToNearestStationTask = data.data @@ -965,10 +995,12 @@ object TaxiTaskModel { } override fun onFail(code: Int, msg: String) { + DebugView.printErrorMsg("[开始接单] 请求fail, code=$code, msg=$msg") mTaxiCarServiceCallback?.onCarStartServiceFailed(code, msg) } override fun onError() { + DebugView.printErrorMsg("[开始接单] 请求error") mTaxiCarServiceCallback?.onCarStartServiceError() } }) @@ -987,12 +1019,14 @@ object TaxiTaskModel { fun startAutoPilot() { if (!checkCurrentTaskCondition()) { e(TAG, "no order or order is empty.") + DebugView.printErrorMsg("[启自驾] 当前订单不存在或异常!") ToastUtils.showShort("当前订单不存在或异常!") return } if (mCurrentTaskTrajectory == null) { e(TAG, "no order or order is empty.") + DebugView.printErrorMsg("[启自驾] 轨迹信息不存在!") ToastUtils.showShort("轨迹信息不存在!") } @@ -1003,6 +1037,7 @@ object TaxiTaskModel { && TextUtils.isEmpty(mCurrentTaskTrajectory!!.csvFileUrlDPQP) ) { ToastUtils.showLong("无发布轨迹, 请发布后重试") + DebugView.printErrorMsg("[启自驾] 无发布轨迹, 请发布后重试") e( TAG, "isPassStartAutopilotCommand = " + FunctionBuildConfig.isPassStartAutopilotCommand @@ -1020,6 +1055,7 @@ object TaxiTaskModel { OCHAdasAbilityManager.getInstance().autopilotUnAbilityReason + ", 请稍候重试" ) + DebugView.printErrorMsg("[启自驾] ${OCHAdasAbilityManager.getInstance().autopilotUnAbilityReason}") TaxiAnalyticsManager.getInstance().triggerUnableStartAPReasonEvent( mCurrentTaskWithOrder!!.startSite!!.siteName, mCurrentTaskWithOrder!!.endSite!!.siteName, @@ -1038,6 +1074,7 @@ object TaxiTaskModel { return } CallerAutoPilotControlManager.startAutoPilot(parameters) + DebugView.printInfoMsg("[启自驾] 调用成功") d( TAG, "start autopilot with parameter: %s", GsonUtil.jsonFromObject(parameters) @@ -1105,6 +1142,7 @@ object TaxiTaskModel { fun cancelAutopilot() { try { CallerAutoPilotControlManager.cancelAutoPilot() + DebugView.printInfoMsg("[取消自驾] 调用成功") d(TAG, "结束自动驾驶") } catch (e: Exception) { e.printStackTrace() @@ -1147,11 +1185,25 @@ object TaxiTaskModel { //3、刚过站且过站距离在15m内, 提交到站 if (stationAngle > 90) { i(TAG, "judgeEndStation() = 刚过站且在15m内") + DebugView.printInfoMsg( + "[高德定位围栏] 触发围栏,任务类型:${ + TaskTypeEnum.valueOf( + mCurrentTaskWithOrder?.taskType ?: 0 + )?.name + },围栏范围:${TaxiUnmannedConst.ARRIVE_AT_START_STATION_DISTANCE}米 刚过站且在15m内" + ) submitArriveSite(endSite.siteId, true) - }else{ + } else { // 4、 没有过站距离小于15m 速度小于0.5(根据M1来的模数 可能要调) if (currentLocation.gnssSpeed < 0.5) { i(TAG, "judgeEndStation() = 没有过站、速度基本为零且在15m内") + DebugView.printInfoMsg( + "[高德定位围栏] 触发围栏,任务类型:${ + TaskTypeEnum.valueOf( + mCurrentTaskWithOrder?.taskType ?: 0 + )?.name + },围栏范围:${TaxiUnmannedConst.ARRIVE_AT_START_STATION_DISTANCE}米 没有过站、速度基本为零且在15m内" + ) submitArriveSite(endSite.siteId, true) } } @@ -1215,6 +1267,7 @@ object TaxiTaskModel { ) mCurrentTaskWithOrder = null mDriveToNearestStationTask = null + DebugView.printInfoMsg("[登出] 退出登陆") } //导航去订单终点目的地 @@ -1288,11 +1341,13 @@ object TaxiTaskModel { return } d(TAG, "AutopilotControlParameters is update.") + DebugView.printInfoMsg("[启自驾] updateAutopilotControlParameters调用成功") updateAutopilotControlParameters(parameters) } private fun clearAutopilotControlParameters() { d(TAG, "AutopilotControlParameters is clear.") + DebugView.printInfoMsg("[启自驾] clearAutopilotControlParameters调用成功") updateAutopilotControlParameters(null) } @@ -1309,7 +1364,6 @@ object TaxiTaskModel { ToastUtils.showShort("无任务!") return } -// arriveSite(mCurrentTaskAndOrder?.endSite!!.siteId, true) autopilotArriveAtStation() } diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/utils/TaxiTrajectoryManager.java b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/utils/TaxiTrajectoryManager.java index 23c3446931..e5563f31e9 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/utils/TaxiTrajectoryManager.java +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/utils/TaxiTrajectoryManager.java @@ -13,6 +13,7 @@ import com.mogo.och.taxi.bean.QueryCurrentTaskRespBean; import com.mogo.och.taxi.bean.TrajectoryListRespBean; import com.mogo.och.taxi.constant.TaskStatusEnum; import com.mogo.och.taxi.constant.TaxiUnmannedConst; +import com.mogo.och.taxi.ui.debug.DebugView; import com.mogo.och.taxi.ui.task.TaxiTaskModel; import java.util.ArrayList; @@ -163,7 +164,6 @@ public class TaxiTrajectoryManager { final List orderContrails = TaxiTaskModel.INSTANCE.getCurrentOrderTrajectoryList(); if (orderDetail != null && orderContrails != null && orderContrails.size() != 0 ){ - List lineIds = new ArrayList<>(); lineIds.addAll(Arrays.asList(orderDetail.getPlanningLines())); // 接驾 lineIds.add(orderDetail.getOrderLine());//送驾 @@ -249,6 +249,7 @@ public class TaxiTrajectoryManager { if (mSendReqDisposable != null && !mSendReqDisposable.isDisposed()) { return; } + DebugView.Companion.printInfoMsg("[启自驾] startTrajectoryReqLoop"); CallerLogger.d(M_TAXI + TAG, "startTrajReqLoop()"); setupAutoPilotLine(); mSendReqDisposable = Observable.interval(TaxiUnmannedConst.LOOP_DELAY, @@ -268,6 +269,7 @@ public class TaxiTrajectoryManager { } private void stopTrajReqLoop() { + DebugView.Companion.printInfoMsg("[启自驾] stopTrajectoryReqLoop"); if (mSendReqDisposable != null) { CallerLogger.d(M_TAXI + TAG, "stopTrajReqLoop()"); mSendReqDisposable.dispose(); @@ -278,13 +280,15 @@ public class TaxiTrajectoryManager { private void sendTrajectoryReq() { if (mAutoPilotLine != null) { + DebugView.Companion.printInfoMsg("[启自驾] sendTrajectoryDownloadReq, lindId=" + mAutoPilotLine.getLineId() + ", lineName=" + mAutoPilotLine.getLineName()); CallerAutoPilotControlManager.INSTANCE.sendTrajectoryDownloadReq(mAutoPilotLine,COMMON_LOADING); }else { CallerLogger.e(M_TAXI + TAG, "sendTrajectoryReq(): mAutoPilotLine is null!!!"); } if (mPreAutoPilotLine != null){ - CallerAutoPilotControlManager.INSTANCE.sendTrajectoryDownloadReq(mPreAutoPilotLine,PRE_LOADING); + DebugView.Companion.printInfoMsg("[启自驾] sendTrajectoryDownloadReq, lindId=" + mPreAutoPilotLine.getLineId() + ", lineName=" + mPreAutoPilotLine.getLineName()); + CallerAutoPilotControlManager.INSTANCE.sendTrajectoryDownloadReq(mPreAutoPilotLine, PRE_LOADING); }else { CallerLogger.e(M_TAXI + TAG, "sendTrajectoryReq(): mPreAutoPilotLine is null!!!"); diff --git a/OCH/taxi/unmanned-driver/src/main/res/drawable/taxi_debug_view_log_history_bg.xml b/OCH/taxi/unmanned-driver/src/main/res/drawable/taxi_debug_view_log_history_bg.xml new file mode 100644 index 0000000000..3911b44185 --- /dev/null +++ b/OCH/taxi/unmanned-driver/src/main/res/drawable/taxi_debug_view_log_history_bg.xml @@ -0,0 +1,8 @@ + + + + + \ No newline at end of file diff --git a/OCH/taxi/unmanned-driver/src/main/res/layout/taxi_debug_order.xml b/OCH/taxi/unmanned-driver/src/main/res/layout/taxi_debug_order.xml index cf3b2468bc..3c08aea9e7 100644 --- a/OCH/taxi/unmanned-driver/src/main/res/layout/taxi_debug_order.xml +++ b/OCH/taxi/unmanned-driver/src/main/res/layout/taxi_debug_order.xml @@ -5,157 +5,192 @@ android:layout_height="wrap_content" android:orientation="vertical"> - + android:layout_height="wrap_content"> + + + +