From 9d74b4e43e88aebf0ca2cfb98d72408023af4be2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E5=87=A4=E5=90=89?= Date: Wed, 30 Apr 2025 11:37:30 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E5=A2=9E=E5=8A=A0=E6=8C=87=E4=BB=A4?= =?UTF-8?q?=E6=9E=9A=E4=B8=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/iflytop/gd/common/cmd/DeviceCommand.java | 6 ++- .../iflytop/gd/common/cmd/DeviceCommandParams.java | 17 ++++++++ .../com/iflytop/gd/common/enums/cmd/CmdAction.java | 5 +++ .../com/iflytop/gd/common/enums/cmd/CmdAxis.java | 5 +++ .../iflytop/gd/common/enums/cmd/CmdDirection.java | 5 +++ .../command/command/handler/FanHandler.java | 46 ++++++++++++++++++++++ .../command/command_handler/FanHandler.java | 44 --------------------- .../gd/hardware/service/HardwareService.java | 2 +- 8 files changed, 83 insertions(+), 47 deletions(-) create mode 100644 src/main/java/com/iflytop/gd/common/cmd/DeviceCommandParams.java create mode 100644 src/main/java/com/iflytop/gd/common/enums/cmd/CmdAction.java create mode 100644 src/main/java/com/iflytop/gd/common/enums/cmd/CmdAxis.java create mode 100644 src/main/java/com/iflytop/gd/common/enums/cmd/CmdDirection.java create mode 100644 src/main/java/com/iflytop/gd/hardware/command/command/handler/FanHandler.java delete mode 100644 src/main/java/com/iflytop/gd/hardware/command/command_handler/FanHandler.java diff --git a/src/main/java/com/iflytop/gd/common/cmd/DeviceCommand.java b/src/main/java/com/iflytop/gd/common/cmd/DeviceCommand.java index c50aa50..aaed5d4 100644 --- a/src/main/java/com/iflytop/gd/common/cmd/DeviceCommand.java +++ b/src/main/java/com/iflytop/gd/common/cmd/DeviceCommand.java @@ -1,5 +1,6 @@ package com.iflytop.gd.common.cmd; +import com.iflytop.gd.common.enums.cmd.CmdAction; import lombok.Data; import java.util.Map; @@ -29,10 +30,11 @@ public class DeviceCommand { /** * 执行动作 */ - private String action; + private CmdAction action; /** * 指令参数 */ - private Map param; + private DeviceCommandParams param; } + diff --git a/src/main/java/com/iflytop/gd/common/cmd/DeviceCommandParams.java b/src/main/java/com/iflytop/gd/common/cmd/DeviceCommandParams.java new file mode 100644 index 0000000..fe94dbd --- /dev/null +++ b/src/main/java/com/iflytop/gd/common/cmd/DeviceCommandParams.java @@ -0,0 +1,17 @@ +package com.iflytop.gd.common.cmd; + + +import com.iflytop.gd.common.enums.cmd.CmdAxis; +import com.iflytop.gd.common.enums.cmd.CmdDirection; +import lombok.Data; + +@Data +public class DeviceCommandParams { + private String device; + private Double current; + private CmdDirection direction; + private Double position; + private Double speed; + private Double angle; + private CmdAxis axis; +} 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 new file mode 100644 index 0000000..4ec1c71 --- /dev/null +++ b/src/main/java/com/iflytop/gd/common/enums/cmd/CmdAction.java @@ -0,0 +1,5 @@ +package com.iflytop.gd.common.enums.cmd; + +public enum CmdAction { + open, close, stop, start, origin, move, move_joint, set +} diff --git a/src/main/java/com/iflytop/gd/common/enums/cmd/CmdAxis.java b/src/main/java/com/iflytop/gd/common/enums/cmd/CmdAxis.java new file mode 100644 index 0000000..4956dd2 --- /dev/null +++ b/src/main/java/com/iflytop/gd/common/enums/cmd/CmdAxis.java @@ -0,0 +1,5 @@ +package com.iflytop.gd.common.enums.cmd; + +public enum CmdAxis { + joint1,joint2 +} diff --git a/src/main/java/com/iflytop/gd/common/enums/cmd/CmdDirection.java b/src/main/java/com/iflytop/gd/common/enums/cmd/CmdDirection.java new file mode 100644 index 0000000..d5882c2 --- /dev/null +++ b/src/main/java/com/iflytop/gd/common/enums/cmd/CmdDirection.java @@ -0,0 +1,5 @@ +package com.iflytop.gd.common.enums.cmd; + +public enum CmdDirection { + forward, backward +} diff --git a/src/main/java/com/iflytop/gd/hardware/command/command/handler/FanHandler.java b/src/main/java/com/iflytop/gd/hardware/command/command/handler/FanHandler.java new file mode 100644 index 0000000..a4b01ab --- /dev/null +++ b/src/main/java/com/iflytop/gd/hardware/command/command/handler/FanHandler.java @@ -0,0 +1,46 @@ +package com.iflytop.gd.hardware.command.command.handler; + +import com.iflytop.gd.common.cmd.DeviceCommand; +import com.iflytop.gd.common.enums.cmd.CmdAction; +import com.iflytop.gd.common.enums.cmd.CmdDirection; +import com.iflytop.gd.hardware.command.CommandHandler; + +public class FanHandler extends CommandHandler { + + private int fanId = 0; + public FanHandler(int fanId) + { + super(); + } + + @Override + public boolean sendCommand(DeviceCommand command) { + // 校验动作 +// checkAction(command.getAction()); + + + + + // 发送命令 + if (command.getAction() == CmdAction.open) { + + // 校验参数 +// checkParams(command.getParams()); + // get 参数值 + Double speed = command.getParam().getSpeed(); + + // 打开风扇 + CmdDirection direction = command.getParam().getDirection(); + + // 组包 + // 发送命令 + HardwareService.sendPacket(); + return true; + } + else if (command.getAction() == CmdAction.close) { + // 关闭风扇 + return true; + } + return false; + } +} diff --git a/src/main/java/com/iflytop/gd/hardware/command/command_handler/FanHandler.java b/src/main/java/com/iflytop/gd/hardware/command/command_handler/FanHandler.java deleted file mode 100644 index ea2ee44..0000000 --- a/src/main/java/com/iflytop/gd/hardware/command/command_handler/FanHandler.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.iflytop.gd.hardware.command.command_handler; - -import com.iflytop.gd.common.cmd.DeviceCommand; -import com.iflytop.gd.hardware.command.CommandHandler; - -public class FanHandler extends CommandHandler { - - private int fanId = 0; - public FanHandler(int fanId) - { - super(); - } - - @Override - public boolean sendCommand(DeviceCommand command) { - // 校验动作 - checkAction(command.getAction()); - - - - - // 发送命令 - if (command.getAction().equals("open")) { - - // 校验参数 - checkParams(command.getParams()); - // get 参数值 - String speed = command.getParams().get("speed"); - - // 打开风扇 - String direction = command.getParams().get("direction"); - - // 组包 - // 发送命令 - HardwareService.sendPacket(); - return true; - } - else if (command.getAction().equals("close")) { - // 关闭风扇 - return true; - } - return false; - } -} diff --git a/src/main/java/com/iflytop/gd/hardware/service/HardwareService.java b/src/main/java/com/iflytop/gd/hardware/service/HardwareService.java index 91e5de0..f70f33f 100644 --- a/src/main/java/com/iflytop/gd/hardware/service/HardwareService.java +++ b/src/main/java/com/iflytop/gd/hardware/service/HardwareService.java @@ -5,7 +5,7 @@ import com.iflytop.gd.common.cmd.DeviceCommand; import com.iflytop.gd.hardware.command.CommandHandler; import com.iflytop.gd.hardware.command.SupportDevice.CmdDevice; import com.iflytop.gd.hardware.command.SupportMethod; -import com.iflytop.gd.hardware.command.command_handler.FanHandler; +import com.iflytop.gd.hardware.command.command.handler.FanHandler; import java.security.InvalidParameterException; import java.util.HashMap;