diff --git a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/callback/ISweeperTaskCallback.kt b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/callback/ISweeperTaskCallback.kt index f2243c1a05..7d5e5ef749 100644 --- a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/callback/ISweeperTaskCallback.kt +++ b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/callback/ISweeperTaskCallback.kt @@ -14,7 +14,7 @@ interface ISweeperTaskCallback { /** * 获取主任务列表 */ - fun setMainTaskList(mainTaskBeanList: MutableList?) + fun setMainTaskList(mainTaskBeanList: MutableList?,refresh:Boolean) /** * 获取子任务列表 diff --git a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/fragment/SweeperFragment.kt b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/fragment/SweeperFragment.kt index f1694198d7..f192b08973 100644 --- a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/fragment/SweeperFragment.kt +++ b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/fragment/SweeperFragment.kt @@ -11,6 +11,7 @@ import com.mogo.eagle.core.data.map.MogoLocation import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant import com.mogo.eagle.core.utilcode.util.ClickUtils +import com.mogo.eagle.core.utilcode.util.ToastUtils import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil import com.mogo.och.sweeper.R import com.mogo.och.sweeper.bean.SubInfo @@ -168,11 +169,11 @@ class SweeperFragment : BaseSweeperTabFragment?) { + fun setMainTaskList(mainTaskBeanList: MutableList?,refresh: Boolean) { setShowCurrentTaskPanelView(false) setShowTaskListPanelView(true) sweeper_cl_work_mode.visibility = View.GONE @@ -222,6 +223,9 @@ class SweeperFragment : BaseSweeperTabFragment=1 代表是重试 每次子任务结束/主任务结束清空置为0 private volatile int firstStartAutopilot = 0; //自动驾驶状态 @@ -195,10 +197,11 @@ public class SweeperTaskModel { }; - public void setSubtask(boolean isFirstSubtask, boolean isLastSubtask, int subTaskId) { + public void setSubtask(boolean isFirstSubtask, boolean isLastSubtask, int subTaskId,int subTaskType) { this.mIsLastSubtask = isLastSubtask; this.mIsFirstSubtask = isFirstSubtask; this.mSubTaskId = subTaskId; + this.mSubTaskType=subTaskType; } /** @@ -287,6 +290,9 @@ public class SweeperTaskModel { if (mControllerStatusCallback != null) { mControllerStatusCallback.onCarLocationChanged(gnssInfo); } + if (mSubTaskType==2){//人工驾驶子任务需要手动跳过,不能自动结束 + return; + } //子任务完成的围栏判断 子任务正在执行中,还未到达子任务终点 if (mIsSubTaskWorking&&!isArriveSubTaskEndSite) { judgeArrivedStation(gnssInfo); @@ -306,7 +312,9 @@ public class SweeperTaskModel { + " to " + mCurrentSubTaskDetail.getEndSiteName()); Log.d(TAG, "行程日志-judgeArrivedStation() distance = " + distance + " to " + mCurrentSubTaskDetail.getEndSiteName()); - onArriveTaskEnd(null); //无自动驾驶到终点信息传null + isArriveSubTaskEndSite=true; + //到达子任务终点 结束子任务 + subTaskEnd(mIsFirstSubtask, mIsLastSubtask, mSubTaskId); //无自动驾驶到终点信息传null return; } } @@ -388,7 +396,7 @@ public class SweeperTaskModel { Log.d(M_SWEEPER + TAG, "MAP到站通知:"+mCurrentSubTaskDetail.getEndSiteName()+"经度:" +data.getEndLocation().getLongitude()+"纬度:"+data.getEndLocation().getLongitude()); CallerLogger.INSTANCE.d(M_SWEEPER + TAG, "MAP到站通知:"+mCurrentSubTaskDetail.getEndSiteName()+"经度:" - +data.getEndLocation().getLongitude()+"纬度:"+data.getEndLocation().getLongitude()); + +data.getEndLocation().getLongitude()+"纬度:"+data.getEndLocation().getLatitude()); String latitude = NumberFormatUtil.cutOutNumber(data.getEndLocation().getLatitude(), 5); //wgs String longitude = NumberFormatUtil.cutOutNumber(data.getEndLocation().getLongitude(), 5); String arriveLat = NumberFormatUtil.cutOutNumber(mCurrentSubTaskDetail.getEndSiteWgs64Lat(), 5); @@ -398,6 +406,9 @@ public class SweeperTaskModel { return; } } + if (mSubTaskType==2){//人工驾驶子任务需要手动跳过,不能自动结束 + return; + } if (isArriveSubTaskEndSite) return; CallerLogger.INSTANCE.d(M_SWEEPER + TAG, "行程日志-当前==subTaskId=" + mSubTaskId); @@ -482,7 +493,7 @@ public class SweeperTaskModel { if (sweeperSubTaskBean != null && sweeperSubTaskBean.getSubList() != null && sweeperSubTaskBean.getSubList().size() > 0) { mSweeperTaskCallback.setSubTaskBean(sweeperSubTaskBean, true); } else { - getMainTaskList(); + getMainTaskList(false); } } } @@ -512,14 +523,14 @@ public class SweeperTaskModel { /** * 获取主任务列表 */ - public void getMainTaskList() { + public void getMainTaskList(boolean refresh) { SweeperServiceManager.getMainTaskList(mContext, new OchCommonServiceCallback>>() { @Override public void onSuccess(BaseResponse> data) { CallerLogger.INSTANCE.d(M_SWEEPER + TAG, "getMainTaskList:" + GsonUtil.jsonFromObject(data)); if (mSweeperTaskCallback != null && data != null && data.getCode() == 0) { List list = data.getData(); - mSweeperTaskCallback.setMainTaskList(list); + mSweeperTaskCallback.setMainTaskList(list,refresh); } } @@ -559,7 +570,7 @@ public class SweeperTaskModel { sweeperSubTaskBean.setSubList(list); mSweeperTaskCallback.setSubTaskBean(sweeperSubTaskBean, false); } else { - getMainTaskList(); + getMainTaskList(false); } } } diff --git a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/presenter/SweeperPresenter.java b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/presenter/SweeperPresenter.java index dcc0b93cb7..dc592e8d63 100644 --- a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/presenter/SweeperPresenter.java +++ b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/presenter/SweeperPresenter.java @@ -121,7 +121,6 @@ public class SweeperPresenter extends Presenter if (autopilotStatusInfo == null) return; CallerLogger.INSTANCE.d(M_SWEEPER + TAG, "onAutopilotStatusResponse state:" + autopilotStatusInfo.getState()); SweeperTaskModel.getInstance().setAutopilotState(autopilotStatusInfo.getState()); - ThreadUtils.runOnUiThread(() -> mView.startAutoBtn(autopilotStatusInfo.getState())); switch (autopilotStatusInfo.getState()) { case IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE://不可自动驾驶 @@ -190,9 +189,9 @@ public class SweeperPresenter extends Presenter /** * 设置当前子任务信息 */ - public void setSubtask(boolean isFirstSubtask, boolean isLastSubtask, int subTaskId) { + public void setSubtask(boolean isFirstSubtask, boolean isLastSubtask, int subTaskId,int subTaskType) { this.mSubTaskId = subTaskId; - SweeperTaskModel.getInstance().setSubtask(isFirstSubtask, isLastSubtask, subTaskId); + SweeperTaskModel.getInstance().setSubtask(isFirstSubtask, isLastSubtask, subTaskId,subTaskType); } public void setWorking(boolean isWorking){ SweeperTaskModel.getInstance().setWorking(isWorking); @@ -364,8 +363,8 @@ public class SweeperPresenter extends Presenter /** * 获取主任务列表 */ - public void getMainTaskList() { - SweeperTaskModel.getInstance().getMainTaskList(); + public void getMainTaskList(boolean refresh) { + SweeperTaskModel.getInstance().getMainTaskList(refresh); } /** @@ -415,8 +414,8 @@ public class SweeperPresenter extends Presenter } @Override - public void setMainTaskList(List mainTaskBeanList) { - mView.setMainTaskList(mainTaskBeanList); + public void setMainTaskList(List mainTaskBeanList,boolean refresh) { + mView.setMainTaskList(mainTaskBeanList,refresh); } @Override diff --git a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/view/SweeperCurrentTaskInfoView.kt b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/view/SweeperCurrentTaskInfoView.kt index b15d150219..91b92d6653 100644 --- a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/view/SweeperCurrentTaskInfoView.kt +++ b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/view/SweeperCurrentTaskInfoView.kt @@ -1,6 +1,7 @@ package com.mogo.och.sweeper.view import android.content.Context +import android.graphics.Color import android.util.AttributeSet import android.view.LayoutInflater import android.view.View @@ -104,17 +105,20 @@ class SweeperCurrentTaskInfoView : ConstraintLayout { * 设置准备就绪按钮时都可以点击 */ fun setEnableClickBtn(isWorking: Boolean) { - readyTaskBtn.isSelected = isWorking readyTaskBtn.isClickable=!isWorking presenter?.setWorking(isWorking) if (isWorking) { tvTaskState.text = "正在作业" readyTaskBtn.text="任务中" + readyTaskBtn.setTextColor(Color.parseColor("#FFFFFFFF")) tvTaskState.setBackgroundResource(R.drawable.bg_shape_task_state_working) + readyTaskBtn.setBackgroundResource(R.drawable.sweeper_task_working) } else { tvTaskState.text = "暂未准备" readyTaskBtn.text="开始任务" + readyTaskBtn.setTextColor(Color.parseColor("#66FFFFFF")) tvTaskState.setBackgroundResource(R.drawable.bg_shape_task_state_not_ready) + readyTaskBtn.setBackgroundResource(R.drawable.sweeper_task_not_working) } } @@ -125,19 +129,23 @@ class SweeperCurrentTaskInfoView : ConstraintLayout { when (autopilotState) { IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE -> { tvStartAuto.text="自动驾驶" - tvStartAuto.isSelected=false + tvStartAuto.setTextColor(Color.parseColor("#66FFFFFF")) + tvStartAuto.setBackgroundResource(R.drawable.sweeper_start_auto_not_running) } IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE -> { tvStartAuto.text="自动驾驶" - tvStartAuto.isSelected=false + tvStartAuto.setTextColor(Color.parseColor("#66FFFFFF")) + tvStartAuto.setBackgroundResource(R.drawable.sweeper_start_auto_not_running) } IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING -> { tvStartAuto.text="自动驾驶" - tvStartAuto.isSelected=true + tvStartAuto.setTextColor(Color.parseColor("#FFFFFFFF")) + tvStartAuto.setBackgroundResource(R.drawable.sweeper_start_auto_running) } IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING -> { tvStartAuto.text="平行驾驶" - tvStartAuto.isSelected=true + tvStartAuto.setTextColor(Color.parseColor("#FFFFFFFF")) + tvStartAuto.setBackgroundResource(R.drawable.sweeper_start_auto_running) } } } diff --git a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/view/SweeperTrafficDataView.kt b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/view/SweeperTrafficDataView.kt index 52b77b998c..e50f631b9a 100644 --- a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/view/SweeperTrafficDataView.kt +++ b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/view/SweeperTrafficDataView.kt @@ -23,6 +23,7 @@ import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant import com.mogo.eagle.core.utilcode.util.ThreadUtils import com.mogo.och.sweeper.R import planning.RoboSweeperTaskIndexOuterClass +import kotlin.math.roundToInt /** * 车辆基本信息:方向盘下方的档位 转向灯 限速 速度 电量 水量 @@ -126,7 +127,7 @@ class SweeperTrafficDataView : ConstraintLayout, mCurrentTimeBatteryMillis = current d(SceneConstant.M_SWEEPER + TAG, "电量:${states.bmsSoc}") UiThreadHandler.post{ - tvBattery?.text = "${states.bmsSoc}%" + tvBattery?.text = "${states.bmsSoc.roundToInt()}%" } } /** diff --git a/OCH/mogo-och-sweeper/src/main/res/drawable/sweeper_start_auto_btn.xml b/OCH/mogo-och-sweeper/src/main/res/drawable/sweeper_start_auto_btn.xml deleted file mode 100644 index 735fb4736b..0000000000 --- a/OCH/mogo-och-sweeper/src/main/res/drawable/sweeper_start_auto_btn.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/OCH/mogo-och-sweeper/src/main/res/drawable/sweeper_task_btn.xml b/OCH/mogo-och-sweeper/src/main/res/drawable/sweeper_task_btn.xml deleted file mode 100644 index 90bef4e1d4..0000000000 --- a/OCH/mogo-och-sweeper/src/main/res/drawable/sweeper_task_btn.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/OCH/mogo-och-sweeper/src/main/res/drawable/sweeper_task_list_not_selected.xml b/OCH/mogo-och-sweeper/src/main/res/drawable/sweeper_task_list_not_selected.xml index 97a8340239..11995408cb 100644 --- a/OCH/mogo-och-sweeper/src/main/res/drawable/sweeper_task_list_not_selected.xml +++ b/OCH/mogo-och-sweeper/src/main/res/drawable/sweeper_task_list_not_selected.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/OCH/mogo-och-sweeper/src/main/res/layout/sweeper_current_task_info.xml b/OCH/mogo-och-sweeper/src/main/res/layout/sweeper_current_task_info.xml index 41908b5b47..1b0482afa6 100644 --- a/OCH/mogo-och-sweeper/src/main/res/layout/sweeper_current_task_info.xml +++ b/OCH/mogo-och-sweeper/src/main/res/layout/sweeper_current_task_info.xml @@ -120,7 +120,7 @@ android:id="@+id/tvStartAuto" android:layout_width="0dp" android:layout_height="@dimen/dp_116" - android:background="@drawable/sweeper_start_auto_btn" + android:background="@drawable/sweeper_start_auto_not_running" android:gravity="center" android:text="启动自驾" android:textColor="@android:color/white" @@ -136,7 +136,7 @@ android:layout_width="0dp" android:layout_height="@dimen/dp_116" android:layout_weight="1" - android:background="@drawable/sweeper_task_btn" + android:background="@drawable/sweeper_task_not_working" android:gravity="center" android:text="开始任务" android:textColor="@android:color/white" diff --git a/OCH/mogo-och-sweeper/src/main/res/layout/sweeper_item_task_info.xml b/OCH/mogo-och-sweeper/src/main/res/layout/sweeper_item_task_info.xml index 16ae3d304b..69ec1c1128 100644 --- a/OCH/mogo-och-sweeper/src/main/res/layout/sweeper_item_task_info.xml +++ b/OCH/mogo-och-sweeper/src/main/res/layout/sweeper_item_task_info.xml @@ -58,7 +58,7 @@ @@ -62,7 +62,7 @@ app:layout_constraintStart_toEndOf="@+id/ivTriangle" app:layout_constraintEnd_toEndOf="parent" android:layout_marginTop="@dimen/dp_20" - android:background="#A6CEFF" + android:background="#4DA6CEFF" app:layout_constraintTop_toBottomOf="@+id/tvEndTask" android:layout_marginStart="@dimen/dp_16" android:layout_marginEnd="@dimen/dp_16"/> diff --git a/OCH/mogo-och-sweeper/src/main/res/layout/sweeper_traffic_data.xml b/OCH/mogo-och-sweeper/src/main/res/layout/sweeper_traffic_data.xml index da272fbf6a..7c71a6b184 100644 --- a/OCH/mogo-och-sweeper/src/main/res/layout/sweeper_traffic_data.xml +++ b/OCH/mogo-och-sweeper/src/main/res/layout/sweeper_traffic_data.xml @@ -128,14 +128,15 @@