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 similarity index 57% rename from src/main/java/com/iflytop/gd/hardware/command/command_handler/FanHandler.java rename to src/main/java/com/iflytop/gd/hardware/command/command/handler/FanHandler.java index ea2ee44..a4b01ab 100644 --- 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 @@ -1,6 +1,8 @@ -package com.iflytop.gd.hardware.command.command_handler; +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 { @@ -14,28 +16,28 @@ public class FanHandler extends CommandHandler { @Override public boolean sendCommand(DeviceCommand command) { // 校验动作 - checkAction(command.getAction()); +// checkAction(command.getAction()); // 发送命令 - if (command.getAction().equals("open")) { + if (command.getAction() == CmdAction.open) { // 校验参数 - checkParams(command.getParams()); +// checkParams(command.getParams()); // get 参数值 - String speed = command.getParams().get("speed"); + Double speed = command.getParam().getSpeed(); // 打开风扇 - String direction = command.getParams().get("direction"); + CmdDirection direction = command.getParam().getDirection(); // 组包 // 发送命令 HardwareService.sendPacket(); return true; } - else if (command.getAction().equals("close")) { + else if (command.getAction() == CmdAction.close) { // 关闭风扇 return true; } 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;