[646] fix: 订单结束后 没清除全局轨迹 问题;

fix: 订单结束后清除全局轨迹时 同时清除 数据,等待下一个订单再次返回全局轨迹规划数据;
This commit is contained in:
aibingbing
2024-06-28 17:10:17 +08:00
parent 03f9e605a0
commit 172c5a6503
9 changed files with 23 additions and 11 deletions

View File

@@ -11,7 +11,7 @@ object LineManager : CallerBase<ILineCallback>() {
@JvmStatic
fun setLineId(value: Int) {
lineId = if (value < 0) {
clearGlobalTrajectory()
clearGlobalTrajectory(true)
-1
} else {
value
@@ -20,7 +20,7 @@ object LineManager : CallerBase<ILineCallback>() {
@JvmStatic
fun setLineId(value: Long) {
lineId = if (value < 0) {
clearGlobalTrajectory()
clearGlobalTrajectory(true)
-1
} else {
value.toInt()
@@ -45,8 +45,8 @@ object LineManager : CallerBase<ILineCallback>() {
return CallerMapGlobalTrajectoryDrawManager.hasDrawnGlobalTrajectory()
}
fun clearGlobalTrajectory() {
CallerMapGlobalTrajectoryDrawManager.clearGlobalTrajectory()
fun clearGlobalTrajectory(isClearData: Boolean) {
CallerMapGlobalTrajectoryDrawManager.clearGlobalTrajectory(isClearData)
if (!hasDrawnGlobalTrajectory()){
M_LISTENERS.forEach {
it.value.clearLineSuccess()

View File

@@ -36,7 +36,7 @@ class LineView : AppCompatImageView, LineViewModel.ILineViewCallback {
onClick {
if (LineManager.hasDrawnGlobalTrajectory()) {
LineManager.clearGlobalTrajectory()
LineManager.clearGlobalTrajectory(false)
} else {
val drawGlobalTrajectory = LineManager.drawGlobalTrajectory()
if (!drawGlobalTrajectory.first) {

View File

@@ -8,6 +8,7 @@ import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02Lis
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
import com.mogo.eagle.core.utilcode.util.ActivityUtils
import com.mogo.eagle.core.utilcode.util.ToastUtils
import com.mogo.och.common.module.manager.autopilot.line.LineManager
import com.mogo.och.common.module.map.AmapNaviToDestinationModel
import com.mogo.och.unmanned.taxi.base.BaseViewModel
import com.mogo.och.unmanned.taxi.base.IUiIntent
@@ -54,6 +55,9 @@ class TaxiRoutingFragmentViewModel : BaseViewModel<TaxiRoutingUiState, TaxiRouti
)
)
}
task.contrailBean?.lineId?.also {
LineManager.setLineId(it)
}
// 设置灰度路线任务执行状态,切换模式时判断使用
MogoStatusManager.getInstance()
.setTaxiUnmanedDriverLineRoutingPerformTask(TAG, true)
@@ -148,6 +152,7 @@ class TaxiRoutingFragmentViewModel : BaseViewModel<TaxiRoutingUiState, TaxiRouti
TaxiRoutingModel.updateCurrentGrayLineAndContrail(null, null, -1L)
// 设置灰度路线任务执行状态,切换模式时判断使用
MogoStatusManager.getInstance().setTaxiUnmanedDriverLineRoutingPerformTask(TAG, false)
LineManager.setLineId(-1)
TaxiRoutingModel.startNaviToEndStationByAMap(false)
// 移除到站监听
TaxiRoutingModel.removeAutoPilotStatusListener()

View File

@@ -243,6 +243,7 @@ class TaxiCurrentTaskViewModel : BaseViewModel<UnmannedState, TaskUiIntent>(),
// 设置task执行相关状态切换模式时判断使用
if (result == null || result.taskType == TaskTypeEnum.None.code) {
MogoStatusManager.getInstance().setTaxiUnmanedDriverPerformTask(TAG, false)
LineManager.setLineId(-1)
} else {
MogoStatusManager.getInstance().setTaxiUnmanedDriverPerformTask(TAG, true)
}
@@ -338,6 +339,7 @@ class TaxiCurrentTaskViewModel : BaseViewModel<UnmannedState, TaskUiIntent>(),
TaxiTaskModel.cancelAutopilot()
// 设置task执行相关状态切换模式时判断使用
MogoStatusManager.getInstance().setTaxiUnmanedDriverPerformTask(TAG, false)
LineManager.setLineId(-1)
}
override fun onOrderArriveAtEnd(orderNo: String) {
@@ -361,6 +363,7 @@ class TaxiCurrentTaskViewModel : BaseViewModel<UnmannedState, TaskUiIntent>(),
}
// 设置task执行相关状态切换模式时判断使用
MogoStatusManager.getInstance().setTaxiUnmanedDriverPerformTask(TAG, false)
LineManager.setLineId(-1)
}
override fun onStartAutopilot(postDelayTime: Long) {

View File

@@ -1478,6 +1478,7 @@ object TaxiTaskModel {
mCurrentTaskWithOrder = null
mDriveToNearestStationTask = null
DebugView.printInfoMsg("[登出] 退出登陆")
LineManager.setLineId(-1)
MogoStatusManager.getInstance().setTaxiUnmanedDriverPerformTask(TAG, false)
MogoStatusManager.getInstance().setTaxiUnmanedDriverTakingOrders(TAG, false)
MogoStatusManager.getInstance().setTaxiUnmanedDriverLineRoutingPerformTask(TAG, false)

View File

@@ -82,10 +82,13 @@ public class MogoTrajectoryOverlayManager implements IMoGoPlanningRottingListene
}
}
public void clearTrajectoryOverlay() {
public void clearTrajectoryOverlay(boolean isClearData) {
CallerLogger.i(TAG, "clearTrajectoryOverlay");
trackEvent("clearTrajectoryOverlay", "开始执行");
TrajectoryOverlayDrawer.getInstance().clearMogoTrajectoryOverlay();
if (isClearData) {
queue.clear();
}
trackEvent("clearTrajectoryOverlay", "success");
}

View File

@@ -35,8 +35,8 @@ class MogoTrajectoryOverlayProvider : IMoGoGlobalTrajectoryDrawListener {
return Pair(result.first, result.second)
}
override fun clearGlobalTrajectory() {
MogoTrajectoryOverlayManager.getInstance().clearTrajectoryOverlay()
override fun clearGlobalTrajectory(isClearData: Boolean) {
MogoTrajectoryOverlayManager.getInstance().clearTrajectoryOverlay(isClearData)
hasDrawn.set(false)
CallerLogger.i(TAG, "clearGlobalTrajectory --> hasDrawn=$hasDrawn")
}

View File

@@ -18,5 +18,5 @@ interface IMoGoGlobalTrajectoryDrawListener : IProvider {
/**
* 清除高精地图中的全局轨迹
*/
fun clearGlobalTrajectory()
fun clearGlobalTrajectory(isClearData: Boolean)
}

View File

@@ -37,8 +37,8 @@ object CallerMapGlobalTrajectoryDrawManager {
/**
* 清除高精地图中的全局轨迹
*/
fun clearGlobalTrajectory() {
provider?.clearGlobalTrajectory()
fun clearGlobalTrajectory(isClearData: Boolean) {
provider?.clearGlobalTrajectory(isClearData)
}
}