From 92bc7ed5f07fe06aed409889799c6c886f0204c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E5=87=A4=E5=90=89?= Date: Wed, 7 May 2025 14:47:12 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E7=BB=9F=E4=B8=80=E8=B0=83=E8=AF=95?= =?UTF-8?q?=E6=8C=87=E4=BB=A4=E4=BC=A0=E9=80=92=E7=9A=84=E6=A8=A1=E5=9D=97?= =?UTF-8?q?id?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gd/app/cmd/debug/FanStartCommandHandler.java | 18 +++++----- .../gd/app/cmd/debug/FanStopCommandHandler.java | 18 +++++----- .../app/cmd/debug/HeaterStartCommandHandler.java | 18 +++++----- .../gd/app/cmd/debug/HeaterStopCommandHandler.java | 18 +++++----- .../cmd/debug/LiquidPumpStartCommandHandler.java | 40 ++++++++++++---------- .../cmd/debug/LiquidPumpStopCommandHandler.java | 22 ++++++------ .../PalletElevatorLiftDownCommandHandler.java | 35 ++++++++++--------- .../debug/PalletElevatorLiftUpCommandHandler.java | 35 ++++++++++--------- .../debug/PalletElevatorStopCommandHandler.java | 18 +++++----- .../debug/TransportationArmMoveCommandHandler.java | 18 +++++----- .../gd/app/service/DeviceCommandService.java | 20 ++++++++--- .../gd/app/service/DeviceCommandUtilService.java | 12 +++---- .../gd/common/cmd/DeviceCommandGenerator.java | 2 +- .../iflytop/gd/common/enums/AcidPumpDevice.java | 27 +++++---------- .../com/iflytop/gd/common/enums/HeatModuleId.java | 23 ++++--------- .../com/iflytop/gd/common/enums/cmd/CmdAction.java | 7 ++-- 16 files changed, 169 insertions(+), 162 deletions(-) diff --git a/src/main/java/com/iflytop/gd/app/cmd/debug/FanStartCommandHandler.java b/src/main/java/com/iflytop/gd/app/cmd/debug/FanStartCommandHandler.java index b9e1b26..6fd3529 100644 --- a/src/main/java/com/iflytop/gd/app/cmd/debug/FanStartCommandHandler.java +++ b/src/main/java/com/iflytop/gd/app/cmd/debug/FanStartCommandHandler.java @@ -7,6 +7,7 @@ import com.iflytop.gd.common.annotation.CommandMapping; import com.iflytop.gd.common.cmd.CommandFuture; import com.iflytop.gd.common.cmd.DeviceCommandBundle; import com.iflytop.gd.common.cmd.DeviceCommandGenerator; +import com.iflytop.gd.common.enums.HeatModuleId; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; @@ -26,15 +27,16 @@ public class FanStartCommandHandler extends BaseCommandHandler { @Override public CompletableFuture handle(CmdDTO cmdDTO) { return runAsync(() -> { - Integer index = cmdDTO.getIntegerParam("index"); + String index = cmdDTO.getStringParam("index"); + HeatModuleId heatModuleId = HeatModuleId.valueOf(index); DeviceCommandBundle deviceCommand; - switch (index) { - case 1 -> deviceCommand = DeviceCommandGenerator.fan1Open(); - case 2 -> deviceCommand = DeviceCommandGenerator.fan2Open(); - case 3 -> deviceCommand = DeviceCommandGenerator.fan3Open(); - case 4 -> deviceCommand = DeviceCommandGenerator.fan4Open(); - case 5 -> deviceCommand = DeviceCommandGenerator.fan5Open(); - case 6 -> deviceCommand = DeviceCommandGenerator.fan6Open(); + switch (heatModuleId) { + case heat_module_01 -> deviceCommand = DeviceCommandGenerator.fan1Open(); + case heat_module_02 -> deviceCommand = DeviceCommandGenerator.fan2Open(); + case heat_module_03 -> deviceCommand = DeviceCommandGenerator.fan3Open(); + case heat_module_04 -> deviceCommand = DeviceCommandGenerator.fan4Open(); + case heat_module_05 -> deviceCommand = DeviceCommandGenerator.fan5Open(); + case heat_module_06 -> deviceCommand = DeviceCommandGenerator.fan6Open(); default -> throw new RuntimeException("index 未找到"); } CommandFuture deviceCommandFuture = deviceCommandService.sendCommand(cmdDTO.getCommandId(), cmdDTO.getCommand(), deviceCommand); diff --git a/src/main/java/com/iflytop/gd/app/cmd/debug/FanStopCommandHandler.java b/src/main/java/com/iflytop/gd/app/cmd/debug/FanStopCommandHandler.java index deebfff..2f18833 100644 --- a/src/main/java/com/iflytop/gd/app/cmd/debug/FanStopCommandHandler.java +++ b/src/main/java/com/iflytop/gd/app/cmd/debug/FanStopCommandHandler.java @@ -7,6 +7,7 @@ import com.iflytop.gd.common.annotation.CommandMapping; import com.iflytop.gd.common.cmd.CommandFuture; import com.iflytop.gd.common.cmd.DeviceCommandBundle; import com.iflytop.gd.common.cmd.DeviceCommandGenerator; +import com.iflytop.gd.common.enums.HeatModuleId; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; @@ -26,15 +27,16 @@ public class FanStopCommandHandler extends BaseCommandHandler { @Override public CompletableFuture handle(CmdDTO cmdDTO) { return runAsync(() -> { - Integer index = cmdDTO.getIntegerParam("index"); + String index = cmdDTO.getStringParam("index"); + HeatModuleId heatModuleId = HeatModuleId.valueOf(index); DeviceCommandBundle deviceCommand; - switch (index) { - case 1 -> deviceCommand = DeviceCommandGenerator.fan1Close(); - case 2 -> deviceCommand = DeviceCommandGenerator.fan2Close(); - case 3 -> deviceCommand = DeviceCommandGenerator.fan3Close(); - case 4 -> deviceCommand = DeviceCommandGenerator.fan4Close(); - case 5 -> deviceCommand = DeviceCommandGenerator.fan5Close(); - case 6 -> deviceCommand = DeviceCommandGenerator.fan6Close(); + switch (heatModuleId) { + case heat_module_01 -> deviceCommand = DeviceCommandGenerator.fan1Close(); + case heat_module_02 -> deviceCommand = DeviceCommandGenerator.fan2Close(); + case heat_module_03 -> deviceCommand = DeviceCommandGenerator.fan3Close(); + case heat_module_04 -> deviceCommand = DeviceCommandGenerator.fan4Close(); + case heat_module_05 -> deviceCommand = DeviceCommandGenerator.fan5Close(); + case heat_module_06 -> deviceCommand = DeviceCommandGenerator.fan6Close(); default -> throw new RuntimeException("index 未找到"); } CommandFuture deviceCommandFuture = deviceCommandService.sendCommand(cmdDTO.getCommandId(), cmdDTO.getCommand(), deviceCommand); diff --git a/src/main/java/com/iflytop/gd/app/cmd/debug/HeaterStartCommandHandler.java b/src/main/java/com/iflytop/gd/app/cmd/debug/HeaterStartCommandHandler.java index 7787243..3929e93 100644 --- a/src/main/java/com/iflytop/gd/app/cmd/debug/HeaterStartCommandHandler.java +++ b/src/main/java/com/iflytop/gd/app/cmd/debug/HeaterStartCommandHandler.java @@ -7,6 +7,7 @@ import com.iflytop.gd.common.annotation.CommandMapping; import com.iflytop.gd.common.cmd.CommandFuture; import com.iflytop.gd.common.cmd.DeviceCommandBundle; import com.iflytop.gd.common.cmd.DeviceCommandGenerator; +import com.iflytop.gd.common.enums.HeatModuleId; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; @@ -26,16 +27,17 @@ public class HeaterStartCommandHandler extends BaseCommandHandler { @Override public CompletableFuture handle(CmdDTO cmdDTO) { return runAsync(() -> { - Integer index = cmdDTO.getIntegerParam("index"); + String index = cmdDTO.getStringParam("index"); Double temperature = cmdDTO.getDoubleParam("temperature"); + HeatModuleId heatModuleId = HeatModuleId.valueOf(index); DeviceCommandBundle deviceCommand; - switch (index) { - case 1 -> deviceCommand = DeviceCommandGenerator.heatRod1Open(temperature); - case 2 -> deviceCommand = DeviceCommandGenerator.heatRod2Open(temperature); - case 3 -> deviceCommand = DeviceCommandGenerator.heatRod3Open(temperature); - case 4 -> deviceCommand = DeviceCommandGenerator.heatRod4Open(temperature); - case 5 -> deviceCommand = DeviceCommandGenerator.heatRod5Open(temperature); - case 6 -> deviceCommand = DeviceCommandGenerator.heatRod6Open(temperature); + switch (heatModuleId) { + case heat_module_01 -> deviceCommand = DeviceCommandGenerator.heatRod1Open(temperature); + case heat_module_02 -> deviceCommand = DeviceCommandGenerator.heatRod2Open(temperature); + case heat_module_03 -> deviceCommand = DeviceCommandGenerator.heatRod3Open(temperature); + case heat_module_04 -> deviceCommand = DeviceCommandGenerator.heatRod4Open(temperature); + case heat_module_05 -> deviceCommand = DeviceCommandGenerator.heatRod5Open(temperature); + case heat_module_06 -> deviceCommand = DeviceCommandGenerator.heatRod6Open(temperature); default -> throw new RuntimeException("index 未找到"); } CommandFuture deviceCommandFuture = deviceCommandService.sendCommand(cmdDTO.getCommandId(), cmdDTO.getCommand(), deviceCommand); diff --git a/src/main/java/com/iflytop/gd/app/cmd/debug/HeaterStopCommandHandler.java b/src/main/java/com/iflytop/gd/app/cmd/debug/HeaterStopCommandHandler.java index 7cbe390..28783a6 100644 --- a/src/main/java/com/iflytop/gd/app/cmd/debug/HeaterStopCommandHandler.java +++ b/src/main/java/com/iflytop/gd/app/cmd/debug/HeaterStopCommandHandler.java @@ -7,6 +7,7 @@ import com.iflytop.gd.common.annotation.CommandMapping; import com.iflytop.gd.common.cmd.CommandFuture; import com.iflytop.gd.common.cmd.DeviceCommandBundle; import com.iflytop.gd.common.cmd.DeviceCommandGenerator; +import com.iflytop.gd.common.enums.HeatModuleId; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; @@ -26,15 +27,16 @@ public class HeaterStopCommandHandler extends BaseCommandHandler { @Override public CompletableFuture handle(CmdDTO cmdDTO) { return runAsync(() -> { - Integer index = cmdDTO.getIntegerParam("index"); + String index = cmdDTO.getStringParam("index"); + HeatModuleId heatModuleId = HeatModuleId.valueOf(index); DeviceCommandBundle deviceCommand; - switch (index) { - case 1 -> deviceCommand = DeviceCommandGenerator.heatRod1Close(); - case 2 -> deviceCommand = DeviceCommandGenerator.heatRod2Close(); - case 3 -> deviceCommand = DeviceCommandGenerator.heatRod3Close(); - case 4 -> deviceCommand = DeviceCommandGenerator.heatRod4Close(); - case 5 -> deviceCommand = DeviceCommandGenerator.heatRod5Close(); - case 6 -> deviceCommand = DeviceCommandGenerator.heatRod6Close(); + switch (heatModuleId) { + case heat_module_01 -> deviceCommand = DeviceCommandGenerator.heatRod1Close(); + case heat_module_02 -> deviceCommand = DeviceCommandGenerator.heatRod2Close(); + case heat_module_03 -> deviceCommand = DeviceCommandGenerator.heatRod3Close(); + case heat_module_04 -> deviceCommand = DeviceCommandGenerator.heatRod4Close(); + case heat_module_05 -> deviceCommand = DeviceCommandGenerator.heatRod5Close(); + case heat_module_06 -> deviceCommand = DeviceCommandGenerator.heatRod6Close(); default -> throw new RuntimeException("index 未找到"); } CommandFuture deviceCommandFuture = deviceCommandService.sendCommand(cmdDTO.getCommandId(), cmdDTO.getCommand(), deviceCommand); diff --git a/src/main/java/com/iflytop/gd/app/cmd/debug/LiquidPumpStartCommandHandler.java b/src/main/java/com/iflytop/gd/app/cmd/debug/LiquidPumpStartCommandHandler.java index fdb6626..53e93a7 100644 --- a/src/main/java/com/iflytop/gd/app/cmd/debug/LiquidPumpStartCommandHandler.java +++ b/src/main/java/com/iflytop/gd/app/cmd/debug/LiquidPumpStartCommandHandler.java @@ -7,6 +7,7 @@ import com.iflytop.gd.common.annotation.CommandMapping; import com.iflytop.gd.common.cmd.CommandFuture; import com.iflytop.gd.common.cmd.DeviceCommandBundle; import com.iflytop.gd.common.cmd.DeviceCommandGenerator; +import com.iflytop.gd.common.enums.AcidPumpDevice; import com.iflytop.gd.common.enums.cmd.CmdDirection; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -27,22 +28,23 @@ public class LiquidPumpStartCommandHandler extends BaseCommandHandler { @Override public CompletableFuture handle(CmdDTO cmdDTO) { return runAsync(() -> { - Integer index = cmdDTO.getIntegerParam("index"); + String index = cmdDTO.getStringParam("index"); String direction = cmdDTO.getStringParam("direction"); Double volume = cmdDTO.getDoubleParam("volume"); Double velocity = cmdDTO.getDoubleParam("velocity"); CmdDirection directionEnum = CmdDirection.valueOf(direction); + AcidPumpDevice acidPumpDevice = AcidPumpDevice.valueOf(index); DeviceCommandBundle deviceCommand; if(velocity != null) { - switch (index) { - case 1 -> deviceCommand = DeviceCommandGenerator.acidPump1Set(velocity); - case 2 -> deviceCommand = DeviceCommandGenerator.acidPump2Set(velocity); - case 3 -> deviceCommand = DeviceCommandGenerator.acidPump3Set(velocity); - case 4 -> deviceCommand = DeviceCommandGenerator.acidPump4Set(velocity); - case 5 -> deviceCommand = DeviceCommandGenerator.acidPump5Set(velocity); - case 6 -> deviceCommand = DeviceCommandGenerator.acidPump6Set(velocity); - case 7 -> deviceCommand = DeviceCommandGenerator.acidPump7Set(velocity); - case 8 -> deviceCommand = DeviceCommandGenerator.acidPump8Set(velocity); + switch (acidPumpDevice) { + case acid_pump_01 -> deviceCommand = DeviceCommandGenerator.acidPump1Set(velocity); + case acid_pump_02 -> deviceCommand = DeviceCommandGenerator.acidPump2Set(velocity); + case acid_pump_03 -> deviceCommand = DeviceCommandGenerator.acidPump3Set(velocity); + case acid_pump_04 -> deviceCommand = DeviceCommandGenerator.acidPump4Set(velocity); + case acid_pump_05 -> deviceCommand = DeviceCommandGenerator.acidPump5Set(velocity); + case acid_pump_06 -> deviceCommand = DeviceCommandGenerator.acidPump6Set(velocity); + case acid_pump_07 -> deviceCommand = DeviceCommandGenerator.acidPump7Set(velocity); + case acid_pump_08 -> deviceCommand = DeviceCommandGenerator.acidPump8Set(velocity); default -> throw new RuntimeException("index 未找到"); } @@ -50,15 +52,15 @@ public class LiquidPumpStartCommandHandler extends BaseCommandHandler { commandWait(deviceCommandFuture); } - switch (index) { - case 1 -> deviceCommand = DeviceCommandGenerator.acidPump1Move(directionEnum, volume); - case 2 -> deviceCommand = DeviceCommandGenerator.acidPump2Move(directionEnum, volume); - case 3 -> deviceCommand = DeviceCommandGenerator.acidPump3Move(directionEnum, volume); - case 4 -> deviceCommand = DeviceCommandGenerator.acidPump4Move(directionEnum, volume); - case 5 -> deviceCommand = DeviceCommandGenerator.acidPump5Move(directionEnum, volume); - case 6 -> deviceCommand = DeviceCommandGenerator.acidPump6Move(directionEnum, volume); - case 7 -> deviceCommand = DeviceCommandGenerator.acidPump7Move(directionEnum, volume); - case 8 -> deviceCommand = DeviceCommandGenerator.acidPump8Move(directionEnum, volume); + switch (acidPumpDevice) { + case acid_pump_01 -> deviceCommand = DeviceCommandGenerator.acidPump1Move(directionEnum, volume); + case acid_pump_02 -> deviceCommand = DeviceCommandGenerator.acidPump2Move(directionEnum, volume); + case acid_pump_03 -> deviceCommand = DeviceCommandGenerator.acidPump3Move(directionEnum, volume); + case acid_pump_04 -> deviceCommand = DeviceCommandGenerator.acidPump4Move(directionEnum, volume); + case acid_pump_05 -> deviceCommand = DeviceCommandGenerator.acidPump5Move(directionEnum, volume); + case acid_pump_06 -> deviceCommand = DeviceCommandGenerator.acidPump6Move(directionEnum, volume); + case acid_pump_07 -> deviceCommand = DeviceCommandGenerator.acidPump7Move(directionEnum, volume); + case acid_pump_08 -> deviceCommand = DeviceCommandGenerator.acidPump8Move(directionEnum, volume); default -> throw new RuntimeException("index 未找到"); } CommandFuture deviceCommandFuture = deviceCommandService.sendCommand(cmdDTO.getCommandId(), cmdDTO.getCommand(), deviceCommand); diff --git a/src/main/java/com/iflytop/gd/app/cmd/debug/LiquidPumpStopCommandHandler.java b/src/main/java/com/iflytop/gd/app/cmd/debug/LiquidPumpStopCommandHandler.java index 074a57b..64bc9ea 100644 --- a/src/main/java/com/iflytop/gd/app/cmd/debug/LiquidPumpStopCommandHandler.java +++ b/src/main/java/com/iflytop/gd/app/cmd/debug/LiquidPumpStopCommandHandler.java @@ -7,6 +7,7 @@ import com.iflytop.gd.common.annotation.CommandMapping; import com.iflytop.gd.common.cmd.CommandFuture; import com.iflytop.gd.common.cmd.DeviceCommandBundle; import com.iflytop.gd.common.cmd.DeviceCommandGenerator; +import com.iflytop.gd.common.enums.AcidPumpDevice; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; @@ -26,17 +27,18 @@ public class LiquidPumpStopCommandHandler extends BaseCommandHandler { @Override public CompletableFuture handle(CmdDTO cmdDTO) { return runAsync(() -> { - Integer index = cmdDTO.getIntegerParam("index"); + String index = cmdDTO.getStringParam("index"); + AcidPumpDevice acidPumpDevice = AcidPumpDevice.valueOf(index); DeviceCommandBundle deviceCommand; - switch (index) { - case 1 -> deviceCommand = DeviceCommandGenerator.acidPump1Stop(); - case 2 -> deviceCommand = DeviceCommandGenerator.acidPump2Stop(); - case 3 -> deviceCommand = DeviceCommandGenerator.acidPump3Stop(); - case 4 -> deviceCommand = DeviceCommandGenerator.acidPump4Stop(); - case 5 -> deviceCommand = DeviceCommandGenerator.acidPump5Stop(); - case 6 -> deviceCommand = DeviceCommandGenerator.acidPump6Stop(); - case 7 -> deviceCommand = DeviceCommandGenerator.acidPump7Stop(); - case 8 -> deviceCommand = DeviceCommandGenerator.acidPump8Stop(); + switch (acidPumpDevice) { + case acid_pump_01 -> deviceCommand = DeviceCommandGenerator.acidPump1Stop(); + case acid_pump_02 -> deviceCommand = DeviceCommandGenerator.acidPump2Stop(); + case acid_pump_03 -> deviceCommand = DeviceCommandGenerator.acidPump3Stop(); + case acid_pump_04 -> deviceCommand = DeviceCommandGenerator.acidPump4Stop(); + case acid_pump_05 -> deviceCommand = DeviceCommandGenerator.acidPump5Stop(); + case acid_pump_06 -> deviceCommand = DeviceCommandGenerator.acidPump6Stop(); + case acid_pump_07 -> deviceCommand = DeviceCommandGenerator.acidPump7Stop(); + case acid_pump_08 -> deviceCommand = DeviceCommandGenerator.acidPump8Stop(); default -> throw new RuntimeException("index 未找到"); } CommandFuture deviceCommandFuture = deviceCommandService.sendCommand(cmdDTO.getCommandId(), cmdDTO.getCommand(), deviceCommand); diff --git a/src/main/java/com/iflytop/gd/app/cmd/debug/PalletElevatorLiftDownCommandHandler.java b/src/main/java/com/iflytop/gd/app/cmd/debug/PalletElevatorLiftDownCommandHandler.java index 3a95822..068a2cd 100644 --- a/src/main/java/com/iflytop/gd/app/cmd/debug/PalletElevatorLiftDownCommandHandler.java +++ b/src/main/java/com/iflytop/gd/app/cmd/debug/PalletElevatorLiftDownCommandHandler.java @@ -7,6 +7,7 @@ import com.iflytop.gd.common.annotation.CommandMapping; import com.iflytop.gd.common.cmd.CommandFuture; import com.iflytop.gd.common.cmd.DeviceCommandBundle; import com.iflytop.gd.common.cmd.DeviceCommandGenerator; +import com.iflytop.gd.common.enums.HeatModuleId; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; @@ -27,32 +28,32 @@ public class PalletElevatorLiftDownCommandHandler extends BaseCommandHandler { @Override public CompletableFuture handle(CmdDTO cmdDTO) { return runAsync(() -> { - Integer index = cmdDTO.getIntegerParam("index"); + String index = cmdDTO.getStringParam("index"); Double distance = cmdDTO.getDoubleParam("distance"); Double velocity = cmdDTO.getDoubleParam("velocity"); DeviceCommandBundle deviceCommand; - - if(velocity != null) { - switch (index) { - case 1 -> deviceCommand = DeviceCommandGenerator.heaterMotor1Set(distance); - case 2 -> deviceCommand = DeviceCommandGenerator.heaterMotor2Set(distance); - case 3 -> deviceCommand = DeviceCommandGenerator.heaterMotor3Set(distance); - case 4 -> deviceCommand = DeviceCommandGenerator.heaterMotor4Set(distance); - case 5 -> deviceCommand = DeviceCommandGenerator.heaterMotor5Set(distance); - case 6 -> deviceCommand = DeviceCommandGenerator.heaterMotor6Set(distance); + HeatModuleId heatModuleId = HeatModuleId.valueOf(index); + if (velocity != null) { + switch (heatModuleId) { + case heat_module_01 -> deviceCommand = DeviceCommandGenerator.heaterMotor1Set(distance); + case heat_module_02 -> deviceCommand = DeviceCommandGenerator.heaterMotor2Set(distance); + case heat_module_03 -> deviceCommand = DeviceCommandGenerator.heaterMotor3Set(distance); + case heat_module_04 -> deviceCommand = DeviceCommandGenerator.heaterMotor4Set(distance); + case heat_module_05 -> deviceCommand = DeviceCommandGenerator.heaterMotor5Set(distance); + case heat_module_06 -> deviceCommand = DeviceCommandGenerator.heaterMotor6Set(distance); default -> throw new RuntimeException("index 未找到"); } CommandFuture deviceCommandFuture = deviceCommandService.sendCommand(cmdDTO.getCommandId(), cmdDTO.getCommand(), deviceCommand); commandWait(deviceCommandFuture); } - switch (index) { - case 1 -> deviceCommand = DeviceCommandGenerator.heaterMotor1MoveBy(distance); - case 2 -> deviceCommand = DeviceCommandGenerator.heaterMotor2MoveBy(distance); - case 3 -> deviceCommand = DeviceCommandGenerator.heaterMotor3MoveBy(distance); - case 4 -> deviceCommand = DeviceCommandGenerator.heaterMotor4MoveBy(distance); - case 5 -> deviceCommand = DeviceCommandGenerator.heaterMotor5MoveBy(distance); - case 6 -> deviceCommand = DeviceCommandGenerator.heaterMotor6MoveBy(distance); + switch (heatModuleId) { + case heat_module_01 -> deviceCommand = DeviceCommandGenerator.heaterMotor1MoveBy(distance); + case heat_module_02 -> deviceCommand = DeviceCommandGenerator.heaterMotor2MoveBy(distance); + case heat_module_03 -> deviceCommand = DeviceCommandGenerator.heaterMotor3MoveBy(distance); + case heat_module_04 -> deviceCommand = DeviceCommandGenerator.heaterMotor4MoveBy(distance); + case heat_module_05 -> deviceCommand = DeviceCommandGenerator.heaterMotor5MoveBy(distance); + case heat_module_06 -> deviceCommand = DeviceCommandGenerator.heaterMotor6MoveBy(distance); default -> throw new RuntimeException("index 未找到"); } CommandFuture deviceCommandFuture = deviceCommandService.sendCommand(cmdDTO.getCommandId(), cmdDTO.getCommand(), deviceCommand); diff --git a/src/main/java/com/iflytop/gd/app/cmd/debug/PalletElevatorLiftUpCommandHandler.java b/src/main/java/com/iflytop/gd/app/cmd/debug/PalletElevatorLiftUpCommandHandler.java index 8b6976b..a899465 100644 --- a/src/main/java/com/iflytop/gd/app/cmd/debug/PalletElevatorLiftUpCommandHandler.java +++ b/src/main/java/com/iflytop/gd/app/cmd/debug/PalletElevatorLiftUpCommandHandler.java @@ -7,6 +7,7 @@ import com.iflytop.gd.common.annotation.CommandMapping; import com.iflytop.gd.common.cmd.CommandFuture; import com.iflytop.gd.common.cmd.DeviceCommandBundle; import com.iflytop.gd.common.cmd.DeviceCommandGenerator; +import com.iflytop.gd.common.enums.HeatModuleId; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; @@ -26,32 +27,32 @@ public class PalletElevatorLiftUpCommandHandler extends BaseCommandHandler { @Override public CompletableFuture handle(CmdDTO cmdDTO) { return runAsync(() -> { - Integer index = cmdDTO.getIntegerParam("index"); + String index = cmdDTO.getStringParam("index"); Double distance = cmdDTO.getDoubleParam("distance"); Double velocity = cmdDTO.getDoubleParam("velocity"); DeviceCommandBundle deviceCommand; - - if(velocity != null) { - switch (index) { - case 1 -> deviceCommand = DeviceCommandGenerator.heaterMotor1Set(distance); - case 2 -> deviceCommand = DeviceCommandGenerator.heaterMotor2Set(distance); - case 3 -> deviceCommand = DeviceCommandGenerator.heaterMotor3Set(distance); - case 4 -> deviceCommand = DeviceCommandGenerator.heaterMotor4Set(distance); - case 5 -> deviceCommand = DeviceCommandGenerator.heaterMotor5Set(distance); - case 6 -> deviceCommand = DeviceCommandGenerator.heaterMotor6Set(distance); + HeatModuleId heatModuleId = HeatModuleId.valueOf(index); + if (velocity != null) { + switch (heatModuleId) { + case heat_module_01 -> deviceCommand = DeviceCommandGenerator.heaterMotor1Set(distance); + case heat_module_02 -> deviceCommand = DeviceCommandGenerator.heaterMotor2Set(distance); + case heat_module_03 -> deviceCommand = DeviceCommandGenerator.heaterMotor3Set(distance); + case heat_module_04 -> deviceCommand = DeviceCommandGenerator.heaterMotor4Set(distance); + case heat_module_05 -> deviceCommand = DeviceCommandGenerator.heaterMotor5Set(distance); + case heat_module_06 -> deviceCommand = DeviceCommandGenerator.heaterMotor6Set(distance); default -> throw new RuntimeException("index 未找到"); } CommandFuture deviceCommandFuture = deviceCommandService.sendCommand(cmdDTO.getCommandId(), cmdDTO.getCommand(), deviceCommand); commandWait(deviceCommandFuture); } - switch (index) { - case 1 -> deviceCommand = DeviceCommandGenerator.heaterMotor1MoveBy(distance); - case 2 -> deviceCommand = DeviceCommandGenerator.heaterMotor2MoveBy(distance); - case 3 -> deviceCommand = DeviceCommandGenerator.heaterMotor3MoveBy(distance); - case 4 -> deviceCommand = DeviceCommandGenerator.heaterMotor4MoveBy(distance); - case 5 -> deviceCommand = DeviceCommandGenerator.heaterMotor5MoveBy(distance); - case 6 -> deviceCommand = DeviceCommandGenerator.heaterMotor6MoveBy(distance); + switch (heatModuleId) { + case heat_module_01 -> deviceCommand = DeviceCommandGenerator.heaterMotor1MoveBy(distance); + case heat_module_02 -> deviceCommand = DeviceCommandGenerator.heaterMotor2MoveBy(distance); + case heat_module_03 -> deviceCommand = DeviceCommandGenerator.heaterMotor3MoveBy(distance); + case heat_module_04 -> deviceCommand = DeviceCommandGenerator.heaterMotor4MoveBy(distance); + case heat_module_05 -> deviceCommand = DeviceCommandGenerator.heaterMotor5MoveBy(distance); + case heat_module_06 -> deviceCommand = DeviceCommandGenerator.heaterMotor6MoveBy(distance); default -> throw new RuntimeException("index 未找到"); } CommandFuture deviceCommandFuture = deviceCommandService.sendCommand(cmdDTO.getCommandId(), cmdDTO.getCommand(), deviceCommand); diff --git a/src/main/java/com/iflytop/gd/app/cmd/debug/PalletElevatorStopCommandHandler.java b/src/main/java/com/iflytop/gd/app/cmd/debug/PalletElevatorStopCommandHandler.java index 22dc9ff..e7ac3d1 100644 --- a/src/main/java/com/iflytop/gd/app/cmd/debug/PalletElevatorStopCommandHandler.java +++ b/src/main/java/com/iflytop/gd/app/cmd/debug/PalletElevatorStopCommandHandler.java @@ -7,6 +7,7 @@ import com.iflytop.gd.common.annotation.CommandMapping; import com.iflytop.gd.common.cmd.CommandFuture; import com.iflytop.gd.common.cmd.DeviceCommandBundle; import com.iflytop.gd.common.cmd.DeviceCommandGenerator; +import com.iflytop.gd.common.enums.HeatModuleId; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; @@ -27,15 +28,16 @@ public class PalletElevatorStopCommandHandler extends BaseCommandHandler { @Override public CompletableFuture handle(CmdDTO cmdDTO) { return runAsync(() -> { - Integer index = cmdDTO.getIntegerParam("index"); + String index = cmdDTO.getStringParam("index"); + HeatModuleId heatModuleId = HeatModuleId.valueOf(index); DeviceCommandBundle deviceCommand; - switch (index) { - case 1 -> deviceCommand = DeviceCommandGenerator.heaterMotor1Stop(); - case 2 -> deviceCommand = DeviceCommandGenerator.heaterMotor2Stop(); - case 3 -> deviceCommand = DeviceCommandGenerator.heaterMotor3Stop(); - case 4 -> deviceCommand = DeviceCommandGenerator.heaterMotor4Stop(); - case 5 -> deviceCommand = DeviceCommandGenerator.heaterMotor5Stop(); - case 6 -> deviceCommand = DeviceCommandGenerator.heaterMotor6Stop(); + switch (heatModuleId) { + case heat_module_01 -> deviceCommand = DeviceCommandGenerator.heaterMotor1Stop(); + case heat_module_02 -> deviceCommand = DeviceCommandGenerator.heaterMotor2Stop(); + case heat_module_03 -> deviceCommand = DeviceCommandGenerator.heaterMotor3Stop(); + case heat_module_04 -> deviceCommand = DeviceCommandGenerator.heaterMotor4Stop(); + case heat_module_05 -> deviceCommand = DeviceCommandGenerator.heaterMotor5Stop(); + case heat_module_06 -> deviceCommand = DeviceCommandGenerator.heaterMotor6Stop(); default -> throw new RuntimeException("index 未找到"); } CommandFuture deviceCommandFuture = deviceCommandService.sendCommand(cmdDTO.getCommandId(), cmdDTO.getCommand(), deviceCommand); diff --git a/src/main/java/com/iflytop/gd/app/cmd/debug/TransportationArmMoveCommandHandler.java b/src/main/java/com/iflytop/gd/app/cmd/debug/TransportationArmMoveCommandHandler.java index 9b2be1b..8fb2b57 100644 --- a/src/main/java/com/iflytop/gd/app/cmd/debug/TransportationArmMoveCommandHandler.java +++ b/src/main/java/com/iflytop/gd/app/cmd/debug/TransportationArmMoveCommandHandler.java @@ -32,22 +32,22 @@ public class TransportationArmMoveCommandHandler extends BaseCommandHandler { Double yDimDistance = cmdDTO.getDoubleParam("yDimDistance"); Double zDimDistance = cmdDTO.getDoubleParam("zDimDistance"); - Double xDimvelocity = cmdDTO.getDoubleParam("xDimvelocity"); - Double yDimvelocity = cmdDTO.getDoubleParam("yDimvelocity"); - Double zDimvelocity = cmdDTO.getDoubleParam("zDimvelocity"); + Double xDimVelocity = cmdDTO.getDoubleParam("xDimVelocity"); + Double yDimVelocity = cmdDTO.getDoubleParam("yDimVelocity"); + Double zDimVelocity = cmdDTO.getDoubleParam("zDimVelocity"); List futuresList = new ArrayList<>(); - if(xDimvelocity != null){ - DeviceCommandBundle deviceCommand = DeviceCommandGenerator.gantryXSet(xDimvelocity); + if(xDimVelocity != null){ + DeviceCommandBundle deviceCommand = DeviceCommandGenerator.gantryXSet(xDimVelocity); CommandFuture deviceCommandFuture = deviceCommandService.sendCommand(cmdDTO.getCommandId(), cmdDTO.getCommand(), deviceCommand); futuresList.add(deviceCommandFuture); } - if(yDimvelocity != null){ - DeviceCommandBundle deviceCommand = DeviceCommandGenerator.gantryYSet(yDimvelocity); + if(yDimVelocity != null){ + DeviceCommandBundle deviceCommand = DeviceCommandGenerator.gantryYSet(yDimVelocity); CommandFuture deviceCommandFuture = deviceCommandService.sendCommand(cmdDTO.getCommandId(), cmdDTO.getCommand(), deviceCommand); futuresList.add(deviceCommandFuture); } - if(zDimvelocity != null){ - DeviceCommandBundle deviceCommand = DeviceCommandGenerator.gantryZSet(zDimvelocity); + if(zDimVelocity != null){ + DeviceCommandBundle deviceCommand = DeviceCommandGenerator.gantryZSet(zDimVelocity); CommandFuture deviceCommandFuture = deviceCommandService.sendCommand(cmdDTO.getCommandId(), cmdDTO.getCommand(), deviceCommand); futuresList.add(deviceCommandFuture); } diff --git a/src/main/java/com/iflytop/gd/app/service/DeviceCommandService.java b/src/main/java/com/iflytop/gd/app/service/DeviceCommandService.java index 1f78dbc..7ef8842 100644 --- a/src/main/java/com/iflytop/gd/app/service/DeviceCommandService.java +++ b/src/main/java/com/iflytop/gd/app/service/DeviceCommandService.java @@ -16,7 +16,10 @@ import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; -import java.util.concurrent.*; +import java.util.concurrent.BlockingQueue; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ConcurrentMap; +import java.util.concurrent.LinkedBlockingQueue; @Slf4j @Service @@ -98,14 +101,21 @@ public class DeviceCommandService { } } else { //虚拟模式 - try (ScheduledExecutorService scheduler = Executors.newSingleThreadScheduledExecutor()) { - scheduler.schedule(() -> { + new Thread(() -> { + try { + String actionName = commandFuture.getDeviceCommandBundle().getDeviceCommand().getAction().name(); + if (actionName.contains("move") || actionName.contains("origin")) { + Thread.sleep(2000); + } JSONObject jsonObject = new JSONObject(); jsonObject.putOnce("cmdId", cmdId); jsonObject.putOnce("success", true); completeCommandResponse(jsonObject); - }, 2, TimeUnit.SECONDS); - } + } catch (InterruptedException e) { + // 处理中断异常 + Thread.currentThread().interrupt(); + } + }).start(); } } diff --git a/src/main/java/com/iflytop/gd/app/service/DeviceCommandUtilService.java b/src/main/java/com/iflytop/gd/app/service/DeviceCommandUtilService.java index e0bc23b..81cccac 100644 --- a/src/main/java/com/iflytop/gd/app/service/DeviceCommandUtilService.java +++ b/src/main/java/com/iflytop/gd/app/service/DeviceCommandUtilService.java @@ -84,12 +84,12 @@ public class DeviceCommandUtilService { */ public void heaterMotorMove(HeatModuleId heatModuleId, double position) throws Exception { DeviceCommandBundle deviceCommand = switch (heatModuleId) { - case HeatModuleId.MODULE_01 -> DeviceCommandGenerator.heaterMotor1Move(position); - case HeatModuleId.MODULE_02 -> DeviceCommandGenerator.heaterMotor2Move(position); - case HeatModuleId.MODULE_03 -> DeviceCommandGenerator.heaterMotor3Move(position); - case HeatModuleId.MODULE_04 -> DeviceCommandGenerator.heaterMotor4Move(position); - case HeatModuleId.MODULE_05 -> DeviceCommandGenerator.heaterMotor5Move(position); - case HeatModuleId.MODULE_06 -> DeviceCommandGenerator.heaterMotor6Move(position); + case heat_module_01 -> DeviceCommandGenerator.heaterMotor1Move(position); + case heat_module_02 -> DeviceCommandGenerator.heaterMotor2Move(position); + case heat_module_03 -> DeviceCommandGenerator.heaterMotor3Move(position); + case heat_module_04 -> DeviceCommandGenerator.heaterMotor4Move(position); + case heat_module_05 -> DeviceCommandGenerator.heaterMotor5Move(position); + case heat_module_06 -> DeviceCommandGenerator.heaterMotor6Move(position); }; CommandFuture deviceCommandFuture = deviceCommandService.sendCommand(deviceCommand); commandWait(deviceCommandFuture); diff --git a/src/main/java/com/iflytop/gd/common/cmd/DeviceCommandGenerator.java b/src/main/java/com/iflytop/gd/common/cmd/DeviceCommandGenerator.java index a0bcfce..43614c6 100644 --- a/src/main/java/com/iflytop/gd/common/cmd/DeviceCommandGenerator.java +++ b/src/main/java/com/iflytop/gd/common/cmd/DeviceCommandGenerator.java @@ -901,7 +901,7 @@ public class DeviceCommandGenerator { public static DeviceCommandBundle clawMove(Double position) { DeviceCommandParams params = new DeviceCommandParams(); params.setPosition(position); - return controlCmd(CmdDevice.claw, CmdAction.tight, params, "夹爪 移动"); + return controlCmd(CmdDevice.claw, CmdAction.move, params, "夹爪 移动"); } /** diff --git a/src/main/java/com/iflytop/gd/common/enums/AcidPumpDevice.java b/src/main/java/com/iflytop/gd/common/enums/AcidPumpDevice.java index 18bdf1b..b80f88a 100644 --- a/src/main/java/com/iflytop/gd/common/enums/AcidPumpDevice.java +++ b/src/main/java/com/iflytop/gd/common/enums/AcidPumpDevice.java @@ -8,23 +8,12 @@ import lombok.Getter; */ @Getter public enum AcidPumpDevice { - PUMP_01("acid_pump_01"), - PUMP_02("acid_pump_02"), - PUMP_03("acid_pump_03"), - PUMP_04("acid_pump_04"), - PUMP_05("acid_pump_05"), - PUMP_06("acid_pump_06"), - PUMP_07("acid_pump_07"), - PUMP_08("acid_pump_08"); - - private final String id; - - AcidPumpDevice(String id) { - this.id = id; - } - - @Override - public String toString() { - return id; - } + acid_pump_01, + acid_pump_02, + acid_pump_03, + acid_pump_04, + acid_pump_05, + acid_pump_06, + acid_pump_07, + acid_pump_08; } diff --git a/src/main/java/com/iflytop/gd/common/enums/HeatModuleId.java b/src/main/java/com/iflytop/gd/common/enums/HeatModuleId.java index 737ab20..56fa575 100644 --- a/src/main/java/com/iflytop/gd/common/enums/HeatModuleId.java +++ b/src/main/java/com/iflytop/gd/common/enums/HeatModuleId.java @@ -8,21 +8,10 @@ import lombok.Getter; */ @Getter public enum HeatModuleId { - MODULE_01("heat_module_01"), - MODULE_02("heat_module_02"), - MODULE_03("heat_module_03"), - MODULE_04("heat_module_04"), - MODULE_05("heat_module_05"), - MODULE_06("heat_module_06"); - - private final String id; - - HeatModuleId(String id) { - this.id = id; - } - - @Override - public String toString() { - return id; - } + heat_module_01, + heat_module_02, + heat_module_03, + heat_module_04, + heat_module_05, + heat_module_06; } diff --git a/src/main/java/com/iflytop/gd/common/enums/cmd/CmdAction.java b/src/main/java/com/iflytop/gd/common/enums/cmd/CmdAction.java index 0d1139a..f8e56f0 100644 --- a/src/main/java/com/iflytop/gd/common/enums/cmd/CmdAction.java +++ b/src/main/java/com/iflytop/gd/common/enums/cmd/CmdAction.java @@ -1,6 +1,9 @@ package com.iflytop.gd.common.enums.cmd; public enum CmdAction { - open, close, stop, start, origin, move, move_by, move_joint, move_point, set, get, tight, loose, - open_power, close_power, open_circle, close_circle, open_heart, close_heart, open_cool, close_cool, take_photo + move, move_by, move_joint, move_point, origin, + + open, close, stop, start, set, get, + open_power, close_power, open_circle, close_circle, + open_heart, close_heart, open_cool, close_cool, take_photo }