From e9e5eb71822a0dd7cfbc3672a315d8a95586152c 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 12:18:54 +0800 Subject: [PATCH] =?UTF-8?q?add:=E8=9C=82=E9=B8=A3=E5=99=A8=E6=89=93?= =?UTF-8?q?=E5=BC=80=E6=96=B0=E5=A2=9E=E5=8F=82=E6=95=B0=20=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0deviceStopService=E6=9C=8D=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sgs/app/cmd/debug/DebugBeeCloseCommand.java | 36 ++++++++++++++++++++ .../sgs/app/cmd/debug/DebugBeeOpenCommand.java | 38 ++++++++++++++++++++++ .../sgs/app/service/device/DeviceStopService.java | 32 ++++++++++++++++++ .../app/ws/client/DeviceEmergencyStopConfig.java | 4 ++- .../sgs/common/cmd/DeviceCommandGenerator.java | 4 ++- .../sgs/common/cmd/DeviceCommandParams.java | 1 + 6 files changed, 113 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/iflytop/sgs/app/cmd/debug/DebugBeeCloseCommand.java create mode 100644 src/main/java/com/iflytop/sgs/app/cmd/debug/DebugBeeOpenCommand.java create mode 100644 src/main/java/com/iflytop/sgs/app/service/device/DeviceStopService.java diff --git a/src/main/java/com/iflytop/sgs/app/cmd/debug/DebugBeeCloseCommand.java b/src/main/java/com/iflytop/sgs/app/cmd/debug/DebugBeeCloseCommand.java new file mode 100644 index 0000000..af9530f --- /dev/null +++ b/src/main/java/com/iflytop/sgs/app/cmd/debug/DebugBeeCloseCommand.java @@ -0,0 +1,36 @@ +package com.iflytop.sgs.app.cmd.debug; + +import com.iflytop.sgs.app.core.BaseCommandHandler; +import com.iflytop.sgs.app.model.dto.CmdDTO; +import com.iflytop.sgs.app.service.device.DeviceCommandService; +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.utils.CommandUtil; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.concurrent.CompletableFuture; + +/** + * 蜂鸣器关闭 + */ +@Slf4j +@Component +@RequiredArgsConstructor +@CommandDebugMapping("door_close") +public class DebugBeeCloseCommand extends BaseCommandHandler { + private final DeviceCommandService deviceCommandService; + + @Override + public CompletableFuture handle(CmdDTO cmdDTO) { + return runAsync(() -> { + DeviceCommandBundle beepCloseDeviceCommandBundle = DeviceCommandGenerator.beepClose(); + CommandFuture doorSetDeviceCommandSetFuture = deviceCommandService.sendCommand(cmdDTO.getCommandId(), cmdDTO.getCommand(), beepCloseDeviceCommandBundle); + CommandUtil.wait(doorSetDeviceCommandSetFuture); + }); + } +} + 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 new file mode 100644 index 0000000..f27ddff --- /dev/null +++ b/src/main/java/com/iflytop/sgs/app/cmd/debug/DebugBeeOpenCommand.java @@ -0,0 +1,38 @@ +package com.iflytop.sgs.app.cmd.debug; + +import com.iflytop.sgs.app.core.BaseCommandHandler; +import com.iflytop.sgs.app.model.dto.CmdDTO; +import com.iflytop.sgs.app.service.device.DeviceCommandService; +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.utils.CommandUtil; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.concurrent.CompletableFuture; + +/** + * 蜂鸣器打开 + */ +@Slf4j +@Component +@RequiredArgsConstructor +@CommandDebugMapping("door_close") +public class DebugBeeOpenCommand extends BaseCommandHandler { + private final DeviceCommandService deviceCommandService; + + @Override + public CompletableFuture handle(CmdDTO cmdDTO) { + String mode = cmdDTO.getStringParam("mode"); + return runAsync(() -> { + DeviceCommandBundle beeOpenDeviceCommand = DeviceCommandGenerator.beepOpen(mode); + CommandFuture doorMoveDeviceCommandFuture = deviceCommandService.sendCommand(cmdDTO.getCommandId(), cmdDTO.getCommand(), beeOpenDeviceCommand); + CommandUtil.wait(doorMoveDeviceCommandFuture); + + }); + } +} + diff --git a/src/main/java/com/iflytop/sgs/app/service/device/DeviceStopService.java b/src/main/java/com/iflytop/sgs/app/service/device/DeviceStopService.java new file mode 100644 index 0000000..1696b5a --- /dev/null +++ b/src/main/java/com/iflytop/sgs/app/service/device/DeviceStopService.java @@ -0,0 +1,32 @@ +package com.iflytop.sgs.app.service.device; + +import com.iflytop.sgs.common.cmd.DeviceCommandBundle; +import com.iflytop.sgs.common.cmd.DeviceCommandGenerator; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +@Slf4j +@Service +@RequiredArgsConstructor +public class DeviceStopService { + private final DeviceCommandService deviceCommandService; + + + public void stopAll() { + //门电机 + DeviceCommandBundle doorStopDeviceCommandBundle = DeviceCommandGenerator.doorStop(); + deviceCommandService.sendCommand(null, null, doorStopDeviceCommandBundle); + //x轴 + DeviceCommandBundle xStopDeviceCommandBundle = DeviceCommandGenerator.transferXStop(); + deviceCommandService.sendCommand(null, null, xStopDeviceCommandBundle); + //z轴 + DeviceCommandBundle yStopDeviceCommandBundle = DeviceCommandGenerator.transferZStop(); + deviceCommandService.sendCommand(null, null, yStopDeviceCommandBundle); + //机械臂 + DeviceCommandBundle liquidMotorStopDeviceCommandBundle = DeviceCommandGenerator.liquidMotorStop(); + deviceCommandService.sendCommand(null, null, liquidMotorStopDeviceCommandBundle); + //蠕动泵 + DeviceCommandBundle liquidPumpStopDeviceCommandBundle = DeviceCommandGenerator.liquidPumpStop(); + deviceCommandService.sendCommand(null, null, liquidPumpStopDeviceCommandBundle); + } +} diff --git a/src/main/java/com/iflytop/sgs/app/ws/client/DeviceEmergencyStopConfig.java b/src/main/java/com/iflytop/sgs/app/ws/client/DeviceEmergencyStopConfig.java index d533107..e3747e2 100644 --- a/src/main/java/com/iflytop/sgs/app/ws/client/DeviceEmergencyStopConfig.java +++ b/src/main/java/com/iflytop/sgs/app/ws/client/DeviceEmergencyStopConfig.java @@ -2,6 +2,7 @@ package com.iflytop.sgs.app.ws.client; import com.iflytop.sgs.app.core.CommandPoolManager; import com.iflytop.sgs.app.service.device.DeviceStateService; +import com.iflytop.sgs.app.service.device.DeviceStopService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; @@ -16,6 +17,7 @@ import java.net.URI; public class DeviceEmergencyStopConfig { private final DeviceStateService deviceStateService; private final CommandPoolManager commandPoolManager; + private final DeviceStopService deviceStopService; @Value("${iflytophald.ip}") String ip; @@ -31,7 +33,7 @@ public class DeviceEmergencyStopConfig { log.info("触发急停{}", s); try { commandPoolManager.forceShutdownAll();//强制终止现在运行的所有指令 - //stepCommandService.stopAll(); + deviceStopService.stopAll(); deviceStateService.getDeviceState().setEmergencyStop(true); } catch (Exception e) { log.error("设备急停失败:{}", e.getMessage()); 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 06440c1..2ff885c 100644 --- a/src/main/java/com/iflytop/sgs/common/cmd/DeviceCommandGenerator.java +++ b/src/main/java/com/iflytop/sgs/common/cmd/DeviceCommandGenerator.java @@ -558,7 +558,9 @@ public class DeviceCommandGenerator { * 蜂鸣器 开 * */ - public static DeviceCommandBundle beepOpen() { + public static DeviceCommandBundle beepOpen(String mode) { + DeviceCommandParams params = new DeviceCommandParams(); + params.setMode(mode); return controlCmd(CmdDevice.beep, CmdAction.open, null, "蜂鸣器 开启"); } diff --git a/src/main/java/com/iflytop/sgs/common/cmd/DeviceCommandParams.java b/src/main/java/com/iflytop/sgs/common/cmd/DeviceCommandParams.java index bfc89dd..509a746 100644 --- a/src/main/java/com/iflytop/sgs/common/cmd/DeviceCommandParams.java +++ b/src/main/java/com/iflytop/sgs/common/cmd/DeviceCommandParams.java @@ -22,4 +22,5 @@ public class DeviceCommandParams { private Double y; private Double z; private Integer channel; + private String mode; }