From 7f81dd3c22c614047889693a7e3b6d7076d32002 Mon Sep 17 00:00:00 2001 From: huangxiang <155373492@qq.com> Date: Tue, 29 Apr 2025 16:50:49 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E4=BF=AE=E5=A4=8D=E4=BE=9D=E8=B5=96?= =?UTF-8?q?=E4=B8=8D=E6=AD=A3=E7=A1=AE=E6=97=A0=E6=B3=95=E5=90=AF=E5=8A=A8?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../services/cmds/DoorCloseCommandHandler.java | 3 +- .../gd/infrastructure/devices/VirtualDoor.java | 24 ++++++++++++++++ .../gd/infrastructure/devices/VirtualHeater.java | 33 ++++++++++++++++++++++ .../java/com/iflytop/gd/system/devices/Heater.java | 16 +++++++++-- .../com/iflytop/gd/system/models/HeaterStatus.java | 13 +++++++++ 5 files changed, 86 insertions(+), 3 deletions(-) create mode 100644 src/main/java/com/iflytop/gd/infrastructure/devices/VirtualDoor.java create mode 100644 src/main/java/com/iflytop/gd/infrastructure/devices/VirtualHeater.java create mode 100644 src/main/java/com/iflytop/gd/system/models/HeaterStatus.java diff --git a/src/main/java/com/iflytop/gd/debug/services/cmds/DoorCloseCommandHandler.java b/src/main/java/com/iflytop/gd/debug/services/cmds/DoorCloseCommandHandler.java index 2ca199c..01d571a 100644 --- a/src/main/java/com/iflytop/gd/debug/services/cmds/DoorCloseCommandHandler.java +++ b/src/main/java/com/iflytop/gd/debug/services/cmds/DoorCloseCommandHandler.java @@ -4,6 +4,7 @@ import com.iflytop.gd.app.model.dto.CmdDTO; import com.iflytop.gd.common.annotation.CommandMapping; import com.iflytop.gd.common.cmd.CommandHandler; import com.iflytop.gd.infrastructure.devices.MotorDrivenDoor; +import com.iflytop.gd.system.devices.Door; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; @@ -16,7 +17,7 @@ import org.springframework.stereotype.Component; @RequiredArgsConstructor @CommandMapping("debug_door_close") public class DoorCloseCommandHandler implements CommandHandler { - private final MotorDrivenDoor door; + private final Door door; @Override public void handle(CmdDTO cmdDTO) { this.door.close(); diff --git a/src/main/java/com/iflytop/gd/infrastructure/devices/VirtualDoor.java b/src/main/java/com/iflytop/gd/infrastructure/devices/VirtualDoor.java new file mode 100644 index 0000000..7c6b761 --- /dev/null +++ b/src/main/java/com/iflytop/gd/infrastructure/devices/VirtualDoor.java @@ -0,0 +1,24 @@ +package com.iflytop.gd.infrastructure.devices; + +import com.iflytop.gd.system.devices.Door; +import org.springframework.context.annotation.Profile; +import org.springframework.stereotype.Component; + +@Component +@Profile("dev") +public class VirtualDoor implements Door { + @Override + public void open() { + + } + + @Override + public void close() { + + } + + @Override + public void stop() { + + } +} diff --git a/src/main/java/com/iflytop/gd/infrastructure/devices/VirtualHeater.java b/src/main/java/com/iflytop/gd/infrastructure/devices/VirtualHeater.java new file mode 100644 index 0000000..d40030f --- /dev/null +++ b/src/main/java/com/iflytop/gd/infrastructure/devices/VirtualHeater.java @@ -0,0 +1,33 @@ +package com.iflytop.gd.infrastructure.devices; + +import com.iflytop.gd.system.devices.Heater; +import com.iflytop.gd.system.models.HeaterStatus; + + +/** + * 虚拟加热器 + */ +public class VirtualHeater implements Heater { + private final HeaterStatus heaterStatus = new HeaterStatus(); + + + @Override + public void open() { + this.heaterStatus.setOpen(true); + } + + @Override + public void close() { + this.heaterStatus.setOpen(false); + } + + @Override + public Double getCurrentTemperature() { + return this.heaterStatus.getCurrentTemperature(); + } + + @Override + public Double getTargetTemperature() { + return this.heaterStatus.getTargetTemperature(); + } +} diff --git a/src/main/java/com/iflytop/gd/system/devices/Heater.java b/src/main/java/com/iflytop/gd/system/devices/Heater.java index c659cb7..3effea7 100644 --- a/src/main/java/com/iflytop/gd/system/devices/Heater.java +++ b/src/main/java/com/iflytop/gd/system/devices/Heater.java @@ -9,12 +9,24 @@ public interface Heater { * 打开 * @return */ - boolean open(); + void open(); /** * 关闭 * @return */ - boolean close(); + void close(); + + /** + * 获取当前温度 + * @return + */ + Double getCurrentTemperature(); + + /** + * 获取设定的目标温度 + * @return + */ + Double getTargetTemperature(); } diff --git a/src/main/java/com/iflytop/gd/system/models/HeaterStatus.java b/src/main/java/com/iflytop/gd/system/models/HeaterStatus.java new file mode 100644 index 0000000..42c1fda --- /dev/null +++ b/src/main/java/com/iflytop/gd/system/models/HeaterStatus.java @@ -0,0 +1,13 @@ +package com.iflytop.gd.system.models; + + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class HeaterStatus { + private Double targetTemperature = 0.0; // 目标温度 + private Double currentTemperature = 0.0; // 当前温度 + private boolean isOpen; +}