diff --git a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/ui/SweeperOperatePanelView.java b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/ui/SweeperOperatePanelView.java index bb0ac4310e..6c46ee3609 100644 --- a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/ui/SweeperOperatePanelView.java +++ b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/ui/SweeperOperatePanelView.java @@ -262,13 +262,13 @@ public class SweeperOperatePanelView extends LinearLayout { boolean isClickCurrentChoosedModeBtn = currentChoosedModeBtnView != null && currentChoosedModeBtnView.getId() == currentClickView.getId(); //是否纯吸View - boolean isPureAbsorption = currentClickView.getId() == R.id.btn_clean_mode_pure_absorption; + boolean isPureAbsorptionClick = currentClickView.getId() == R.id.btn_clean_mode_pure_absorption; //是否纯洗View - boolean isPureWash = currentClickView.getId() == R.id.btn_clean_mode_pure_wash; + boolean isPureWashClick = currentClickView.getId() == R.id.btn_clean_mode_pure_wash; //是否纯扫View - boolean isPureSweep = currentClickView.getId() == R.id.btn_clean_mode_pure_sweep; + boolean isPureSweepClick = currentClickView.getId() == R.id.btn_clean_mode_pure_sweep; //是否洗扫View - boolean isWashSweep = currentClickView.getId() == R.id.btn_clean_mode_sweep_wash; + boolean isWashSweepClick = currentClickView.getId() == R.id.btn_clean_mode_sweep_wash; CmdRequestCallback cmdRequestCallback = new CmdRequestCallback() { @Override @@ -295,14 +295,23 @@ public class SweeperOperatePanelView extends LinearLayout { boolean clean_mode_pure_draw = cleanSystemState.getSecuWorkTonSts(); // 纯扫 模式判断:不是另外其他3个模式,同时有清扫方向,说明开启了纯扫模式 boolean clean_mode_pure_sweep = checkIfCleanModePureSweep(cleanSystemState); + // 关闭作业模式(实际执行了3个操作: 关闭作业模式 关闭清扫方向 切换标准强度,实际以关闭作业模式成功为准) + boolean clean_mode_close = !clean_mode_wash_sweep + && !clean_mode_pure_wash + && !clean_mode_pure_draw + && !clean_mode_pure_sweep; - if (isPureSweep) { - success = clean_mode_pure_sweep; - } else if (isPureWash) { + if (clean_mode_close) {// 关闭放第一判断 + success = clean_mode_close; + } else if (isPureSweepClick) { + //success = clean_mode_pure_sweep; + //纯扫 这个模式实际在福田清扫车上没有这个按钮,只是发送指令给特种车端,默认此命令肯定是正确的 + success = true; + } else if (isPureWashClick) { success = clean_mode_pure_wash; - } else if (isWashSweep) { + } else if (isWashSweepClick) { success = clean_mode_wash_sweep; - } else if (isPureAbsorption) { + } else if (isPureAbsorptionClick) { success = clean_mode_pure_draw; } //TODO @@ -318,7 +327,7 @@ public class SweeperOperatePanelView extends LinearLayout { toggleCleanIntensityBtnsStatus(false); } else { // 如果是纯吸,没有设置清扫方向,同时自动设置作业强度为标准 - if (isPureAbsorption) { + if (isPureAbsorptionClick) { toggleCleanDirectionBtnsStatus(false); setCleanIntensityStandard(); } else { @@ -352,7 +361,7 @@ public class SweeperOperatePanelView extends LinearLayout { //开启新的作业模式,直接发送命令(纯吸需要一并设置作业强度为标准) int cmdValue = cleanModeBtnAndCmdValueMap.get(currentClickView.getId()); sendSweeperCmd( - isPureAbsorption ? SweeperFutianCmdUtil.buildCleanModePureDrawCmd() + isPureAbsorptionClick ? SweeperFutianCmdUtil.buildCleanModePureDrawCmd() : SweeperFutianCmdUtil.buildCleanModeCmd(cmdValue), cmdRequestCallback, CMD_EXECUTE_TIMEOUT_SECONDS); @@ -399,8 +408,13 @@ public class SweeperOperatePanelView extends LinearLayout { boolean clean_direction_right_side = cleanSystemState.getSecuWorkRightSts(); // 两侧 boolean clean_direction_both_side = cleanSystemState.getSecuWorkOnBothsidesSts(); + // 关闭清扫方向(实际执行了2个操作:关闭清扫方向 切换标准强度,实际以关闭清扫方向成功为准) + boolean clean_direction_close = !clean_direction_left_side && !clean_direction_right_side + && !clean_direction_both_side; - if (isLeftSide) { + if (clean_direction_close) {//关闭放第一判断 + success = clean_direction_close; + } else if (isLeftSide) { success = clean_direction_left_side; } else if (isRightSide) { success = clean_direction_right_side; @@ -779,12 +793,11 @@ public class SweeperOperatePanelView extends LinearLayout { protected void onAttachedToWindow() { super.onAttachedToWindow(); CallerAutopilotVehicleStateListenerManager.INSTANCE.addListener(TAG, mIMoGoAutopilotVehicleStateListener); -// syncVehicleStateAndRecoverOperatePanelStates(); - // TODO + //syncVehicleStateAndRecoverOperatePanelStates(); // Mock VehicleState 数据回调 -// UiThreadHandler.postDelayed(() -> { -// onSyncVehicleStateCallBack(SweeperFutianCmdUtil.buildSweeperFuTionCleanSystemStateMockData()); -// }, 3000L); + // UiThreadHandler.postDelayed(() -> { + // onSyncVehicleStateCallBack(SweeperFutianCmdUtil.buildSweeperFuTionCleanSystemStateMockData()); + // }, 3000L); } @Override @@ -942,6 +955,10 @@ public class SweeperOperatePanelView extends LinearLayout { msg.obj = timeout; mSweeperOperateCmdHandler.sendMessage(msg); // Mock Cmd Success + mockSendCmdSuccess(); + } + + private void mockSendCmdSuccess() { Message successMsg = Message.obtain(); successMsg.what = MSG_CMD_EXECUTE_MOCK_SUCCESS; mSweeperOperateCmdHandler.sendMessageDelayed(successMsg, 1000L * CMD_EXECUTE_MOCK_SUCCESS_SECONDS);