From 09f15cdbe78b97bfe85076685f89926cfa2d44b3 Mon Sep 17 00:00:00 2001 From: aibingbing Date: Wed, 24 Aug 2022 21:17:52 +0800 Subject: [PATCH] =?UTF-8?q?[=E6=B8=85=E6=89=AB=E8=BD=A6]feat:=20=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=20=E5=8F=91=E9=80=81=E5=91=BD=E4=BB=A4=E6=97=B6loadin?= =?UTF-8?q?g=20,=20=E5=91=BD=E4=BB=A4=E6=89=A7=E8=A1=8C=E7=AD=89=E5=BE=85?= =?UTF-8?q?=E3=80=81=E8=B6=85=E6=97=B6=E7=AD=89=E9=80=BB=E8=BE=91=EF=BC=8C?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E4=B8=80=E4=BA=9B=E6=93=8D=E4=BD=9C=E5=91=BD?= =?UTF-8?q?=E4=BB=A4=E8=B0=83=E7=94=A8=E6=96=B9=E6=B3=95=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fragment/BaseSweeperTabFragment.java | 4 - .../sweeper/ui/SweeperOperatePanelView.java | 258 +++++++++++++++++- .../sweeper/util/SweeperFutianCmdUtil.java | 77 ++++++ .../main/res/layout/sweeper_base_fragment.xml | 4 +- .../res/layout/sweeper_operate_panel_view.xml | 206 ++++++++------ .../src/main/res/values/strings.xml | 2 + 6 files changed, 454 insertions(+), 97 deletions(-) create mode 100644 OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/util/SweeperFutianCmdUtil.java diff --git a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/fragment/BaseSweeperTabFragment.java b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/fragment/BaseSweeperTabFragment.java index 714e6091fc..843fb6e68b 100644 --- a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/fragment/BaseSweeperTabFragment.java +++ b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/fragment/BaseSweeperTabFragment.java @@ -72,7 +72,6 @@ public abstract class BaseSweeperTabFragment 0) { + mCurrentCmdRequestCallback.onCountDownTick(seconds); + Message newMsg = Message.obtain(); + newMsg.what = MSG_CMD_EXECUTE_COUNT_DOWN; + newMsg.obj = seconds-1; + mSweeperOperateCmdHandler.sendMessageDelayed(newMsg, 1000L); + } else { + if (mCurrentCmdRequestCallback != null) { + mCurrentCmdRequestCallback.onCmdTimeout(); + mCurrentCmdRequestCallback = null; + } + } + } + } + } + + interface CmdRequestCallback { + void onSendCmd(); + + void onCountDownTick(int senonds); + + boolean onCheckIfCmdSuccess(VehicleStateOuterClass.SweeperFuTianCleanSystemState cleanSystemState); + + void onCmdSuccess(); + + void onCmdFailed(); + + void onCmdTimeout(); } } diff --git a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/util/SweeperFutianCmdUtil.java b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/util/SweeperFutianCmdUtil.java new file mode 100644 index 0000000000..92b1eaecaf --- /dev/null +++ b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/util/SweeperFutianCmdUtil.java @@ -0,0 +1,77 @@ +package com.mogo.och.sweeper.util; + +import chassis.SpecialVehicleTaskCmdOuterClass; + +/** + * 清扫车-福田,构建业务命令数据的工具类 + */ +public class SweeperFutianCmdUtil { + private static final int CLEAN_WORK_OPEN = 1; //清扫作业-开启 + private static final int CLEAN_WORK_CLOSE = 2;//清扫作业-关闭 + private static final int CLEAN_MODE_PURE_SWEEP = 1;//作业模式-纯扫 + private static final int CLEAN_MODE_WASH_SWEEP = 2;//作业模式-洗扫 + private static final int CLEAN_MODE_PURE_WASH = 3;//作业模式-纯洗 + private static final int CLEAN_MODE_PURE_DRAW = 4;//作业模式-纯吸 + private static final int CLEAN_MODE_CLOSE = 5;//作业模式-关闭 + private static final int CLEAN_DIRECTION_BOTH_SIDE = 1;//清扫方向-两侧 + private static final int CLEAN_DIRECTION_LEFT_SIDE = 2;//清扫方向-左侧 + private static final int CLEAN_DIRECTION_RIGHT_SIDE = 3;//清扫方向-右侧 + private static final int CLEAN_DIRECTION_CLOSE = 4;//清扫方向-关闭 + private static final int CLEAN_INTENSITY_STRAND = 1;//作业强度-标准 + private static final int CLEAN_INTENSITY_STRONG = 2;//作业强度-加强 + + public static SpecialVehicleTaskCmdOuterClass.RoboSweeperFuTianTaskCmd buildCleanWorkStartCmd() { + return buildCleanWorkCmd(CLEAN_WORK_OPEN); + } + + public static SpecialVehicleTaskCmdOuterClass.RoboSweeperFuTianTaskCmd buildCleanWorkStopCmd() { + return buildCleanWorkCmd(CLEAN_WORK_CLOSE); + } + + private static SpecialVehicleTaskCmdOuterClass.RoboSweeperFuTianTaskCmd buildCleanWorkCmd(int startOrStop) { + SpecialVehicleTaskCmdOuterClass.RoboSweeperFuTianCleanCmd.Builder builder = SpecialVehicleTaskCmdOuterClass.RoboSweeperFuTianCleanCmd.newBuilder(); + builder.setCleanOpenRequirement(startOrStop); + return buildTaskCmd(builder.build()); + } + + public static SpecialVehicleTaskCmdOuterClass.RoboSweeperFuTianTaskCmd buildCleanModeCmd(int value) { + SpecialVehicleTaskCmdOuterClass.RoboSweeperFuTianCleanCmd.Builder builder = SpecialVehicleTaskCmdOuterClass.RoboSweeperFuTianCleanCmd.newBuilder(); + builder.setCleanModeRequirement(value); + return buildTaskCmd(builder.build()); + } + + public static SpecialVehicleTaskCmdOuterClass.RoboSweeperFuTianTaskCmd buildCleanModeCloseCmd() { + return buildCleanModeCmd(CLEAN_MODE_CLOSE); + } + + public static SpecialVehicleTaskCmdOuterClass.RoboSweeperFuTianTaskCmd buildCleanDirectionCmd(int value) { + SpecialVehicleTaskCmdOuterClass.RoboSweeperFuTianCleanCmd.Builder builder = SpecialVehicleTaskCmdOuterClass.RoboSweeperFuTianCleanCmd.newBuilder(); + builder.setCleanDirectionRequirement(value); + return buildTaskCmd(builder.build()); + } + + public static SpecialVehicleTaskCmdOuterClass.RoboSweeperFuTianTaskCmd buildCleanDirectionCloseCmd() { + return buildCleanDirectionCmd(CLEAN_DIRECTION_CLOSE); + } + + public static SpecialVehicleTaskCmdOuterClass.RoboSweeperFuTianTaskCmd buildCleanIntensityStandardCmd() { + return buildCleanIntensityCmd(CLEAN_INTENSITY_STRAND); + } + + public static SpecialVehicleTaskCmdOuterClass.RoboSweeperFuTianTaskCmd buildCleanIntensityStrongCmd() { + return buildCleanIntensityCmd(CLEAN_INTENSITY_STRONG); + } + + private static SpecialVehicleTaskCmdOuterClass.RoboSweeperFuTianTaskCmd buildCleanIntensityCmd(int value) { + SpecialVehicleTaskCmdOuterClass.RoboSweeperFuTianCleanCmd.Builder builder = SpecialVehicleTaskCmdOuterClass.RoboSweeperFuTianCleanCmd.newBuilder(); + builder.setCleanIntensityRequirement(value); + return buildTaskCmd(builder.build()); + } + + private static SpecialVehicleTaskCmdOuterClass.RoboSweeperFuTianTaskCmd buildTaskCmd( + SpecialVehicleTaskCmdOuterClass.RoboSweeperFuTianCleanCmd fuTianCleanCmd) { + return SpecialVehicleTaskCmdOuterClass.RoboSweeperFuTianTaskCmd.newBuilder() + .setRoboSweeperFutianCleanCmd(fuTianCleanCmd).build(); + } + +} diff --git a/OCH/mogo-och-sweeper/src/main/res/layout/sweeper_base_fragment.xml b/OCH/mogo-och-sweeper/src/main/res/layout/sweeper_base_fragment.xml index 66b9868af6..be7b2b839f 100644 --- a/OCH/mogo-och-sweeper/src/main/res/layout/sweeper_base_fragment.xml +++ b/OCH/mogo-och-sweeper/src/main/res/layout/sweeper_base_fragment.xml @@ -63,12 +63,12 @@ app:layout_goneMarginTop="@dimen/module_mogo_och_station_panel_container_margin_top_no_call" tools:visibility="visible" /> - + android:layout_height="wrap_content"> + app:layout_constraintLeft_toLeftOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + app:layout_constraintLeft_toRightOf="@id/hint_main_switch" + app:layout_constraintTop_toTopOf="@id/hint_main_switch" /> + app:layout_constraintLeft_toLeftOf="parent" + app:layout_constraintTop_toBottomOf="@id/main_switch_barrier" /> + app:layout_constraintLeft_toRightOf="@id/hint_operate_mode" + app:layout_constraintTop_toTopOf="@id/hint_operate_mode" /> + app:layout_constraintLeft_toRightOf="@id/btn_operate_mode_pure_sweep" + app:layout_constraintTop_toTopOf="@id/hint_operate_mode" /> + app:layout_constraintLeft_toLeftOf="@id/btn_operate_mode_pure_sweep" + app:layout_constraintTop_toBottomOf="@id/btn_operate_mode_pure_sweep" /> + app:layout_constraintLeft_toRightOf="@id/btn_operate_mode_sweep_wash" + app:layout_constraintTop_toTopOf="@id/btn_operate_mode_sweep_wash" /> + app:layout_constraintLeft_toLeftOf="parent" + app:layout_constraintTop_toBottomOf="@id/operate_mode_barrier" /> + app:layout_constraintLeft_toRightOf="@id/hint_clean_direction" + app:layout_constraintTop_toTopOf="@id/hint_clean_direction" /> + app:layout_constraintLeft_toRightOf="@id/btn_clean_direction_left_side" + app:layout_constraintTop_toTopOf="@id/hint_clean_direction" /> + app:layout_constraintLeft_toLeftOf="@id/btn_clean_direction_left_side" + app:layout_constraintTop_toBottomOf="@id/btn_clean_direction_left_side" /> + app:layout_constraintLeft_toLeftOf="parent" + app:layout_constraintTop_toBottomOf="@id/clean_direction_barrier" /> + app:layout_constraintLeft_toRightOf="@id/hint_clean_intensity" + app:layout_constraintTop_toTopOf="@id/hint_clean_intensity" /> + app:layout_constraintLeft_toRightOf="@id/btn_clean_intensity_standard" + app:layout_constraintTop_toTopOf="@id/hint_clean_intensity" /> + + + + + + + \ No newline at end of file diff --git a/OCH/mogo-och-sweeper/src/main/res/values/strings.xml b/OCH/mogo-och-sweeper/src/main/res/values/strings.xml index b2d7412445..95a71366f9 100644 --- a/OCH/mogo-och-sweeper/src/main/res/values/strings.xml +++ b/OCH/mogo-och-sweeper/src/main/res/values/strings.xml @@ -24,4 +24,6 @@ 当前站点: 下一站: 自动驾驶状态为0不可用 + + 预计等待%d秒