From 71139f9c9ab88644af014be7c14f1c6b04bb6816 Mon Sep 17 00:00:00 2001 From: donghongyu Date: Mon, 3 Jun 2024 19:30:05 +0800 Subject: [PATCH] =?UTF-8?q?[Routing=20dev]=201=E3=80=81=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../och/taxi/callback/ITaxiRoutingCallback.kt | 45 +++++++++++++++++++ .../taxi/network/TaxiRoutingServiceManager.kt | 3 ++ .../mogo/och/taxi/ui/base/TaxiPresenter.java | 3 ++ .../routing/TaxiRoutingChooseLineActivity.kt | 3 ++ .../routing/TaxiRoutingChooseLineAdapter.kt | 2 +- .../taxi/ui/routing/TaxiRoutingFragment.kt | 7 +++ .../routing/TaxiRoutingFragmentViewModel.kt | 1 + .../och/taxi/ui/routing/TaxiRoutingModel.kt | 32 ++++++++++++- 8 files changed, 93 insertions(+), 3 deletions(-) diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/callback/ITaxiRoutingCallback.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/callback/ITaxiRoutingCallback.kt index 22fcb34e93..df310b978f 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/callback/ITaxiRoutingCallback.kt +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/callback/ITaxiRoutingCallback.kt @@ -4,14 +4,59 @@ import com.mogo.och.taxi.bean.GrayLineBean import com.mogo.och.taxi.bean.StartGrayAndQueryContrailRsp interface ITaxiRoutingCallback { + /** + * 查询灰度路线列表--成功✅ + */ fun onQueryRoutingGrayLineListSuccess(data: MutableList) + + /** + * 查询灰度路线列表--失败❌ + * @param errorStr 错误信息 + */ fun onQueryRoutingGrayLineListFailed(errorStr: String) + + /** + * 灰度任务&查询轨迹详情--成功✅ + */ fun onStartGrayTaskAndQueryContrailSuccess(data: StartGrayAndQueryContrailRsp) + + /** + * 灰度任务&查询轨迹详情--失败❌ + * @param errorStr 错误信息 + */ fun onStartGrayTaskAndQueryContrailFailed(errorStr: String) + + /** + * 灰度任务过程中,上报问题打点--成功✅ + */ fun onSubmitGrayLineIssueLocationSuccess() + + /** + * 灰度任务过程中,上报问题打点--失败❌ + * @param errorStr 错误信息 + */ fun onSubmitGrayLineIssueLocationFailed(errorStr: String) + + /** + * 结束灰度任务--成功✅ + */ fun onSubmitEndTaskSuccess() + + /** + * 结束灰度任务--成功❌ + * @param errorStr 错误信息 + */ fun onSubmitEndTaskFailed(errorStr: String) + + /** + * MAP到站通知 + * @param grayId 灰度路线ID + */ fun onAutoPilotArriveAtEndStation(grayId: Long?) + + /** + * 自车定位围栏 + * @param grayId 灰度路线ID + */ fun onGDMapArriveAtEndStation(grayId: Long?) } diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/network/TaxiRoutingServiceManager.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/network/TaxiRoutingServiceManager.kt index 0d1377a6cf..fe8caf97af 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/network/TaxiRoutingServiceManager.kt +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/network/TaxiRoutingServiceManager.kt @@ -105,6 +105,9 @@ object TaxiRoutingServiceManager { .subscribe(OchCommonSubscribeImpl(context, callback, "dot/list")) } + /** + * 标记灰度任务被启动验证 + */ fun startGrayTaskAndQueryRoutingContrail( context: Context, sn: String, diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/base/TaxiPresenter.java b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/base/TaxiPresenter.java index 3f0c3169f4..8cf65e5a50 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/base/TaxiPresenter.java +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/base/TaxiPresenter.java @@ -73,9 +73,12 @@ public class TaxiPresenter extends Presenter implements ITaxiADASS * 开启自动驾驶 自驾模式 */ public void startAutoPilot() { + // 这里区分是订单还是灰度测试 if (MogoStatusManager.getInstance().isTaxiUnmanedDriverLineRoutingVerifyMode()) { + // 灰度测试 TaxiRoutingModel.INSTANCE.startAutoPilotByClick(); } else { + // 订单 TaxiTaskModel.INSTANCE.startAutopilotByClick(); } } diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/routing/TaxiRoutingChooseLineActivity.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/routing/TaxiRoutingChooseLineActivity.kt index e9c72c0f2a..4514f3b265 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/routing/TaxiRoutingChooseLineActivity.kt +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/routing/TaxiRoutingChooseLineActivity.kt @@ -90,6 +90,8 @@ class TaxiRoutingChooseLineActivity : AppCompatActivity() { btnClose.setOnClickListener { finish() } + + // 选择路线后,「确认」按钮 btnChooseLineSubmit.setOnClickListener { if (mCurrentChosenPosition == -1) { ToastUtils.showLong("请先选择任务") @@ -99,6 +101,7 @@ class TaxiRoutingChooseLineActivity : AppCompatActivity() { mLoadingDialog.showLoading() val chosenItem = mRoutingLineList[mCurrentChosenPosition] mViewModel.sendUiIntent( + // 调用查询接口获取路线详情 TaxiRoutingUiIntent.StartTaskAndQueryContrail(chosenItem) ) } diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/routing/TaxiRoutingChooseLineAdapter.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/routing/TaxiRoutingChooseLineAdapter.kt index 828a8e4416..8c0813955b 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/routing/TaxiRoutingChooseLineAdapter.kt +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/routing/TaxiRoutingChooseLineAdapter.kt @@ -32,7 +32,7 @@ class TaxiRoutingChooseLineAdapter( override fun onBindViewHolder(holder: SwitchLineViewHolder, position: Int) { val currentPosition = holder.bindingAdapterPosition val data = mData[currentPosition] - // 区分Routing和循迹 + holder.lineNameTextView.text = data.lineName holder.todayVerifyNumTextView.text = "本车今日已验证:${data.carVerificationCount}次" holder.historyVerifyNumTextView.text = diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/routing/TaxiRoutingFragment.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/routing/TaxiRoutingFragment.kt index da83878c81..9f95ea75b7 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/routing/TaxiRoutingFragment.kt +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/routing/TaxiRoutingFragment.kt @@ -122,6 +122,9 @@ class TaxiRoutingFragment : BaseFragment(), ICommonNaviChangedCallback { } } + /** + * 展示选择任务视图 + */ private fun showChooseTaskView() { noDataContainer.visibility = View.VISIBLE mCurrentTaskLayout.visibility = View.GONE @@ -134,6 +137,9 @@ class TaxiRoutingFragment : BaseFragment(), ICommonNaviChangedCallback { removeAllMapMarker() } + /** + * 展示当前路线任务信息 + */ private fun showCurrentLineTaskContentView(data: RoutingUIState.RoutingTask) { noDataContainer.visibility = View.GONE mCurrentTaskLayout.visibility = View.VISIBLE @@ -143,6 +149,7 @@ class TaxiRoutingFragment : BaseFragment(), ICommonNaviChangedCallback { btnChooseTask.visibility = View.GONE btnStartTask.visibility = View.VISIBLE + // 开始任务,按钮 btnStartTask.setOnClickListener { mViewModel.sendUiIntent(TaxiRoutingUiIntent.StartTaskAction(data)) } diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/routing/TaxiRoutingFragmentViewModel.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/routing/TaxiRoutingFragmentViewModel.kt index b8436acf82..292c3eca79 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/routing/TaxiRoutingFragmentViewModel.kt +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/routing/TaxiRoutingFragmentViewModel.kt @@ -59,6 +59,7 @@ class TaxiRoutingFragmentViewModel : BaseViewModel { DebugView.printInfoMsg("[开始任务] 准备开始任务") val grayLineBean = intent.routingTask.grayLineBean diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/routing/TaxiRoutingModel.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/routing/TaxiRoutingModel.kt index 2392b26090..41421c3cbe 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/routing/TaxiRoutingModel.kt +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/routing/TaxiRoutingModel.kt @@ -88,7 +88,9 @@ object TaxiRoutingModel { OchAutoPilotStatusListenerManager.removeListener(TAG) } - //MAP到站监听 + /** + * MAP到站监听 + */ private val mMogoAutopilotStatusListener: IOchAutopilotStatusListener = object : IOchAutopilotStatusListener { @@ -128,7 +130,9 @@ object TaxiRoutingModel { } } - // 自车定位监听 + /** + * 自车定位监听 + */ private val mMapLocationListener: IMoGoChassisLocationGCJ02Listener = object : IMoGoChassisLocationGCJ02Listener { override fun onChassisLocationGCJ02(currentLocation: MogoLocation?) { @@ -199,6 +203,9 @@ object TaxiRoutingModel { CallerChassisLocationGCJ02ListenerManager.removeListener(TAG) } + /** + * 查询灰度路线 + */ fun queryRoutingGrayLineList() { DebugView.printInfoMsg("[查询灰度路线] 准备发送请求,sn=${SharedPrefsMgr.getInstance().sn}") TaxiRoutingServiceManager.queryRoutingGrayLineList(mContext, @@ -255,6 +262,9 @@ object TaxiRoutingModel { }) } + /** + * 开始灰度任务&查询轨迹详情 + */ fun startGrayTaskAndQueryRoutingContrail(contrailId: Long, grayLineBean: GrayLineBean) { DebugView.printInfoMsg("[开始灰度任务&查询轨迹详情] 准备发送请求,contrailId=${contrailId}, lineId=${grayLineBean.lineId}") TaxiRoutingServiceManager.startGrayTaskAndQueryRoutingContrail( @@ -275,6 +285,7 @@ object TaxiRoutingModel { DebugView.printInfoMsg("[开始灰度任务&查询轨迹详情] 请求success,taskId=${data.taskId}, contrailId=${contrailId}, lineId=${grayLineBean.lineId}") mTaxiRoutingCallbackMap.forEach { val listener = it.value + //TODO Routing 从这里解析出经停信息,并和订单一样调用下载轨迹接口 listener.onStartGrayTaskAndQueryContrailSuccess(data) } } @@ -315,6 +326,9 @@ object TaxiRoutingModel { ) } + /** + * 灰度任务过程中,上报问题打点 + */ fun submitGrayLineIssueLocation(grayId: Long, gcjLon: Double, gcjLat: Double) { DebugView.printInfoMsg("[上报打点] 准备发送请求,grayId=$grayId, gcjLon=$gcjLon, gcjLat=$gcjLat") val submit = SubmitGrayLineIssueLocationReq(grayId, gcjLon, gcjLat) @@ -374,6 +388,9 @@ object TaxiRoutingModel { ) } + /** + * 结束灰度任务 + */ fun endGrayTask(grayId: Long, type: EndGrayTaskFeedbackType, occurrenceTime:Long,) { DebugView.printInfoMsg("[结束灰度任务] 准备发送请求,grayId=$grayId, type=${type.type}, typeName=${type.name}") val submit = EndGrayContrailTaskReq(grayId, type.type,occurrenceTime) @@ -432,6 +449,9 @@ object TaxiRoutingModel { }) } + /** + * 更新灰度路线信息 + */ fun updateCurrentGrayLineAndContrail( grayLineBean: GrayLineBean?, contrailBean: ContrailBean?, @@ -442,6 +462,9 @@ object TaxiRoutingModel { currentGrayId = grayId } + /** + * 灰度测试路线,启动自动驾驶 + */ fun startAutoPilotByClick() { if (currentGrayLineBean == null || currentContrailBean == null) { CallerLogger.e( @@ -454,6 +477,9 @@ object TaxiRoutingModel { startAutoPilot(currentGrayLineBean!!, currentContrailBean!!) } + /** + * 启动自动驾驶 + */ fun startAutoPilot(grayLineBean: GrayLineBean, contrailBean: ContrailBean) { if (grayLineBean.startSite == null || grayLineBean.endSite == null) { CallerLogger.e(TAG, "start site or end site is null") @@ -487,12 +513,14 @@ object TaxiRoutingModel { return } + // 初始化自动驾驶需要的参数 val parameters = initAutopilotControlParameters(grayLineBean, contrailBean) if (null == parameters) { CallerLogger.e(TAG, "AutopilotControlParameters is empty.") return } + // 开启自动驾驶 OchAutoPilotManager.startAutoPilot(parameters); DebugView.printInfoMsg("[启自驾] 调用成功")