From 9dd6a6af33ea8b742bc28edd7a4a9836282b4d26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E6=A2=A6=E8=BF=9C?= <1063331231@qq.com> Date: Wed, 28 May 2025 15:59:24 +0800 Subject: [PATCH] =?UTF-8?q?add:=E6=B5=8B=E8=AF=95=E5=8F=91=E7=8E=B0?= =?UTF-8?q?=E7=9A=84=E4=B8=80=E4=BA=9B=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/iflytop/sgs/app/cmd/debug/DebugBeeOpenCommand.java | 4 ++++ .../com/iflytop/sgs/app/cmd/debug/DebugDoorOpenCommand.java | 4 ++-- .../iflytop/sgs/app/cmd/debug/DebugHeaterStartCommand.java | 5 +++++ .../iflytop/sgs/app/cmd/debug/DebugLiquidPumpAddCommand.java | 6 ++++-- .../sgs/app/cmd/debug/DebugLiquidPumpReduceCommand.java | 10 +++++----- .../sgs/app/cmd/debug/DebugLiquidPumpStartCommand.java | 12 +++++++++--- .../iflytop/sgs/app/cmd/debug/DebugMotorXMoveToCommand.java | 4 ++++ .../iflytop/sgs/app/cmd/debug/DebugMotorZMoveToCommand.java | 4 ++++ .../com/iflytop/sgs/common/cmd/DeviceCommandGenerator.java | 3 +-- 9 files changed, 38 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/iflytop/sgs/app/cmd/debug/DebugBeeOpenCommand.java b/src/main/java/com/iflytop/sgs/app/cmd/debug/DebugBeeOpenCommand.java index 7546441..13dfd93 100644 --- a/src/main/java/com/iflytop/sgs/app/cmd/debug/DebugBeeOpenCommand.java +++ b/src/main/java/com/iflytop/sgs/app/cmd/debug/DebugBeeOpenCommand.java @@ -1,5 +1,6 @@ package com.iflytop.sgs.app.cmd.debug; +import cn.hutool.core.lang.Assert; import com.iflytop.sgs.app.core.BaseCommandHandler; import com.iflytop.sgs.app.model.dto.CmdDTO; import com.iflytop.sgs.app.service.device.DeviceCommandService; @@ -7,6 +8,8 @@ import com.iflytop.sgs.common.annotation.CommandDebugMapping; import com.iflytop.sgs.common.cmd.CommandFuture; import com.iflytop.sgs.common.cmd.DeviceCommandBundle; import com.iflytop.sgs.common.cmd.DeviceCommandGenerator; +import com.iflytop.sgs.common.exception.AppException; +import com.iflytop.sgs.common.result.ResultCode; import com.iflytop.sgs.common.utils.CommandUtil; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -27,6 +30,7 @@ public class DebugBeeOpenCommand extends BaseCommandHandler { @Override public CompletableFuture handle(CmdDTO cmdDTO) { String mode = cmdDTO.getStringParam("mode"); + Assert.notNull(mode, ()->new AppException(ResultCode.INVALID_PARAMETER)); return runAsync(() -> { DeviceCommandBundle beeOpenDeviceCommand = DeviceCommandGenerator.beepOpen(mode); CommandFuture doorMoveDeviceCommandFuture = deviceCommandService.sendCommand(cmdDTO.getCommandId(), cmdDTO.getCommand(), beeOpenDeviceCommand); diff --git a/src/main/java/com/iflytop/sgs/app/cmd/debug/DebugDoorOpenCommand.java b/src/main/java/com/iflytop/sgs/app/cmd/debug/DebugDoorOpenCommand.java index 170e62d..e596b64 100644 --- a/src/main/java/com/iflytop/sgs/app/cmd/debug/DebugDoorOpenCommand.java +++ b/src/main/java/com/iflytop/sgs/app/cmd/debug/DebugDoorOpenCommand.java @@ -38,8 +38,8 @@ public class DebugDoorOpenCommand extends BaseCommandHandler { CommandFuture doorSetDeviceCommandSetFuture = deviceCommandService.sendCommand(cmdDTO.getCommandId(), cmdDTO.getCommand(), doorSetDeviceCommandBundle); CommandUtil.wait(doorSetDeviceCommandSetFuture); } - - CommandFuture deviceCommandOpenFuture = deviceCommandService.sendCommand(cmdDTO.getCommandId(), cmdDTO.getCommand(), DeviceCommandGenerator.doorMove(devicePosition.getDistance())); + DeviceCommandBundle doorMoveDeviceCommand =DeviceCommandGenerator.doorMove(devicePosition.getDistance()); + CommandFuture deviceCommandOpenFuture = deviceCommandService.sendCommand(cmdDTO.getCommandId(), cmdDTO.getCommand(), doorMoveDeviceCommand); CommandUtil.wait(deviceCommandOpenFuture); }); } diff --git a/src/main/java/com/iflytop/sgs/app/cmd/debug/DebugHeaterStartCommand.java b/src/main/java/com/iflytop/sgs/app/cmd/debug/DebugHeaterStartCommand.java index 4790c6d..5c3b61f 100644 --- a/src/main/java/com/iflytop/sgs/app/cmd/debug/DebugHeaterStartCommand.java +++ b/src/main/java/com/iflytop/sgs/app/cmd/debug/DebugHeaterStartCommand.java @@ -1,5 +1,6 @@ package com.iflytop.sgs.app.cmd.debug; +import cn.hutool.core.lang.Assert; import com.iflytop.sgs.app.core.BaseCommandHandler; import com.iflytop.sgs.app.model.dto.CmdDTO; import com.iflytop.sgs.app.service.device.DeviceCommandService; @@ -8,6 +9,8 @@ import com.iflytop.sgs.common.cmd.CommandFuture; import com.iflytop.sgs.common.cmd.DeviceCommandBundle; import com.iflytop.sgs.common.cmd.DeviceCommandGenerator; import com.iflytop.sgs.common.enums.HeatModuleCode; +import com.iflytop.sgs.common.exception.AppException; +import com.iflytop.sgs.common.result.ResultCode; import com.iflytop.sgs.common.utils.CommandUtil; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -30,6 +33,8 @@ public class DebugHeaterStartCommand extends BaseCommandHandler { String heatModuleCodeStr = cmdDTO.getStringParam("heatModuleCode"); Double temperature = cmdDTO.getDoubleParam("temperature"); HeatModuleCode heatModuleCode = HeatModuleCode.valueOf(heatModuleCodeStr); + Assert.notNull(temperature,()->new AppException(ResultCode.INVALID_PARAMETER)); + Assert.checkBetween(temperature,0,200,()->new AppException(ResultCode.INVALID_PARAMETER)); return runAsync(() -> { DeviceCommandBundle deviceCommand=switch (heatModuleCode) { case heat_module_01 -> DeviceCommandGenerator.heatRod1Open(temperature); diff --git a/src/main/java/com/iflytop/sgs/app/cmd/debug/DebugLiquidPumpAddCommand.java b/src/main/java/com/iflytop/sgs/app/cmd/debug/DebugLiquidPumpAddCommand.java index f579562..6c0d011 100644 --- a/src/main/java/com/iflytop/sgs/app/cmd/debug/DebugLiquidPumpAddCommand.java +++ b/src/main/java/com/iflytop/sgs/app/cmd/debug/DebugLiquidPumpAddCommand.java @@ -36,12 +36,14 @@ public class DebugLiquidPumpAddCommand extends BaseCommandHandler { Double speed = cmdDTO.getDoubleParam("speed"); return runAsync(() -> { - DeviceCommandBundle deviceCommand; if (speed != null) { - deviceCommand = DeviceCommandGenerator.liquidPumpMoveBy(position); + DeviceCommandBundle deviceCommand = DeviceCommandGenerator.liquidPumpSet(speed); CommandFuture deviceCommandFuture = deviceCommandService.sendCommand(cmdDTO.getCommandId(), cmdDTO.getCommand(), deviceCommand); CommandUtil.wait(deviceCommandFuture); } + DeviceCommandBundle deviceCommand = DeviceCommandGenerator.liquidPumpMoveBy(position); + CommandFuture deviceCommandFuture = deviceCommandService.sendCommand(cmdDTO.getCommandId(), cmdDTO.getCommand(), deviceCommand); + CommandUtil.wait(deviceCommandFuture); }); } } diff --git a/src/main/java/com/iflytop/sgs/app/cmd/debug/DebugLiquidPumpReduceCommand.java b/src/main/java/com/iflytop/sgs/app/cmd/debug/DebugLiquidPumpReduceCommand.java index 776cdd7..a46ac45 100644 --- a/src/main/java/com/iflytop/sgs/app/cmd/debug/DebugLiquidPumpReduceCommand.java +++ b/src/main/java/com/iflytop/sgs/app/cmd/debug/DebugLiquidPumpReduceCommand.java @@ -34,15 +34,15 @@ public class DebugLiquidPumpReduceCommand extends BaseCommandHandler { double scale = Double.parseDouble(systemConfigService.getSystemConfigValueByCode(SystemConfigCode.scale_water)); double position = volume * scale; Double speed = cmdDTO.getDoubleParam("speed"); - return runAsync(() -> { - CmdDirection cmdDirection = CmdDirection.forward; - DeviceCommandBundle deviceCommand; if (speed != null) { - deviceCommand = DeviceCommandGenerator.liquidPumpMoveBy(-position); - CommandFuture deviceCommandFuture = deviceCommandService.sendCommand(cmdDTO.getCommandId(), cmdDTO.getCommand(), deviceCommand); + DeviceCommandBundle liquidPumpSetCommand = DeviceCommandGenerator.liquidPumpSet(speed); + CommandFuture deviceCommandFuture = deviceCommandService.sendCommand(cmdDTO.getCommandId(), cmdDTO.getCommand(), liquidPumpSetCommand); CommandUtil.wait(deviceCommandFuture); } + DeviceCommandBundle liquidPumpMoveByCommand = DeviceCommandGenerator.liquidPumpMoveBy(-position); + CommandFuture deviceCommandFuture = deviceCommandService.sendCommand(cmdDTO.getCommandId(), cmdDTO.getCommand(), liquidPumpMoveByCommand); + CommandUtil.wait(deviceCommandFuture); }); } } diff --git a/src/main/java/com/iflytop/sgs/app/cmd/debug/DebugLiquidPumpStartCommand.java b/src/main/java/com/iflytop/sgs/app/cmd/debug/DebugLiquidPumpStartCommand.java index ed3088b..81026f8 100644 --- a/src/main/java/com/iflytop/sgs/app/cmd/debug/DebugLiquidPumpStartCommand.java +++ b/src/main/java/com/iflytop/sgs/app/cmd/debug/DebugLiquidPumpStartCommand.java @@ -1,5 +1,6 @@ package com.iflytop.sgs.app.cmd.debug; +import cn.hutool.core.lang.Assert; import com.iflytop.sgs.app.core.BaseCommandHandler; import com.iflytop.sgs.app.model.dto.CmdDTO; import com.iflytop.sgs.app.service.device.DeviceCommandService; @@ -8,6 +9,8 @@ import com.iflytop.sgs.common.cmd.CommandFuture; import com.iflytop.sgs.common.cmd.DeviceCommandBundle; import com.iflytop.sgs.common.cmd.DeviceCommandGenerator; import com.iflytop.sgs.common.enums.cmd.CmdDirection; +import com.iflytop.sgs.common.exception.AppException; +import com.iflytop.sgs.common.result.ResultCode; import com.iflytop.sgs.common.utils.CommandUtil; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -29,14 +32,17 @@ public class DebugLiquidPumpStartCommand extends BaseCommandHandler { public CompletableFuture handle(CmdDTO cmdDTO) { Double speed = cmdDTO.getDoubleParam("speed"); String direction = cmdDTO.getStringParam("direction");//front back 正转倒转 + Assert.notNull(direction, ()->new AppException(ResultCode.INVALID_PARAMETER)); CmdDirection cmdDirection = CmdDirection.valueOf(direction); return runAsync(() -> { - DeviceCommandBundle deviceCommand; if (speed != null) { - deviceCommand = DeviceCommandGenerator.liquidPumpStart(cmdDirection); - CommandFuture deviceCommandFuture = deviceCommandService.sendCommand(cmdDTO.getCommandId(), cmdDTO.getCommand(), deviceCommand); + DeviceCommandBundle liquidPumpSetCommand = DeviceCommandGenerator.liquidPumpSet(speed); + CommandFuture deviceCommandFuture = deviceCommandService.sendCommand(cmdDTO.getCommandId(), cmdDTO.getCommand(), liquidPumpSetCommand); CommandUtil.wait(deviceCommandFuture); } + DeviceCommandBundle deviceCommand = DeviceCommandGenerator.liquidPumpStart(cmdDirection); + CommandFuture deviceCommandFuture = deviceCommandService.sendCommand(cmdDTO.getCommandId(), cmdDTO.getCommand(), deviceCommand); + CommandUtil.wait(deviceCommandFuture); }); } } diff --git a/src/main/java/com/iflytop/sgs/app/cmd/debug/DebugMotorXMoveToCommand.java b/src/main/java/com/iflytop/sgs/app/cmd/debug/DebugMotorXMoveToCommand.java index faa75bd..c26f3c0 100644 --- a/src/main/java/com/iflytop/sgs/app/cmd/debug/DebugMotorXMoveToCommand.java +++ b/src/main/java/com/iflytop/sgs/app/cmd/debug/DebugMotorXMoveToCommand.java @@ -1,5 +1,6 @@ package com.iflytop.sgs.app.cmd.debug; +import cn.hutool.core.lang.Assert; import com.iflytop.sgs.app.core.BaseCommandHandler; import com.iflytop.sgs.app.model.dto.CmdDTO; import com.iflytop.sgs.app.service.device.DeviceCommandService; @@ -7,6 +8,8 @@ import com.iflytop.sgs.common.annotation.CommandDebugMapping; import com.iflytop.sgs.common.cmd.CommandFuture; import com.iflytop.sgs.common.cmd.DeviceCommandBundle; import com.iflytop.sgs.common.cmd.DeviceCommandGenerator; +import com.iflytop.sgs.common.exception.AppException; +import com.iflytop.sgs.common.result.ResultCode; import com.iflytop.sgs.common.utils.CommandUtil; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -27,6 +30,7 @@ public class DebugMotorXMoveToCommand extends BaseCommandHandler { @Override public CompletableFuture handle(CmdDTO cmdDTO) { Double position = cmdDTO.getDoubleParam("position"); + Assert.notNull(position, ()->new AppException(ResultCode.INVALID_PARAMETER)); return runAsync(() -> { DeviceCommandBundle deviceCommand = DeviceCommandGenerator.transferXMove(position); CommandFuture deviceCommandFuture = deviceCommandService.sendCommand(cmdDTO.getCommandId(), cmdDTO.getCommand(), deviceCommand); diff --git a/src/main/java/com/iflytop/sgs/app/cmd/debug/DebugMotorZMoveToCommand.java b/src/main/java/com/iflytop/sgs/app/cmd/debug/DebugMotorZMoveToCommand.java index b253022..bd46e77 100644 --- a/src/main/java/com/iflytop/sgs/app/cmd/debug/DebugMotorZMoveToCommand.java +++ b/src/main/java/com/iflytop/sgs/app/cmd/debug/DebugMotorZMoveToCommand.java @@ -1,5 +1,6 @@ package com.iflytop.sgs.app.cmd.debug; +import cn.hutool.core.lang.Assert; import com.iflytop.sgs.app.core.BaseCommandHandler; import com.iflytop.sgs.app.model.dto.CmdDTO; import com.iflytop.sgs.app.service.device.DeviceCommandService; @@ -7,6 +8,8 @@ import com.iflytop.sgs.common.annotation.CommandDebugMapping; import com.iflytop.sgs.common.cmd.CommandFuture; import com.iflytop.sgs.common.cmd.DeviceCommandBundle; import com.iflytop.sgs.common.cmd.DeviceCommandGenerator; +import com.iflytop.sgs.common.exception.AppException; +import com.iflytop.sgs.common.result.ResultCode; import com.iflytop.sgs.common.utils.CommandUtil; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -28,6 +31,7 @@ public class DebugMotorZMoveToCommand extends BaseCommandHandler { @Override public CompletableFuture handle(CmdDTO cmdDTO) throws Exception { Double position = cmdDTO.getDoubleParam("position"); + Assert.notNull(position, ()->new AppException(ResultCode.INVALID_PARAMETER)); return runAsync(() -> { DeviceCommandBundle deviceCommand = DeviceCommandGenerator.transferZMove(position); CommandFuture deviceCommandFuture = deviceCommandService.sendCommand(cmdDTO.getCommandId(), cmdDTO.getCommand(), deviceCommand); diff --git a/src/main/java/com/iflytop/sgs/common/cmd/DeviceCommandGenerator.java b/src/main/java/com/iflytop/sgs/common/cmd/DeviceCommandGenerator.java index 53c1154..ccd9266 100644 --- a/src/main/java/com/iflytop/sgs/common/cmd/DeviceCommandGenerator.java +++ b/src/main/java/com/iflytop/sgs/common/cmd/DeviceCommandGenerator.java @@ -344,8 +344,7 @@ public class DeviceCommandGenerator { * 加液泵 停止 */ public static DeviceCommandBundle liquidPumpStop() { - DeviceCommandParams params = new DeviceCommandParams(); - return controlCmd(CmdDevice.liquid_pump, CmdAction.stop, params, "加液泵 停止"); + return controlCmd(CmdDevice.liquid_pump, CmdAction.stop, null, "加液泵 停止"); } /** * 加液泵 失能